原标题:又一个“千年虫”问题!Linux Kernel 5.6已着手应对

新十年伊始,Linux Kernel 5.6 的开发者已经准备好着手解决将在下一个十年到来的 2038 年问题(又称 “Y2038” 或 “Unix Y2K” 问题)。Linux 5.6 也成为第一个为 32 位系统准备运行到 2038 年之后的主线内核。

2038 年问题与千年虫问题类似,它可能会导致某些软件在 2038 年 1 月 19 日 3 时 14 分 07 秒之后无法正常工作。届时,在大部分 32 位操作系统上,依据 “time_t” 标准,时间将会“绕回”且在内部被表示为一个负数,并造成程序无法工作,因为它们无法识别 2038 年,而可能会跳回 1970 年或 1901 年。

现阶段,还没有针对 2038 年问题的通用解决方案。Linux 5.6 已率先做好准备,并极有可能反向移植到 5.4/5.5 稳定分支。

在 Linux 开发人员 Arnd Bergmann 寄给 Linus Torvalds 的邮件中,他提到,Linux Kernel 5.6 应该作为基础,使 32 位系统能够运行到 2038 年以后。他提出的 PR 包括对 time_t 的更改,即更改存储秒数(带符号的 32 位整数)。

Bergmann 表示,“我再次遍历了 time_t 的所有用户,以确保内核处于长期可维护的状态,用安全的替代方法替换了对 time_t 的所有剩余引用。该系列的一些相关部分被引入 nfsd,xfs,alsa 和 v4l2 树中。在 linux-mm 的五个分支全部合并之后,linux-mm 中的最后一组补丁将删除当前未使用的 time_t / timeval / timespec 类型和辅助函数,以确保没有新用户被合并。”

由于 2038 年问题,Unix 时间戳将在 2038 年 1 月 19 日溢出,因为它无法存储带符号的 32 位整数,并且将限制更新 32 位系统。

为了避免这一问题,根据 Bergmann 的说法,用户空间应用程序需要使用现代 Linux 内核系统调用,并且需要使用 GNU C Library 2.32 和 Musl libc 1.2 针对 64 位 time_t 构建用户空间。

最后,他还提到,64 位计算机上出现的所有 y2038 问题也适用于 32 位计算机。返回搜狐,查看更多

责任编辑:

2038年问题 linux内核5.6,又一个“千年虫”问题!Linux Kernel 5.6已着手应对相关推荐

  1. 阿里为Linux内核调度器提出一个新的”组平衡器”概念

    导读 随着越来越多的组织为了发展云计算等业务配置他们的服务器在应用程序之间共享 CPU 核心/资源,而不是专门分配 CPU 核心给单个应用程序/任务,中国公司阿里巴巴正在为 Linux 内核调度器提出 ...

  2. linux内核_Linux驱动编程的本质就是Linux内核编程

    由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点. 这篇文章将会帮助读者打下Linux驱动编程的基础知识. 本篇文章分为如下三个小节进行 ...

  3. Linux内核精选文章向读者汇报 | 相遇Linux

    本微信公众号精选人气文章向各位读者汇报: 人气最火: Linux实时补丁即将合并进Linux 5.3 投资自己: OS部门Linux死锁/hungtask/soft_hard/lockup分享视频报名 ...

  4. Linux源代码逐条解释,Linux内核源代码解释让你真正了解linux.ppt

    Linux内核源代码解释让你真正了解linux.ppt 解读Linux内核源代码让您真正明白Linux操作系统 序 一些基本概念 操作系统的基本概念 I386系统的基本概念 Linux简介 源码阅读和 ...

  5. Linux内核分析:完成一个简单的时间片轮转多道程序内核代码

    PS.贺邦   原创作品转载请注明出处  <Linux内核分析>MOOC课程    http://mooc.study.163.com/course/USTC-1000029000 1.m ...

  6. Linux内核分析2:一个简单的时间片轮转多道程序内核代码分析

    Lab2:一个简单的时间片轮转多道程序内核代码 席金玉   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002900 ...

  7. 如何安装新linux内核,详解Debian系统中安装Linux新内核的流程

    一直对Linux内核很有兴趣,但苦于入门不易,认真看了ldd前5章突然就来感觉了,光看不练不顶用,首先就需要环境搭建. 使用的是Debian 5.0,内核2.6.26,欲安装的新内核为2.6.28,这 ...

  8. go移植linux内核书名叫啥,Go语言移植Linux内核数据结构hlist

    hlist(哈希链表)可以通过相应的Hash算法,迅速找到相关的链表Head及节点. 在有些应用场景,比Go标准库提供的list(一种双向链表)更合适. 依照list.h中的源码,我实现了一个Go语言 ...

  9. linux内核主要功能模块不包括,嵌入式linux(贺丹丹等编著)课后习题答案

    第八章 一.填空题. 1.ARM-Linux内核的配置系统由三个部分组成,它们分别是Makefile.配置文件和配置工具. 2.配置工具一般包括配置命令解释器和配置用户界面,前者主要作用是对配置脚本中 ...

最新文章

  1. 使用C#调用外部Ping命令获取网络连接情况
  2. synchronized同步对象锁
  3. sqlite 使用 cte 及 递归的实现示例
  4. Java虚拟机运行流程
  5. linux(ubuntu)新建用户只有一个$问题,Ubuntu新建用户并指定目录
  6. ftp服务器在线查看文件内容,ftp服务器PDF文件在线查看的实现方法
  7. 在家“隔离”这1个月,阿里云视频云这些工程师都经历了什么?
  8. (软件工程复习核心重点)第八章面向对象方法学-第四节:面向对象建模之动态模型和功能模型
  9. 团队工作-------step2
  10. 如何才能快速提高自己的能力?!
  11. MySQL的字符集和校对规则,你都会了吗?
  12. pragma comment的使用
  13. Echarts y轴高度设置(宽度铺满整个父级高度)
  14. 论文翻译之Enriched Feature Guided Refinement Network for Object Detection
  15. 支付宝 收款通知 mysql_基于支付宝微信通知的一种个人收款回调方案(转)
  16. 28、完美的RestApi
  17. java后台查询手机号码归属地
  18. java基础--while循环实现A4纸折叠次数到珠穆朗玛峰高度
  19. 农行2021计算机专业面试题,2021年农业银行面试备考:半结构化往年面试题(五)...
  20. 电脑上怎么剪切、合并音乐

热门文章

  1. 标准BP算法详细解析
  2. omnifocus3透视 任务分类实例详解
  3. Linux下程序编译通过运行时提示error while loading shared libraries(动态链接库问题)
  4. Ubuntu18.04安装Xfce桌面与VNC远程工具
  5. redis 命令之获取缓存过期时间
  6. bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requested: lxml. Do you need
  7. 白内障有哪些征兆?出现这些症状尽快就医!
  8. 阿里云国际登录出现手机验证怎么办?
  9. VNPY_ 价差交易模块
  10. ISAR基本成像原理