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

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

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

极度复杂,称之为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

分享给朋友:

相关文章

网页上的视频怎么下载呀?

网页上的视频怎么下载呀?

1、贝贝BiliBili - B站视频下载 https://xbeibeix.com/api/bilibili/ 贝贝BiliBili 是个 免费、免登录的bilibili视频下载工具,没有任何套路。把视频链接粘贴进去 → 输入验证码 →…

网易云音乐上看到过最触动的热评是什么?

网易云音乐上看到过最触动的热评是什么?

1. “昨天晚上洗澡的时候,我忘记拿毛巾了,喊了声妈妈帮我拿下毛巾, 正当我伸出左手准备接毛巾的时候,我愣了一下,又换了右手。” 希望你永远不会听懂这句话, 永远都不要懂。 ——网易云热评《关键词》 2. 小时候跟着父亲去城里卖西瓜,害…

荣耀magic 7 首发的应该都收到货了,感觉怎么样?

8号入手magic7,跟mate40pro比。 优点:1、电池真耐用,充电块,华为电池也是新换的但是明显荣耀耐用;2、系统明显快多了,mate40pro下半年开始卡的不行,实在受不了了。3、声音、震动效果提升明显,指纹反应灵敏很多。 缺点:…

为什么雷军身上没有酒色财气?

武大建校130周年时,雷军向母校个人捐款13亿。 在2023年8月14日晚上七点,雷总在国家会议中心举行的进行第四次年度演讲「成长」: 全篇都在谈成长、梦想,这么多年了,始终做到了知行合一,我相信酒色财气可能真不是他所追求的,一直追求的就像…

测试用例是怎么写的?

测试用例是怎么写的?

测试用例对于测试人员而言,虽说是最最基础的技能,但却非常重要。测试用例是支撑我们在测试道路上进一步学习其他测试技能的基本功。 那测试用例如何撰写,完整来说应该包含两部分内容: 内容1: 测试用例撰写(按照八大要素); 内容2: 测试用例(测…

数据分析人员需要掌握sql到什么程度?

数据分析人员需要掌握sql到什么程度?

能熟练用SQL进行统计分析,包括基本查询语句,聚合函数,连接,子查询,窗口函数等。作为现互联网的数据打工人,接下来我从 SQL必知必会和SQL学习方法两个方面来详细介绍~ 注意:对于传统企业和一些小公司,数据量级并不太大,这时只要掌握E…

发表评论

访客

看不清,换一张

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