益科
正當(dāng)「千禧之年」即將來(lái)臨之際,一團(tuán)令人掃興的烏云--「千年蟲(chóng)」的烏云,卻在全球上空彌漫、漂浮。有關(guān)「千年蟲(chóng)」的話題也變得「熱門」起來(lái)。從大眾媒體到專業(yè)媒體,「千年蟲(chóng)」知名度陡增,風(fēng)頭出盡,看來(lái),千年蟲(chóng)真是「來(lái)者不善」。那么,它是如何危害人類,危害到底又有多大呢?
千年蟲(chóng)的本性:到處把身藏,害你沒(méi)商量
先來(lái)看一下千年蟲(chóng)危害的四種表現(xiàn)形式:
一是表示錯(cuò)誤。即把20xx年表示成19xx年。例如2000年,在不同的機(jī)器中,可能表示成1900年,1980年,或1990年。這種錯(cuò)誤如果不涉及重要的計(jì)算,危害性相對(duì)還不大。
二是計(jì)算錯(cuò)誤。這問(wèn)題可就大了。假定您于1990年在銀行存入一筆款項(xiàng),到2000年去取款時(shí),存期應(yīng)為10年。但機(jī)器將2000年誤為1900年,計(jì)算您的存期為:1900-1990=-90(年),從邏輯概念上理解,存期為負(fù)數(shù)表示您還沒(méi)存錢就要取錢,銀行當(dāng)然不干,于是您的賬號(hào)可能被電腦程序判定為「非法」而凍結(jié)甚至取消,您的存款也就連本帶利被無(wú)端「吞沒(méi)」了,豈不冤哉枉也!如果電腦程序?qū)⒇?fù)號(hào)忽略(這種可能性很。,只看絕對(duì)值,則您的存期變成90年,您可就大發(fā),而銀行可就虧老了!這僅僅是一個(gè)局部的例子,不難設(shè)想,在全社會(huì)的范圍,計(jì)算錯(cuò)誤帶來(lái)的危害性會(huì)有多大。
三是溢出錯(cuò)誤。這種錯(cuò)誤主要可出現(xiàn)在各種自動(dòng)控制系統(tǒng)的植入式芯片中,其危害也非同小可。所謂「植入式芯片」實(shí)際上就是集成在一枚芯片中的計(jì)算機(jī),通常也有日期時(shí)間功能。進(jìn)入2000年時(shí),年份99加1變成00,并產(chǎn)生一個(gè)進(jìn)位。如果芯片中只有兩位存放年份數(shù)據(jù),這個(gè)進(jìn)位便「無(wú)處存身」,這種情況在計(jì)算機(jī)中稱為「溢出」,通常作為異常錯(cuò)誤處理,計(jì)算機(jī)因此中斷正常運(yùn)行,控制系統(tǒng)也就癱瘓了。其后果因控制系統(tǒng)的用途而異,可能會(huì)引起電梯停開(kāi),生產(chǎn)中斷,儀表失靈,導(dǎo)彈失控……
四是不兼容問(wèn)題。這類問(wèn)題可發(fā)生在新、老計(jì)算機(jī)同時(shí)使用的部門。近年來(lái)(特別是1995年以后)新推出的計(jì)算機(jī)系統(tǒng)通常已對(duì)千年蟲(chóng)采取了某種防范措施,而較早期的系統(tǒng)中一般未采取措施,兩種系統(tǒng)同時(shí)工作,年份數(shù)據(jù)格式不一樣,難以協(xié)調(diào),計(jì)算機(jī)術(shù)語(yǔ)稱為「不兼容」。這類問(wèn)題一旦發(fā)生,也可導(dǎo)致系統(tǒng)不能正常運(yùn)行,后果不容忽視。
再來(lái)看一下千年蟲(chóng)的危害有哪些特點(diǎn):
一普遍性?梢院敛豢鋸埖卣f(shuō),千年蟲(chóng)幾乎「無(wú)所不在」。首先它波及地域廣。由于近年來(lái)計(jì)算機(jī)的迅速普及和網(wǎng)絡(luò)系統(tǒng)的飛速發(fā)展,千年蟲(chóng)問(wèn)題對(duì)世界上幾乎所有的國(guó)家產(chǎn)生不同程度的直接或間接的影響;其次是受害面積大。千年蟲(chóng)問(wèn)題涉及的部門、行業(yè)很多,可以說(shuō)只要是使用了計(jì)算機(jī)的地方,就或多或少地存在千年蟲(chóng)問(wèn)題。其中以銀行、軍事、商業(yè)、交通、通訊、工業(yè)等部門為甚。第三,涉及機(jī)種多。只要是計(jì)算機(jī),特別是早期的計(jì)算機(jī),無(wú)論是巨、大、中、小型機(jī),微型機(jī)(包括臺(tái)式機(jī),便攜機(jī),單板機(jī),單片機(jī)),服務(wù)器,工作站等等,只要采用兩位數(shù)年份,均無(wú)一幸免。
二嚴(yán)重性。首先是延緩經(jīng)濟(jì)增長(zhǎng)。據(jù)美國(guó)聯(lián)邦儲(chǔ)備機(jī)構(gòu)官員的估計(jì),為解決千年蟲(chóng)問(wèn)題,可能使美國(guó)經(jīng)濟(jì)年增長(zhǎng)率在本世紀(jì)最后兩年內(nèi)每年下降0.1個(gè)百分點(diǎn),勞動(dòng)生產(chǎn)率的增長(zhǎng)減少0.2個(gè)百分點(diǎn)。在瑞士召開(kāi)的國(guó)際銀行2000年圓桌會(huì)議上,經(jīng)濟(jì)學(xué)家指出,計(jì)算機(jī)2000年問(wèn)題爆發(fā)后,全球發(fā)生經(jīng)濟(jì)衰退的可能性已達(dá)60%,甚至有發(fā)生蕭條的可能性。另?yè)?jù)有關(guān)報(bào)道,如果2000年經(jīng)濟(jì)衰退,估計(jì)美國(guó)國(guó)內(nèi)生產(chǎn)總值大約下降1萬(wàn)億美元,股票市場(chǎng)的資本額也將損失1萬(wàn)億美元。同理,其他國(guó)家的經(jīng)濟(jì)增長(zhǎng)速度或多或少也會(huì)降低。其次是危及世界各國(guó)的安全。世界各先進(jìn)國(guó)家的戰(zhàn)略核武器、導(dǎo)彈系統(tǒng),無(wú)一例外均采用計(jì)算機(jī)控制。目前,美國(guó)等西方國(guó)家最為擔(dān)心的是,萬(wàn)一俄羅斯軍方由電腦控制的戰(zhàn)略預(yù)警系統(tǒng)因千年蟲(chóng)的影響而發(fā)生誤報(bào),或發(fā)射系統(tǒng)出現(xiàn)故障導(dǎo)致核導(dǎo)彈的意外發(fā)射,后果不堪設(shè)想。反過(guò)來(lái)也一樣,西方的核武器一旦因千年蟲(chóng)問(wèn)題失控,未嘗不會(huì)對(duì)他國(guó)或本國(guó)的安全構(gòu)成威脅。此外,自古以來(lái)「兵不厭詐」,也不能排除在某種特定情況下,某些人以千年蟲(chóng)導(dǎo)致的失控為借口對(duì)他國(guó)發(fā)動(dòng)「先發(fā)制人」的突然襲擊的可能性。第三是妨礙社會(huì)穩(wěn)定。如果計(jì)算機(jī)因千年蟲(chóng)發(fā)作而不能正常工作,除了給使用計(jì)算機(jī)的單位和部門造成直接的損失之外,還可能引發(fā)各種民事糾紛或爭(zhēng)端,擾亂正常秩序,破壞社會(huì)穩(wěn)定。
三緊迫性。不言而喻,如不事先有所防范,2000年的新年鐘聲一響,千年蟲(chóng)的發(fā)作便「勢(shì)在必行」,無(wú)人可以阻止,也沒(méi)有任何商量、妥協(xié)的余地。
四復(fù)雜性。千年蟲(chóng)問(wèn)題看似簡(jiǎn)單,不就是年份的位數(shù)不夠嗎,把兩位改成四位就是了。從微觀上看,的確如此。然而從宏觀上看,對(duì)于一個(gè)龐大的計(jì)算機(jī)系統(tǒng)來(lái)說(shuō),光是要找出所有涉及年份的地方就夠花時(shí)間的了,程序的修改工作量也不小,而要驗(yàn)證修改的結(jié)果是否正確,甚至更加費(fèi)事。這就好比一大缸米中混進(jìn)了一把沙子,從米粒中挑出沙子的動(dòng)作三歲小孩都會(huì)做,然而要確保把所有的沙子都挑乾凈,就不是那么簡(jiǎn)單了。這還只是從技術(shù)的層面上來(lái)看,由于千年蟲(chóng)問(wèn)題還與社會(huì)、管理、法律、心理等諸多因素密切相關(guān),是一道十分復(fù)雜的「多元、高階聯(lián)立方程」,求解起來(lái)還真不那么容易呢。
還有一點(diǎn)要注意的是,到目前為止,人們談?wù)摰那晗x(chóng)的種種危害絕大部份還未「既成事實(shí)」,到底它會(huì)給人類帶來(lái)多大的實(shí)際危害。要到2000年之后才能確切知道,因此又具有一定的「不可預(yù)見(jiàn)性」。
千年蟲(chóng)的克星:殺蟲(chóng)自有方,不必亂驚慌
千年蟲(chóng)的危害性雖然很大,只要我們引起足夠的重視,要消滅它也是完全有辦法的,不必談「蟲(chóng)」色變,驚慌失措。
由于千年蟲(chóng)普遍地存在于計(jì)算機(jī)的硬件、系統(tǒng)軟件、應(yīng)用軟件之中,并且涉及管理方面的諸多因素,因此殺滅它也要從以上幾個(gè)層次同時(shí)下手,不能留下「死角」。同時(shí)要注意各個(gè)層次采用的日期轉(zhuǎn)換方法互相一致,以免造成混亂。這是解決千年蟲(chóng)問(wèn)題的一般原則。
至于具體的殺蟲(chóng)方法有很多,在硬件方面可以改用無(wú)蟲(chóng)害的新機(jī)器,或加插具有滅蟲(chóng)功能的板卡,或用軟件的方法改寫駐留在關(guān)鍵部位的程序等。在軟件方面有「日期重譯法」、「日期操縱法」、「日期壓縮法」等。其基本思路無(wú)非都是對(duì)兩位數(shù)字的年份進(jìn)行某種識(shí)別和換算,最終得到正確的年份表示和年份有關(guān)的計(jì)算結(jié)果,也可以一律直接采用4位數(shù)年份。每種方法各有其優(yōu)缺點(diǎn),要根據(jù)具體情況靈活應(yīng)用。另外要注意的是所有互相關(guān)聯(lián)的系統(tǒng)對(duì)現(xiàn)行或存檔的日期資料,均以同一方式演繹和理解,以免引起混亂。
為了提高滅蟲(chóng)工作的效率,電腦專家們又創(chuàng)造了很多軟件工具,來(lái)幫助人們解決問(wèn)題,如劃定問(wèn)題的范圍、找出日期調(diào)用的地方、擴(kuò)展日期域等。當(dāng)然,軟件工具也并非萬(wàn)能,只對(duì)解決問(wèn)題起一定的輔助作用,據(jù)有關(guān)專家估計(jì),軟件工具只能承擔(dān)20%-30%的工作量,降低5%的費(fèi)用,起關(guān)鍵作用的還是人。
千年蟲(chóng)的啟示:代價(jià)何其高,檢討費(fèi)思量
據(jù)權(quán)威機(jī)構(gòu)估算,為解決千年蟲(chóng)問(wèn)題,全世界需耗費(fèi)約4000億-6000億美元。而人類歷史上兩次世界大戰(zhàn)的經(jīng)濟(jì)損失據(jù)統(tǒng)計(jì)總共是5000億美元。可見(jiàn)千年蟲(chóng)讓人類付出的代價(jià)之高!
付出了如此高昂的「學(xué)費(fèi)」,我們應(yīng)當(dāng)從千年蟲(chóng)現(xiàn)象中學(xué)到點(diǎn)什么?目前為止我們所使用的計(jì)算機(jī),無(wú)論其型號(hào)種類千差萬(wàn)別,都有一個(gè)共同的弱點(diǎn),那就是只能在事先限定的「長(zhǎng)度」范圍內(nèi)進(jìn)行數(shù)據(jù)的計(jì)算和處理。每種類型的數(shù)據(jù),數(shù)字也好,字符也好,日期也好,都有一個(gè)最大長(zhǎng)度的限制,一旦超出這個(gè)限制,機(jī)器就無(wú)能為力了。而在實(shí)際生活中,人們所接觸和處理的數(shù)據(jù),其長(zhǎng)度往往是難以預(yù)先限定的,這就構(gòu)成了一對(duì)尖銳的矛盾。千年蟲(chóng)其實(shí)就是這個(gè)矛盾的必然產(chǎn)物。仔細(xì)想想看,即便采用四位數(shù)表示年份,千年蟲(chóng)是解決了,但「萬(wàn)年蟲(chóng)」又來(lái)了(四位年份最大可表示到9999),好在「一萬(wàn)年太久」,可以不必去管它。然而其他因數(shù)據(jù)域有限而帶來(lái)的問(wèn)題就未必。例如中文信息處理技術(shù)中,由于字庫(kù)容量的限制,會(huì)造成要用的漢字計(jì)算機(jī)上沒(méi)有的尷尬局面。這就表明,隨著計(jì)算機(jī)應(yīng)用的更加普及深入,現(xiàn)行計(jì)算機(jī)的體系結(jié)構(gòu)已越來(lái)越不適應(yīng)。當(dāng)然,要從體系結(jié)構(gòu)上對(duì)計(jì)算機(jī)進(jìn)行「革命」也不是一件輕而易舉的事,它涉及到方方面面的問(wèn)題太多,可能需要不止一代人堅(jiān)持不懈的努力。相信現(xiàn)在的年輕一代,將運(yùn)用他們的智慧,為解決這道比千年蟲(chóng)更難得多的跨世紀(jì)難題作出貢獻(xiàn)!
《百科知識(shí)》1999.9