2000年到来前,“千年虫”bug曾经引发了很大的恐慌,甚至不少影视剧中都有夸大的描写。不过在紧急磋商和“打补丁”之后,软硬件“无法正确处理2000年问题”的千年虫危机算是平稳度过了。但……事实真的如此吗?对于Unix类操作系统来说,它们其实还面临着同样的问题,那就是——2038年危机!(又称“Unix千年虫”)
该操作系统底层的日期数值,存储在一个32位的整数签名中,而起始点则是1970年1月1日。(还记得iOS里往前调时间让iPhone变砖的bug吗?)
问题在于,32位整数将于2038年1月19号的03时14秒遭遇“溢出”,从而让系统错误地将时光“回滚”到了1901年的12月13日。
或许有人觉得“问题怎么着也会在22年后才会发生”,但它对软件的影响其实迫在眉睫(尤其是规划未来事务的软件类型)。
随着时间的推移,我们将日期提前安排到2038年之后的情况会越来越多,而系统日期错乱所带来的影响亦将越发不可收拾——有鉴于此,该问题应该尽早全面解决。
不出所料的是,“Linux之父”Linus Torvalds一直对Linux内核代码变动保持着密切的关注,比如Arnd Bergmann所忧虑的虚拟文件系统内核切换接口(包含了百余由Deepa Dinamani打上的小补丁)。
一向爽直的Torvalds曾猛喷过自己是“越看越不爽”。有趣的是,同样于数月前提交的一些变动,却还没有被审查。XFS专家Paul Chinner自称是系统文件开发者,他在看过代码后说到:
在我试图让你重建补丁却被猛喷之后(正如Linus当前认为的那样),我撒手并没再看你们的补丁了。难怪没有其它文件系统维护者愿意把时间浪费在这件破事上面…
故事背景是大家希望给Linux内核带来预期中的高质量补丁,然而高层却无惧于开发者潦草了事(已有2次未通过审查),看来近期这些补丁代码是不会被提交到AI Viro的VFS分支作深入审查了。
总的来说,Torvalds仍准备将未来25年投入到帮助Linux征战桌面的事业上,所以即使在“2038 bug”爆发后,他仍有3天的时间去为Linux的未来“纠偏护航”。