浏览器内核
1. 简介
浏览器内核(Rendering Engine)的通俗解释就是渲染引擎
,负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页, 可认为包含排版引擎
和JavaScript引擎
两部分。
2. 内核分类
2.1 Trident
即IE内核
,IE8的JavaScript引擎是Jscript,IE9开始用Chakra,这两个版本区别很大,Chakra无论是速度和标准化方面都很出色。
使用Trident的常见浏览器有: IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);360安全浏览器(1.0-5.0为Trident,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)猎豹极轻浏览器,傲游浏览器(傲游1.x、2.x为IE内核,3.x为IE与Webkit双核)、百度浏览器(早期版本)、世界之窗浏览器 [2] (最初为IE内核,2013年采用Chrome+IE内核)、2345浏览器、腾讯TT、淘宝浏览器、采编读浏览器、搜狗高速浏览器(1.x为Trident,2.0及以后版本为Trident+Webkit)。其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换。
2.2 Gecko
即Firefox内核
,代码开源,JavaScript引擎是:SpiderMonkey(1.0-3.0)/ TraceMonkey(3.5-3.6)/ JaegerMonkey(4.0-)。
使用Gecko内核的常见浏览器:Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)。
2.3 Presto
Opera前内核(已废弃),Opera现已改用Google Chrome的Blink内核。
2.4 Webkit
即Safari内核
,Chrome内核原型,开源。它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore
排版引擎及JavaScriptCore
解析引擎,均是从KDE的KHTML
及KJS
引擎衍生而来。
WebKit内核常见的浏览器:傲游浏览器3、Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器。
2.5 Blink
即Google内核
,JavaScript引擎是v8
。常见浏览器:Chrome(28及往后版本)、Opera(15及往后版本)和Yandex。
3. 排版引擎
3.1 WebCore
WebCore
是苹果公司开发的排版引擎,它是在另外一个排版引擎KHTML
的基础上而来的。使用WebCore的主要有Safari、OmniWeb、Shiira、Swift等。
3.2 KHTML
KHTML
,是HTML网页排版引擎之一,由KDE所开发。该引擎以C++编程语言所写,并以LGPL授权。基于KHTML内核的内核:WebKit
、WebCore
。
4. JavaScript引擎
JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中。
SpiderMonkey
,第一款JavaScript引擎,用于Mozilla Firefox 1.0~3.0版本。TraceMonkey
,基于实时编译的引擎,其中部份代码取自Tamarin引擎,用于Mozilla Firefox 3.5~3.6版本。JaegerMonkey
,结合追踪和组合码技术大幅提高性能,部分技术借凿了V8、JavaScriptCore、WebKit,用于Mozilla Firefox 4.0以上版本。V8
,开放源代码,由Google丹麦开发,是Chrome浏览器的一部分。Chakra
(JScript引擎),中文译名为查克拉,用于Internet Explorer 9的32位版本。Carakan
,由Opera软件公司编写,自Opera10.50版本开始使用。KJS
,KDE的ECMAScript/JavaScript引擎,用于KDE项目的Konqueror网页浏览器中。Tamarin
,由Adobe Labs编写,Flash Player 9所使用的引擎。Nitro
,为Safari 4编写。JavaScriptCore
是苹果Safari浏览器的JavaScript引擎,最开始的 JavaScriptCore 是从 KJS(KDE 的 JavaScript 引擎)以及 PCRE 正则表达式的基础上开发的,是基于抽象语法树的解释器。2008 年重写了,叫做 SquirrelFish,后来是 Nitro。