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