踏入2000年的第一时间,人们无不对新世纪的来临感到欣喜,但在同时一个可怕的“生物”也跟着出现了,它就是千年虫。
第一回听到这名字的时候还真就是在2000年,只不过那个时候年龄还小,完全无法理解这到底是个什么东西,只知道它跟电子产品有很大的关系,尝试性地打探了一番后,得到的回答也是五花八门。
后来随着时间的流逝,知道了电脑病毒这个东西,再回想那个时候像迷一样的千年虫——理应就是流行一时的电脑病毒吧?想必不少人会抱有同样的想法。
千年虫真的是电脑病毒吗?当然不是了,千年虫和电脑病毒没有一点关系,就本质上而言,它其实就是一个bug,但这个bug对电脑的危害却一点不比病毒要小。虽然在2000年的时候才被一部分人们所了解到,但千年虫的诞生足可以追溯到现代电脑诞生之初的时候,而且它的诞生还含有一定戏剧性。
1944年8月7日,马克一号全自动化循序控制计算机落户哈佛大学,以普遍的说法,这就是现代电脑的开端。而为它编程的人,也就是最早的一批程序员。
在这些人中最为出名的就是格蕾丝·霍普,她是马克一号上的第一个专职的程序员,同时也是第一个编译器系统的创造者。抛去这些,千年虫的诞生也是她的成就之一。
因为当时电脑的储存设备价格极其高昂,所以在一些方面的设计上是能省就省。为此格蕾丝给马克一号设计了经典的六位数计时方式,这个模式在今年依旧可见。所谓六位数计时方式,就是将六个数字以两两一组的方式来表现年月日。
举一个例子,1970年4月1日,在马克一号以及之后所诞生的电脑上就会显示出70/04/01。看似很完美的节省下来了设备的储存空间,但一个问题也就随之出现了,那就是到了2000年的时候该怎么办?
如果按照六位数计时法,到了2000年的时候,前两位数字必然会是“00”。在常人看来,会很容易理解,但电脑可就不一样了。对于电脑而言“00”既可以表示2000年,同时也可以表示1900年。基于这种情况,则会引发一系列的系统故障,而这就是千年虫的真正面目。
可能有人会好奇,不就是电脑无法识别正确时间吗,造成的影响能有多大?
在这个信息化的时代里,电脑早就已经与人们的生活紧密地捆绑在了一起。尽管2000年的时候电脑对我们大多数人来说还是一个新鲜玩意,但微机课的存在已经证明,电脑在那时开始,已经成为人们生活中不可或缺的产品了。
时间上的混乱,自然会让电脑作出一些不正常的操作或是直接罢工,而在这庞大的使用基数下,你说问题严不严重。
除了电脑之外,使用六位数计时法的嵌入式设备也一样面临着千年虫的威胁。就好比你在2000到来前夕坐着出租车外出,这时刚好2000年1月1日的零点到来了。就在和司机师傅一同庆祝新世纪到来的时候,突然发现计价器竟然清零了,甚至连起步价都没有了。司机师傅和你之间那友谊的小船自然也就倾覆了。
所以,往小了说,千年虫危机会给我们的生活造成不便,甚至会让我们造成一定的损失。而往大了说,那千年虫危机足可以对一个国家造成严重的影响,一些像银行这样和计算机重度挂钩的部门,如果受到影响,那所造成的后果必定是无法估量的。
这其中最有力的证据就是西非国家冈比亚遭受的虫祸。当千年虫即将到来的时候,国际社会觉得冈比亚会受到的威胁不会太严重,因此并没有及时地对其进行帮助。结果在2000年到来的时候,冈比亚成为了受灾最严重的国家。
先是能源系统受到的冲击,而后交通系统又受到了影响,在一环扣一环的情况下,冈比亚全境几乎处在了瘫痪的状态下。被逼无奈,冈比亚政府只能用放假的方式等待国际上的救援。
其实在六位数计时法诞生的时候,包括格蕾丝在内的不少人就已经注意到了它会引发的问题。但电脑在那个时候可不是一个普及的产品,也很少人有会认为它能普及,而且随着时间的发展,这个问题到2000年的时候未必就还是一个问题。
但最终的情况还是向与预期相反的路线发展了,六位数计时法并没有昙花一现,而是在惯性思维下被使用了很长时间。另外电脑普及率的变化也远远超出了当时人们的估计。转眼间新世纪就要来临了,人们这时才开始手忙脚乱地处理这个问题。
要说影响的话确实是有的,但绝对没有想象中的那么严重,在世界范围内,除了那没事就号称世界第一强国的冈比亚以外,大部分国家都很平稳的渡过了2000年。
就当时的情况来看,千年虫问题多会爆发在一些使用老旧系统的电脑上,比如DOS 5.0以上的版本。而在Windows的早期版本中,就已经开始将年份用完整的四位数来表示了,因此本质上并不会出现千年虫的问题。
不过一些应用程序在对年份的表示上依旧采用了不完整的方式,所以当我们使用这些程序的时候,往往就会将千年虫给引出来。依稀记得,直接更改电脑上的时间,在当时也算是一个较为便捷的处理方式。
综上所述,千年虫问题其实也颇有一种雷声大雨点小的感觉,这其中自然也有无数程序员奋战的结果。但要知道的是,千年虫当时的影响并没有单一的存在于电脑上面。
就像那时第一回听到这个名字的时候,对其自然是充满了疑惑——“它难道真的是一只虫子吗?那这名字还挺拉风的”。而在当时的一些偏远地区,对其的理解则更为模糊。
这就让一些人看到了“商机”。在不断地编造下,千年虫的危害被进一步扩大,并使得一些不明真相的群众对其是深信不疑。这个时候不法之徒就利用人们对千年虫的恐惧,来骗取钱财。
更有甚者,将千年虫具象化,称其为一种对人类危害极大的寄生虫,然后堂而皇之地卖起了打虫药、杀虫剂一类的商品。现在一想,可真是荒谬呀。
毫不夸张地说,千年虫骗局远比千年虫本身造成的危害要大的多。
造成这一现象的主要原因自然是因为当时信息传播并不是便捷,人们对计算机的了解较少。但也不排除名字的因素,“千年虫”三个字中,“千年”可以理解,但为什么非要加一个“虫”呢?
之所以叫这个名字,其实还是跟格蕾丝有直接关系,而“虫”也真就不是因为叫着顺嘴加上去的。
当时马克二号出现了故障,在所有人都束手无策的时候,细心的格蕾丝发现了原来是一只小飞虫误入了机箱内部,进而引起了故障。
在排除了故障之后,格蕾丝将这次事故记在了笔记本上,并将小虫子的尸体也粘在了上面。而这也正是现代电脑诞生以来遇到的第一个问题,小虫子在之后也就成为了这一类问题的称呼,英文就是“bug”。
看到这里就不难理解了,千年虫这个名字的由来就是英文“millennium bug”直译的结果。
看来格蕾丝不仅发现了第一个“bug”,她还制造了一个最大的“bug”。
参考文献:
“千年虫与中小企业”
“International Y2K Cooperation Center Records,1998-2000”
“The Surprising Legacy Of Y2K”