12/31 - 2000 年千禧蟲危機,會不會再回來?
迎接新的一年,與舊的一年道別,12/31 總是令許多人感到興奮。但是在 1999 年的最後一天,許多人可是緊張兮兮,因為不曉得「千禧蟲」這一咬有多痛。
早期電腦記憶體和儲存成本很高,為了節省硬體成本,創造現代第一個編譯器 A-0 系統和第一個高級商用電腦程式語言 COBOL,被譽為「COBOL 之母」的葛麗絲霍普(Grace Hopper)在第一台全自動電腦--馬克一號(Mark I)中,僅以 6 位數字來儲存時間。
像是 1990 年 12 月 31 日會被標記為「 901231」。而之後的電腦程式語言和編碼如 COBOL、ASCII 編碼、EBCDIC 編碼等都繼承了這樣的年份標記方式。
然而,這樣的兩位數設計會使得電腦在 2000 年 1 月 1 日可能發生計算錯誤的問題--電腦可能以為是 (19)00 年 1 月 1 日。這不僅會導致銀行、大型公司、政府部門出現時間計算、標記錯誤的問題,亦可能造成電腦停頓等災難性結果。
其實開發出 COMTRAN 語言(COBOL 前身)的 Bob Bemer 早在 1958 年便提出過「千禧蟲」的問題,儘管一開始無人理會 Bemer 的警告,但隨著時間逼近,社會大眾才認知「千禧年蟲」問題的重要性,投入大量資源來修正電腦程式語言。最終, 2000 年 1 月 1 日沒有發生大規模電腦錯誤的問題(相信大部分人那晚也很興奮地在跨年)。
不過「千禧蟲危機」也並非只有公元 2000 年會發生,像是台灣使用民國紀年或者泰國的佛曆,亦可能會因為電腦系統沒有修正的關係,造成時間計算錯誤,因此,「千禧蟲」並不會隨著 2000 年過了而解決。
當然,電腦程式系統會不斷修正、開發,大家也不必過於擔心,今晚大家就開心和 2015 最後一天道別,並迎接 2016 年的第一天吧。
參考資料:
封面圖片來源:photo via Haxpett@wikimedia, CC License
留言討論