《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 18年后,我们还将再次遭遇「千年虫」

18年后,我们还将再次遭遇「千年虫」

2020-02-12
来源:新浪科技
关键词: 18年 再次 千年虫

  90后或许从来没听说过‘千年虫’,但80后们对这个词或许有所了解。所谓‘千年虫’,是指人类在2000年1月1日将遭遇由于时间错误而大面积计算机故障的BUG 。在32位的Unix系统上,这个BUG还会再出现一次,具体时间将在2038年。

1.jpg

  这是因为早期计算机都是以 6 位数来存储时间信息,即年、月、日各两位。到了二十世纪末,人们发现这种日期方法将导致计算机错误的将 2000 年识别为 1900 年,导致大面积计算机故障。

  这个问题在当时得到了足够的重视,但在一些以 Unix 为系统的服务器、包括以 Unix 为底层的系统上,还有一些小小的缺陷。

  1970 年初,第一批互联网设备开始出现,人们急需一种统一时间,同步互联网的中的每一个设备。当时电气和电子工程师协会(IEEE)成立了一个委员会,从 1970 年 1 月 1 日(UTC/GMT 的午夜)开始,用秒数计量时间,如果在 Mac 中打开终端,输入 date +%s ,就可查看到一串时间,这就是 1970 年 1 月 1 日 0:00 到当前时间的秒数。

2.png

  ▲ 红框内为时间戳

  在 32 位系统中,这是数字最大为 2147483483647 ,对应的时间为 2038 年 1 月 19 日凌晨 3 点 14 分。一旦超过了这个时间,在 32 位的 Unix 系统中,时间就会回到 1970 年。

3.png

  幸运的是,这个问题只在 32 位系统中才会出现,如果换成 64 位系统,最大时间将延长到 9,223,372,036,854,775,807 ,相当于 2923 亿年,对人类来说几乎相当于无限时间了。

  虽然目前主流的电脑和智能手机都已经迈向了 64 位操作系统,但在此之外还有其他设备底层采用了 Unix 系统,例如某些洗衣机、智能台灯、智能空调、或者一些电视。这些设备同样会遇到这些 BUG 。

  好在这些家具很可能没有那么长的寿命,在遭遇 Y2K38 这一 BUG 之前,它们可能就已经寿终正寝了。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。