首页 上一页 1 2 下一页 尾页

软件中的2038问题讨论 点击:1982 | 回复:33



如火

    
  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-07-27 14:43:00
楼主
  在谈论2038问题时,我们要知道,并不是wonderware软件会有2038问题,基本上所有的软件(跟时间有关),从大规模的ERP、MES到自动化组态软件、办公软件、聊天软件,从大型工作站到我们用的手机通讯都可能会出现2038问题,所以我们不要太惊慌,但也不能回避。


  资料中显示Y2038 bug将于2038年1月19日(星期二)03:14:07am(GMT)正式爆发,届时人们对千年虫问题的预言可能将一一实现,比如手机网络工作不正常,卫星脱离轨道,型号较老的电脑软件软硬件无法正常工作等。

[b]  什么是Y2038 bug[/b]

  Time_t是C/C++等编程语言在内部代表/存储日期和时间的一种数据类型。Time_t实际上是一个代表秒数的整数,当它的值为0时,代表的时间是1970年1月1日12:00:00;当Time_t=60时,则表示1970年1月1日12:01:00,依此类推。

  所有32位电脑系统都用带符号32位整型来存储time_t的值,也就是说t_time只能用31位二进制数来表示(第一位用来表示正负号),而其最大值转换为十进制是2147483647,换算成日期和时间刚好是2038年1月19日03:14:07am(GMT),而这一秒过后,t_time的值将变成-2147483647,代表的是1901年12月13日8:45:52pm,这样32位软硬件系统的日期时间显示就都乱套了。另外,无法接受time_t为负值的其他功能也将返回错误。

  举个实际的例子来说,登陆上Yahoo messenger,给好友发个消息,恩没问题,现在把系统时间更改为2038年1月19日03:14:07am,此时如果再发消息Yahoo messenger就将崩溃。

[b]  为何担忧?[/b]

  也许有人觉得2038年还早着,无需担心这个问题。不幸的是,上世纪60年代的程序开发人员也抱有类似的错误想法,并由此导致了Y2K问题,给全球IT页带来数十亿美元的损失。

  要知道时间对于许多电脑程序来说都非常重要,操作系统、数据库程序、电子表格软件、实时控制系统等无不涉及到时间。因此我们必须在Y2038 bug爆发前做好充足的准备。

  尽管到2038年,桌面PC和服务器基本上都将升级到64位甚至128位,但仍会有许多使用中的32位甚至更古老的系统。即使是在32位系统盛行的今天,大多数嵌入式系统仍是8位或16位的,而小型嵌入式系统的数量其实比台式机更多。

[b]  如何应对?[/b]

  Y2038问题和Y2K一样难缠,其中一种解决办法就是用位数更多的数据类型来存储日期和时间。如果使用64位数据类型,time_t最大可以表示公元292000000000年,是宇宙估计年龄的20倍,最起码看到这篇文章的各位都不会再遇到什么YXXXX问题了。

  目前对于Y2038 bug的影响有多大还存在争论,但有一点可以肯定的是:有备无患。相信我们能像克服Y2K问题那样圆满解决Y2038问题。
 
    有人把2038问题称作“千年虫二世”,这个比喻非常恰当。 
 

    用32位元来记录时间,正值表示为1970以後,负值则表示1970年以前。我们可以很简单地计算出其时间领域:  

2^31/86400(s) = 24855.13481(天) ~ 68.0958(年)  

1970+68.0958 = 2038.0958  
1970-68.0958 = 1901.9042  

时间领域为[1901.9042,2038.0958]。  

准确的时间为2038年一月十八日星期一晚上十点十四分七秒。那一刻,时间将会转为负数,变成1901年十二月十三日黑色星期五下午三点四十五分五十二秒。 



马开明

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2006年8月02日
发表于:2006-08-02 12:13:00
21楼
 现在电脑技术一是千里,更新也是.即然们我想到了,在以后的必会加以克服.

hangqing

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 87回
  • 年度积分:0
  • 历史总积分:277
  • 注册:2005年3月01日
发表于:2006-08-02 21:53:00
22楼
sx sx

david2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 78回
  • 年度积分:0
  • 历史总积分:274
  • 注册:2006年7月25日
发表于:2006-08-03 11:56:00
23楼
还有30几年时间,根本不必担心.一切问题都将顺利解决.

竞松

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 158回
  • 年度积分:0
  • 历史总积分:193
  • 注册:2006年7月30日
发表于:2006-08-06 08:57:00
24楼
居安思危,提前做好准备.

天津博控

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 69回
  • 年度积分:0
  • 历史总积分:116
  • 注册:2006年3月10日
发表于:2006-08-07 11:27:00
25楼
千年虫不是也解决了,这个2038也一定会的

笔笔名

  • 精华:4帖
  • 求助:11帖
  • 帖子:290帖 | 1797回
  • 年度积分:1
  • 历史总积分:3209
  • 注册:2002年3月17日
发表于:2006-08-07 16:32:00
26楼
坏了好!!!!!!!坏了重新再设计,来点钱赚了。要不然我们喝西北风啊!哈哈!!!!!!!!!!

DWLZ

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 483回
  • 年度积分:0
  • 历史总积分:1405
  • 注册:2004年6月13日
发表于:2006-08-11 09:26:00
27楼
不用担心,船到桥头自然直.

june-123

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 42回
  • 年度积分:0
  • 历史总积分:125
  • 注册:2004年12月17日
发表于:2006-08-11 13:55:00
28楼
楼上的老兄说的很对,不需要像看热闹一样都去挤这个群,假如都去搞这个玩意,其他的活谁来干啊,我不相信他没有专业的人员,那里的过分拥挤都会造成不平衡。现在的失衡的事情,我看也不少了,。等2038解决了,说不定那个时候不知道怎么就有个飞弹落在我们的头顶了哦!!

Icewaver

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2006年8月12日
发表于:2006-08-12 11:04:00
29楼
应该不会有多大的问题

电笔

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 645回
  • 年度积分:0
  • 历史总积分:785
  • 注册:2005年4月02日
发表于:2006-08-16 22:39:00
30楼
我认为,没必要担心.

18052344

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 177回
  • 年度积分:0
  • 历史总积分:301
  • 注册:2006年2月07日
发表于:2006-08-17 08:42:00
31楼
现在的项目到那时应该不会用了!

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-08-17 09:13:00
32楼
难说呀,用在生产线上的设备只要能正常使用,一般难于更换.
我们在现场还是能看到在WINDOWS 3.1下运行的系统! 93年左右的系统。
更严重的是:
    现在已是06年,出来的程序还是有这种或那种问题!

EAIL: DENG_LP@21cn.com
BLOG: http://blog.sina.com.cn/u/1239831253

孤灯下

  • 精华:1帖
  • 求助:0帖
  • 帖子:61帖 | 451回
  • 年度积分:0
  • 历史总积分:819
  • 注册:2005年4月10日
发表于:2006-08-18 14:49:00
33楼
就像上上楼所说的,船到桥头自然直,社会分工不同,会有人在着手解决此问题的.不过关心一下还是应该的.

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页