2000年问题(又叫做“千年虫”、“电脑千禧年千年虫问题”或“千年危机”。缩写为“Y2K”。)是计算机系统程序中最严重的问题之一,该程序在计算机上造成了严重破坏并影响了全世界的系统。关于出现此问题的原因的一些背景知识–当计算机或网站要求您输入年份的后两位数字时,您是否注意到过?

计算机被编程为仅存储年份的最后两位数字,因为它节省了存储空间(四位数字与两位数)。假设1999年仅剩一天(99);一天后,系统将无法确定是2000年(00)还是1900年(00)。

2038年问题解决方案:

一个类似Y2k的问题本应在2038年出现,但是由于Linux 5.10中的XFS文件系统,它已经扩展到了2486年。为解决这个问题所做的更改是 – 在分配组中记录inode btree的大小会增加冗余检查并允许更快的挂载时间。

2,147,483,647是32位整数的最大值。在2038年1月19日星期二,正好是3:14:07,自1970年1月1日起的存储时间的值将等于一个32位整数的值,即2147,483,647,从而导致了这个问题。这里有一个简短的动画来说明会发生什么

一个“大时间戳”函数通过重构它们的时间戳和inode编码特性解决了这个问题。因此,时间戳现在将作为一个64位纳秒计数器处理,并进行位移位以扩展有效的度量,”Phoronix的人员在本文中说。

他们还补充说:“ XFS现在可以解决上一年2038年的问题(以秒为单位存储自1970年以来的时间,现在不会不会插入一个有符号的32位整数,因此可以将其封装),直到2486年。通过使启用了bigtime的全新XFS文件系统成为可能,该系统现在允许从1901年12月到2486年7月的时间戳。为了保持向后兼容性,目前默认情况下不启用大时间戳函数。”

发表评论