浏览器内核,包括浏览器渲染引擎和JS解析引擎。负责对网页的语法进行解释并渲染(渲染再我另外一篇文章浏览器的渲染原理中有提到,有兴趣的小伙伴可以去看看。)
渲染引擎(Rendering Engine),决定了浏览器如何显示网页的内容以及页面的格式信息,浏览器内核的不同,因此对语法的解释不同,所以所渲染出的效果也不同。这也就是为什么我们写页面的时候需要兼容各种浏览器。
JS解析引擎则是解析JavaScript语言,执行JavaScript文件来实现网页的动态交互效果。
最开始两者的界限不是很明确,后期JS引擎独立出来之后,内核就更多用来表示渲染引擎,所以我们所说的浏览器内核大多指浏览器的渲染引擎。
现在主流的浏览器内核,四大金刚分别为:Trident、Blink、WebKit、Gecko
1、Trident:也称为IE内核,借助“windows”的势头早期处于垄断的地位,后由于长时间没有更新,与W3C脱轨和一系列安全性的问题,导致大多数用户转向其他浏览器。在其他几大内核浏览器的迅速发展下,IE的市占率仍然是大头,所以现在很多双核浏览器仍然把IE内核作为一种可支持的模式。大多国产和不知名的浏览器都使用的是IE内核。
常见IE内核的浏览器有:IE6~IE11;360浏览器;猎豹浏览器;百度浏览器(早期);搜狗浏览器;UC浏览器等。
2、Blink:由谷歌从WebKit fork 出的一套独立的渲染引擎,后与Opera共同研发。
这边先介绍一下Chromium。
Chromium相当于Chrome的工程版或称实验版,为了解决Chrome系统上的一些不足。
Chromium和Chrome有什么区别?
(1)新功能会率先在Chromium上实现,待验证后才会应用在Chrome上。
(2)Chromium的更新速度很快,每隔数小时即有新的开发版本发布。
(3)Chromium免安装,下载zip封装版后解压缩即可使用。Chrome虽然理论上也能免安装,但Google仅提供安装版。
(4)Chromium没有自动更新,Chrome有自动更新。
其实说白了两者是一样的东西,普通的人用Chrome就行了。
说回来Blink,Blink就是Chrome/Chromium中使用的基于WebKit fork出来的一套渲染引擎。
早期由于WebKit的出色表现,Chrome从创始至今一直使用的是WebKit(WebCore) 作为HTML/CSS渲染引擎,后来由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突,所以 Chromium 一直停留在 WebKit,并使用移植的方式来实现和主线 WebKit2 的对接。这增加了 Chromium 的复杂性,且在一定程度上影响了 Chromium 的架构移植工作。所以谷歌就下定决心与WebKit分道扬镳,靠Blink走出一条自己的阳光道。
Blink的横空出世,市场影响力不容小觑,像Opera家就摒弃了自家的内核而转向Blink的怀抱,而现在大多数国产的双核浏览器使用的也都是Blink内核,
3、WebKit:苹果家自己的内核,Safari内核&Blink内核的原型。像WebKit就是渲染引擎和解析引擎区分明确的内核,分别为渲染引擎WebCore(基于KHTML)及JavaScriptCore解析引擎(基于KJS)。特点在于源码结构清晰、渲染速度极快(其实这个特点是来源于其前身KHTML的)。缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。虽然市场范围有限,但是根据市调显示,目前市占率已经超过Opera的Presto,看来前景可观呀。
4、Gecko:开源内核,以C++编写的网页排版引擎,由网景通讯公司开发的,现在由Mozilla基金会维护。大多用于Firefox(火狐)浏览器。
现在部分浏览器的新版本都支持了双核,甚至多核。
双核浏览器:一个浏览器可以支持两个内核随时切换,现在双核浏览器大多是一个内核是Trident,然后再搭配一个其他内核,其他内核称为“高速浏览模式”,Trident则称为“兼容浏览模式”。
例如:
360安全浏览器(6.0为Trident+Webkit,7.0为Trident+Blink);
360极速浏览器(7.5前为Trident+Webkit,7.5后为Trident+Blink);
猎豹安全浏览器(1.0-4.2为Trident+Webkit,4.3及以后为Trident+Blink);
搜狗高速浏览器(2.0及以后版本为Trident+Webkit);
UC浏览器(Blink内核+Trident内核);
QQ浏览器(Trident+WebKit);
参考文献:《浏览器内核》:https://baike.baidu.com/item/%E6%B5%8F%E8%A7%88%E5%99%A8%E5%86%85%E6%A0%B8