在20世紀末,人類社會曾經遭遇過一場空前的大危機,如果這場危機真的降臨,甚至有可能終結整個人類文明,
后來,在全世界精英們共同努力之下,這場危機終于得以化解,
這場危機既不是地震,也不是海嘯,更不是瘟疫大流行,而是電子計算機帶來的“千年蟲”問題,
千年蟲問題,到底是怎么來的呢?
說到這個問題,就不得不提起一位偉大的程式媛小姐姐,Grace Murray Hopper,
說起這位小姐姐,那可真是厲害了,她是美國海軍準將,也是一位計算機科學家,
Grace Murray Hopper都取得過哪些成就呢?
她發明了最早的現代編譯器:A-0系統,
她創造了最早的商用編程語言:COBOL,
她在出故障的計算機里發現了一只飛蛾,使得Bug與Debug成為了計算機領域的流行詞匯,
在上世紀60年代,計算機的存盤資源非常稀缺,程式員在撰寫每一行代碼的時候,都要為存盤的使用而精打細算,
為了更好的節約記憶體空間,Grace Murray Hopper采用了6位數字的組合來存盤時間資訊,比如1965年7月23日,對應存盤形式就是65/07/23,省去了前面的“19”,
這樣的存盤形式,很快就在計算機領域流傳開來,盡管它節約了一定的存盤成本,卻埋下了兩個隱患:
1. 由于年份只保留了后兩位,當2000年到來的時候,年份存盤的資訊是“00”,計算機無法區分這到底是1900年,還是2000年,
2. 1900年不是閏年,但2000年是閏年,如果年份的前兩位被默認為“19”,那么2000年的2月29日就會被當做3月1日,存盤為00/03/01,
這兩大隱患,都是到了2000年才會爆發出來,所以這個問題被稱為“千年蟲”問題,英文縮寫為Y2K,
1.抓住重點
既然全量的程式改不過來,那就重點修改那些起到核心作用的程式,比如醫療、航空、金融、軍事領域的程式,這樣作業量就減少了許多,
2.修改時間視窗
對于大多數不那么核心的程式,程式員們想出了一個取巧的方式,這種方式叫做windowing,翻譯過來就是時間視窗,
這種方法暫時保留了6位時間表達,但是表達的時間范圍不再是默認的1900年-1999年,而是1920年-2019年,
比如,程式當中的“10”年,以前默認代表著1910年,現在代表著2010年,
這個做法大大降低了修改成本,但是沒有根本解決問題,而是把問題的爆發推遲了20年,
非洲岡比亞,一些政府機構的軟體系統臨時癱瘓了,岡比亞政府特意宣布當天(周一)為非作業日,以暫時減輕出事機關所要承受的壓力,
中國廣州,某商務公司的7臺電腦接二連三出現故障,當他們向軟體供應商公司求助時發現,那里已經接到100多家公司資料庫癱瘓的訊息,
—————END—————
喜歡本文的朋友,歡迎關注公眾號 程式員小灰,收看更多精彩內容
?????點個[在看],是對小灰最大的支持!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227524.html
標籤:其他
上一篇:作業五年,面試官說我只會CRUD!竟然只給我10K!
下一篇:利用eNSP理解rip協議
