chro|谷歌浏览器升级或引起网站瘫痪 为什么说开发浏览器比操作系统还难

前几天的消息,现在的谷歌浏览器版本已经到了98,测试版本已经到99,马上就要推出三位数的版本号了,即使是谷歌早已经开始预警,也不免会有很多网站因此导致显示异常或瘫痪。

chro|谷歌浏览器升级或引起网站瘫痪 为什么说开发浏览器比操作系统还难
文章插图
chrome浏览器logo

chro|谷歌浏览器升级或引起网站瘫痪 为什么说开发浏览器比操作系统还难
文章插图
谷歌浏览器当前的版本号
谷歌浏览器也叫Google Chrome浏览器,是谷歌在2008年9月发布的一款免费页面浏览器,据StatCounter统计,截至2020年1月,Google Chrome在全球桌面浏览器中有69.89%的占有率,基本上可以说是当前浏览器的一哥了。
你可能没见过这个名号,但其实你一直在用的很可能也是它,目前咱们经常用到的比如360极速浏览器,QQ浏览器,猎豹安全浏览器,搜狗高速浏览器等等,里面通常都会有所谓的“极速内核”或者“极速模式”这样的功能,其实就是启用了Chromium内核(谷歌浏览器对应的开源项目的名字,Chrome浏览器是非开源的)。
内核这个概念其实是我们常用的俗名,他的正式名字应该叫“浏览器引擎”或者“排版引擎”,其实全世界应用比较有名的浏览器引擎一共也没几个:
Mozilla开源项目的Gecko,现在主要是Firefox火狐浏览器在用;
KDE开源KHTML引擎后来发展成了Webkit引擎,目前主要是苹果Safari浏览器和谷歌chrome浏览器的iOS版本在用;
谷歌早期浏览器曾用Webkit引擎,后来自己建构了分支Blink,由于市占率比较大,所以影响力逐年扩大;
微软IE浏览器引擎名为Trident,俗称IE内核,很多老的政务网站有的还在用这个内核,就必须用IE内核的浏览器才能正常打开,后来被EdgeHTML取代,但显然效果不是很好,2019年微软放弃了自研内核,新的Edge浏览器也开始启用了Blink内核(也可以叫Chromium,二者有些相近,准确一点说应该是Chromium开源项目当中包含Blink内核以及其他东西);
Opera软件公司自研的Presto引擎,主要用在Opera欧朋浏览器之中,在2013年被Blink取代。

chro|谷歌浏览器升级或引起网站瘫痪 为什么说开发浏览器比操作系统还难
文章插图
常见的浏览器
了解了这些之后,是不是感觉好像这玩意也不是很难?之前有人曾经说过,重新开发一款浏览器,甚至要比重新开发操作系统更加困难,这个观点其实不无道理,不过所谓的困难其实都源于整个生态。
我们可以看到,目前这些世界通用的浏览器引擎几乎都是开源项目,其中很多的代码都来自于不同的人、组织贡献,正是因为这些人的共同努力,才让整个网页的生态建立起来,因为每个人网站网页的内容都是不一样的,复杂程度很高,虽然可能编程语言不是那么多,但为了达到更好的兼容性,只靠某一个人某一个组织显然是不够的,这也是源于当初的发展路线不同。
浏览器和操作系统一样,都需要跟整个地球上所有人互动,整个生态当中每个人的都会根据自己的习惯来做内容,想要让信息流动起来,那就要有统一的标准,本来微软是想靠着IE浏览器统一浏览器市场的,就像Windows操作系统做的那样,不过webkit等开源项目趁着微软偷懒的时候崛起,直接占据了绝大多数的市场,连微软都不得不放弃了自家的内核。
简单一点理解重新开发操作系统和浏览器的困难都来自于生态,一般的软件只需要面对同样使用我这个软件的用户之间不要出现信息传递的问题就行,比如微信、淘宝等等这些,他们只需要保证每个人发出的消息对方能准确收到,商家发布的产品信息能被大家准确看到就可以,大家都在特定的软件环境中运作,整个生态就这么小,所以相对没有太大的难度。
而重新开发新浏览器,就意味着你首先要对目前世界上所有的页面(至少是大多数主流的)做兼容支持,毕竟你不可能指望大家都针对你重新开发自己的页面,只有当你做到绝大多数都兼容之后,再加上你独有的优势功能,才会有人用你的浏览器。
而操作系统稍微有点区别,开发操作系统一般不需要先考虑对现有整个软件生态做兼容,而是要依靠操作系统建立起来之后再依靠整个业界帮你开发软件,也正是因为Windows操作系统的绝对市占率,才会导致绝大多数的软件生态都是针对Windows开发的软件生态,用户需要用的是软件,没有软件,何谈操作系统。
同理,没有对所有网页的兼容性,何谈浏览器。有人做了个比喻,开发自己的软件只需要保证自己没有BUG就行,而开发浏览器,你首先面对的是前人几十年留下来的各种BUG,你不能修改它,只能想办法兼容。