千禧虫又来了 微软证实「Y2K22」让信寄不出去
来源:倍可亲(backchina.com)22年前人类迎来资讯时代的第一个千禧年,由于电脑系统将时间程式设计为以西元的年份末两码,以节省储存空间,例如1999年就是以「99」显示,因此当1999年要进位成2000年时,可能会使电脑系统跳回「1900年」;此一问题在全球各国政府通力合作下顺利解决,不过最近微软的电邮系统Microsoft Exchange却面临类似的问题。
有Microsoft Exchange用户表示,他们的帐号无法正常收发信件,微软一查才发现问题源自于一款内建病毒扫描程式的命名方式。这款程式会在邮件寄出前扫描是否内含病毒并给予编码,编码的命名方式是日期加上四位数字,因此2022年1月1日扫描的第一封邮件就会被命名为「2201010001」。
然而,有些电脑的储存位元有31次方的限制,因此显示的数字最大不能超过2的31次方,即2147483648;这一问题截至去年年底前都不会发生,因为12月31日寄出的第9999封邮件仍在2的31次方的限制范围内;但2022年寄出的第一封邮件就超过最大容许值,导致系统无法正确为待扫描档桉命名,无法顺利寄出。
针对此一编程错误的问题,微软表示工程师已着手处理,不过仍要花费数天的时间才能解决;在此之前,微软建议用户可以暂时停用内建的病毒扫描程式,不过这可能会导致电脑暴露在一定的风险之中。微软在声明中说:「我们希望能够尽快向用户提供更新及所需要的操作指引,对于系统问题为用户带来的困扰,我们深感抱歉。」
32位元系统电脑 2038年也会再上演「千禧虫」
事实上,原本学界预估类似的问题最快要到2038年才可能上演,因为二进位制将在2038年1月19日3时14分07秒进位,导致大部分32位元系统的显示时间跳回1901年12月13日,不过届时还在使用的32位元系统大概非常少;而现在使用的64位元,时间计算方式可以到西元2922亿7702万6596年12月4日15时30分08秒前都不会有问题。