ccidnet????

出版日期:1999-06-17 总期号:832 本年期号:42

本期导读
要闻综合
软件
网络通信
信息中国人
谁来填补rtc之“洞”

曹开彬

  笔者是从美国infoworld杂志中的一篇文章里注意到这个问题的。该文提到,infoworld测试中心的工程师在测试pc机上运行的windows nt 4.0的2000年符合性时发现,当时间跨越2000年时,操作系统windows nt 4.0显示年份不正确,是“0000”而非“2000”。但他们同时测试到该机的bios能正确显示年份“2000”,windows nt 4.0也是用四位表示年份。这就使他们感到奇怪,为什么bios能正确显示而操作系统却得不到正确结果呢?

  原因便是rtc在作怪。原来,windows nt 4.0是直接从计算机的rtc读取时间,而非从bios调用。由于所测试的pc机采用的是基于bios的y2k解决方案,因此,其rtc年份还是用两位表示。这样,当rtc时间不正确时,windows nt 4.0就无法得到正确的时间值。为此,微软已为windows nt 4.0发布了补丁程序。该程序使windows nt 4.0能将从rtc读取的时间自动转换成正确世纪信息(该补丁程序已被集成到windows nt 5.0中)。这使windows nt 4.0可以逃脱rtc的困扰,但对于其它直接从rtc读取时间的应用程序来说,这仍然是个“隐患”。对此,各pc机厂商的反应如何呢?

  事实上,对由于采用两位年的rtc芯片而存在2000年问题的pc,现在各大pc厂商,如ibm、hp、compaq、dell等,解决2000年问题的方案都是基于bios的。即在bios加入某个驻留程序,当系统开机时通过该程序强迫将世纪信息修正过来。厂商们也很清楚,这对于在跨越2000年时系统处于运行状态的计算机系统来说,仍然可能导致2000年问题。那为什么厂商们不直接从rtc入手,在根本上将pc机的2000年问题解决呢?dell说原因有二:(1)换rtc芯片是困难的也是不经济的,同时,加入一个新的rtc芯片也会使计算机的性能受到很大影响;(2)这是不必要的,因为极大多数的应用程序不会直接从rtc读取时间。dell曾经对1100个商业程序进行测试,没有发现一个会直接从rtc读取时间。dell的说法代表了大多厂商的态度。(注:本段素材来自各公司网站的相关内容。)

  但对于一个负责任的用户而言,他还是希望自己的计算机系统能够万无一失。这该怎么办呢?不要急,有办法。解决方法不外乎有硬件解决方案和软件解决方案。美国micro2000公司研制了一种centurion y2k卡。它可以从rtc、bios、闰年及时钟摆动(time dilation,或称crouch-echlin效应)四个方面解决y2k问题。该卡直接插在计算机的扩展槽里,即插即用。它在中国市场有售,由深圳新思维网络公司(它是美国电脑配件公司附属公司)代理。另外,英国普利塞斯出版有限公司(precise publishing co.ltd.)开发的软件y2000rtc也是从rtc,即最底层的系统实时时钟开始进行修复,从而使rtc、bios和操作系统的时钟一致的“y2k解决方案”。y2000rtc由塞尔怀斯有限公司(sellwisf illford ltd.)经销代理,在中国市场,由吉祥新技术进出口有限公司总代理。

  最后,还有个问题,即如何测试自己的pc机是否有rtc之“洞”呢?这儿介绍几个测试工具:一是美国nstl(国家软件测试实验室)的ymark2000,它可以在http://www.nstl.com/html/nstl-ymark2000.html处下载;二是yes2000,它可以在深圳新思维网络公司的网站http://www.sysway.com处下载。