“千年蟲(chóng)”是什么東西?一個(gè)在計(jì)算機(jī)誕生之初,遺留下的巨大BUG
說(shuō)起來(lái),現(xiàn)在社會(huì)科技中,除了真正學(xué)過(guò)計(jì)算機(jī)專業(yè)的人,大部分人對(duì)于“千年蟲(chóng)”這個(gè)稱號(hào)都有些陌生,甚至有些人連聽(tīng)都沒(méi)聽(tīng)過(guò),不知道的網(wǎng)友聽(tīng)到“蟲(chóng)”這個(gè)字可能還會(huì)腦補(bǔ)出一大堆不明生物的樣子,但其實(shí)“千年蟲(chóng)”并不是一種生物,而是一種由人類創(chuàng)造的電腦系統(tǒng)漏洞
“千年蟲(chóng)”的誕生時(shí)間遠(yuǎn)沒(méi)有所謂的1000年,實(shí)際上它被人們關(guān)注并引起爭(zhēng)議是在21年前,而且“千年蟲(chóng)”并不像網(wǎng)友想象的一般,是一個(gè)類似“熊貓燒香”的電腦病毒,在計(jì)算機(jī)誕生之初給人類造成了重大損失,確切地說(shuō)它本身是電腦系統(tǒng)設(shè)計(jì)者的一個(gè)漏洞,也就是我們所熟知的系統(tǒng)“bug”
BUG之母“葛麗絲·霍普”
說(shuō)起千年蟲(chóng)的歷史就不得不提到一個(gè)人,她的名字叫“葛麗絲·霍普”,學(xué)過(guò)計(jì)算機(jī)歷史的人應(yīng)該都知道,她在計(jì)算機(jī)領(lǐng)域還有個(gè)外號(hào),叫“BUG之母”
葛麗絲·霍普1906年出生于美國(guó),從小就是一位學(xué)霸級(jí)人物,尤其是對(duì)數(shù)學(xué)有極高的天賦,1928年,從瓦薩學(xué)院畢業(yè)的霍普取得了數(shù)學(xué)和物理學(xué)的雙學(xué)士學(xué)位,后來(lái)她繼續(xù)深造,6年后成為美國(guó)少有的女性博士數(shù)學(xué)家,1939年后,第二次世界大戰(zhàn)爆發(fā),霍普受到社會(huì)大環(huán)境的影響,進(jìn)入美國(guó)海軍系統(tǒng)工作
雖然因?yàn)榕缘纳矸莺腕w質(zhì)問(wèn)題,霍普無(wú)法上陣殺敵,但她出色的數(shù)學(xué)天賦依舊引起了機(jī)構(gòu)重視,1940年后,霍普從海軍預(yù)備軍官學(xué)校畢業(yè),成為一名少尉軍銜的研究師,并被派遣到霍華德·艾肯的手下當(dāng)助理,而霍華德就是后來(lái)世界第一臺(tái)通用計(jì)算機(jī)“馬克一號(hào)”的制造者
霍普自從接觸計(jì)算機(jī)行業(yè)后,很快便深陷其中,因?yàn)槌叩臄?shù)學(xué)天賦,她對(duì)計(jì)算機(jī)系統(tǒng)的知識(shí)理解很快,并成為了霍華德手下最得力的干將,某一次在進(jìn)行“馬克二號(hào)”的運(yùn)行實(shí)驗(yàn)中,機(jī)器莫名出現(xiàn)了故障,科學(xué)家檢查設(shè)備后發(fā)現(xiàn)一切無(wú)恙,還是霍普心思細(xì)膩,發(fā)現(xiàn)了電腦系統(tǒng)電路板有一只小蟲(chóng)子,當(dāng)夜她在工作筆記中寫(xiě)到“因?yàn)橐恢籅UG(英文小蟲(chóng)子)的出現(xiàn),我們中斷了實(shí)驗(yàn)”
這就是歷史上電腦系統(tǒng)的第一個(gè)“bug”,霍普不僅是第一位用BUG來(lái)稱呼事故的人,還是最早為后人制造BUG 的科學(xué)家
“千年蟲(chóng)”的由來(lái)
1957年,第二次世界大戰(zhàn)結(jié)束后,全球范圍內(nèi)的國(guó)家都開(kāi)始大力發(fā)展科技,而計(jì)算機(jī)系統(tǒng)的研發(fā)在美國(guó)更是到了泛濫的程度,編程語(yǔ)言品類繁雜卻沒(méi)有統(tǒng)一的制度,所以當(dāng)時(shí)的機(jī)構(gòu)邀請(qǐng)了霍普,希望她能開(kāi)發(fā)出一款通用的計(jì)算機(jī)編程系統(tǒng),也就是COBOL語(yǔ)言,這種語(yǔ)言系統(tǒng)可以編寫(xiě)大型計(jì)算機(jī)的運(yùn)載程序
而除了對(duì)編程語(yǔ)言的改動(dòng)外,霍普還在計(jì)算機(jī)存儲(chǔ)系統(tǒng)上做了重大調(diào)整,她是世界首個(gè)選擇用6位數(shù)字來(lái)存儲(chǔ)日期的開(kāi)發(fā)者,像我們?nèi)缃袼褂玫挠?jì)數(shù)日期96.10.18,代表的就是1996年10月18日,霍普就是此計(jì)數(shù)方法的開(kāi)創(chuàng)者
不過(guò)就連霍普自己都沒(méi)想到,她對(duì)日期儲(chǔ)存系統(tǒng)的一次小小改動(dòng),竟然引發(fā)了后世全球范圍內(nèi)的系統(tǒng)BUG
個(gè)BUG的原理很簡(jiǎn)單,那就是6位數(shù)的儲(chǔ)存日期方式,雖然可以節(jié)省部分電腦運(yùn)行空間,但每當(dāng)?shù)搅饲甑恼麛?shù)年,系統(tǒng)就會(huì)出現(xiàn)無(wú)法識(shí)別的問(wèn)題,比如2000年用6位數(shù)來(lái)存儲(chǔ)就是00年,而當(dāng)時(shí)電腦的智能程度根本無(wú)法識(shí)別00年到底是公元2000年還是1000年,這就導(dǎo)致一些計(jì)算結(jié)果出現(xiàn)了重大偏差
不僅如此,由于2000年左右國(guó)內(nèi)外的電氣系統(tǒng)已經(jīng)在普及,而它們大多數(shù)采用的都是霍普開(kāi)發(fā)的6位儲(chǔ)存法,所以都遇上了BUG,而這場(chǎng)每1000年才會(huì)出現(xiàn)一次的電腦漏洞,就被稱作“千年蟲(chóng)”
有意思的是,早在霍普開(kāi)發(fā)6位存儲(chǔ)法的時(shí)候,美國(guó)有一位程序員“鮑勃”就已經(jīng)發(fā)現(xiàn)了它的重大BUG,但當(dāng)時(shí)的人都不以為然,因?yàn)樗麄冇X(jué)得這種漏洞自己有生之年是遇不到了,所以懶得解決,還不如交給后人,一直到1990年,世界范圍內(nèi)的程序員才想起來(lái)還有個(gè)危機(jī)未解除,所以在近10年的時(shí)間里,都在為系統(tǒng)崩潰做準(zhǔn)備
直到2000年到來(lái)后,千年蟲(chóng)的漏洞正式爆發(fā),雖然讓不少電腦系統(tǒng)都產(chǎn)生了崩潰,但好在人們有所準(zhǔn)備,所以“千年蟲(chóng)”造成的影響并不大,而且近20年來(lái)也已經(jīng)被工程師們不斷完善,即便是再次爆發(fā),也要等3000年的時(shí)候,到時(shí)人們還用不用電腦都很難說(shuō)了
只是我們不能確定的是,在科技日益完善的今天,我們會(huì)不會(huì)也制造了一些“千年蟲(chóng)”,并且在發(fā)現(xiàn)后不愿意改進(jìn),從而留給后人去解決呢?