当前位置:首页 > 文化

【2038年】程序员揭示什么是“千年虫”事件,什么是“2038年问题”

#21日图形卡挑战#

快要进入2000年的时候,电脑出了问题。就是著名的千年虫事件。

“千年虫”不是现实生活中我们看到的虫子,而是计算机系统因时间障碍而产生的虫子。

从1999年到2000年,计算机没有意识到bug这次的变化,导致了系统崩溃。

至于为什么会出现“千年虫”,这要从计算机的诞生开始。

时间回到1960年,当时计算机的存储设备非常昂贵,很多大公司负担不起。

5MB磁盘一年需要35000美元的租金,只能出租。

所以程序员写代码的时候,只能尽量简化所有的字符。

被誉为软件之母的格雷斯霍夫(美国计算机科学家)提出,通过6位数的表达时间,可以节省存储设备空间。

例如:1960年8月11日,可以缩写为600811。

霍夫女士发明的这种写法确实节省了存储空间,很快被人们接受和推广。

但是这种写法有先天缺陷。也就是说,年份前两位数将基本缩写。

当时缩写的是19XX年中的19年,时间到了2000年,节目无法准确地表达时间。

例如:2000年1月1日,缩写为6位数的是000101。

电脑会怀疑人生。如何回溯时间?

然后,计算机系统可能出现故障。

例如,程序是在1999年预设的,一年后自动删除文件。

2000年,关于节目回到了1900年,此时没有删除或删除文件吗?

像这样的问题导致的计算机故障就是“千年虫”的问题。

当人们广泛使用6位数字来表示日期时,当时一位计算机科学家敏锐地注意到,到2000年可能会出大事,他就是鲍勃贝尔默。

他在企业、大学、政府、机关之间奔波,呼吁人们防备“千年虫”。

但是鲍勃贝尔默的声音没有引起人们的注意,相反,人们认为他是杞人忧天。

当时人们认为这个程序不能用2000年。

以后存储设备成本会降低,所以如果存储空间充足,就不会再用6位数了。(大卫亚设)。

所以没有人改变这个写法。

这个问题一直拖到1990年,计算机行业才开始重视,在新推出的程序中采用8位数的写法。

但是由于以前的延误,麻烦很快就来了。

因为有很多电脑在运行旧程序,特别是需要考虑耐久性和稳定性的行业。

例如,交通系统、医药业、税务系统、电力系统、通信业、保险业、金融业等这些行业的计算机都在使用6位数表达时间的老程序。

这意味着,“千年虫”一旦发作,就会对人们的生活产生非常不舒服的影响。

人们为了避免“千年虫”发作,开始了计算机历史上最大规模的bug修复工作。

程序员加班重写程序的代码。

但是程序员很快发现,使用6位数表达时间的程序太多,如果都要重写的话,在2000年到来之前无法完成的问题。

所以他们做出了机智的选择,只重写重要行业的计算机程序,其他计算机的旧程序采用方便快捷的Windowing恢复方法。(威廉莎士比亚(Windows))。

ca3734acd188d2?from=article.detail&_iz=31825&index=5" width="640" height="427"/>

简单来说,Windowing修复法就是通过更改时间窗口,只计算1920-2020之间的年份。

因为已经把1900年排除在外,00这两个数字只能代表2000年,所以计算机在时间的表达上就不会存在歧义。

这个方法不需要把六位数时间代码更改为八位数,因此能大大加快bug修复进度。

在随后的时间里,程序员们利用Windowing,修复了世界上80%的计算机,基本完成除虫行动。

当2000年的钟声敲响后,除了一些个人计算机崩溃以外,总体上还是相安无事的。

但是,还有其他与“千年虫”类似的程序bug,并未因此放过人类。

它们一直潜伏在计算机当中,寻找合适的机会发作。

上面提到修复“千年虫”的方法,只是简单把程序的时间计算区间调整为1920-2020年。

因为人们觉得到了2020年,大家应该都换新电脑了。

大家也许会说这个想法似曾相识,没错,这是人们又在自以为是地拖延问题。

因为到了2038年,有可能再次发生类似“千年虫”的事件,这就是“2038年问题”。

大家在平时或许有听说过,计算机的操作系统有32位和64位之分。

现在大多数计算机采用Unix时间戳的计时方法,简单来说就是:以1970年1月1日0时0分0秒为起点,然后通过计算秒数来算出当前时间。

