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

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

卡卷网1年前 (2024-11-28)每日看点285

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

分享给朋友:

相关文章

怎么免费看电视地方台和央视台?

怎么免费看电视地方台和央视台?

免费看央视和地方台,办法当然有,而且太多了,我怕你挑花了眼用不过来……首先题主需要明确一点,你家的电视需要是基于安卓系统的智能电视,能安装第三方安卓电视软件。比如小米电视、雷鸟电视等等;如果不是,你至少需要购置一个电视盒子,比如小米电视盒子...

腾讯文档回收站彻底删除文件真的找不回来了吗?

趁早打电话联系腾讯文档的人可能还有救,一般这种都是数据库里标记为删除,文件还没有实际删除,然后经过一段时间后程序统一进行真删除。这个“一段时间”可长可短,可能是一小时也可能是几天几个月甚至几年,要看腾讯服务器的程序是怎么写的。不过你联系腾讯...

你为什么讨厌抖音?

我就被抖音毁了。现在被我媳妇从抖音里拯救出来了。我为什么会这样说?我媳妇硕士在读,我文化程度相对就比较低了。大多数人看抖音其实就是为了一图一乐呵刚开始我也是这样的,我是2017年在朋友的推荐下注册了抖音,刚开始那时候对抖音不太上瘾,一周也就...

NAS那么好,为什么还是没能成为大多数家庭必备的存储设备?

NAS那么好,为什么还是没能成为大多数家庭必备的存储设备?

最主要原因是因为——贵!看看我家里搭建的这一套吧。目前我家中有5台常用的NAS,分别为群晖DS1522+、威联通TS-464C2、绿联DX4600 Pro 、极空间Z4S、威联通TS-AI642。个人认为,这其中的每台NAS都是时代的翘楚,...

MacOS真的比Windows流畅吗?

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

鸿蒙到底是不是安卓套壳?

鸿蒙到底是不是安卓套壳?

把它是不是套壳先放在一边吧。我讲一个事情,大家自己判断。华为有一个应用,叫手机管家。这个手机管家对一些系统底层设置有影响:比如华为从 EMUI 9 开始不允许将第三方启动器设置为默认启动器,依靠的就是这个手机管家。为什么这么说呢?在网上搜索...

发表评论

访客

看不清,换一张

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