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

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

文章图片

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

文章图片

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

文章图片

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



首先可以明确的是 , 浏览器是少有的大型软件系统 , 其复杂性可以媲美我们每天使用的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 , 浏览器又必须进行大量开发工作 。