前言:
现时我们对“千年虫 2038”都比较重视,看官们都需要学习一些“千年虫 2038”的相关知识。那么小编也在网络上网罗了一些关于“千年虫 2038””的相关文章,希望各位老铁们能喜欢,咱们一起来了解一下吧!还记得二十年前,在千禧之年来临的时候,多少人为自己的电脑忧心不已。生怕第二天,千年虫就让自
己的电脑再也无法启动。程序员坐在电脑前心惊胆战,因为他们用最简单的方法修补了“千年虫”。啥
叫千年虫?也难怪现在的很多亲们不知道,时间有点久远了,让我们徐徐道来。
20多年前,个人电脑或者工业电脑(也叫单片机),存储空间有限,而存储系统又很贵。有多贵呢?一条内存上千块,一个1G的硬盘上千块,就连电脑主板上的存储器都造价不菲。于是那就能省就省吧,程序员大多采用两位数来表示年份,比如 03/12/99,而不是 03/12/1999。
但是到了 2000 年,系统就又回到 01/01/00,无法明确表示这是 1900年还是 2000年。这下子问题的严重了:想想看, 1999 年最后一天的 23:59 结束时,电脑如何表示2000 年第一天时间?这个 00:00 代表什么?
麻烦何止这些,数百万台的个人电脑,以及关注国计民生的很多设备,比如电讯公司交换机,自动化仪
器仪表、电梯、警报系统、恒温灯等嵌入式设备上都存在千年虫隐患。全世界这么多的设备需要修改的
代码数量极其庞大。一时间,全球笼罩在所有自动设备和电脑都失效的恐慌中。
想想看,如果程序停止运行、崩溃或者发出错误指令,银行无法进行金融操作存款一夜清零、电站出现
停机、飞机航线错误,等等。恐怖袭击、飞机坠落、股市崩溃,世界将陷入混乱......
每逢谣言兴起,一大帮西方人已经把山洞当做避难所,存储了很多食物、医疗包等必需品,还有一些人
把银行存款纷纷取出来或者是购买黄金。
为了避免千年虫“灾难” 发生,各国政府和企业动用大量资源查找和修复这个 bug。业内人士估计,
如果修补 80% 的计算机,花在防备千年虫上的费用在 3000 亿到 5000 亿美元之间。所以阴谋论兴起
,有言论说千年虫是个商业大骗局。
修复 这个bug 的方式有两种:完全重写代码,或者采用 “windowing” 的方式快速修复。indowing”就是把
00 到 20 之间的所有日期都当做 20XX 年而不是 19XX 年。很显然,相比于把所有两位数表示的年份都
修改成四位数,这种方式更省钱、更快而且更容易。现在看来,这不是个很好的办法。然而在时间紧迫
和商家制造的恐慌中,很多个人和企业已经顾不得仔细揣摩了。
有硬件解决的,电脑主板插个能显示新时间模式的卡,能卖好几千块。有软件解决的,弄个软件运行一
下,到了时间节点,操作系统自动就切换四位数时间模式了。还有一些懂电脑的人或者程序员,很热衷
的为大家解决这个虫虫,小赚了一笔。
当时没有人打算彻底更换操作系统或者强制更换硬件解决问题吗?当时认为,等到投入大量的资金和时
间去永久修复好这些 bug 之后,操作系统早就更换了。所以,尽管 “windowing” 修复的程序只能是
用二三十年,也足够了。
拖延错误而不是解决,是人类的顽疾之一。二十年弹指一挥间,这群程序员老了,但是人们发现,要为
当初的懒惰而付出代价!
据《纽约时报》报道,2019年纽约的停车收费表从 2020 年 1 月 1 日开始可能将不支持信用卡付款,
整个城市的一万多个计费表仅通过现金或 ParkNYC 接受付款;波兰公司 Novitus 生产的收银机由于记
录时间故障而无法打印收据;视频游戏 WWE 2K20 于 2020 年 1 月 1 日午夜停止工作。
图 | 纽约市交通局表示,停车计时器的信用卡支付软件设定在 1 月 1 日失效,导致了一起大规模故
障
有相当数量的系统出现 #2020 错误。当年解决千年虫问题,不过是把这个问题推迟了 20 年而已。20
年后的今天,很多系统仍然还在使用,系统仍旧以为以为我们在 1920 年。”2020 年的到来,意味着我
们已经进入到了 1920-2020 窗口期的结尾。各大公司又开始为一些系统临时更改程序来解决。
即便躲过了这一关,在 2038 年我们将面临另一个数据存储问题。32 位的 Unix 和 Linux,能存储的最大
数字为 2 的 31 次方,即 2147483647。从 1997 年开始计算,2147483647 用来表示的秒数最多只能
用到 2038 年 01 月 19 日 03 时 14 分 07 秒,在这个时间之后,系统会回到 - 2147483648,代表的时
期是 1901 年 12 月 13 日 20 时 45 分 52 秒。不同于千年虫,2038 会影响的不仅仅是应用层,而是会
影响到最底层的时间控制功能。不过幸运的是,如果能在 2038 年之前把所有 32 位系统淘汰并采用 64
位的话,我们将会巧妙地躲开 2038 问题。
标签: #千年虫 2038