记得在2000年到来前的几个月里,我正在一家外企工作。当时电脑应用刚刚开始普及不久,公司还特备从新加坡总部派来IT专家来协助处理Y2K千年问题。现在19年过去了,然而Y2K修复带来的潜在问题又引起了关注。
现在一些国家的停车计时器、收银机和一款专业摔跤视频游戏,正因与千年虫有关的电脑故障而陷入困境。2020年千年虫问题余威仍在,已经让许多支付系统和计算机系统离线,
它是20年前试图修复千年虫所埋藏的潜在地雷。两者都源于计算机存储日期的方式。许多较旧的系统仍然使用两个数字来表示年份,例如用98代表1998年以节省内存。Y2K千年问题问题是担心计算机会把00当作1900,而不是2000。
想要避免Y2K问题的程序员有两个广泛的选择: 完全重写代码,或者采用一种叫做“窗口”的快速修复程序,这种方法可以处理从00到20的所有日期,从2000年开始,而不是从1900年开始。据估计,1999年80%的计算机修复使用了更快、更便宜的处理方案。
伦敦经济学院的迪伦·马尔文对此回顾说,在Y2K期间采用窗口修复是所有可能的解决方案中最糟糕的,因为它为解决该问题提供了捷径,但却并非是最好的选择。
鉴于中点1970年的重要性,编码者选择1920年到2020年作为标准窗口。云平台提供商Fastly的工程师久保宫川解释说,许多编程语言和系统从1970/01/01开始,将日期和时间处理为秒,它也被称为Unix时间。Unix是各行各业广泛使用的操作系统,这个“新时代”的到来被视为一个标准。理论上说,到2020年,这些窗口化系统将会过时,但许多系统仍然处于停滞状态。在某些情况下,这个问题已经被很多人遗忘。
修复旧遗留系统中的故障是一场噩梦,事实上之前没有多少人关注这件事情。为沃达丰处理Y2K故障的保罗•洛马克斯还说:“很明显,他们之前的推定认为到2020年,系统已经长期停止使用。就像60年代的人不认为他们的密码在2000年还会存在生效一样。”
那些在应对Y2K千年虫问题,使用快速修复方法的系统现在已经面临窗口末端的到来,它们的时间系统已经退回到了1920年。据报道,美国一些公用事业公司的账单上显示的日期是1920年的错误日期,而纽约市成千上万的停车收费表因为这个日期错误而拒绝了信用卡交易。
波兰公司Novitus生产的数千台收银机因时钟故障无法打印收据,现在他们正试图修理这些机器。职业摔跤游戏WWE 2K20程序也于2020年1月1日午夜停止工作。好在游戏开发者反应迅速,在24小时内发布了一个可下载的补丁。去年11月,另一款名为Splunk的软件被发现易受Y2020漏洞的攻击。该公司在一周内向用户推出了修复服务,这些用户中包括92家《财富》美国100强企业中的92家。
一些硬件和软件故障已经归咎于这个系统问题。Y2020攻击了McKesson开发的一个系统,但是生产该软件的该公司并不知道与2020年有关的任何系统中断。由于各家公司尚未披露相关细节,目前还不清楚这些“2020修复”将持续多久。如果只是简单地将窗口回推,未来我们可能还将看到同样的错误出现。
2038年我们还面临着另一个数据存储问题。这个问题同样源于Unix时代的到来: 数据存储为32位整数,2038年1月19日凌晨3.14时将耗尽容量。应对类似的问题时最好还是找到永久的解决办法,而不是权宜之计!