認識「公元2000問題」刻不容緩

1998-06-15

  還有不到六百天的光景,人類歷史便會踏進公元 2000 年,這個本應是普世歡騰的日子,現在卻因為一個全球性的電腦程式設計缺陷而蒙上陰影。世界各地的政府、金融機構、工商企業,以至個人電腦用戶,無不為公元 2000 年這條可怕的「千年蟲」的進襲大限而憂心忡忡。

  「公元 2000 問題」(簡稱 Y2K)通常被傳媒戲稱為「千年蟲」(Millennium bug),它泛指所有自動化系統中由於記錄年份的數據只儲存個位和十位而產生的運算錯誤,在日常生活中,使用兩位數字來表達年份不會引起任何混亂,因為我們都懂得在 49 或 98 之前冠以 19 作為完整的年份。然而,這個習慣將會在廿一世紀初面對很大的衝擊,例如,一個出生年份為 10 的人,應該是 1910 還是 2010 呢?當然,以人類的智慧作判斷,並在必要時加以核實,錯誤的機會應該很低。但以電腦程式運行的大規模數據處理系統,或純粹以時間控制的作業系統,便無法作出這樣的適應了。

「千年蟲」不能小覷

  我們絕不能小覷自動化系統錯誤判斷年份所帶來的問題。從跳字手錶內的晶片、微波爐和錄影機的內置計時開關,以至銀行計算按揭利息和保險公司計算保費的電腦程式,甚或是機場管理航班升降的系統、醫院裡電子化的醫療儀器等,都必須依賴準確無誤的時間運作,錯誤的代價可能不堪設想。一些資訊技術顧問的言論,加上傳媒繪影繪聲的報導,令不少人相信當時間踏入公元 2000 年一月一日零時的一刻,全球的電腦都無法再正常工作,汽車會因為其時間控制的元件失靈而拋錨,飛機、火車、輪船的班次出現混亂,醫院裡供病人使用的維生系統停頓... ...。而隨之而來的,是各種電腦數據處理系統的錯誤,如銀行錯誤計算存款期、政府向高齡人士發出小學入學通知書、水電費欠交一百年等令人啼笑皆非的事情。

  「千年蟲」的出現,早在一九六○年代末商用電腦系統出現時已埋下伏線。當時電腦資源的成本費用,與今天的相比可謂天壤之別。昔日的系統分析員和程式編撰員均盡可能節省每一個電腦程式所需的資源,使系統運作更有效率。如記憶體、磁盤儲存和中央處理器等,均被視作必須節約的珍貴資源。懂得將年份裡的世紀部分省略,可說是程式編撰員必須具備的常識和「智慧」。事實上,直至八十年代,不少電腦教科書甚至電腦科教授,仍然很自然地以兩位數字儲存年份。電腦業不乏高瞻遠矚的人才,但也許沒有多少人會想到很多設計於七十年代的電腦程式將會沿用至跨越世紀,而即使具遠見者也無力扭轉早已根深蒂固的編程習慣,加上電腦在人類生活上的應用急速發展,令「千年蟲」的問題擴散到無法收拾的地步。

  要解決應用程式內的「千年蟲」問題,是一件人力密集的工作,試想像一家中小型企業的電腦系統內,動輒有成百上千的程式在運行。要確定這些程式符合公元 2000 要求(即在過渡二千年時運作正常),必須由有經驗的程式編撰員仔細地逐一檢查,當遇有不符要求時對程式作出修改;此外,現時儲存在磁盤磁帶等媒介上的原始數據和數據庫,亦需加以調整,將所有只帶兩位數字年份的數據,一舉更改為四位儲存。

龐大資源應付危機

  全球為應付「千年蟲」問題所需的資源極為龐大,已達到無法估計的地步。就應用程式而言,電腦業界普遍以電腦程式的行數作為系統大小的指標,視乎電腦化程度而定,一家企業所應用的程式,由數萬行至數百萬行不等。一些專家初期曾經估計,平均檢查和修改一行程式的費用約為 1.1 美元,這個數字現已隨著公元 2000 的迫近而提高至 6.46 美元。然而,要全面應付「千年蟲」危機的費用和執行的難度,事實遠較檢查和修改程式為高。

  首先,當所有程式被修改以後,必須進行個別和綜合的測試。但企業內的電腦硬件,通常早已為現時正在運作的舊系統佔用大部分資源。無法騰出空間以供測試之用,不少企業此時便惟有租用電腦服務公司的設備,或索性將電腦系統升級。此外,有些電腦硬件和操作系統,根本無法過渡公元 2000,部份廠家會向客戶提供免費修補程序(patch program),但亦有要求客戶購置新型號的產品。

  相比之下,人力資源較電腦軟、硬件的配合更具決定性的影響。不少企業機關的資訊科技部門員工,在維持和改善現有系統,以及為企業開闢新領域而設計新系統的同時,還得面對「千年蟲」帶來的工作壓力。在經濟普遍放緩的二十世紀末,沒有多少機構能同時兼顧所需的人力資源。加上全球各地對資訊技術人員的需求同時激增,令人力市場供不應求。在重重困難下,不少機構都只能借助顧問公司的服務,或聘請經驗參差的臨時員工,以舒緩目下危機。

  全球清除「千年蟲」的行動已在一九九八年進入高峰期。著眼於這個「千載難逢」機遇的顧問公司,已不斷舉辦收費講座、出版策略報告,以及提供系統分析和更改程式的專業服務。部份軟件商更設計和出售測試工具軟件,協助專業人員檢定現時的應用系統是否符合公元 2000 年。電腦顧問業估計,全球為應付「千年蟲」危機的總開支,約為 1.3 萬億美元 (US$1.3 trillion),是美國一九九七年國民生產總值的 16%。這些款項,絕大部份將流入提供消滅「千年蟲」服務的顧問公司口袋裡,而銷售符合公元 2000 電腦系統的廠家和乘勢崛起的軟件商,亦將有一定的進賬。

