關(guān)于千年蟲
::這是四五年級寫的東西,一直待在草稿箱里看著扎眼,修改一下發(fā)出來罷
::可能有誤導(dǎo)內(nèi)容,建議自行從相關(guān)渠道了解
最近閑來無事,那就大概講講關(guān)于Y2K(千年蟲)和Y2K38(2038年問題)
千年蟲,也就是Y2K,是指在2000年會發(fā)生的各種關(guān)于計算機中時間計算的問題的統(tǒng)稱
在發(fā)明計算機沒多久的時候,還是二十世紀,那時的儲存空間的成本非常昂貴,儲存空間的單位以KB計
于是聰明的人們想出了一個辦法,用一個六位數(shù)表示時間,比如1965年12月12日,表示為65/12/12。但這個時間表示的系統(tǒng)有一個不可忽視的問題,那就是年份。
由于年份是四位數(shù)的,而這種用兩位數(shù)表示時間的方法必然固定住前兩位數(shù)字,而這兩個數(shù)字就是19,系統(tǒng)通過這種方式得到完整年份。當時的工程師們沒有太關(guān)注這一問題,以至于它在臨近千禧年之時才開始為人們所重視。因為計算機系統(tǒng)中的很多事件依靠著系統(tǒng)時鐘,所以當這個系統(tǒng)出問題的時候電腦也就失了智。舉個例子,設(shè)定于2000年1月1日執(zhí)行的軟件由于這個問題永遠都不會被執(zhí)行。當時的人們極度恐慌,因為交通,發(fā)電廠,通訊等等都依賴著計算機系統(tǒng),這也就意味著一但千年蟲發(fā)生,或?qū)⒆屨麄€社會癱瘓。人們慶祝新千年的同時也在擔(dān)心著這場災(zāi)難的到來,不過好在包括中國在內(nèi)的大部分國家都沒有受到千年蟲的影響,但也不意味著什么事都沒有。它還是造成了一定的經(jīng)濟損害。
接下來我們再講講y2k38也就是2038問題。注意,接下來的東西會有點難,仔細聽好,已經(jīng)明白它是怎么工作的人請自行跳過。
在諸如Windows,Linux一類的主流系統(tǒng)中,普遍使用unix時間戳來表示時間,這個時間戳的長度根據(jù)系統(tǒng)位數(shù)而定。32位系統(tǒng)中,時間戳長32位,64位系統(tǒng)同樣
時間戳使用2進制表示時間
(未完待續(xù))