距离 2038 年还有 21 年,听起来还很遥远,但对于寿命比较长的嵌入式系统来说,今天部署的系统到 2038 年可能还会继续提供服务。2038 年问题是指类 Unix 系统采用的是 32 位时间计数 time_t,计数从 1970 年开始,到 2038 年 1 月将会超过 2,147,483,647 秒。为了应对 2038 年问题,开源自由软件社区
正在三个方面展开了努力:内核方面是将 32 位时间戳转变成 64 位值,即使系统是 32 位,但一些 32 位时间戳出现在用户空间 API 中,增加了问题的复杂性;第二方面是 C 代码库,glibc 社区正在着手做这方面的工作,目标是实现完全的向后兼容,让程序在旧的内核上能使用 64 位时间戳,最小化干扰;第三个方面是发行版构建,大多数发行版到 2038 年不太可能还需要考虑 32 位系统,但 Debian 可能是例外。到 2038 年,绝大多数今天的设备可能早已失效,但基础设施使用的嵌入式设备也许还在使用,部分系统届时可能会发生故障,因此必须尽可能快的解决 2038 年问题。