千年蟲是什麼?為什麼它會嚇壞世界?

數十億美元用於解決千年蟲問題。政府、軍隊和企業系統都處於危險之中,但我們還是安然無恙地度過了難關。那麼,威脅是真的嗎?...

數十億美元用於解決千年蟲問題。**、軍隊和企業系統都處於危險之中,但我們還是安然無恙地度過了難關。那麼,威脅是真的嗎?

我們是怎麼安置自己的定時**的

在20世紀50年代和60年代,用兩位數代表年份成為了一種常態。其中一個原因是為了節省空間。最早的計算機儲存容量很小,只有現代機器記憶體的一小部分。程式必須儘可能緊湊和高效。程式是從穿孔卡片上讀取的,穿孔卡片有明顯的有限寬度(通常是80列)。你不能在打孔卡片上打字超過行尾。

無論哪裡可以節省空間,它都是。因此,一個簡單而常見的技巧是將年份值儲存為兩位數。例如,有人會打出66而不是1966。因為軟體將所有日期都視為發生在20世紀,所以人們理解66意味著1966年。

最終,硬體功能得到了改進。有更快的處理器,更多的RAM,計算機終端取代了穿孔卡片和磁帶。磁帶和硬碟等磁性介質被用來儲存資料和程式。然而,此時已有大量的現有資料。

計算機技術在進步,但使用這些系統的部門的職能保持不變。即使更新或更換了軟體,資料格式也保持不變。軟體繼續使用,預計將持續兩位數的年份。隨著越來越多的資料積累,問題變得更加複雜。在某些情況下,資料量是巨大的。

將資料格式變成一頭神聖的奶牛是另一個原因。所有的新軟體都必須迎合這些資料,而這些資料從未被轉換成四位數的年份。

儲存和記憶體限制也出現在現代系統中。例如,嵌入式系統,例如路由器和防火牆中的韌體,顯然受到空間限制的限制。

可程式設計邏輯控制器(PLC)、自動化機械、機器人生產線和工業控制系統都被程式設計為使用盡可能緊湊的資料表示。

將四位數縮減為兩位數是一個相當節省空間的方法—這是一種將儲存需求減半的快速方法。另外,你要處理的日期越多,好處就越大。

最終得到了答案

如果年值僅使用兩位數,則無法區分不同世紀的日期。這個軟體是用來處理所有日期的,就像它們在20世紀一樣。當你進入下一個世紀時,這會產生錯誤的結果。2000年將儲存為00。因此,該計劃將其解釋為1900年,2015年將被視為1915年,以此類推。

在1999年12月31日午夜的鐘聲敲響時,每臺電腦和每臺裝有微處理器和嵌入式軟體的裝置都會面臨這個問題,這些微處理器和嵌入式軟體將資料儲存和處理為兩位數。也許軟體會接受錯誤的日期並繼續,產生垃圾輸出。或者,它可能會丟擲一個錯誤並繼續,或者,完全窒息和崩潰。

這不僅僅適用於大型機、小型計算機、網路和桌上型電腦。微處理器在飛機、工廠、發電站、導彈控制系統和通訊衛星上執行。幾乎所有自動化的、電子的或可配置的東西都有一些程式碼在裡面。這個問題的規模是巨大的。

如果所有這些系統從1999年的一秒鐘切換到下一秒的1900年,會發生什麼?

一般來說,一些季度預測末日和社會的衰落。在當前的流感大流行中,許多人會產生共鳴,一些人開始囤積必需品。其他人稱整個事件為騙局,但不可否認,這是一個大新聞。它被稱為“千年蟲”、“2000年蟲”和“千年蟲”。

還有其他次要的問題。2000年是閏年,許多電腦甚至連閏年系統都沒有考慮到這一點。如果一年可以被4整除,那就是閏年;如果一年可以被100整除,那就不是閏年。

根據另一個(不太廣為人知的)規則,如果一年可以被400整除,那就是閏年。許多已經編寫的軟體沒有應用後一條規則。因此,它不會承認2000年是閏年。因此,它在2000年2月29日的表現難以預料。

在比爾·克林頓總統1999年的國情諮文中,他說:

“We need every state and local government, every business, large and **all, to work with us to make sure that [the] Y2K computer bug will be remembered as the last headache of the 20th century, not the first crisis of the 21st century.”

去年10月,克林頓簽署了《2000年資訊和準備披露法》。

這需要一些時間

早在1999年之前,世界各國**和公司就一直在努力尋找解決辦法,並實施千年蟲問題的變通辦法。

一開始,最簡單的解決方法似乎是擴充套件日期或年份欄位以容納兩個以上的數字,將每年的值加上1900,然後ta da!那時你有四位數的年數。您的舊資料將被正確地保留,新資料將很好地**。

遺憾的是,在許多情況下,由於成本、感知到的資料風險和任務的巨大規模,該解決方案不可能實現。在可能的情況下,這是最好的辦法。你的系統在9999年之前是安全的。

當然,這只是修正了資料。軟體還必須轉換成處理、計算、儲存和顯示四位數的年份。出現了一些創造性的解決方案,消除了多年來增加儲存的需要。月份值不能大於12,但兩位數最多可容納99。因此,可以使用月份值作為標誌。

您可以採用以下方案:

  • 對於1到12之間的月份,將年份值加上1900。
  • 對於41到52之間的月份,將年份值加2000,然後從月份中減去40。
  • 對於21到32之間的一個月,將“年”值加上1800,然後從該月減去20。

當然,你必須修改程式來對稍微模糊的日期進行編碼和解碼。資料驗證例程中的邏輯也必須調整,以接受瘋狂的值(比如44個月)。其他方案採用了這種方法的變體。將日期編碼為14位二進位制數字,並將整數表示形式儲存在日期欄位中,在位級別上也是類似的方法。

另一個系統,重新利用六位數字來儲存日期,完全不用月份。它們沒有儲存MMDDYY,而是換成DDDCYY格式:

  • DDD:一年中的一天(1到365,或366閏年)。
  • C:代表世紀的旗幟。
  • YY:今年。

解決辦法也很多。一種方法是選擇一年作為軸心年。如果所有現有資料都比1921年新,那麼可以使用1920年作為軸心年。00到20之間的任何日期都意味著2000到2020年。從21歲到99歲意味著1921年到1999年。

當然,這些都是短期的解決辦法。它花了你幾十年的時間來實現一個真正的修復或者遷移到一個更新的系統。

重新訪問工作系統以更新仍在執行的舊修復程式?是的,對!不幸的是,社會並沒有做那麼多,只是看看所有仍然廣泛使用的COBOL應用程式。

相關報道:什麼是COBOL,為什麼那麼多機構依賴它?

y2k相容?證明給我看!

修理內部系統是一回事。修復程式碼,然後將補丁分發給現場所有的客戶裝置,完全是另一回事。軟體開發工具呢,比如軟體庫?他們破壞了你的產品嗎?您的產品中的某些程式碼是否使用了開發合作伙伴或供應商?他們的程式碼是否安全且符合Y2K標準?如果客戶有問題誰負責?

企業發現自己正處於一場文書風暴之中。各公司紛紛要求軟體供應商和開發合作伙伴提供具有法律約束力的合規性宣告。他們希望看到您的總體Y2K準備計劃,以及您的系統特定的Y2K程式碼審查和補救報告。

他們還想要一份宣告來驗證你的程式碼是Y2K安全的,如果在2000年1月1日或之後發生了不好的事情,你將承擔責任,他們將被免除責任。

1999,我在英國一家軟體公司擔任開發經理。我們生產與商務電話系統連線的產品。我們的產品提供了專業的自動呼叫處理日常依賴的呼叫中心。我們的客戶是該領域的主要參與者,包括英國電信(BT)、北電(Nortel)和Avaya。他們把我們重新定貨的產品轉售給全球數不清的客戶。

在這些巨頭的支援下,我們的軟體在97個不同的國家執行。由於時區不同,軟體也要經過1999年除夕夜的午夜,超過30次!

毋庸諱言,這些市場領頭羊感到有些暴露。他們想要確鑿的證據證明我們的準則是合規的。他們還想知道我們的程式碼審查和測試套件的方法是合理的,並且測試結果是可重複的。我們經歷了這場災難,但卻安然無恙。當然,處理這一切需要時間和金錢。儘管我們的程式碼是相容的,但我們必須經受住證明它的經濟打擊。

儘管如此,我們還是比大多數人都輕裝上陣。據Gartner估計,全球為應對Y2K所需的總成本在3000億至6000億美元之間,凱捷(Capgemini)為8250億美元。僅美國就花費了1000多億美元。據計算,數千人年的時間都用來解決千年蟲問題。

千禧年的黎明

沒有什麼比把錢放在嘴邊更好的了。1999年的除夕夜,2000年總統理事會主席約翰·科斯基寧登上了一架午夜仍在空中飛行的飛機。Koskinen想向公眾展示他對花費巨大、歷時多年的補救措施的信心,這些措施是為了讓美國的千年計劃做好準備。他安全著陸了。

非技術人員很容易回過頭來,認為千年蟲被誇大了,被過度炒作了,只是人們賺錢的一種方式。什麼都沒發生,對吧?那麼,有什麼大驚小怪的?

想象一下山上有個水壩,擋住了一個湖。下面是一個村莊。一個牧羊人向村裡宣佈他看到了大壩上的裂縫,而且不會持續超過一年。擬定了計劃,開始穩定大壩。最後,施工工作結束,預計的故障日期順利過去。

有些村民可能會開始嘀咕,他們知道沒什麼好擔心的,看,什麼都沒發生。就好像他們在確定、應對和消除威脅的時間上有一個盲點。

在《計算機世界》雜誌1993年的一篇文章中,彼得·德賈格爾被認為是將這一問題納入公眾意識的人。他繼續競選,直到受到重視。

隨著新千年的到來,德賈格爾也在從芝加哥飛往倫敦的途中。而且,和科斯基寧一樣,德賈格爾的航班安全抵達,沒有發生意外。

發生了什麼事?

儘管千方百計地防止千年蟲影響計算機系統,還是有一些案件漏網之魚。如果沒有網路,世界會發現自己的處境是不可想象的。

飛機沒有從天而降,核導彈也沒有自行發射,儘管有末日論者的預言。儘管美國一個跟蹤站的工作人員在觀察到俄羅斯發射的三枚導彈時確實受到了輕微的摩擦。

然而,這是在俄羅斯車臣爭端不斷升級之際,人為下令發射三枚飛毛腿導彈。不過,這確實讓人大吃一驚,心跳加速。

以下是發生的一些其他事件:

  • 日本的兩座核電站出現故障,很快得到了解決。這些斷層被描述為輕微的、無威脅的。
  • 丹麥新千年出生的第一個嬰兒的年齡登記為100歲。
  • 澳大利亞的巴士車票列印日期錯誤,被車票掃描硬體拒絕。
  • 埃及的國家通訊社失敗了,但很快就恢復了。
  • 美國的間諜衛星由於修正千年蟲的錯誤補丁被關閉了三天。
  • 一名男子向紐約一家音像店歸還了一份將軍女兒的複製件,卻收到了一張91250美元的賬單,因為他晚了100年才把磁帶帶回來。
  • 進入21世紀的幾個月裡,英國某地區的一位衛生官員發現出生時患有唐氏綜合症的兒童數量出現統計異常。在一月份,154位母親的年齡被錯誤計算,導致測試結果出現偏差。這些婦女的年齡使她們成為高危人群,但沒有被發現。如果風險被正確識別,母親們將接受羊膜穿刺術檢查。四個孩子出生時患有唐氏綜合徵,兩個懷孕終止。

遺產:20年後

還記得我們提到的那些關鍵年份嗎?正是這項工作讓人們和公司花了幾十年時間才真正解決了Y2K問題,有些系統仍然依賴於這一臨時解決方案,而且還在使用中。我們已經看到一些在役故障。

今年年初,紐約的停車收費錶停止接受信用卡付款。這是因為他們達到了他們的軸心年的上限。所有14000個停車收費表都必須單獨訪問和更新。

換句話說,大定時**催生了很多小定時**。

  • 發表於 2021-04-02 05:05
  • 閱讀 ( 15 )
  • 分類:網際網路

你可能感興趣的文章

海底電纜是什麼?它們為什麼重要?

在你的生活中,你可能經歷過數小時甚至數天的不穩定或緩慢的網際網路,有些中斷比其他中斷更嚴重。當這種情況發生時,無論你嘗試重新啟動你的家庭Wi-Fi多少次,它似乎不工作。 ...

  • 發佈於 2021-03-29 06:31
  • 閲讀 ( 67 )

網際網路上的5個可怕的角落會嚇壞鐵石心腸的恐怖迷

網際網路愛恐怖。從恐怖的故事和短片到恐怖的播客和遊戲,你可以在網上免費享受一段恐怖的美好時光。 ...

  • 發佈於 2021-03-29 21:28
  • 閲讀 ( 67 )

apple watch上的心率變異性(hrv)是什麼?為什麼它很重要?

心率變**(HRV)是最新的熱點健康測量。它被運動員用來最佳化他們的訓練,並作為健康的預測指標,包括在一些關於COVID-19的研究中。你的蘋果手錶會自動跟蹤它。以下是你需要知道的,以及為什麼它很重要。 Note: The author of ...

  • 發佈於 2021-03-31 11:35
  • 閲讀 ( 149 )

是什麼easyanticheat.exe,為什麼它在我的電腦上?

Fortnite和其他一些線上遊戲需要輕鬆的熱度。這個工具在你玩遊戲的時候監視你的電腦,試圖在第一時間阻止作弊者工作。如果它檢測到一個問題,你可以被禁止在網上玩遊戲。 什麼是易學熱(easyanticheat)? 易反作弊,由卡木...

  • 發佈於 2021-04-05 05:29
  • 閲讀 ( 80 )

什麼是googleplay服務,為什麼它會耗盡我的電池?

...幕,你可能會看到“googleplay服務”列在這裡。但它到底是什麼,為什麼要用這麼多電池呢? 什麼是谷歌遊戲服務(google play services)? googleplay服務比大多數應用程式更讓人困惑,因為它將Google的所有服務都包含在一個包中。在...

  • 發佈於 2021-04-06 18:59
  • 閲讀 ( 72 )

什麼是客戶機-伺服器執行時程序(csrss.exe檔案),為什麼它在我的電腦上執行?

...程序。此程序是Windows的重要組成部分。 相關:這個過程是什麼?為什麼它在我的電腦上執行? 本文是我們正在進行的系列文章的一部分,該系列文章解釋了taskmanager中的各種流程,如主程序, dwm.exe檔案, 輸入法, mDNSResponder.exe,r...

  • 發佈於 2021-04-07 08:22
  • 閲讀 ( 78 )

什麼是“執行時代理”,為什麼它在我的電腦上執行?

...在工作管理員視窗中發現了執行時代理程序,並想知道它是什麼,甚至可能想知道為什麼它有時會增加CPU使用率。我們有答案給你。 相關:這個過程是什麼?為什麼它在我的電腦上執行? 本文是我們正在進行的系列文章的一部...

  • 發佈於 2021-04-07 12:27
  • 閲讀 ( 60 )

什麼是“裝置關聯框架提供商主機”,為什麼它在我的電腦上執行?

...r Host”的程序的多個例項正在執行。如果你曾經想知道它是什麼,為什麼有這麼多,為什麼它可能會提高你的CPU使用率,我們已經為你找到了答案。 相關:這個過程是什麼?為什麼它在我的電腦上執行? 這篇文章是我們正在進...

  • 發佈於 2021-04-07 12:27
  • 閲讀 ( 54 )

這個過程是什麼?為什麼它在我的mac上執行?

... 安裝了什麼,為什麼在我的Mac上執行? WindowsServer的程序是什麼?為什麼它在我的Mac上執行? 什麼是blued,為什麼它在我的Mac上執行? 什麼是launchd,為什麼它在我的Mac上執行? 什麼是備份,為什麼它在我的Mac上執行? 什麼是db...

  • 發佈於 2021-04-07 13:16
  • 閲讀 ( 54 )

這個過程是什麼,為什麼它在我的電腦上執行?

... windows程序 這些是內建到Windows中的程序: 服務主機程序是什麼(主程序)為什麼這麼多人在跑步? 什麼是rundll32.exe?它為什麼執行? 什麼是桌面視窗管理器(dwm.exe檔案)為什麼它在執行? 是什麼ctfmon.exe檔案為什麼它在執行? 是...

  • 發佈於 2021-04-07 15:31
  • 閲讀 ( 52 )
u0d42d8g9
u0d42d8g9

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