火狐论坛现在叫什么(千年虫危机2.0,Chrome/Edge/Firefox用户看好了)

最近,有一件大事,搞得好几家科技巨头非常头疼。它被网友称为:「千年虫危机2.0」。





在说之前,机哥得先给机友们,简单回顾一下啥叫「千年虫」。


在2000年1月1日,全世界的电脑差点集体宕机。可能是计算机出现以来,最大的一次bug了。


但引发这个bug的原因,却是一件不起眼的小事。




上个世纪,电脑的存储空间非常小,所以大家尽可能节省数据量。


比如记录年份时,全世界约定俗成只保留后面两位数字。像「1996年」,只记下「96」。


来到2000年1月1日00:00,问题就出现了:


在电脑的世界,它不知道「00」是「2000年」还是「1900年」。


这就可能导致,某些特定程序计算出来的结果不对,更严重的会让电脑宕机。




而当时的电脑,已经应用在水、电等跟生活密切相关的行业,搞得大家慌得一匹。


还好有些程序猿提前想到了这问题,最终不至于闹到全世界出大bug。


火狐论坛

机哥本以为,以现在的科技水平,不会再出现同样的事情,现在看来还是高估了这些大公司。




就在最近,谷歌发出警告称:谷歌Chrome、微软Edge、火狐Firefox,今年(2022年)可能会出现,某些网站无法正常运行的情况。


吓得机哥手一哆嗦,如果某些装满学习资料的网站打不开的话,可咋整?




搞得大家这么紧张,是因为这三家浏览器加起来的市场份额,足足占了全世界72

%。




国内的情况也差不多,像第一名的谷歌Chrome浏览器,2021年还有45%的人用着。




它们要是出什么毛病,这影响可不小,怪不得被网友称作「千年虫危机2.0」。


只是这好端端的,怎么会出现这种情况?


当深入了解后,机哥发现背后的原因,让人忍俊不禁。


目前这三个浏览器的版本,如果以最新测试版来计算的话,分别是:


Chrome 97

Edge 98

Firefox 97


它们一般情况下,每6个星期就会进行一次大版本更新。


So,按时间推断,将会在今年上半年,到达版本号100。


像谷歌更是已经公布,Chrome 100将在2022年3月发布。


但问题就出在这里。这是这些浏览器有史以来,第一次出现三位数版本号的情况。




可能有机友会好奇,版本号多了一位,也不至于闹得很多网站不能运行吧?


这次的事情奇葩就奇葩在,很多网站在很多年前开发时,会使用「Duda」来开发,机友们只用知道它是一个网页设计工具包就行。


可能当时也没考虑这么多,只设定了读取浏览器前两位版本号。


比如说机哥这台电脑,有些网站会先搜索「Chrome/」关键词,然后读取它后面的「96」版本号。




所以,一旦变成「Chrome/100」,这些网站只会看到「10」,一下子变成古老的版本。


是的,就是这么简单的一个原因,酿出了大祸。


接下来,更加好笑的事情来了。


在好多年前,Duda把Chrome 40以及之前的版本号“封杀”了。只要检测到浏览器版本号低于40,网站就没办法正常打开。


所以说,Chrome 100,在它们眼中就是不该存在的玩意啊,赶紧杀掉杀掉。




搞得这段日子,在谷歌的开发者论坛上,很多开发者在“嘲笑”这种逻辑。


经过测试,无论是「99」还是「999」,它都能正常运行。但无论是「100」还是「10」,都会报错。


这不就是一个大乌龙么……



(这是一个特定程序,403为报错,200为正常)


于是前不久,机哥看到有网友质疑,这难道不是当初网站设计的时候,程序猿偷懒了,没考虑到日后的事情吗?




这里,情况或许比较复杂。


过去这么多年来,都没出过大事故,是因为Chrome上一次多出一位版本号,从9升到10,已经是2011年的事情了。


这10年来,一直保持两位数的版本号,自然相安无事。




机哥今天掐指一算,Chrome从2008年到2011年,只迭代了10个大版本,平均一年更新3个。按照这个速度,其实需要很久才能达到「100」。


而从2011年到2021年,谷歌仿佛打了鸡血。


十年时间更了差不多90个大版本,平均一年更新9个。


怪不得网友们都在吐槽:谁让你们乱刷版本号的,没有啥大更新,就敢升一个版本号。






但现在木已成舟,有没有法子解决这个事情呢?


不然明年搞得大家都上不了网,就非常可笑了。




机哥看到,目前谷歌想出了两套解决方案。


第一个是,赶紧在今年3月之前,找到那些会崩溃的网站……所以现在Chrome、Firefox、Edge都在不断联系相关的开发者。


甚至谷歌还在开发者网站,给开发者们做了个小工具,强制把浏览器版本号变成「100」,看看网站会不会崩掉。




只是,机友们想想也知道,这个方案的工作量有多大,短短时间要检测辣么多网站。


所以,谷歌还整了一套Plan B:




简单来说就是,以后版本号开头都是99,然后把主版本号放到后面。


比如说,Chrome 99.100、99.101、99.102……


这操作,高通骁龙8 Gen1直呼内行。


就像这位网友说到的,谷歌完全可以考虑99 Gen1、99 Gen2嘛。




不管怎么说,能解决事情就好……机哥上一次这么无语,还是上一次。


搞得几个科技巨头同时如此头疼的事情,可不多见。


所以很多网友,把这次事件称为「千年虫危机2.0」。




实际上,因为一个小小的原因导致bug的事情,这几年陆陆续续也出现了好几回。


像之前,有人把iPhone的日期调回1970年1月1日或之前,手机一旦重启就会变砖。




这是因为,1970.1.1是苹果系统的时间原点。


一回到那个时候,系统内部的时间值会得出一个「0」。再往前的日期,就是负数了,然后手机就傻了。


或许,设计出来的时候,也没想过有人这么闲得蛋疼,把时间调回去半个世纪以前吧。


后来苹果的解决办法倒也简单,把iOS系统的时间设置,锁定在2001年1月1日之后。



(苹果:通过系统更新解决)


所以说,手机、电脑这些精密仪器,还有跑在上面的App,我们用起来很简单,背后却一点都不简单。




很多时候,在设计时可能会带有时代的局限性,没把十几年后,甚至几十年后,也考虑进来。


或许,随着技术的发展、我们对数字世界认知越来越多,类似的事件才会减少吧。

您可以还会对下面的文章感兴趣

暂无相关文章

使用微信扫描二维码后

点击右上角发送给好友