黄国兴 (2022-12-18审定)
上世纪90年代末,计算机界发现了一个大问题,即所谓的“计算机2000年问题”。计算机2000年问题,又叫做“千年虫”、或“千年危机”等,可以缩写为“Y2K”问题。问题的内涵是指在某些使用了计算机程序的应用系统(各类计算机应用系统及自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,当系统进行(或涉及到)跨世纪年份时计算机系统可能会出现的问题。
实际上计算机2000年问题的根源始于60年代,当时的许多大公司开始使用计算机系统来辅助开展业务以提高效率。由于当时计算机存储器的成本很高,如果用四位数字表示年份,就要多占用存储器空间,使成本增加。当时的计算机系统编程人员可能为了节省存储空间,就采用两位数字表示日期中的年份,(例如11/11/95即表示是1995年的11月11日)。随着计算机技术的迅猛发展,虽然后来存储器的价格降低了,但在计算机系统中使用两位数字表示年份的做法却由于思维上的惯性势力而被沿袭下来,这样一年又一年,直到新世纪2000年即将来临之际,大家才突然意识到用两位数字表示年份将无法正确辨识公元2000年及其以后的年份,例如01/07/00日期表示的年“00”就有1900年和2000年的两种可能。于是在1997年信息界便开始拉起了所谓“千年虫”警钟,并很快引起了全球关注。
广泛地讲,“千年虫”还包含了以下两个方面的问题:一个是在一些计算机系统中,对于闰年的计算和识别会出现问题,不能识别2000年为闰年,会在2000年2月29日这一天来到时直接由2000年2月28日过渡到2000年3月1 日;另外一个问题是在一些比较老的计算机系统中,编程人员在程序中赋予数字串99(或99/99等)一些特殊含义,如表示文件结束、永久性过期、删除等一些特殊意义的自动操作,这样当1999年9月9日(或1999年4 月9日即1999年的第99天)来临时,计算机系统在处理到相关内容中有日期的文件时,就会遇到99或99/99等数字串,从而将文件误认为已经过期或者将文件删除等错误操作,引发系统混乱甚至崩溃等故障。
由于计算机2000年问题是一个全球性问题, 具有广泛性和隐蔽性,对计算机系统危害严重,引起了世界各国的重视。我们国家也在1998年8月14日向全国发出了“国务院办公厅关于解决计算机2000年问题的通知”【1】。通知要求“各地区、各部门及各单位的计算机2000年问题,原则上由本地区、本部门及本单位负责解决。各地区、各部门要充分认识计算机2000年问题的严重性,以及解决这一问题的紧迫性、复杂性,高度重视,加强领导,按照国家有关部门的统一要求和部署,组织力量,落实责任,结合实际尽快制订具体方案并组织实施,把这项工作抓紧、抓细、抓实、抓好。有关新闻单位要加强宣传教育,普及有关知识,使社会各界了解和正确对待计算机2000年问题。”
上海在全国属于计算机系统在各行各业中应用比较普遍的城市,市政府也充分认识到了计算机2000年问题的严重性以及解决这一问题的紧迫性、复杂性。在国务院通知下发后不久,就由当时的上海市国民经济和社会信息化领导小组办公室组织召开了包含全市范围内各行业代表参加的研究解决计算机2000年问题的大会,会上聘请了各行业的技术人员和管理人员作为“计算机2000年问题专家组成员”。专家组中的成员包括上海市科委、大型国企、大学和研究所等单位,这些人组成了管理协调、技术研究和宣传联络等小组并开始工作,上海市科学技术委员会主任张其标、同济大学校长吴启迪任组长。我也有幸成为专家组中技术研究和咨询组中的一员(图1)。
图1 上海市计算机2000年问题专家聘书
上海市政府专门设立了“计算机2000年问题办公室”,办公室电话82000,意为“拨2000年问题”。专家组成立后,成员便开始工作。第一阶段是向社会宣传什么是计算机2000年问题,会给我们的生产生活带来哪些危害。我记得曾经和那时在市政府工作的金旦华老师一同到上海人民广播电台,向全市人民宣传计算机2000年问题并号召各行各业从现在起就要开始重视这个问题并做好应对准备。为了扩大影响,专家们分成几个小组分别到上海的闹市区进行宣传。我还记得曾和华东计算机技术研究所和上海市计算机技术研究所的有关专家在某个休息天到淮海路新华书店旁摆摊回答民众对计算机2000年问题的各种提问,每次都是从上午一直工作到傍晚。与此同时,为了解国际上对计算机2000年问题的解决方案,1999年3月底由我国信息产业部和美国商务部联合在上海举办了中美两国计算机2000年问题负责人和专家会议,双方就解决计算机2000年问题的工作进展、方法和存在问题等进行了研讨。会上双方专家表示,对计算机2000年问题有必要开展国际间的情况交流、技术协商,共同促进问题的解决。
这段时间,上海市政府还布置了对银行业、证券、保险、税务、电力、电信、民航、地震、交通等部门情况进行调查分析的工作。在调查分析的基础上, 1999年6月29日,“上海市人民政府关于解决计算机2000年问题的公告”【2】发布。公告要求,“在1999年9月底之前,本市各部门、各单位应当参照信息产业部《 2000年符合性测试规范》等有关技术规范,完成系统修复以及相关的测试与调试工作,并进行应急方案演练,做到各项工作基本就绪。各部门、各单位应当建立计算机2000年问题修复档案,保留有关记录。”另外,公告还宣布“本市设立计算机2000年问题评估中心,负责对全市公共服务行业等重点单位的计算机2000年问题就绪状态进行评估;接受其它单位计算机2000年问题就绪状态的评估申请;为本市中小企业、市民提供解决计算机2000年问题的咨询;对因计算机2000年问题引起的纠纷,从技术方面提供意见。”
在上海市政府的公告发布后,专家组就按照市政府的要求和部署,开始对本市的重要部门进行2000年问题就绪状态评估,同时也为本市中小企业、市民提供解决计算机2000年问题的咨询。关于咨询,市政府印发了有关解决方案的资料,开通了82000电话24小时咨询热线。专家组成员则按照不同专业特点组成了几个评估小组。我印象最深的是被分配到东方航空公司和上海航空公司进行评估的情况。由于时间已经过去20多年,许多细节已经记不太清,我只是记得我们评估小组一早就赶到虹桥机场东方航空公司办公室,听取他们的一位副总指挥汇报关于应对计算机2000年问题的各项措施和整改情况的汇报。他们汇报了在新的日期记录形式下的时间同步措施,国内外航班信息的调整以及管理部门对计算机2000年问题应对的具体要求和方法、应急计划的制定和演练等都作了详细的汇报,东航领导在汇报会上表示,公司已经做好了系统切换的准备工作,可以确保2000年到来时航空系统的安全过度。专家们在听完报告后与东航管理部门和技术部门的相关人员进行了讨论交流,查阅了公司计算机2000年问题的修复档案及相关记录,还到现场进行了考察。最后给出了“通过评估”的结论。对上海航空公司的评估过程和东方航空公司类似,不再赘述。除此以外,专家组还编制了“中小企业计算机2000年问题及解决方案”、“嵌入式系统计算机2000年问题及解决方案”等书面资料供广大中小企业和有关部门学习参考。
时间到了1999年的11月底,上海市关于计算机2000年问题的解决途径从系统测试、联网试验和风险评估、应急计划制定、演练,以及就绪验收过渡到了2000年到来时的现场指挥协调决战阶段。
国家信息产业部发布通知,要求从12月30日晚至1月2日期间,各地区的计算机2000年问题应急指挥机构计算机2000年问题工作小组实行每天24小时值班,以便及时沟通信息。各部门在重要过渡日期必须采取相应措施,确保平安过渡。上海市计算机2000年问题工作小组的工作人员按照国家信息产业部的要求也开始了轮流值班获取各部门动态。由于上海在系统测试、联网试验和模拟演练等方面的工作做得比较全面细致,当新世纪来临时上海的有关国计民生重要部门均没有发生重大事故,全市的计算机系统顺利进入2000年新世纪 。2个月以后,上海市计算机2000年问题专家组也完成了历史使命,圆满谢幕。
2001年12月,“上海市计算机2000年问题关键技术研究和实施解决”项目获上海市科学技术进步奖一等奖,华东师范大学是这个重大项目的第四完成单位,由于这个项目涉及的面很广,参与的单位也比较多,我只记得前面三个完成单位分别是上海市科学技术委员会、同济大学和宝山钢铁集团公司,我们学校后面是哪几个单位就记不太清楚了(图 2)。
图 2 上海市计算机2000年问题获奖证书
参考资料
【1】国务院办公厅关于解决计算机2000年问题的通知,中华人民共和国国务院办公厅,1998年8月14日
【2】上海市人民政府关于解决计算机2000年问题的公告,上海市人民政府 1999年6月29日