3

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

 2 years ago
source link: https://blog.csdn.net/daocaokafei/article/details/121592616
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

original.png
一口Linux 2021-11-28 15:47:23 10700
分类专栏: 笔记 文章标签: bug
专栏收录该内容
615 篇文章 13 订阅

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

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

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

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

BUG之母“葛丽丝·霍普”

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

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

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

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

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

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

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

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

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

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

“千年虫”的由来

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

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

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

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

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

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

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

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

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

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

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK