所謂“千年蟲”,是指人類在2000年1月1日將遭遇由于時間錯誤而大面積計算機故障的Bug 。在32位的Unix系統(tǒng)上,這個Bug還會再出現(xiàn)一次,具體時間將在2038年。
這是因為早期計算機都是以 6 位數(shù)來存儲時間信息,即年、月、日各占兩位。到了二十世紀末,人們發(fā)現(xiàn)這種日期方法將導致計算機錯誤地將2000年識別為1900年,導致大規(guī)模計算機故障。
這個問題在當時得到了足夠的重視,但在一些以Unix 為系統(tǒng)的服務器、包括以Unix 為底層的系統(tǒng)上,還有一些小小的缺陷。
1970 年初,第一批互聯(lián)網設備開始出現(xiàn),人們急需一種統(tǒng)一時間,同步互聯(lián)網中的每一個設備。當時電氣和電子工程師協(xié)會(IEEE)成立了一個委員會,從 1970 年1月1日(UTC/GMT 的午夜)開始,用秒數(shù)計量時間,如果在Mac中打開終端,輸入“date +%s ”,就可查看到一串時間,這就是1970 年1月1日 0:00 到當前時間的秒數(shù)。在32 位系統(tǒng)中,這是數(shù)字最大為 2,147,483,483,647 ,對應的時間為 2038年1月19日凌晨 3 點 14 分。一旦超過了這個時間,在32 位的 Unix 系統(tǒng)中,時間就會回到1970 年。
幸運的是,這個問題只在32 位系統(tǒng)中才會出現(xiàn),如果換成64 位系統(tǒng),最大時間將延長到9,223,372,036,854,775,807 ,相當于2923 億年,對人類來說幾乎相當于無限時間了。
雖然目前主流的電腦和智能手機都已經邁向了64 位操作系統(tǒng),但在此之外還有其他設備底層采用了 Unix 系統(tǒng),例如某些洗衣機、智能臺燈、智能空調等,這些設備同樣會遇到這“千年蟲”問題 。
好在這些智能家具很可能沒有那么長的壽命,在遭遇“千年蟲”問題之前,它們可能就已經壽終正寢了。