社会焦点

到2038年1月19日那天,Unix时钟会失效吗?

字号+ 作者: 来源: 2017-05-01

到2038年1月19日那天,Unix时钟会失效吗?,unix不流行了吗,x3850可以装unix系统吗,unix中c语言文件复制,unix 能播放视频吗,unix时间戳转换工具

  如果你密切关注Linux领域的发展和动向,肯定了解2038年错误(Year2038 bug)。这个问题之所以会存在,是由于到了2038年1月19日那天,可以用Unix带符号的32位整数时间格式表示的最新时间是03:14:07 UTC。之后,使用标准时间库的C程序会开始遇到日期问题。

  2000年问题又叫千年虫或Y2K问题,这是与日历日期的格式和存储有关的计算机错误。这个问题之所以会出现,是由于早期计算机中的存储空间很昂贵。于是,为了减少存储空间,程序员使用了六位数的MMDDYY日期格式。由于程序能够为年份YY添加19,它节省了资金,但缩减了文件和数据库的大小。然而,这种程序发现很难区别2000年、1900年和19100年。

  为了解决这个问题,多国政府专门成立了委员会,确保关键基础设施解决了这个问题。现在,类似的2038年问题成了全球计算机世界的另一个问题。

  2038年问题又叫Unix千年臭虫或Y2K38错误。在时间值以带符号的32位整数来存储或计算的数据存储情况下,这个错误就有可能引发问题。

  可以用Unix带符号的32位整数时间格式来表示的最新时间是2038年1月19日03:14:07UTC,这是1970年1月1日之后过了2147483647秒。过了那个时间后,由于整数溢出,时间值将作为负数来存储,系统会将日期读为1901年12月13日,而不是2038年1月19日。

  用简单的语言来说,Unix机器最终将会耗尽存储空间来列举秒数。所以,到那一天,使用标准时间库的C程序会开始出现日期问题。你可以在维基百科上详细阅读更多的相关内容(https://en.wikipedia.org/wiki/Year_2038_problem)。

  下面这个动画显示了2038年错误将如何重置日期:

到2038年1月19日那天,Unix时钟会失效吗?

  资料来源:维基百科

  目前,2038年错误没有什么通行的解决方案。如果对用于存储时间值的time_t数据类型的定义进行更改,依赖带符号的32位time_t整数性质的应用程序就会出现一些代码兼容性问题。假设time_t的类型被更改为不带符号的32位整数,那将加大最新的时间限制。但是,这会对由负整数表示的1970年之前的日期造成混乱。

  使用64位架构的操作系统和程序使用64位time_t整数。使用带符号的64位值可以将日期延长至今后的2920亿年。

  已有人提出了许多建议,包括以带符号的64位整数来存储自某个时间点(1970年1月1日或2000年1月1日)以来的毫秒/微秒,以获得至少30万年的时间范围。其他建议包括用新的库重新编译程序,等等。这方面的工作正在开展之中;据专家们声称,2038年问题解决起来应该不难。

  你觉得Linux中的2038年问题值得关注吗?欢迎留言交流!

相关阅读:

  • unix是微内核吗?
  • x3850可以装unix系统吗
  • unix 能播放视频吗
  • 时钟校准因子 失效
  • unix中c语言文件复制
  • unix下第三方安全工具
  • unix时间戳转换工具
  • unix不流行了吗
  • unix中怎么用vi编辑文件
  • 如何启动unix进程
  • unix的功能和特征
  • unix查看总内存
  • 相关推荐:

  • 华为史上最美操作系统,你绝对不能错过的EMUI5.0
  • 国产操作系统典范:deepin操作系统
  • 娱乐办公两不误!这个笔记本能把屏幕拔下来写字
  • 斗鱼响应新规加强监管,坚持打造优质精品直播
  • SpaceX 火箭爆炸原因确定:液态氧过冷成了固态
  • 华为Mate9中国版真机秀 你绝对没发现它有两种版本
  • 99%的人都不知道的微信高效使用术?
  • 乐视网一周蒸发88亿元 贾跃亭反思节奏发展过快
  • 似乎已经战胜传统渠道的小米 今年为什么被OPPO、vivo 打败?
  • 优雅商务风,性能一鸣惊人—TCL 950体验评测
  • 转载请注明出处。


    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章