常见的浏览器内核

1,040 阅读3分钟

前端开发值得了解的浏览器内核

内核

浏览器内核指的是什么?浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同,也就是相同一个网页可能在不同浏览器的表现不同的原因。JS 引擎则是解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。

市面上的浏览器内核大概有10多种,常见的浏览器内核有4种:Trident、Gecko、Blink、Webkit。

Trident

该内核是微软在Mosaic代码的基础之上修改而来的,一直沿用到IE11。Trident初期一家独大,微软很长一段时间都没有对其进行更新,导致了 Trident 内核曾经几乎与 W3C 标准脱节(2005年)以及大量 Bug 等安全性问题没有得到及时解决。很多用户转向了其他浏览器,Firefox 和 Opera 就是这个时候兴起的。

国内很多的双核浏览器的其中一核便是 Trident,美其名曰 “兼容模式”。Window10 发布后,IE 将其内置浏览器命名为 Edge,Edge 最显著的特点就是新内核 EdgeHTML。

Gecko

Gecko 的特点是代码完全公开,是一个开源内核,因此受到许多人的青睐,其可开发程度很高。Gecko 内核的浏览器也很多,例如Mozilla FireFox(火狐浏览器)。Gecko 内核的浏览器当属Firefox (火狐) 用户最多,所以有时也会被称为 Firefox 内核。

Webkit

提到 webkit,或许你会想到 chrome,可以说,chrome 将 Webkit内核 深入人心,殊不知,Webkit 的鼻祖其实是 Safari,Safari 所用浏览器内核的名称是大名鼎鼎的 WebKit。

WebKit 前身是 KDE 小组的 KHTML 引擎,可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后,选择了后者来做引擎开发,是因为 KHTML 拥有清晰的源码结构和极快的渲染速度。

Chromium/Blink

2008 年,谷歌公司发布了 chrome 浏览器,浏览器使用的内核被命名为 chromium。chromium fork 自开源引擎 webkit,却把 WebKit 的代码梳理得可读性提高很多,谷歌公司还研发了自己的 Javascript 引擎(V8),极大地提高了 Javascript 的运算速度。国内许多浏览器都有用到chromium内核,例如搜狗、360、QQ浏览器等等。

由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突,在一定程度上影响了 Chromium 的架构移植工作。谷歌在2013年4月3日宣布与Webkit 分道扬镳,将从 WebKit 衍生出自己的 Blink 引擎,在 WebKit 代码的基础上研发更加快速和简约的渲染引擎。

移动端

移动端的浏览器内核主要说的是系统内置浏览器的内核,目前移动设备浏览器上常用的内核有 Webkit,Blink,Trident,Gecko 等。

ios平台android4.4之前android4.4之后windows phone
WebKitWebKitChromium/BlinkTrident

总结

浏览器内核主要指的是浏览器的渲染引擎,2013 年以前,代表有 Trident(IE),Gecko(firefox),Webkit(Safari chrome 等)以及 Presto(opera)。2013 年,谷歌开始研发 blink 引擎,Blink 的出现,代表着 chrome 将自主研发渲染引擎(Blink)以及 Javascript 引擎(V8),chrome 28 以后开始使用,而 opera 则放弃了自主研发的 Presto 引擎,投入谷歌怀抱,和谷歌一起研发 blink 引擎,国内各种 chrome系的浏览器(360、UC、QQ、2345 等等)也纷纷放弃 webkit,投入 blink 的怀抱。