【发布时间】:2015-09-03 21:08:58
【问题描述】:
Linux 当前在 Linux 32 位上将 time_t 作为 32 位。这将在不到 25 年(抵押时间)内用完,并且 Linux 被嵌入在寿命超过 10 年的设备(汽车)中。这个平台有升级计划吗?
【问题讨论】:
-
没有万无一失的解决方案。计划是使用 64 位值(最近的桌面 Linux 发行版已经这样做了)。
Linux 当前在 Linux 32 位上将 time_t 作为 32 位。这将在不到 25 年(抵押时间)内用完,并且 Linux 被嵌入在寿命超过 10 年的设备(汽车)中。这个平台有升级计划吗?
【问题讨论】:
所有 Linux 内核都将使用 64 位 time_t 没有“设定”时间或时间范围。事实上,目前普遍的共识是它不会很快改变。还没有人真正担心它。就像 Y2K 一样,它会导致已经依赖 time_t 的代码出现问题。
有一些操作系统正在使用解决方法,即使用使 time_t 成为 32 位和 64 位整数的包装器。
而其他人刚刚强行升级 time_t 以使用 64 位整数。
更多信息请参考此链接: https://en.wikipedia.org/wiki/Year_2038_problem
【讨论】:
在 LWN 上有一些关于它的好文章(特别是系统调用)。看看System call conversion for year 2038
【讨论】: