Linux kernel 有没有修复Unix千年虫或Y2k38问题的指针?

Linux kernel 有没有修复Unix千年虫或Y2k38问题的指针?,linux-kernel,embedded-linux,Linux Kernel,Embedded Linux,我一直在回顾2038年的问题(Unix千年虫) 我读了,在那里我读了关于这个问题的解决方案 现在,我想将time\t数据类型更改为无符号32位整数,这将允许我在2106年之前保持活动状态。我在PowerPC上有带RTPatch的Linux内核2.6.23 是否有任何补丁允许我将PowerPC的time\t数据类型更改为无符号32位整数?或者任何可用于解决此错误的修补程序?time\u t实际上是在libc实现中定义的,而不是内核本身 内核提供了各种机制来提供当前时间(以系统调用的形式),其中许多

我一直在回顾2038年的问题(Unix千年虫)

我读了,在那里我读了关于这个问题的解决方案

现在,我想将
time\t
数据类型更改为无符号32位整数,这将允许我在2106年之前保持活动状态。我在PowerPC上有带RTPatch的Linux内核2.6.23


是否有任何补丁允许我将PowerPC的
time\t
数据类型更改为无符号32位整数?或者任何可用于解决此错误的修补程序?

time\u t
实际上是在
libc
实现中定义的,而不是内核本身

内核提供了各种机制来提供当前时间(以系统调用的形式),其中许多机制已经支持超过32位的精度。问题实际上是您的
libc
实现(
glibc
在大多数桌面Linux发行版上),它从内核获取时间后,以32位有符号整数数据类型的形式返回给应用程序

虽然理论上可以在
libc
实现中更改
time\t
的定义,但实际上会相当复杂:这样的更改将更改
libc
的ABI,反过来要求每个使用
libc
的应用程序也从源代码重新编译


最简单的解决方案是将系统升级到64位发行版,其中
time\t
已经定义为64位数据类型,从而完全避免了这个问题。

time\t
实际上是在
libc
实现中定义的,而不是内核本身

内核提供了各种机制来提供当前时间(以系统调用的形式),其中许多机制已经支持超过32位的精度。问题实际上是您的
libc
实现(
glibc
在大多数桌面Linux发行版上),它从内核获取时间后,以32位有符号整数数据类型的形式返回给应用程序

虽然理论上可以在
libc
实现中更改
time\t
的定义,但实际上会相当复杂:这样的更改将更改
libc
的ABI,反过来要求每个使用
libc
的应用程序也从源代码重新编译


最简单的解决方案是将您的系统升级到64位发行版,其中
time\u t
已定义为64位数据类型,完全避免了问题。

更多的是服务器故障问题?而不是服务器故障问题。您在2106年之前是否处于冷冻状态?你活着,活着。感受城市的破败和全身颤抖,我们活着,活着。。。。那是在2106年。。。(对不起,我无法抗拒!)更多的是服务器故障问题?不是服务器故障问题。您是否在2106年之前处于低温状态?你活着,活着。感受城市的破败和全身颤抖,我们活着,活着。。。。那是在2106年。。。(抱歉,我无法抗拒!)那么,对于2038年后仍将使用的嵌入式Linux 32位系统,有什么解决方案?还是我运气不好?那么,对于2038年后仍将使用的嵌入式Linux 32位系统,有什么解决方案?还是我运气不好?