“千年蟲”,這是一個(gè)很多“90后”可能都沒聽說過的詞兒,但在1999年到2000年,這可是全球計(jì)算機(jī)行業(yè)的重大安全事件。其實(shí)所謂的“千年蟲”問題,本質(zhì)上是一個(gè)歷史積累的問題,在計(jì)算機(jī)剛發(fā)明不久的1960年,為了節(jié)約硬件成本,年月日的表達(dá)只有6位數(shù)字,比如1997年10月1日就是971001,這一方式也在后來(lái)的三十多年內(nèi)應(yīng)用于整個(gè)計(jì)算機(jī)程序界。
但這個(gè)時(shí)間記錄方式在具體的時(shí)間可能會(huì)導(dǎo)致系統(tǒng)出現(xiàn)問題,比如2000年,00代表的是1900年還是1800年或者其他xx00年呢?系統(tǒng)會(huì)因此出現(xiàn)時(shí)間識(shí)別錯(cuò)誤,比如2000年是閏年,但因?yàn)闊o(wú)法識(shí)別具體是哪一個(gè)xx00年,所以系統(tǒng)不會(huì)生成2月29日這一天,這對(duì)于很多需要嚴(yán)格記錄時(shí)間信息的行業(yè),比如金融、電力、交通行業(yè)來(lái)說可能會(huì)導(dǎo)致嚴(yán)重的后果。除此之外一些比較老的計(jì)算機(jī)系統(tǒng)會(huì)使用數(shù)字串99來(lái)標(biāo)定一些特殊事件,比如文件結(jié)束、刪除等操作,在1999年9月9日處理到內(nèi)容中含有日期的文件時(shí),就可能導(dǎo)致錯(cuò)誤操作,引發(fā)系統(tǒng)混亂甚至崩潰。
但從《千年蟲的最后一天》文章中我們可以看到,包括我國(guó)在內(nèi)的大多數(shù)國(guó)家,通過計(jì)算機(jī)工作者連續(xù)多個(gè)日夜的奮戰(zhàn),平安度過了這次千年蟲危機(jī)。解決的方法也可以說是簡(jiǎn)單粗暴,針對(duì)上世紀(jì)80年代中期之前投入使用的電腦所運(yùn)行的程序往往最容易中招,但這些程序運(yùn)行到2000年左右時(shí)也已經(jīng)有了非常龐大的規(guī)模,比如美國(guó)AT&T電信公司就檢測(cè)了超過3.6億行代碼。
除此之外,所有采用嵌入式芯片的電子設(shè)備也是千年蟲的“重災(zāi)區(qū)”,因?yàn)檫@些設(shè)備滲透到了我們?nèi)粘I蠲總€(gè)角落,所以檢測(cè)和替換工作都非常繁瑣,這也是千年蟲問題最大的難點(diǎn)——它的解決方法其實(shí)很簡(jiǎn)單,但因?yàn)楣ぷ髁魁嫶蟮綗o(wú)法計(jì)算,所以才成為世界性的難題。