

定时炸弹在2000年爆炸
作者:三联生活周刊(文 / 三联生活周刊)
文明的终结?
2000年1月1日。
新年除夕晚会还没有开完就断了电,因为电力公司的叶轮机出了故障;拿起电话听不见声,反倒有可能收到电话公司的账单,说你打给奶奶的长途电话耗时100年;医院里的X光机、CT扫描仪和新生儿监视器悉数关闭,记账系统和病历数据库也停止工作;空中交通管制系统全面瘫痪,天空中一片混乱;政府不知道该向谁发放救济金,税务部门认为你欠下的税与国债数额相等;银行和其他金融机构发了疯,计算机自动抹掉最近99年积存下来的所有记录,股票市场如脱缰野马;监狱安全系统被破坏,成千上万的电子铁门自动打开,数不清的危险罪犯从牢笼里一拥而出;你想去加班,却发现自己进不了工厂和办公室的门,因为工作单位有同2000年联系在一起的安全系统;在你启住的塔楼中,电梯掉到楼房最底层,然后降至地下室进行检修,因为它们会为过了100年还没有人照顾自己感到奇怪……
这幅仿佛科幻小说一样的图景会出现吗?一家世界性的新闻杂志在封面打出一个大大的问号:“两个不起眼的数字真的会遏制文明的脚步吗?”然后自己回答说:“是的,问上2000次答案也不会变。”
如果世界上的政府和公司完全对千年虫放任不管的话,2000年数字噩梦将会成真。但由于各种悲观预言为我们敲响了警钟,1999年结束时,世界的末日不大可能降临。大多数机构都已开始为修正这一问题采取行动。
这场全球大修不论怎么算都是一个繁重的任务。所谓“千年虫”——在喜欢造缩略语的计算机业内被称作“Y2K问题”——简单地说就是,计算机会把2000年当作1900年来处理。大多数现行计算机系统中,日期中的年份是用两位数表示,比如:1999表示为99。这就使得系统进入2000年时,出现年份为“00'’的情况,由此引发诸如世纪的处理、闰年的确定、日期 排序、年份运算等问题,并导致与日期有关的数据(如年龄、利息、保险金、各种特定期限等)的计算、预测和控制的混乱。这就是计算机2000年问题,它是一个技术上虽简单,但对社会和经济安全却十分重要的问题。
不过这一问题到底有多大,各机构能不能在最后期限之前完成改正都很难说。有人说千年虫是全球信息基础设施迄今面临的最严峻的考验,也有人说它只不过是另一个可恶的等待修复的软件错误,这类错误自从有了计算机就一直困扰着用户。据美国咨询公司加特纳集团估计,解决问题的总开支高达6000亿美元,这笔款额足够美国全国一年的教育开销,即从幼儿园到研究生院的教育费用。英国《经济学家》的估算则为3000亿美元。
这都是猜测。没有人知道世界范围内有多少程序会受到影响,多少值得去修补;除非到了那个致命的日子,人们甚至都不清楚这些修补是不是有效。最终要掏腰包的是股东、顾客和纳税人,而且掏的可不是小数目。这钱不过是用来保障在2000年1月1日后照常做事情,不能带来丝毫生产率的提高。谁该为这种巨大浪费负责呢?
无意中安放的定时炸弹
罪魁祸首是一个叫“穿孔卡”的东西。这种卡片实际上是第一代企业用计算机的硬盘,它以穿孔的形式存储数据和程序。每张卡片只能存储80个字符信息。所以,为了节省空间,程序员们在计算机中表示年份同表示月、日一样,统一使用两个字节。即便后来磁存储器出现,存储的成本仍然十分昂贵,从日期表示中“抠”出一点地方以节省开销,看起来顺理成章。
60年代和70年代的软件技术人员觉得这种解决办法用上几十年都没有问题,在下个世纪到来之前,一定会出现新的局面。2001年的时候,计算机肯定已经全面智能化了,哪里还用得着现在这套东西。
他们错了。虽然在过去的30年中,计算机硬件获得了突飞猛进的发展,大型主机仍在我们的生活中占据突出地位。今天的IBM大型机运行速度更快,成本也更低,但使用的软件和过去依然相似。这些软件中有许多是为公司和政府部门完成具体任务比如收费和发工资而定做的;随着时间的推移,用户对计算机系统的要求越来越高,程序员因此往软件中添加了更多的功能——然而其内核却没有多少变化。虽然那一代程序员大多已退休,但编程的传统惯例却延续下来——包括用两位数字表示年份的恶习。专门从事风险研究的彼得·纽曼将此称为“无意中安放的定时炸弹”。
当年这个不幸的编程决定的恶果已经显现出来。1997年,美国密执安州的一家零售商第一次因千年虫问题把它的销售终端供货商推上法庭,原因是这些终端不能处理1999年以后到期的信用卡。为此,visa和Mastrcard已经通知银行停止发行这类信用卡。前述加特纳集团的6000亿美元开支估算中,还不包括计算机系统出故障后必然会提出的诉讼的费用。
千年虫的影响远远超出大型主机之外,“嵌入系统”受到的威胁也非同小可。这种系统指的是在自动售货机、电梯等各种设备中运行的芯片,它们尤法修复,只能被替换。根据一些统计数字,替换嵌入式芯片的费用要占到干年虫问题总开支的30%。由于芯片的使用非常广泛,要想逐一测试几乎是天方夜谭。
个人计算机是另一个担心所在,但它的不稳定因素相对较小。新型PC和微软的操作系统能够处理4位数的日期,但老式机器则不能。实际上,PC面临的问题与大型机一样,关键不在于硬件和操作系统,而在于应用程序。PC机的软件比大型机软件要新得多,而且它在存储上所受的限制也较少,但两位数日期表示法仍在许多PC软件中被固守着。不过最流行的商业软件的最新版本都不会发生问题。
千年末的心情
德意志银行证券部的首席经济学家爱德·亚德尼声称,千年虫有70%的可能会引发世界性的经济衰退,就像1973~1974年一样。华尔街很少有人赞同这种说法,它认为2000年问题只不过减少了信息技术业的未来投入而已。不论孰对孰错,人们听到的都是坏消息:巨额开支最好也不过是维护了计算机业的现状,往坏里说,我们可能花了钱也无法阻挡灾难的发生。
因为世界在为灾难性的未来而战栗,所以才有了目前这场紧锣密鼓进行的对付千年虫的全球紧急行动。联合国120名成员国的代表1998年12月11日参加了一个全球2000年问题论坛,着重讨论了千年虫对国民经济、金融市场、发展中国家和国家行政等造成的问题,强调了针对国际商贸的Y2K“跨国界”合作,及有关应变计划与紧急事故处理的国际协调等。联合国Y2K工作小组主任阿玛德·卡马尔说:“或者这将不得不由安理会来作决议,很多人相信,到明年年中,Y2K将成为一个重大的安全问题。”
据加特纳集团报告,美、加、澳、南非、以、英足对千年虫准备最完善的国家,成绩最差的是巴西,日本、法国、俄罗斯可能会受害最重,中国已经明文规定,所有政府计算机系统必须在1999年3月以前修改完毕,并于9月以前测试结束。为此,中国国家各部委相继成立了以主要负责人为组长的“计算机2000年问题工作小组”;国务院办公厅专门发文通矢各省、自治区、直辖市人民政府及国务院各部委、各直属机构,要求“强制解决计算机2000年问题,对因玩忽职守,未及时解决2000年问题而造成重大损失或不良后果的部门和单位,要追究其主要负责人责任”。
那些自己掏钱修正问题的公司的说法,可能是有关这场灾难的深重程度的最可靠的风向标。它们大多相当平静。已经开展了一两年修复工作的公司称,它们学到了两样东西。如果对千年虫听之任之,后果确实会非常严重;但相对来说,这一问题的解决即便耗时费钱,却并不十分复杂。千年虫毕竟只是一个软件臭虫,而消灭臭虫足技术部门每天都在做的事情。这些公司甚至还会有些意想不到的收益。它们可以趁此机会更新软件,做到既消灭了千年虫,又改造了自身的计算机系统。
不过,对有些公司来说,现在动手改造主机系统已经太迟了。例如,最新的客户一服务器系统也许需要两年安装时间,还得经过一年的测试。还没有开始进行软件更新的公司除了修复旧有软件外,已经别无选择。对它们而言,回报可能是负数:在投巨资令其主机系统安全跨过2000年后,它们不会急忙着手抛弃该系统而换上客户一服务器软件。相反,它们会把这项工作再推迟好几年,享受不到新系统可能带来的生产率提高的好处。
计算机世界可能会勉强混过千年虫劫难,不会有多少公司遭遇灭顶之灾——但许多人会对这样一个事实感到失望:20世纪的最后岁月花在了为计算业不检点的青春期赎罪上面。不过仍有公司显露出一如既往的亢奋情绪。一份题为《SUN公司2000年问题策略》的报告写道:
“SUN公司的用户如何面对2000年的到来呢?SUN公司给用户的答复当然是,当世纪的钟声敲响时,SUN用户的心情一定会像太阳(SUN)一样灿烂、辉煌,丝毫不必担心那可怕的千年虫的骚扰。”
千年虫这一番肆虐之后,在下一个世纪,在下一个千年,我们在使用计算机时,果真还能拥有一份灿烂、辉煌的心情吗? 电脑千年虫