当前位置:首页 > 每日看点 > 正文内容

自主研发一款浏览器内核的难度到底有多大?

卡卷网1年前 (2024-11-29)每日看点223

来来来, 让写过内核的人给你们聊一聊 ^^

其实内核分类啥的,真的没有那么复杂。 要了解难度啥的, 看看浏览器本身发展的历史会清楚很多。

浏览器的内核从头开看的话, 其实并没有那么多。 Google 的 Blink 来源于 苹果开源的 Webkit,而苹果的开源的 Webkit 来源于 KTHML, 属于 KDE 的一部分, 而 KDE 基于的 QT, 是 Trolltech 开发的, 很多 KHTML 的贡献者其实是来自于 Trolltech.

因此,Google Chrome 和 Safari 这个分支其实是来自于 Trolltech .

很多人不知道的是, Trolltech 也是一家挪威公司, 而且就在 Opera 的楼下。 他们是四楼, 我们是五楼。 我刚加入 Opera 的时候, 他们还和我们共享食堂。很多员工彼此都是好朋友,连代码都是部分共享的. 因此 KTHML 和 Opera 的自有引擎 Presto 架构非常类似。

自主研发一款浏览器内核的难度到底有多大?  第1张

Trolltech 山怪技术公司,对,就是这个山怪

现在你看到了吧, 内核架构其实就三个分支

  • KTHML, Opera -> Webkit -> Blink (Chome, Opera, Safari)
  • Netscape -> Firefox
  • Trident or whatever -> IE

两个系列是美国的,一个系列是挪威的。

然后有人就要问, 美国做这些东西很正常, 毕竟 IT 起步早,发展快。为啥挪威这种莫名其妙的国家也做浏览器, 还做得风生水起的。。

很大程度上和这个兄弟有关系。这个兄弟叫 Haakon Wium Lie, 也是个挪威人, 发明了 CSS. 然后做了 Opera 的 CTO.

Håkon Wium Lie - Wikipedia

Haakon 在 W3C 的影响力非常大, 毕竟 CSS 之父。 于是带了一大票挪威人在 W3C 里面制定标准。 当年我旁边办公室里面随便拎一个出来,都是 W3C 某个讨论组的主席啥的. 然后事情就比较有意思了。 CSS 规范里面其实非常多的地方定得非常的绕。 如果你去看 Opera 里面的一些 CSS 实现方法, 你会发现实现的非常优雅。而其他浏览器就更像七拼八凑出来的。这让我非常怀疑,其中这些规范是 Opera 实现好了, 再提出来的 ...

现在看清楚了吧。从历史原因来说,美国有资本优势,毕竟互联网泡沫还在, 而挪威有标准影响力。其他任何一个国家研发浏览器在那个时候来说, 都是费力不讨好的事情。

从技术上来说,浏览器研发的难度更多的像是一个系统工程。浏览器的各个组件研发难度其实都不大。

包括很多人认为的 Javascript engine。 其实除非像 V8 那样子往死里面优化,单纯的 javascript engine 其实相当独立且并不复杂

Opera 里面很长一段时间做 javascript engine 就一个人。javascript engine 和浏览器之间的耦合非常标准, 所以做 javascript engine 和 浏览器其他部分的人几乎没有交集。于是这个哥们长达数年时间, 自己跟自己开会,自己跟自己汇报,自己定计划。 最后离职的理由是和其他部门交流太少,实在是太孤独。。

做为系统工程,浏览器最大的挑战的是浏览器承载的网页是不确定的,虽然标准还在, 但是扛不住无限种可能。

比如你并不知道在明天在世界某个角落的人会不会发精神病在页面里面写上一万个 canvas. Opera 当年为了追求小巧, 解析器用的是简单的递归下降。 于是你也不知道是不是有一个精神病会写上一万层标签嵌套搞挂你的栈。

