“千年虫”是什么东西?一个在计算机诞生之初,遗留下的巨大 BUG!

Posted 一去丶二三里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“千年虫”是什么东西?一个在计算机诞生之初,遗留下的巨大 BUG!相关的知识,希望对你有一定的参考价值。

星标/置顶 公众号👇,硬核文章第一时间送达!

说起来,现在社会科技中,除了真正学过计算机专业的人,大部分人对于“千年虫”这个称号都有些陌生,甚至有些人连听都没听过,不知道的网友听到“虫”这个字可能还会脑补出一大堆不明生物的样子,但其实“千年虫”并不是一种生物,而是一种由人类创造的电脑系统漏洞

“千年虫”的诞生时间远没有所谓的1000年,实际上它被人们关注并引起争议是在21年前,而且“千年虫”并不像网友想象的一般,是一个类似“熊猫烧香”的电脑病毒,在计算机诞生之初给人类造成了重大损失,确切地说它本身是电脑系统设计者的一个漏洞,也就是我们所熟知的系统“bug”

BUG之母“葛丽丝·霍普”

说起千年虫的历史就不得不提到一个人,她的名字叫“葛丽丝·霍普”,学过计算机历史的人应该都知道,她在计算机领域还有个外号,叫“BUG之母”

葛丽丝·霍普1906年出生于美国,从小就是一位学霸级人物,尤其是对数学有极高的天赋,1928年,从瓦萨学院毕业的霍普取得了数学和物理学的双学士学位,后来她继续深造,6年后成为美国少有的女性博士数学家,1939年后,第二次世界大战爆发,霍普受到社会大环境的影响,进入美国海军系统工作

虽然因为女性的身份和体质问题,霍普无法上阵杀敌,但她出色的数学天赋依旧引起了机构重视,1940年后,霍普从海军预备军官学校毕业,成为一名少尉军衔的研究师,并被派遣到霍华德·艾肯的手下当助理,而霍华德就是后来世界第一台通用计算机“马克一号”的制造者

霍普自从接触计算机行业后,很快便深陷其中,因为超高的数学天赋,她对计算机系统的知识理解很快,并成为了霍华德手下最得力的干将,某一次在进行“马克二号”的运行实验中,机器莫名出现了故障,科学家检查设备后发现一切无恙,还是霍普心思细腻,发现了电脑系统电路板有一只小虫子,当夜她在工作笔记中写到“因为一只BUG(英文小虫子)的出现,我们中断了实验”

这就是历史上电脑系统的第一个“bug”,霍普不仅是第一位用BUG来称呼事故的人,还是最早为后人制造BUG 的科学家

“千年虫”的由来

1957年,第二次世界大战结束后,全球范围内的国家都开始大力发展科技,而计算机系统的研发在美国更是到了泛滥的程度,编程语言品类繁杂却没有统一的制度,所以当时的机构邀请了霍普,希望她能开发出一款通用的计算机编程系统,也就是COBOL语言,这种语言系统可以编写大型计算机的运载程序

而除了对编程语言的改动外,霍普还在计算机存储系统上做了重大调整,她是世界首个选择用6位数字来存储日期的开发者,像我们如今所使用的计数日期96.10.18,代表的就是1996年10月18日,霍普就是此计数方法的开创者

不过就连霍普自己都没想到,她对日期储存系统的一次小小改动,竟然引发了后世全球范围内的系统BUG

这个BUG的原理很简单,那就是6位数的储存日期方式,虽然可以节省部分电脑运行空间,但每当到了千年的整数年,系统就会出现无法识别的问题,比如2000年用6位数来存储就是00年,而当时电脑的智能程度根本无法识别00年到底是公元2000年还是1000年,这就导致一些计算结果出现了重大偏差

不仅如此,由于2000年左右国内外的电气系统已经在普及,而它们大多数采用的都是霍普开发的6位储存法,所以都遇上了BUG,而这场每1000年才会出现一次的电脑漏洞,就被称作“千年虫”

有意思的是,早在霍普开发6位存储法的时候,美国有一位程序员“鲍勃”就已经发现了它的重大BUG,但当时的人都不以为然,因为他们觉得这种漏洞自己有生之年是遇不到了,所以懒得解决,还不如交给后人,一直到1990年,世界范围内的程序员才想起来还有个危机未解除,所以在近10年的时间里,都在为系统崩溃做准备

直到2000年到来后,千年虫的漏洞正式爆发,虽然让不少电脑系统都产生了崩溃,但好在人们有所准备,所以“千年虫”造成的影响并不大,而且近20年来也已经被工程师们不断完善,即便是再次爆发,也要等3000年的时候,到时人们还用不用电脑都很难说了

只是我们不能确定的是,在科技日益完善的今天,我们会不会也制造了一些“千年虫”,并且在发现后不愿意改进,从而留给后人去解决呢? 

 END 

2T 程序员大礼包大放送,包括 C/C++、Linux、Python、Java、php、人工智能、单片机、树莓派等。

关注公众号👇,后台回复「1024」,即可免费获取!

以上是关于“千年虫”是什么东西?一个在计算机诞生之初,遗留下的巨大 BUG!的主要内容,如果未能解决你的问题,请参考以下文章

“千年虫”是什么东西?一个在计算机诞生之初,遗留下的巨大 BUG!

上次遗留下来的XMLUtil的问题

照这样下去,“千年虫”还得再来十遍

Cobol 中是不是存在本质上使其易受千年虫问题影响的东西?

Ubuntu 16.04安装 sogou 遗留下的问题

日志系统诞生记