Debian 13开始将采用64位时间格式 从而提前将Y2K38千年虫扼杀在摇篮里
2000 年时全球各地的计算机系统都因为千年虫问题损失惨重,出现这个问题的根本原因是多数软件通常只是用年份后两位来存储日历年数据,因此 2000 年与 1900 年没有本质区别。
现在还有个类似千年虫问题的是 2038 年,这个问题主要影响比较旧的 32 位架构,UNIX 时间戳从 1970 年 1 月 1 日 00:00:00 UTC 开始计算秒数,在 32 位的有符号整数中最大值是 2,147,483,647。
2,147,483,647 秒换算成时间也就是 2038 年 1 月 19 日 03:14:07 UTC,当越过这个秒继续 + 1 秒时时间戳会被重置为负数 (-2,147,483,648),这个时间代表 1901 年 12 月 13 日。
Debian Linux 最初是在 1993 年发布的,至今仍然还有企业在旧版 32 位架构上运行 Debian 系统,因此到 2038 年时很可能再次出现千年虫事件,所以 Debian 项目组准备提前解决问题。
具体来说从 Debian 13 开始即便在 32 位架构上也会采用 64 位的 time_t 格式,i386 将继续保留现有的 32 位 time_t 格式用来作为现有的 x86 二进制文件的兼容性架构
如果有足够的需求和资源,Debian 项目组还可以考虑创建新的 i686 架构以支持 64 位 time_t 格式,同时还会对 ISA 指令集架构进行更新以便提供更好的兼容性。另外 hurd-i386 内核缺乏对 64 位 time_t 格式的支持,Debian 项目组计划重点转向支持更现代的 hurd-amd64。
现在距离 2038 年还有 13 年,从现在就开始应对 Y2K38 并不算早,毕竟很多设备仍然运行旧版操作系统,这个问题也会影响旧版 Windows NT 系统和部分软件,所以到时候肯定还会出现小范围问题。