而无限可能带来的另外一个问题是: 你在解决一个新的可能时。你怎么知道没有搞挂另外一个已经解决过的可能呢?

如果是非主流浏览器, 解决这问题事情都需要靠暴力的, Opera 因为做得早,积累了非常多的回归测试。我记得放弃掉 presto 的时候, 大概 14 万个测试用例, 有一个服务器集群每天晚上都跑。 新的提交要是出现了回归,集群马上把报告用邮件自动发给提交者。

如果是主流浏览器,那就好办多了,只需要保证满足标准就行(比如 chrome), 或者不要自己砸自己老版本的浏览器(比如 IE). 因为网页反过来, 会来适配你,

于是如果你要研发一个浏览器内核,那你肯定是从 “非主流浏览器” 浏览器开始,要不然你像 Google 一样,找一个 “主流浏览器” 的内核二次开发,然后强行推广成为一个主流浏览器。

要不然就像 Opera 一样暴力解决。。

而技术本身,相对于系统工程本身,并不是很大问题。从某种意义上面,这和操作系统蛮类似的,不同的仅仅在于,浏览器需要适应无限可能的页面,而操作系统需要适应无限可能的硬件。

而我非常怀疑国内有任何厂商有耐心来做这个事情 。。。

[1] WebKit - Wikipedia

[2]The Qt Company - Wikipedia

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/11/2083.html

分享给朋友:

相关文章

百度收录又开始“作”了,用“快速抓取”替代“快速收录”

百度收录又开始“作”了,用“快速抓取”替代“快速收录”

作为国内不得不用的知名搜索引擎“百度”,对于网站收录的规则,又有新的升级。以前有个快速收录,我们可以通过WordPress插件,免费快速提交给百度。但是现在这个功能没了,取而代之的是“快速抓取”,如下图想要使用此功能,需要加入“VIP俱乐部...

每天5点就下班了,闲着也是闲着,有哪些副业可以推荐?

每天5点就下班了,闲着也是闲着,有哪些副业可以推荐?

今天整理了36个搞钱APP可以先接触学习看看,然后选定一个感兴趣的方向去精进要知道机会不是一下子来临的,而一定是你前期做了很多准备每天进步一点点,就像滚雪球一样希望所以女生,能够在2024年提升自己,立下一个新的搞钱Flag吧实用APP安利...

你是如何在不依靠工资收入的情况下赚到一万元的?

你是如何在不依靠工资收入的情况下赚到一万元的?

分享几个路子稳,门槛低,变现快,适合年轻人的靠谱的副业。绝对不是送外卖、滴滴、搬砖等等的苦力活,这几个副业都是能是性价比极高,还能让你快速成长的工作。想通过副业实现暴富、立马月入过万的同学,建议速速划走。今天撇哥就给大家分享100+个靠谱赚...

大量刷短视频,会让大脑变笨拙吗?

会。我曾经是一名高三学生,亲身实践过。当时集中突破语文,每天都在刷语文卷。然后有一天想躺一下刷手机,结果短视频刷完了,我再去看哪些文章,只觉头晕眼花,难以理解文字。不过好在这种情况是短时间的,过了一天我的能力又恢复了。在我看来,长期刷短视频...

打印速度慢,是不是打印机cpu不行?

打印速度慢,是不是打印机cpu不行?

打印机是机械设备,cpu内存硬盘它也有但这只是它的电控部分,打印机类似于汽车属于机电一体化设备和电脑不是一个类型的产品。很多人总是认为打印机和电脑是一类产品,实际上这是一个误区,电脑是it(Information Technology)信息...

Redmi 为什么可以把性价比做得那么高?

一位修手机的老大哥曾经跟我说过,红米1那个手机,除了处理器还凑活,其余零部件,就是市面上山寨机那种。其实红米性价比并不算极致,而且一直都有竞争者,从原来的群魔乱舞,到后来的荣耀,魅蓝,一加,再到现在的IQOO和realme。红米的方法也很简...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。