如果最近你的电脑出现了以下问题不要恐慌因为它又回来了!

2023-04-13 15:05:02 作者:小编

  小伙伴们是否还记得20年前,计算机千年虫问题(Y2K Bug)带来的社会恐慌吗?各大媒体大肆渲染报道计算机千年虫问题造成的社会危害,如:政府银行服务器时钟紊乱,股票期货交易出错,电力系统中断,交通陷于瘫痪等等。

  尽管大部分国家预防得当,并没有出现这些严重的后果,但仍然有部分国家如冈比亚、索马里等国家出现了电力中断,财政部、税局和海关无法运转的虫祸。

  千年虫问题产生的原因其实是由于计算机发展初期存储器的成本很高,如果用四位数字表示年份,就要多占用存储器空间,就会使成本增加。

  从而带来进行跨世纪的年份、日期处理时的计算错误,引发各种各样的计算机业务处理系统和控制系统的功能紊乱。

  现在20年过去了,2020年新年钟声已经敲响,千年虫问题这个计算机界曾经最大的bug并没有远去,可以说阴魂不散,又回来了,对社会生活又一次造成了影响。

  据报道,因为美国纽约公用事业公司(Utility company)的账单上显示日期把2020年认为是1920年,纽约市成千上万的停车收费表因为这个日期错误而拒绝了信用卡交易。

  纽约市交通局表示,停车计时器的信用卡支付软件设定在 1 月 1 日失效,导致了一起大规模故障(来源:The New York Times)

  波兰公司Novitus生产的数千台收银机因时钟故障无法打印收据,这家公司正试图修理这些机器。

  职业摔跤游戏WWE 2K20也于2020年1月1日午夜停止工作,在24小时内,游戏开发者2K发布了一个可下载的补丁。

  去年11月,另一款名为Splunk的软件被发现易受Y2020漏洞的攻击。该公司在同一周向用户推出了修复服务,其中包括92家《财富》100强企业,即美国前100强企业。

  其实做过程序员的都知道,有时为了解决一个bug,可能又会带来新的bug,有时还不只一个,现在确实这样的事情发生了。

  当年想要避免千年虫,程序员有两种广泛的选择:完全重写新代码(这种方法开发周期长,人力物力都成本高,可以说耗时耗力),或者采用一种称为“窗口(windowing)”的快速修复方法,它将把00到19之间的所有日期当作2000-2019年,把20到99之间的所有日期当作1920-1999年。

  相当于打了一个补丁,这个补丁可以撑过一段时间,但能不能长久就不知道了。据估计,在1999年修复的电脑中,有80%使用了这种所谓的更快、更便宜的方法。现在Y2K bug变成了Y2020 bug,千年虫问题推迟了20年爆发,那批偷懒的程序员差不多也该退休了,造成的黑锅怕是得让现在的程序员背了。

  他们当时的理论是,到2020年,这些用“窗口”方法修复的系统将会过时,但事实上许多仍在使用,在某些情况下,这个问题已经被遗忘了。

  当年处理千年虫问题的专家保罗洛马克斯(Paul Lomax)表示:“修复旧遗留系统中的bug是一场噩梦:它就像意大利面条,没有人还在写它。很明显,他们认为到2020年,他们的系统将长期停止使用。就像60年代的人不认为他们的密码在2000年还会存在一样。”

  那些使用快速修复的系统现在已经到达了窗口的末端,并退回到1920年。伦敦经济学院(London School of Economics)的迪伦穆尔文(Dylan Mulvin)表示:“‘窗口’方法是所有可能解决方案中最糟糕的一种,即便是在千年虫问题期间。”

  除了当年因为程序员偷懒造成的2020年问题,还有没有新的千年虫问题呢?现在计算机界普遍认为UNIX的2038年问题是下一个千年虫问题:

  UNIX是个古老的系统,普遍应用于银行、 电信、邮政、保险、铁道等部门,UNIX时间戳,或称UNIX时间、POSIX时间,是一种时间的计算方式,定义为从格林威治时间1970年01月01日00时00分00秒起至当前的总秒数。

  此类系统的时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒,时间再走一秒后时间戳数据将会溢出导致符号位产生变化,时间变化为1901年12月13日20时45分52秒。

  UNIX的2038年问题比Y2K的问题解决起来相对要容易一些,只要给那些程序换一个新版本的“标准时间库”就可以了,比如说,改用8字节64位的形式来存储时间。有2924多亿年,那时太阳系,宇宙还在不在?

  同样的Windows NT系统用的是64位操作平台,它的开始时间是1601年1月1日———但是它每过 1个纳秒就跳一下,因此,Windows NT它会碰到的是2184年问题,那时微软公司(如果还在的话)又会提出什么解决方法?

  人们因为当时硬件成本的原因,造成了千年虫问题,在解决千年虫时采用了简单廉价的方法,总是认为现在修修补补,过几年整个系统都要换了,不必要花大力气重新做一个。

  哪知过了20年,这些系统仍然在使用,又造成了2020年虫问题,当年的偷懒,今天付出了代价,当年欠的总归要还的,老一辈的程序员的黑锅,又得新一代程序员来背。

  我们的课程从 入门到实战项目 ,让你 快速掌握 企业所需 前沿技术 ,职坐标 助你在6个月 挑战高薪入职。

在线咨询 拨打电话