比如:2021年5月7日15:00:00,换算一下就是1620370800秒。

由于32位操作系统所能计算的秒数有限,到2038年1月19日3:14:07,就会达到极限。

当操作系统所计算的秒数超过上限后,会自动把日期跳回到1901年,然后各种程序因为时间错乱而导致崩溃,跟之前的“千年虫”发作时类似。

理论上到了2038年,人们应该淘汰掉了32位操作系统,转而使用没有“2038年问题”的64位操作系统。

但是从前面的“千年虫”事件来看,没准还有变数,说不定最终还得程序员想办法去解决。

所以说,请大家对身边的程序员好一点,因为他们不仅要跟发际线、甲方斗争,还要为了拯救世界跟时间代码战斗。

好了,本期就到这里了,欢迎大家在评论区留下自己的看法。

我是月林科普,关注我,每天分享好玩有趣的科普知识。

1.《【2038年】程序员揭示什么是“千年虫”事件,什么是“2038年问题”》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【2038年】程序员揭示什么是“千年虫”事件,什么是“2038年问题”》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/2971665.html

上一篇

【五行命格】明格大战看你是什么名格。

下一篇

【酉戌相害】八字入门的16个基础,快来看

【2038年】2038年?强盗

【2038年】2038年?强盗

2038年相关介绍,你听说过“哪一年哪一个月哪一天是世界末日”的传闻吗?科学家们反复造谣,但这种谣言会一直出现。 但是不要告诉我,在过去的十年里,人类真的会在“翻日历”上遇到很大的困难。虽然不是世界末日,但也很麻烦。这个...

【2038年】外电:法国于2038年新入役了7.5万吨级新核动力航母

【2038年】外电:法国于2038年新入役了7.5万吨级新核动力航母

2038年相关介绍,路透社巴黎12月8日报道,伊曼纽尔马克龙总统12月8日表示,法国新一代航母将成为核动力航母,2038年将取代该舰队主力“夏尔戴高乐”号航母。 法国官员说,这艘法国海军史上的第11艘航母将由法国防务承包...

【2038年】2038年互联网预言:家里有丑女、日进斗金吗?

  • 【2038年】2038年互联网预言:家里有丑女、日进斗金吗?
  • 【2038年】2038年互联网预言:家里有丑女、日进斗金吗?
  • 【2038年】2038年互联网预言:家里有丑女、日进斗金吗?
【2038年】未来展望:2038年人们吃了什么?怎么吃?

【2038年】未来展望:2038年人们吃了什么?怎么吃?

2038年相关介绍,编辑:最近在《快公司》杂志网站上发表了一篇文章,设想了20年后人们的饮食习惯。Marius Robles (Marius Robles)是Reimagine Food(一家致力于食品创新的公司)的首席...

【2038年】2038年春节日记:不可避免的科学技术和年味

  • 【2038年】2038年春节日记:不可避免的科学技术和年味
  • 【2038年】2038年春节日记:不可避免的科学技术和年味
  • 【2038年】2038年春节日记:不可避免的科学技术和年味

2038 2038年中国民用航空市场 规模达1.5万亿美元

(记者王晓霞)波音公司近日交付了中国第2000架波音飞机,用户为厦航空,机型为737 MAX。这一里程碑式的交付显示了全球最大民用航空市场的加速发展空。 据了解,波音向中国民航行业交付首批1000架飞机已逾40年。现在...

西安移动拒绝用户携号转网被通报 到移动携号转网被告知必须用到2038年

西安移动拒绝用户携号转网被通报 到移动携号转网被告知必须用到2038年

电话卡每个月用多少钱?近日,Xi平安移动拒绝将用户号码转移至互联网,引发热议。曹先生真的是一个很理智的人,没有因为大事情问怎么动。说真的,很多时候,我们只是想保护自己正常的权益。我没有问对方公司怎么赔偿我们。只是想联系一下...

法国新航母预计2038年入列 具体什么情况

法国新航母预计2038年入列 具体什么情况

新的法国航母预计将于2038年上市据外媒报道,当地时间18日,法国国防部长帕里表示,新航母将建在法国西部大西洋海岸的圣纳泽尔港。预计2036年进行首次海试,2038年正式更换戴高乐号航母并投入使用。据悉,戴高乐号航空母舰于1994年5月正式投入使用,已服役26年。...