1969年8月,貝爾實驗室的程序員肯湯普遜利用妻兒離開一個月的機會,開始著手創造一個全新的革命性的操作系統,他使用B編譯語言在老舊的PDP-7機器上開發出了Unix的一個版本。隨后,湯普遜和同事丹尼斯里奇改進了B語言,開發出了C語言,重寫了UNIX,新版于1971年發布。
那時的計算機操作系統是32位,時間用32位有符號數表示,則可表示 68 年,
用32位無符號數表示,可表示136年。
32位能表示的最大值是2147483647,另外1年365天的總秒數是31536000,
2147483647/31536000
68.1
也就是說32位能表示的最長時間是68年,而實際上到2038年01月19日03時14分07
秒,便會到達最大時間,過了這個時間點,所有32位操作系統時間便會變為
10000000000000000000000000000000
也就是1901年12月13日20時45分52秒,這樣便會出現時間回歸
的現象,很多軟件便會運行異常了。
到這里,我想問題的答案己經出來了:
因為用32位來表示時間的最大間隔是68年,而最早出現的UN以操作系統考慮到計算
機產生的年代和應用的時限綜合取了1970年1月1日作為UNTIME的紀元時間(開始
時間)
至于時間回歸的現象相信隨著64為操作系統的產生逐漸得到解決,因為用64位操作
系統可以表示到292,277,026,596年12月4日15時30分08秒,相信我們的N代子孫,哪怕地球毀滅那天都不用愁不夠用了,因為這個時間己經是千億年以后了。
時間來到了292,277,026,596年
未來的某程序員甲:為什么計算機表示只能到這個時間292,277,026,596?
未來的某程序員乙:因為在292,277,026,596年前,那個時候的人們覺得這個時候地球應該已經沒了吧!