打印本文 关闭窗口 | |
什么是千年虫?来源于瑞达科技网 | |
作者:佚名 文章来源:网络 点击数 更新时间:2011/1/18 文章录入:瑞达 责任编辑:瑞达科技 | |
|
|
什么是千年虫?引言 今年您将会在新闻中不断听到关于“2000年”的“千年虫”问题。而且在此过程中您会听到很多互相矛盾的信息。还会有很多关于“世界末日”的奇谈怪论在互联网上流传。您应该相信什么? 在本文中,我们将讨论2000年问题(也叫做Y2K问题),以便您能确切地了解将会发生什么以及将要对其采取什么措施。您还可以通过各个链接进行深入的探索。通过这些信息,您可以得出自己明智的结论。 什么是Y2K问题?
当输入“00”来代表年份时,两位数的年份格式会给大多数程序造成问题。软件不知道究竟应该把“00”理解为“1900”还是“2000”。于是大多数软件把它默认为1900。也就是说,大多数编程人员编写的代码或者假设那两个数字前面有“19”,或者根本就没有考虑到世纪问题,因此将其默认为“19”。这本不是问题,除非程序要执行很多有关日期的计算。例如要计算您的年龄,程序将取今天的日期,然后从中减去您的出生日期。如果今天的日期和您的出生日期不是跨越不同的世纪的话,这个减法会很正常的运算。如果跨越不同的世纪,则这个运算将不会正常运行。例如,如果程序认为今天是00年1月1日,而您的出生日期是65年1月1日,则它可能会算出您今年是-65岁而不是35岁。因此,日期计算得出错误的输出,软件崩溃或产生错误的结果。 需要认清的重要一点是,问题的所在仅此而已。这就是2000年问题的全部内容。很多编程人员在他们的程序中使用两位数来表示年份,因此程序的日期计算在2000年1月1日将不能得出正确的答案。问题仅此而已。 显然,解决方案是修复这些程序,使其能正常运行。标准解决方案有下面几个:
这些修复方法从概念层面上看很容易解决——找到代码,找出每个日期计算并将其更改为能正确处理日期就行了。问题在于在软件中有几百万个地方需要修复,每次修复不得不用手工进行,随后还要进行测试。例如,一家保险公司可能有2千万或3千万行代码在执行其保险金计算。在代码内部可能有10万或20万个日期计算。根据代码的编写方法,编程人员可能不得不用手工进入代码,并修改程序中使用日期的每个点。随后他们还必须测试每个更改。在大多数情况下测试是个难题——可能需要很长时间。 假设每个更改并测试需要一天,并且需要进行10万次更改,而一个人一年工作200天,则这意味着需要500人一年的时间才能完成所有这些更改。再假设多数公司没有500名闲置的编程人员在那里坐上一年来做这件事,并且公司不得不雇用这些人来从事这件事,您就会明白为什么修复这个问题的代价会如此昂贵。假设一个编程人员的费用是一年15万美元(包括一切费用,如编程人员的薪金、福利、办公空间、设备、管理、培训等),您就会明白,若要修改一个大型程序中的所有日期计算可能要花掉公司几千万美元。 存档版本 虽然Y2K问题在2000年1月来了又走了,但我们仍将本文作为博闻网美国站的存档版本保存起来,因为它有历史价值。本文发表于1999年初,当时正值媒体上Y2K恐慌达到高潮之时,本文以一句“实际上什么也不会发生”而受到人们的关注。回想起来,那句话完全正确,但在1999年1月,却肯定不是主流媒体所描绘的景象。博闻网美国站曾因这条直白的预测而收到过一些言词激烈的电子邮件。 2000年1月1日将会发生什么 2000年1月1日,没有经过修复的软件将停止工作或产生错误的输出。重要的问题是,“据我们所知,那将给世界带来多大影响?” 有些人预测世界末日将要来临。例如,世界范围的停电、交通运输基础设施完全瘫痪(意味着食品无法运到商店,等等)、飞机从天空中坠落等诸如此类的情景都是这些人的预测。这种预测说社会结构将会崩溃、各地的人民将发生骚乱、世界将彻底毁灭。当然,进行这些预测的人往往是:A)民兵组织的成员,B)生存主义者,C)宗教狂热者。识别这些预言的来源很重要。 实际上什么也不会发生。出现一些出乎意料的问题和解决这些问题可能会造成一两个星期的不方便。除此之外不会有其他影响。这是一个很容易作出的预测,因为:
另外值得一提的是,我们始终都在经历不方便的事,但它对我们的影响很小或根本没有影响。例如,当UPS(美国联合邮包服务公司)在1997年罢工的时候,它在美国关闭了大约80%的包裹投递基础设施。世界末日并没有来临——所有人都改为使用邮局和Fedex公司。1999年1月3日,芝加哥和底特律经历了30年来最严重的一场暴风雪。这场暴风雪关闭了全国的航空运输、推迟了底特律汽车展的开幕、使成千上万的人陷于困境。然而我们都设法从困境中挺过来了。2000年1月1日将会有一些公司遇到问题。但许多其他公司不会出问题。困难会给人造成不便,但仅此而已。两星期后我们就会克服困难。它与暴风雪或大罢工没什么不同——我们能找出解决问题的办法,生活将一如既往。 围绕着2000年问题,有人用了很多吓人的花招和夸张的手法。所有这些花招和夸张都使用了一个相当广泛的假设,那就是从此以后人们再也不能做他们的工作了。需要认清的重要一点是,即使在2000年1月1日那天世界上有很多计算机突然关闭,其总的影响也是微乎其微的,因为人们知道该如何做事。让我告诉你为什么:
在末日论者之中有一种设想,即2000年1月1日所有计算机都将由于某种原因出现故障(这种说法很愚蠢),而且所有人也都会以某种方式“出问题”。如果你想一想,就能看出那是多么荒谬。我们都知道如何做自己的工作,我们谁都想继续自己的生活。在2000年1月1日,我们并不会有什么不同。我们将乘自己的汽车,我们将要去买东西。卖东西的人仍将希望出售货物,这样他们就能挣钱。这是永远不会变的。 |
|
打印本文 关闭窗口 |