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

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

卡卷网10个月前 (11-29)每日看点169

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

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

浏览器的内核从头开看的话, 其实并没有那么多。 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

分享给朋友:

相关文章

重磅消息:多个知名盗版网站关闭,倡导正版付费,迎接正版时代

重磅消息:多个知名盗版网站关闭,倡导正版付费,迎接正版时代

近年来,互联网上的免费资源站点经历了前所未有的变革,尤其是那些深受用户喜爱的影视、动漫及软件下载平台。随着全球范围内对于知识产权保护意识的提升以及相关法律法规的不断完善,曾经风光无限的一些网站正逐渐退出历史舞台。例如,在2023年的夏天,一...

创业值得吗?

许多企业主会说,是的。企业所有权可能意味着利润以及一定程度的财务稳定性。此外,对于小企业主来说,它提供了摆脱朝九晚五工作限制的机会,这些工作可能不会给您带来快乐或成就感。也就是说,创业并非没有挑战——从提出一个有利可图的想法,到获得资金,再...

开发了个小程序,咋推广呢?

要是开发了个小程序,想推广的话,可以先从自己的朋友圈子下手,让亲戚朋友都帮忙转发宣传,这样能先有点人气。然后去一些跟你的小程序相关的论坛、社区啥的,发帖子介绍介绍,吸引有兴趣的人。还能找些网红、博主合作,要是他们觉得你的小程序不错,帮忙推荐...

计算机专业不干互联网不热爱技术,还能转行干什么?

转行的思路,无非也就是那几个。我们顺着每个思路,一路捋一遍,基本上,大致可行的方向,也就有了。一、跟对口职业和岗位业务链条相邻的职业和岗位计算机专业如果找到了对口的技术岗位,跟技术工作联系最紧密的岗位是什么?产品经理。当然,大多数产品经理也...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

MacOS真的比Windows流畅吗?

我现在公司配的机器,配置是绝对的大古董了惠普z230sff薄塔cpu只是个4770,没错不是4790k,4770全核睿频只有3.8g显卡更是古董,k600,已经结束驱动更新支持了,显存仅1g,跑分跑不过13代uhd核显内存是加到16g得,但...

发表评论

访客

看不清,换一张

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