曾让一个国家瘫痪的“千年虫”,重出江湖,它究竟是何方神圣?( 二 )


值得一提的是 , 当时想出该办法的人 , 还是一位女程序员格莱斯·霍普 , 她也由此在程序界享有盛名 , 在当年被冠以“软件之母”的称号 。

然而 , 就在六位简写法开始大肆推广时 , 一位名叫鲍勃·贝默的科学家却察觉到一丝不对劲 , 他开始四处呼吁 , 希望大家不要普及这种简写方式 。
因为 , 六位简写法存在一个巨大的漏洞 , 那就是年份仅体现两位 , 这会让二十世纪和二十一世纪的时间发生重合 , 比如1922年和2022年 , 在计算机的记录中 , 就都只会显示“22” , 这显然是不合理的 。
但当时的人们认为鲍勃只是在眼红格莱斯的成就 , 加之 , 六位简写法确实让程序员们节省了开支 , 所以 , 无论是科技公司 , 还是各大院校实验室 , 都没有听取鲍勃的意见 。
一部分程序员甚至还认为 , 自己写的程序根本用不到二十一世纪 , 至于二十一世纪后 , 那会有新的计时方法了 , 所以根本无须担心 , 可真的如此吗?

事实上 , 这种分析从逻辑上来说 , 是没有任何问题的 , 可前提是“新的计时方法”必须要出现 。
但令人震惊的是 , 科技界似乎都沉溺于向前发展 , 大家都忘记了开发新的计时方法 , 毕竟 , 老一套的六位计数法用起来很方便 。
除此之外 , 大多数软件接口都已经设定为这种技术方法 , 若要进行修改 , 那将面临着无法适配的情况 , 这预示着成本必定会随之上升 。

就这样 , 科技界一直拖到了二十一世纪的最后十年 , 也就是九十年代时 , 才终于注意到时间的问题 , 因为一旦完成世纪的跨越 , 所有程序的设定 , 都会变成00/01/01 。
可电脑毕竟不是人脑 , 它在读取这一时间数据时 , 必然会发生紊乱 , 须知无论是1900年1月1日 , 还是2000年1月1日 , 它们的显示方式都是一样的 。
这意味着 , 所有的程序都会在过年时崩溃 , 从而引发史上最大规模的紊乱事件 。 届时 , 无论是核弹发射装置 , 还是金融中枢 , 又或是运作的工厂 , 都会出现无法预测的混乱 , 这一结果的可怕性 , 简直就是不堪设想 。

因此 , 为了避免这种混乱 , 一众科技大国开启了一场修改代码的行动 。
不过 , 修改这五十年来写出的所有程序 , 这显然是不现实的 , 所以 , 程序员们选择直接把系统中的1900年至1920年的时间删除 。
这样一来 , “00/01/01”就变成了2000年1月1日的专属 , 无须再担心别的问题 。

但饶是如此 , 位于非洲的国家冈比亚 , 还是因为没来得及修改时间逻辑 , 而导致全国程序的崩溃 , 无论是发电站 , 还是自来水厂都停止了工作 , 整个国家不得不选择放假一天 , 来等待国际支援 。
另外 , 需要注意的是 , 当时删除的时间线仅到1920年 , 这意味着 , 在2020年之后 , 依然还会爆发千年虫事件 。
比如2022年开年时 , 微软的exchange服务器就发生了崩溃 , 这导致无数企业用户的邮件根本无法发送和接受 , 全部堆在序列中 , 让服务器进入恶性循环中 。
造成这一问题的核心原因 , 就在于微软在跨年时 , 发布了一个代号为“ 2201010001”的更新版号 , 这本是正常的版本更新 。

但微软写入其中的符号代码 , 能够接受的最大数值为 2147483647 , 这显然是远远小于2201010001的 , 所以服务器在识别更新文件时 , 就直接把自己算崩溃了 , 进而也就让无数处于休假的程序员也崩溃了 , 大家只能选择加班来修复这一问题 。
从这一点来看 , 千年虫的危害是极其强大的 , 而且 , 就目前的情况来看 , 千年虫这一祸害根本无法解决 。
毕竟 , 就算人们能够修改时间设定 , 又或是能直接购买新设备 , 但一些较为老套的计算机 , 却依然还沿用着六位计数法 , 这代表着 , 在某个特定的时刻 , 它们都会迎来一次集体的紊乱 , 或是出租车的计价器 , 也可能是天然气计价器等等 。

而这也便是千年虫的潜伏性 , 它总能在不经意的时刻 , 给予人类致命的一口 , 完美契合昆虫的特性 。
参考资料:
《22年过去了 , “千年虫”漏洞为何还会出现?》--------央广网
《照这样下去 , “千年虫”还得再来十遍》-------品玩
《“千年虫”在我国没有爆发》--------新华通讯社(2000年)

推荐阅读