新的十年已经开始。
二十年前,当千年钟声敲响时,Y2K应急小组的许多程序员焦急地坐在电脑前,但为了修复bug,他们发现自己用的是最简单、最容易的“懒惰我就用的方法”。千年虫(也称为千年虫、2000 年问题和“Y2K”)。二十年后,这群程序员正在老龄化,但新一代的年轻程序员却要为老一辈的懒惰付出代价。
《纽约时报》,从2020年1月1日起,纽约的停车计时器将不再支持信用卡付款。该市超过10,000 米的电表已手动更新为仅接受现金或ParkNYC 付款。它由波兰公司Novitus Resi 制造。由于录音时间故障,无法打印收据;电子游戏《WWE 2K20》于2020 年1 月1 日午夜停止工作;华为手表和部分设备将在新年伊始进入TrueSleep 2-3 天睡眠数据丢失并且需要更新并重新启动.
图| 纽约市交通局1月1日宣布停车计时器信用卡支付软件设置失败,造成大面积停运(来源:纽约时报)
程序员Jef Poskanzer 发推文称:似乎有相当多的系统正在经历#2020 错误。 Y2K问题的解决将问题推迟了20年……20年后,当时的一些系统仍在使用,系统认为我们处于1920年。 ”
照片| Jef Poskanzer 的推文(来源:Twitter 截图)
很可能,在世纪之交出生的青少年中很少有人知道“千年虫”的存在。
对于20 世纪80 年代中期之前使用的系统,由于存储容量有限以及人们普遍认为系统更新速度很快,程序员几乎总是使用06/来表示年份,而不是使用两位数,例如06/15/98。 15/1998。但到了2000年,系统只知道是2000年1月1日,而不知道是1900年还是2000年。
Y2K bug 主要集中在较旧的主机系统上,例如在IBM 4381、IBM AS/400 和其他型号上运行的应用程序。例如,美国电信公司AT&T的内部应用需求超过3.6亿行。关于Y2K问题。此外,自动仪表、电梯、报警系统、恒温灯等内置设备也容易出现千年虫风险。
计算机在20世纪60年代和1970年代开始普及,到了90年代人们开始意识到问题的严重性。从1999年底的23:59过渡到2000年初的00:00意味着什么?在夸张和炒作下,公众的恐慌程度不亚于“2012年”。如果一个程序停止运行、崩溃或者发出错误的指令,银行、发电厂、航空公司等会不会受到影响?存款会不会一夜之间消失?有袭击、有飞机失事、有股市崩盘,人们都在猜测世界将会变成什么样子。陷入混乱?
当时有报道称,一些人利用该洞穴作为避难所,储存大量食物、医疗包和其他必需品,而另一些人则提取银行存款并购买黄金。
照片| TIME 封面,1999 年1 月18 日(来源:Time)
为了避免“灾难”的发生,政府和公司投入了大量资源来查找和修复这个错误。据报道,当时克林顿政府和行业官员估计,使用“窗口”修补80% 的计算机将花费数千亿美元。据英国广播公司报道,全球应对千年虫问题的成本在3000 亿至5000 亿美元之间。目前无法核实真实成本。还有人说,千年虫漏洞是一个巨大的商业骗局。
当时,有两种方法可以修复错误。要么完全重写代码,要么使用“窗口”进行快速修复。 “窗口化”意味着将00 到20 之间的所有日期视为20XX 年而不是19XX 年。显然,后一种方法比将所有2 位数年份更改为4 位数年份更便宜、更快且更容易。
自1970/01/01 起,许多编程语言和系统开始以秒为单位处理日期和时间,也称为Unix 时间。因此,考虑到1970年中点的重要性,Coda选择1920-2020年作为标准窗口。
Unix时间被各行业的操作系统广泛使用,被认为是一种标准。 Unix 和Windows 系统具有设置系统“周转”的环境变量。 “营业额年份”之后的年份属于本世纪,“营业额年份”和“营业额年份”之前的年份属于上一个世纪。但是,某些产品(例如Microsoft Excel 95)使用从1920 年到2020 年的窗口,并且在解决Y2K 问题20 年后,日期错误可能会再次出现。
图| “Y2K”在2020 年回归(来源:Popular Mechanics)
当时的专家认为,如果程序员投入大量资金和时间来永久修复这些错误,系统就会被取代。因此,即使“窗玻璃”修复程序持续20年、30年,专家认为也足够了。
伦敦经济学院的迪伦·马尔文(Dylan Malvin) 表示:“即使在2000 年,打开窗户也是最糟糕的解决方案。”
2020年的到来,意味着我们已经进入了1920年至2020年这一时期的结束。 2019年11月,大数据公司Splunk在被发现易受2020年“攻击”后,为其用户推出了修复服务。其用户包括美国百强企业中的92家。目前尚不清楚“2020”会持续多久,因为各公司尚未透露细节。
此外,到2038年,我们将面临另一个数据存储问题。在32 位Unix 和Linux 上,可以存储的最大数字是2 的31 次方,即2147483647。自1997年起,2147483647代表的秒数只能使用到2038年1月19日03:14:07。此后,系统将恢复为- 2147483648,代表1901 年12 月20 日期间。 3 月13 日45:52。
与Y2K bug不同,2038不仅影响应用层,还影响最底层的时间控制功能。好消息是,如果我们能够在2038 年之前逐步淘汰所有32 位系统,转而采用64 位系统,我们将成功避免2038 年问题。
标题:千年虫问题怎么解决的,千年虫问题解决了吗
链接:https://yyuanw.com/news/xydt/6817.html
版权:文章转载自网络,如有侵权,请联系删除!