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