及早制訂應變措施

  「公元 2000 問題」是一項全球性和史無前例的項目,沒有那一個系統經理能說自己經驗豐富。這個項目的難度,可以歸納為四點:(一)工作量龐大,所有系統必須同時修正或更新;(二)現有系統的正常運作被迫受到影響;(三)人力資源和經費預算不足;(四)項目完成日期鐵定在公元 2000 年前,無法更改,各國政府已意識到問題的嚴重性,並加速探討問題的解決方法和進行有關撥款。香港政府亦已敦促各部門、資助機構和金融機構等正視「千年蟲」問題,進行危機評估和著手更新系統,定期提交進度報告,並且制訂應變措施。

  消滅「千年蟲」行動的一個重要阻力,是基於機構的管理階層對問題的不理解,不少主管認為這是電腦部門製造出來的問題,對有關資源的申請不予支持,或索性不聞不問。有些人也誤以為「千年蟲」只影響大型電腦系統,個人電腦用戶無須擔憂,事實上某些型號微型電腦中的內置系統晶片都無法過渡公元2000,必須予以更新,有些人更以為找來一個清除電腦病毒的軟件,便可以解決「千年蟲」的問題。

  電腦業內流傳這樣的一個笑話:財務總監氣急敗壞地跑到行政總裁面前說:「不好了,電腦部的同事要趕工處理千年蟲問題,恐怕不能如期完成新的財務系統了。」行政總裁胸有成竹地笑著說:「真不明白他們為甚麼老愛誇大其詞,不用擔心。你看!一九九九年十二月三十一日正好是星期五,他們有整整一個週末去解決問題呢!」難怪不少大機構處理「千年蟲」危機的工作小組,都將教育員工認識問題列作首要任務。當業者能透徹了解千年蟲對企業運作所帶來的風險,它所造成的傷害亦會減至最低。

解決問題小常識

*千年蟲是電腦程式設計時的一種缺陷,與惡意編寫的電腦病毒程式不同,不會因電腦接觸有關軟件而受到感染,也無法利用消除電腦病毒的公用軟件解決千年蟲引起的問題。

*有些千年蟲相關的問題,會在公元 2000 年前出現。例如要編訂公司未來兩年的每月營業預算,並作正確的排序,便必須使用四位數字的年份了。

*千年蟲問題不單會在主體電腦出現,亦會影響個人電腦、操作系統、常用的應用軟件和網絡服務器等元件,用戶可向有關廠商查詢其產品是否符合公元 2000 標準。

*有些電腦程式不符合過渡公元 2000,是由計算閏年的複雜性引起的。曆法訂明,能被 4 整除的年份都是閏年,但能同時被 100 整除的年份卻屬例外,而若能被 400 整除的年份則仍然是閏年,因此,1996 年是閏年、1800 和 1900 都不是閏年,而公元 2000 年卻是一個閏年。

*千年蟲問題不單影響電腦系統,任何由時間操控的自動化系統,都存在同樣的危機。家用電器、影音設備和保安系統等,都應該作適當評估,以便一旦運作不正常時不會手足無措。聞說不少銀行和金庫,以著手測試由時間控制開關的保險庫,能否在公元 2000 年後開啟。

*個人電腦的用戶,是可以自行測試電腦內置系統(不包括所使用的應用軟件)是否符合公元 2000 標準的。但千萬不可隨便將系統的時鐘調較至公元 2000 年以後的日子,這樣做很可能令系統內一些以時間控制的口令 (password) 和軟件使用權失效,或導致數據庫和預約日曆等軟件發生錯誤。讀者可參考以下萬維網頁的測試程序:http://www.cuhk.edu.hk/mcas/mcts/y2ktest.htm

*為避免購入不符合公元 2000 標準的產品,不少機構均在訂單上加入條款,要求供應商清楚列明產品是否合格,以及保留權利,當一旦因產品失效而導致損失時可以追討賠償。

*不少顧問公司和媒體均在互聯網上發佈有關「千年蟲」的最新消息和研究文章,電腦廠家亦經常公佈其產品符合的進度,供客戶參考,讀者可閱覽以下一些萬維網頁:
http://www.cio.com/forums/y2k/
http://www.year2000.com/
http://www.cuhk.edu.hk/mcas/mcts/y2kur1.html

  千年蟲問題並不是單一個案,有顧問公司預計,當美國道瓊斯工業平均指數升至一萬點關口,部分證券公司和交易所的電腦系統將會出錯,原因是這些系統一直只處理四位的指數。若電腦把一萬點的歷史新高誤作一千點,將觸發大量程式沽盤而導致市場混亂。「道瓊斯萬點蟲」(DJ10K) 有別於千年蟲,是一枚不知甚麼時候會爆發的炸彈。

相關文章 / Related Articles

香港學生反修例運動中網絡關係解體的實證調查

宋昭勛、吳靜、胡欣立
2021-01-11

中國傳媒上的「奉勸」

錢鋼
2020-05-15