当前位置:首页 > 每日看点

据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

卡卷网2年前 (2024-11-28)每日看点393

极度复杂,称之为IT界的火星计划都不为过。

连微软都没有能力再维护一套“跟得上最新标准”的内核而使用Chromium内核。准确地说,是指没有把握在有限的资源内(远超出其他小厂),纯粹通过自身的力量,开发出一套比Chromium更具有竞争力和商业价值的内核。


浏览器的复杂,涉及几个方面,稍稍点一下,不作展开:

1、排版与渲染。这一方面的设计,最早最早可以追溯回去Knuth老爷子的《The TeX Book》,诸如px、em、inch、baseline、vbox、hbox这些概念,最早最早都是为 TeX 排版创造出来的,用于字母的定位。CSS 3.0 那些变幻、动画,就更不提了。

2、多媒体,包括声频视频。在 Fabrice Bellard 大神的 ffmpeg 之上,还做了非常非常多的工作。需要处理各种播放格式的解码工作,这部分又分为硬件实现和软件实现。

3、JavaScript引擎。这里涉及编译原理、JIT优化、垃圾回收。

4、图形学。WebGL,底层D3X、OpenGL 适配,现在还多了一个 Mac 的 Metal。还要绕开NVidia、AMD、Intel显卡对各种驱动的可能出现的坑。

5、网络。包括完整实现HTTP协议、WebSocket协议、WebRTC协议,还有新协议诸如HTTP2、HTTP3等。对比与渲染与多媒体,这部分反倒是最不困难的,也是确定性最强的。

6、与OS的交互与优化。这部分至少3套代码,MacOS、Windows、Linux 各不同。

7、要实现好上万页的W3C标准,通过兼容性测试。

8、安全性。各平台实现的SandBox环境。


另一浏览器Firefox(谢谢指正)内核源代码,都还保留着Netscape浏览器的遗产,有些部分一行都没改过(或者说没有能力读懂,就没改),但还能跑还能用。


很多人会混淆“难”与“复杂”2个维度,用浏览器这个例子就很能说明这2个维度的差异。难。需要硬功夫去啃,强调的是特定领域的深度。复杂。涉及面广,强调的是多个领域相互配合。对于浏览器前面说的几点,你把每一点单独抽出来,啃个3年5年,总能啃出点成果。例如V8 JS引擎里头的语法解析部分,至少可以理解他怎么运作的。而对浏览器而言,你需要把上述不同领域的都摸一遍,摸清楚难点在那里,摸清楚与其他组件如何配合,可能3-5年也只能知道个大概。


一个浏览器,涉及了操作系统、图形学、编译原理三座大山的各个方面,需要各个组件精密地配合运作起来,否则就是排版错乱、音频视频变噪音等问题,直接导致产品不可用。


顺便为自己的愚蠢诚恳认错

据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?  第1张

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

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

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

分享给朋友:

相关文章

无人机真的是中国领先吗?

无人机真的是中国领先吗?

巧了这是。 捡到了一台大疆。应该是别人飞丢的。在草丛中泡过水,轴承锈死,电池鼓涨已,经没有维修价值了。但作为玩电子的,免不了要把它解剖,研究一番。那么,我们看看它的国产化率能有多少吧。图片说话: 解释一下吧。…

闲鱼上为什么会有人问都不问直接下单?

我去年卖一个荣耀90,挂的2200,最终成交2137.5元。 对方是一个高高壮壮的西北口音,要求的自取。 大概我吃过午饭,约了旁边的商场,那里有荣耀售后。 见了面,先看了手机,试了好一会儿,各种测试,没问题。 然后去了商场二楼的荣耀售后,让…

只有我一个人后悔升级鸿蒙next吗?

只有我一个人后悔升级鸿蒙next吗?

我有一台mate 60 pro,第一时间升级了“纯血鸿蒙”。 虽然功能并不完善,甚至有些简陋,但是我非常~非常不后悔升级鸿蒙next系统。 因为.... 这就是一款“大型养成系游戏“,给我平淡的生活提供了源源不断的情绪价值。 我每天特别…

有哪些是你用上了mac才知道的事?

用上了高端的Mac(已退货)才知道:原来文件夹里面的文件,你看到是8个,其实可能有12个。其中3个图标重叠在一起了,另外一个被拖动到屏幕外面了。 用上了高端的Mac(已退货)才知道:原来鼠标灵敏度有问题是因为系统内置了鼠标加速度,只能用控制…

如何判断 Java 工程师的基础知识是否扎实?

我来给你出几道大题,能答对70%,你就算基础扎实了。 第一部分 Java基础(27)1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法3. 引用类型:…

我真的需要有人帮我选耳机!!如何挑选第一款头戴式耳机?

我真的需要有人帮我选耳机!!如何挑选第一款头戴式耳机?

挑选第一款头戴式耳机时,应综合考虑多个因素。‌ 首要考虑的是佩戴舒适度,其次是音质、降噪效果、续航能力和蓝牙版本‌。‌佩戴舒适度‌:选择轻量化设计,单耳重量不超过200克,材质柔软透气,如亲肤仿蛋白皮,以提升佩戴舒适度。 ‌音质‌:大尺寸的…

发表评论

访客

看不清,换一张

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