2008年1月19日 千年虫+38 bug 30周年倒计时开始

我就是个世界17年前网络闲逛2289
2008年1月19日是一个值得注意的日期,它标志了Y2K38 bug30年倒计时开始。Y2K38是指Unix系统时间使用的32位整数将在2038年溢出。

从1970年1月1日开始,到2038年超过2^31,确切的时间是世界标准时2038年1月19日星期二凌晨03:14:07。

从1970年1月1日GMT00:00开始以s为单位存储时间的偏移,那么到2038年 这个偏移毫秒数将超过32位整型能保存的最大整数
(从1970年到2038年,共68年,共有 68?65?4?600=2144448000秒(约),是一个有符号整数(32位)所能表示的最大数,超过这个数,就变成负数)[separator]


在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作。所有使用POSIX时间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。这种时间表示法在类Unix(Unix-like)操作系统上是一个标准,并会影响以其C编程语言开发给其他大部份操作系统使用的软件。在大部份的32位操作系统上,此“time_t”数据模式使用一个有正负号的32位元整数(signed int32)存储计算的秒数。依照此“time_t”标准,在此格式能被表示的最后时间是2038年1月19日03:14:07,星期二(UTC)。超过此一瞬间,时间将会被掩盖(wrap around)且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实作而跳回1970年或1901年。错误的计算及动作可能因此产生。



目前并没有针对现有的CPU/操作系统搭配的简单解决方案。直接将POSIX时间更改为64位模式将会破坏对于软件、数据存储以及所有与二进制表示时间相关的部份的二进位兼容性。更改成无符号的32位运算器(integer)则会影响许多与时间改变相关的程序。

大部份64位操作系统已经把time_t这个系统变量改为64位宽。不过,其他现有架构的改动仍在进行中,不过预期“应该可以在2038年前完成”。然而,直到2006年,仍然有数以亿计的32位系统在运行中,特别是许多嵌入式系统。相对于一般电脑科技18至24个月的革命性更新,嵌入式系统可能直至使用寿命终结都不会改变。32位time_t的使用亦被编码于文件格式,例如众所周知的ZIP压缩格式。其能存在的时间远比受影响的机器长。 新的64位运算器可以记录至约2900亿年后的292,277,026,596年12月4日15:30:08,星期日(UTC)。

相关文章

CCTV报道分类信息网站又出现新应用

CCTV报道[color=#FF1493]北京58同城分类信息网[/color]又出现新的应用--技能换房租[swf=500,400]http://vhead.blog.sina.com.cn/pla...

我在上厕所,手都腾不出来--2006年牛人语录

1.关于收购这个话题简直是烦透了,最近所有的人都在给我打电话。我告诉对方:“我在上厕所,手都腾不出来。” ——王雷雷   尽管有时会被董事会批评说话“粗”,但在商业和技术上有敏锐感觉、执行力极强的王雷...

全世界都被帕丽斯玩了!

[img]http://img1.qq.com/luxury/pics/6351/6351140.jpg[/img]  帕丽斯有一句经典名言:“[color=#FF0000]People think...

揭秘:年薪60万的性感美人鱼

  澳大利亚悉尼水族馆“美人鱼湖”开幕当天,畅游在湖水里的金发“美人鱼”吸引了众人的目光。她就是33岁“职业美人鱼”的汉娜&m...

让孩子学会担当 ——  一场危机公关的教育深思

[color=#C0C0C0]罗宸妈妈的博客[/color][img width=250 height=250]http://img.blog.163.com/photo/8XAMW7twUepK7j...

河南电信老总一句话,毁灭上万网站

来源:[url=http://forum.techweb.com.cn/thread-165377-1-1.html]TechWeb-业界论坛[/url]2007年8月23日,看似平凡的一天,但对网站...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。