李明臻
两个数字引发的灾难
两个数字引发的灾难
1999 第5期   - 世纪回眸

李明臻


        预警不是预言

    离这一时刻只有两百多天了。

    你被明确告知，这一时刻将发生一次全球性危机，如果应对失当，危机就是一场巨大的灾难。这不是宗教预言也不是科幻想像，这是人类历史上第一次能够被准确预言的灾难，它发生的时间、地点和受灾程度都预测出来了。

    这就是计算机业界所说的Y2K，或Y2K灾难。Year是年份，K在英文中是千位数的意思，故称Y2K。它指的是2000年到来时，由于计算机软硬件产生的故障造成世界范围内由计算机控制的几乎所有领域同时发生故障和失灵的现象。在计算机软件编制者口中，计算机语言程序中造成运行故障的语句称之为臭虫。于是，这个将要在2000年发作的故障就被称为千年虫(Millennium bug)。

    Y2K最初的源头是一种叫穿孔卡的东西。

    这卡片实际上是第一代计算机的硬盘，它以穿孔的形式存储数据与程序。当时，每张卡片只能存储80个字符信息，为节省空间，程序员们写入年份便只写入后两位数字。磁存储器刚出现时，存储空间的成本依然非常有限而且昂贵，所以，从日期设定中节省出一点地方来完成别的任务，也是一项顺理成章的分配方式。没想到，这种对今天的电脑已经没有任何节约意义的方法却一直沿用下来，即用一个简便的方法来表示年份，即用两位数代表四位数，如用49代表1949，66代表1966。当时正是20世纪中叶，谁都没有想起即将到来的世纪末。几十年以来，直到90年代中期，全世界的软件设计编制人员都一直是这么学习实践的，计算机记忆芯片生产者也一直按照这个方式生产所有中央处理器和记忆芯片。这样，Y2K的出现就势在必然了。99即1999之后，电脑的时间显示便是00。按说，我们谁都不会误解其意，可还未获得类人智慧的计算机却只能按程序设计者的设定将00当成1900处理，而不认为这个00是2000。

    于是问题便出现了。举一些最简单的例子，比如一个2001年毕业的大学生，计算机里的记录按最早的设计规定写为1901；一位2000年满65岁领取救济金的老人的年龄在政府部门的电脑数据库中成了负数，成了一个尚未出生的人；许多人的银行存款可能被一笔勾销……由此造成的混乱简直不可想像，而且情况还远不止于此。

        第一场准时的人为灾难

    在美国，高度发达的科技已渗透到生活的每一个角落。从每个家庭中的个人电脑、传真、电视、录像机、照像机、VCD、CD机、洗衣机、烘干机、微波炉、汽车(克林顿说，今天普通美国家庭所拥有计算机运算能力比二十年前全美一流学府麻省理工学院所具有的计算能力还要强大)，到社区服务中不可须臾离开的加油站加油机、商店收银机、面包房烤箱；从商业公司日常业务的正常运行，到车间厂房的各种生产线；从自动提款机背后的银行到保险公司、金融公司、股票交易所；从通讯公司的程控交换机，用户手上的大哥大、传呼机，到运输公司的汽车、火车、地铁、航运公司的船只、港口以及航空公司的飞机、机场；从各级政府的正常运行、监狱犯人的管理，到各种军事设施、运行在太空轨道上的卫星，以及电厂……如此种种，无一不是靠计算机的正常运行来完成和保障的，假设所有的这一切因计算机都同时出故障……

    早些时候有专家对Y2K可能在美国产生的直接效果作了如下的描述。

    最好的情况：随着千年之交的到来，一夜之间，国际互联网支离破碎……3％的工商业因此受到牵连，10-15％的供货商会停止正常运作，国内生产总值下降15％，失业率上升15%，股市下跌40%，而且再难回升。

    最坏的情况：银行系统不灵，股市下跌到4点；大部分工商业和政府机构也运转不灵；食物、能源供给不上；抢购风潮，基本消费品供应基本瘫痪；供电数周内不能恢复；通讯虽能勉强工作，但国际线路不通；国际贸易短期内为零，导致世界性的经济衰退。

    中等情形：骚乱，接着经济衰退，形同全世界所有发达地区同时发生破坏性的猛烈地震；政府运行不力，应急措施准备不够。

    有人将千年虫比喻成说不清能量的定时炸弹，它不止在美国爆炸，而是在所有电脑起作用的地方与行业造成巨大破坏。今天世界上所有国家比以往任何时候都更依赖周边近邻和整个的国际空间，从国际贸易到交通，从通讯到金融领域都概莫能外，前年亚洲的金融风暴殃及全球就足以说明问题。所以，如果我们以为Y2K仅仅是西方国家的事，那就大错特错了。

    人类文明第一次确定地面对一场爆发时间相当准确的，由人类文明自身制造的巨大灾难。

        两个数字会遏止文明的脚步？

    现在的问题不是Y2K是否会造成危害和可不可以解决，而是它到底会造成多大的危害，人类社会究竟会为此付出多大的代价?

    就美国的情况来看，我们并没有理由特别乐观。据统计，仅仅从工作时间计算，全美需要投入全部现有软件人员的80%才能解决这个问题，可目前只有20％的专业人员在为Y2K攻关。

    举一个例子，美国大通曼哈顿银行共有七万多台各型电脑，其中运行着来自六百多家软件公司的上千种不同软件，其中至少包含两亿多条电脑语句和代码。经测试，平均每千条语句中就有这么一条“虫”。于是，需要雇多少人，花多少小时才能对付这二十多万条虫，就可以明明白白计算出来了。学过软件设计的人都知道，事情并不是将这20万条“虫”找出来，再代之以正确语句那么简单。改写之后的调试运行也还需要不少时日，而2000年的到来却不会因此延长期限。

    据最新报道，甚至微软公司最新开发的视窗98中，也还包含有那种令人烦恼的虫子。

    美国共有11000多家银行，其中还有比曼哈顿银行规模更大的花旗、美洲银行等，就算他们能够如期达标，万一日本银行、德国银行、英格兰银行未能按期解决问题，业务怎么可能不受影响?据说届时这些大的金融机构准备采取的紧急措施之一是在未确定对方银行已完全达标之前将暂时中止与其往来，否则数据通讯会将未消灭的Y2K再次带入干净的系统……

    美国的医疗保健系统一年要处理至少10亿个病例……

    美国有大大小小的550个机场，290多家航空公司目前都在攻关，但预计届时至少有10-15％的航空公司和机场不能按时达标，联邦航空管理局不得不下令关闭机场直至将问题彻底解决为止。1999年2月，国际民用航空组织在东京举行Y2K专题应对会议上决定，在2000年1月1日到来前几个小时，将把世界各大航空公司主要航线上的航班数量减少到通常的三分之一，然后，再视Y2K发作的程度逐步恢复到正常水平。

    以上，我们讨论的都还是软件问题，而硬件，即芯片方面存在的问题也非同小可。芯片广泛运用于各种“嵌入系统”当中，它们不能修复，只能被替换。

    一台石油钻井上有上万块各种芯片，其中哪怕一块的不正常工作都可能使整个井台无法运行。要将这井台上有关的芯片找出，以至各行各业的计算机控制系统中，各种家用电器、工业机械、运输工具中有毛病的找出撤换，这是一项十分巨大的工程……

    许多权威的经济学家认为，Y2K会引发世界性的经济衰退。当然，也有乐观的金融专家对此持否定的看法，他们认为，Y2K问题只不过是减少了对信息技术产业的未来投入。我们当然愿意听到好消息，但这个好消息却让人感到缺少足够的说服力。因为有一个所有人都不得不承认的事实：全世界为了克服Y2K所花掉的数万亿美元，绝对不会产生任何效益，最好的结果就是维护了信息世界的原状。这跟把同样数量的美元直接倒人大海没什么两样，而后一种方式肯定更为简便。克服Y2K除了足够的金钱，还需要唤醒全社会的足够重视，还需要足够多的时间，最大的问题，我们所拥有的时间已经越来越短。

    据最不乐观的估计，全世界要到2019年，才能完全克服Y2K及其所引发的全部的问题。

    我们真的准备好了?

    为了解决Y2K，花旗银行已斥资6亿美元，AT&T(美国电报电话公司)预拨款项也达5亿之巨……据初步估计全美将为此耗费至少5百亿至1千亿美元。全世界至少6千亿美元。其中30％已在1998年前花去，另外35-40％将在1999年内花掉，余下的则要等到事发之后。据估计，Y2K爆发还会引起各种法律诉讼，据预计，全美因此导致的诉讼费可能高达1-1.5万亿美元，全世界可能高达3万亿美元。

    在美国，由于全社会都计算机化了，对付Y2K真可说是“全民动员”了，从国会到各军兵种，到无数个人……联邦政府在其庞大的信息网上还专门为少年儿童建立了专门网页，其中的问答有这么一段：

    问：那么我可以做些什么?

    答：你可以做的就是询问周围使用电脑的人们有关Y2K的问题。问你的父母和老师，家中和学校的电脑是否测试并已符合标准。如果你常去某个商店，让你父母问一下商店经理有关他们的电脑情况。通过询问，你让他们知道可能产生的问题，以促使他们能够及时加以处理。

    你还可以帮着家长储备一些物资，以防不测。询问父母一次风暴将输电线破坏停电一天需要准备些什么东西——电池、一部用电池的收音机、食物、水、蜡烛，还有游戏和扑克牌。

    目前，美国各级政府都制定出各自的应急措施、灾害恢复计划和各种预备方案。联邦政府为Y2K网上信息库中对全社会提供了周全的信息服务。其中包括为个人、小业主直到大型企业机构服务的小型、中大型机以及网络制定的测试标准，网上还可以下载小型的个人机免费测试软件，并加接了各种技术和有关Y2K问题的咨询网站。

    98年7月14日，克林顿总统在国家科学院专门就Y2K问题进行了演讲。专家们普遍认为，总统对Y2K重视不够，对他如此晚才将此事提到议事日程大不了然。说他如果在95年就做出相应安排是最好不过了，96年也算明智，97年还不会让自己太尴尬，可他居然一直等到98年夏天!难怪克氏在其讲演中大声疾呼“时间太紧迫了”!

    克林顿在演讲中说，各行各业都要作好准备，迎接挑战。他说，仅用一瓶香槟去迎接新世纪到来，只会在新年清晨发现一大堆问题。

    在亚洲金融危机中，我们已经听熟了美联储主席格林斯潘的名字，他忠告已经习惯电子结付方式的美国公众，不要忧虑千年虫临近而从银行提取大量现金。虽然他在金融界一言九鼎，却仍然不得不额外注入2000亿美元，以应付年底可能出现的挤兑风潮。

    更有人担心，Y2K可能使核大国的预警系统发出错误信息，从而引发核大战。这种担心看来不无道理，因为美国国防部已经向俄罗斯提出建议，共同建立一个联合导弹报警中心，来预防这种情况的发生。

    在法国，有关机构宣布，如果制造商向市场投放的产品有Y2K存在，而又未向各用户说明，将构成欺骗罪。法国政府还提醒公众，对两类产品要特别小心，一类同使用者的身体和安全有直接关系，如心脏起搏器、电梯、锅炉等；另一类是对一般家庭来说价格不菲的家电产品，如电脑、录像机、空调等。

    在整个人类的历史上，这是人类同时共同面临的最大的挑战。只有将所有可能动员起来的力量都动员起来，才能共同尽早地从这个噩梦般的灾难中走出来。全世界无数的专家们需要投入千百万以至更多小时的工作，修改不知道多少亿种电脑程序和代码中存在的错误，检修数亿数十亿台电脑和设备，来解决众多我们已经预见到的问题，同时，还要准备好应付可能出现的未曾预见的打击。

    最具有讽刺意义的是，在文明高度发达的今天，解决这个问题或避免这个灾难的最佳方式，就是一个地区和部门的落后和未被现代化。

    Y2K问题是对人类文明先进的惩罚，还是对落后的褒奖?是喜是忧?采取什么态度?正是给人类文明的又一次考验。整个计算机业界也将对青春躁动期的过失所付出的巨大代价，作深入的反思，因为这种失误，已经不只是一个单纯的技术问题，而有其更深层的道德与伦理上的震荡。