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


确实非常的复杂!

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

文章插图
首先可以明确的是 。浏览器是少有的大型软件系统 。其复杂性可以媲美我们每天使用的Windows系统 。
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
微软甚至放弃自家的IE和edge内核 。转而使用chrome内核 。chrome优秀是一方面 。更重要是开发浏览器内核太复杂 。太烧钱 。当然微软已经不是当年的微软了!
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
现在微软也在全力拥抱开源 。甚至在win10里面支持内置wsl的Linux内核 。如果说某一天我们使用的Windows系统 。基于Linux内核开发 。大家也不要太惊讶 。
随着微软加入chrome阵营 。chrome实力大增 。会加速甩开其他浏览器!说不定某一天苹果也宣布使用chrome内核!
从浏览器的基本功能来看 。其核心模块有:
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
我们知道 。目前web系统 。都是BS模式的 。也就是系统相关的页面 。发布在服务器端的 。
浏览器想要运行 。第一件事情就是向服务器请求页面代码 。
这就是网络请求 。浏览器的最基本功能之一 。
页面解析
请求到页面之后 。需要对页面进行解析 。先认识页面 。然后才能进行下一步工作 。
页面渲染
解析了页面之后 。就可以对页面进行渲染了 。渲染完成之后 。我们就看到了web系统的界面了 。
这些功能 。似乎看起来没有那么复杂!那浏览器的几千万行代码 。到底在实现了哪些复杂的功能呢?
模块代码量统计
稍后补充 。。。
此外 。现代浏览器还具备以下特点:
【据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?】
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
这意味着你不能简单调用操作系统的api来实现功能 。必须考虑跨平台问题 。还有可能要从头实现某些重要功能 。
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
Google专门为Google chrome打造了高性能的V8引擎 。来解释执行JS代码 。如今结合nodeJS 。V8引擎甚至已经在后端发力 。
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
也就是各种web标准要支持到位 。要做到上图一样 。360度无死角 。才能成为优秀的浏览器 。
HTML
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
HTML用来描述网站页面的界面骨架 。由一颗树形结构的HTML文档构成 。也称为DOM树 。
在HTML中 。记录了构成页面的各种控件及其位置 。参数等等基本结构 。页面加载的时候 。是最先下载HTML并解析的 。
HTML最新版本是HTML5 。其中加入了大量新特性 。浏览器必须支持这些最新的HTML特性 。才能算是一个合格的浏览器 。
CSS
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
CSS则是负责页面的美化装修 。什么前景色 。背景色 。圆角边框 。边框颜色 。边框大小等等 。基本上你能想到的界面调整参数 。CSS里面都应有尽有!这也正是浏览器的一个复杂模块 。目前最新版本是CSS3 。
JavaScript
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
界面骨架有了 。也可以做的非常漂亮 。尽善尽美了 。那页面的逻辑怎么办?
没错 。JavaScript就是负责前端页面的逻辑部分的 。从最早期的前端输入校验 。发展到如今的近乎万能 。JavaScript经历了漫长的发展 。
其中也经历了各种标准和版本 。目前的主流版本是ES6 。
浏览器为了支持最新的JavaScript 。也需要开发巨量代码 。
WebGL
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
WebGL是最近几年才火爆起来的一个特性 。他将web的渲染性能大幅提升 。
因为通过WebGL 。我们可以直接调用显卡进行渲染和计算 。
这使得在web端实现大型的三维引擎成为可能 。比如Three.js 。Cesium等等 。
为了支持webgl 。浏览器又必须进行大量开发工作 。
Web Assembly
据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

文章插图
前面说到了JavaScript 。使用JavaScript我们已经可以在web端实现大型三维引擎了 。
尽管如此 。还是不能满足我们目前对于web端的更为复杂的应用的效率要求 。还是有很多人认为JavaScript的速度慢 。

推荐阅读