Linux 5.10 將解決 2038 年問題,延長(zhǎng)至 2486 年
即將發(fā)布的 Linux 5.10 或?qū)ㄡ槍?duì) 2038 年問題(又稱 “Y2038” 或 “Unix Y2K” 問題)的進(jìn)一步修復(fù)。Linux 內(nèi)核郵件列表顯示,Oracle 文件系統(tǒng)開發(fā)人員 Darrick J. Wong 已提交了有關(guān) XFS 文件系統(tǒng)的代碼,其中添加了一個(gè)新功能以支持時(shí)間戳,直至 2486 年。
2038 年問題與千年蟲問題類似,它可能會(huì)導(dǎo)致某些軟件在 2038 年 1 月 19 日 3 時(shí) 14 分 07 秒之后無法正常工作。屆時(shí),在大部分 32 位操作系統(tǒng)上,依據(jù) “time_t” 標(biāo)準(zhǔn),時(shí)間將會(huì)“繞回”且在內(nèi)部被表示為一個(gè)負(fù)數(shù),并造成程序無法工作,因?yàn)樗鼈儫o法識(shí)別 2038 年,而可能會(huì)跳回 1970 年或 1901 年。
如 Phoronix 所述,XFS 支持了兩項(xiàng)新的 on-disk meta-data 功能,具體為:
分配組中現(xiàn)在會(huì)記錄 inode btrees 的大小。這樣做是為了增加冗余檢查,并允許更快的安裝時(shí)間。
支持直到 2486 年的時(shí)間戳。這個(gè)“大時(shí)間戳”功能是對(duì)其時(shí)間戳和 inode 編碼功能進(jìn)行重構(gòu),以將時(shí)間戳作為 64 位納秒計(jì)數(shù)器進(jìn)行處理,并通過移位來增加有效大小。現(xiàn)在,這使 XFS 可以很好地克服 2038 年的問題(在那里,以秒為單位存儲(chǔ)自 1970 年以來的時(shí)間將不再適合有符號(hào)的 32 位整數(shù),因此無法環(huán)繞)到現(xiàn)在的 2486 年。使用以下命令創(chuàng)建新的XFS文件系統(tǒng):?jiǎn)⒂?bigtime 允許的時(shí)間戳范圍是 1901 年 12 月至 2486 年 7 月,而不是 1901 年 12 月至 2038 年 1 月。為了保持向后兼容,默認(rèn)情況下當(dāng)前未啟用 big timestamps 功能。
此外,今年年初,Linux Kernel 5.6 的開發(fā)者也早就準(zhǔn)備好著手解決將在下一個(gè)十年到來的 2038 年問題。Linux 5.6 也是第一個(gè)為 32 位系統(tǒng)準(zhǔn)備運(yùn)行到 2038 年之后的主線內(nèi)核。
本站轉(zhuǎn)載自O(shè)SCHINA。
本文標(biāo)題:Linux 5.10 將解決 2038 年問題,延長(zhǎng)至 2486 年
本文地址:https://www.oschina.net/news/119343/linux-5-10-year-2038-problem-2486





























