瀏覽器核心的部分是“Rendering Engine”- “渲染引擎”,稱(chēng)為“瀏覽器內(nèi)核”。負(fù)責(zé)對(duì)網(wǎng)頁(yè)語(yǔ)法的解釋?zhuān)℉TML、CSS 的解析,頁(yè)面布局)并渲染(顯示)網(wǎng)頁(yè)。
不過(guò)現(xiàn)在,我們提起的“瀏覽器內(nèi)核”,大多包含了javascript引擎,如WebKit,它是WebCore排版引擎及JavaScriptCore解析引擎組合。
分類(lèi):
1、Trident(IE內(nèi)核):
該內(nèi)核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎(chǔ)之上修改而來(lái)的,并沿用到IE11,也被普遍稱(chēng)作”IE內(nèi)核”。Trident實(shí)際上是一款開(kāi)放的內(nèi)核,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟,因此才有許多采用IE內(nèi)核而非IE的瀏覽器(殼瀏覽器)涌現(xiàn)。
IE從版本11開(kāi)始,初步支持WebGL技術(shù)。IE8的JavaScript引擎是Jscript,IE9開(kāi)始用Chakra,這兩個(gè)版本區(qū)別很大,Chakra無(wú)論是速度和標(biāo)準(zhǔn)化方面都很出色。
還要說(shuō)一下,Window10 發(fā)布后,IE 將其內(nèi)置瀏覽器命名為 Edge,Edge 最顯著的特點(diǎn)就是新內(nèi)核 EdgeHTML。據(jù)說(shuō),M$ 瀏覽器開(kāi)發(fā)團(tuán)隊(duì)現(xiàn)在的態(tài)度是開(kāi)放、進(jìn)取、擁抱標(biāo)準(zhǔn)、與其他瀏覽器保持統(tǒng)一,聽(tīng)取開(kāi)發(fā)者和用戶(hù)的意見(jiàn)啦,快速迭代更新啦之類(lèi)的。
Trident內(nèi)核的迭代列表

Trident內(nèi)核的常見(jiàn)瀏覽器
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)
360安全瀏覽器(1.0-5.0為T(mén)rident,6.0為T(mén)rident+Webkit,7.0為T(mén)rident+Blink)
360極速瀏覽器(7.5之前為T(mén)rident+Webkit,7.5為T(mén)rident+Blink)
獵豹安全瀏覽器(1.0-4.2版本為T(mén)rident+Webkit,4.3及以后版本為T(mén)rident+Blink)
傲游瀏覽器(傲游1.x、2.x為IE內(nèi)核,3.x為IE與Webkit雙核)
百度瀏覽器(早期版本)
世界之窗瀏覽器(最初為IE內(nèi)核,2013年采用Chrome+IE內(nèi)核)
搜狗高速瀏覽器(1.x為T(mén)rident,2.0及以后版本為T(mén)rident+Webkit)
UC瀏覽器(Blink內(nèi)核+Trident內(nèi)核)
部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個(gè)內(nèi)核是Trident,然后再增加一個(gè)其他內(nèi)核。國(guó)內(nèi)的廠(chǎng)商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶(hù)可以來(lái)回切換。
2、Gecko(Firefox內(nèi)核):
Netscape6開(kāi)始采用的內(nèi)核,后來(lái)的Mozilla FireFox(火狐瀏覽器) 也采用了該內(nèi)核,Gecko的特點(diǎn)是代碼完全公開(kāi),其JavaScript引擎是SpiderMonkey。
Gecko內(nèi)核常見(jiàn)的瀏覽器:
Mozilla Firefox、Mozilla SeaMonkey、Flock(早期版本)、K-Meleon
3、Presto(Opera前內(nèi)核) (已廢棄):
Opera12.17及更早版本曾經(jīng)采用的內(nèi)核,現(xiàn)已停止開(kāi)發(fā)并廢棄。
Opera在2013年2月宣布放棄Presto,轉(zhuǎn)而跟隨Chrome使用WebKit分支的Chromium引擎作為其核心引擎。
在Chrome與2013年推出Blink引擎(也是基于WebKit的分支)之后,Opera也緊跟其腳步表示將轉(zhuǎn)而使用Blink作為瀏覽器核心引擎。
4、Webkit(Safari內(nèi)核,Chrome內(nèi)核原型,開(kāi)源):
它是蘋(píng)果公司自己的內(nèi)核,也是蘋(píng)果的Safari瀏覽器使用的內(nèi)核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來(lái)
Google Chrome、360極速瀏覽器以及搜狗高速瀏覽器高速模式也使用Webkit作為內(nèi)核(在腳本理解方面,Chrome使用自己研發(fā)的V8引擎)。WebKit 內(nèi)核在手機(jī)上的應(yīng)用也十分廣泛,例如 Google 的手機(jī) Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 內(nèi)核引擎,都是基于 WebKit。
很多人錯(cuò)誤的把Webkit叫做Chrome內(nèi)核,其實(shí)Chrome瀏覽器的內(nèi)核一開(kāi)始叫Chromium,后來(lái)又變成了Blink了,蘋(píng)果的Safari才是從一開(kāi)始就叫Webkit,后來(lái)又升級(jí)為Webkit2的。
2008 年,谷歌公司發(fā)布了 Chrome 瀏覽器,瀏覽器使用的內(nèi)核被命名為 Chromium。
Chromium fork 自開(kāi)源引擎 Webkit,谷歌公司還研發(fā)了自己的 Javascript 引擎,V8,極大地提高了 Javascript 的運(yùn)算速度。
Chromium 問(wèn)世后,帶動(dòng)了國(guó)產(chǎn)瀏覽器行業(yè)的發(fā)展。前面提到的,一些基于 Chromium 的單核,雙核瀏覽器如雨后春筍般拔地而起,例如 搜狗、360、QQ瀏覽器等等,無(wú)一不是套著不同的外殼用著相同的內(nèi)核。
WebKit內(nèi)核常見(jiàn)的瀏覽器:
Apple Safari (Win/Mac/iPhone/iPad)、Android 默認(rèn)瀏覽器。
5、Blink
2013 年 4 月 3 日,谷歌在 Chromium Blog 上發(fā)表 博客,稱(chēng)將與蘋(píng)果的開(kāi)源瀏覽器核心 Webkit 分道揚(yáng)鑣,在 Chromium 項(xiàng)目中研發(fā) Blink 渲染引擎(即瀏覽器核心),內(nèi)置于 Chrome 瀏覽器之中。Blink是一個(gè)由Google和Opera Software開(kāi)發(fā)的瀏覽器排版引擎,Google計(jì)劃將這個(gè)渲染引擎作為Chromium計(jì)劃的一部分。這一渲染引擎是開(kāi)源引擎WebKit中WebCore組件的一個(gè)分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用
此外,Mozilla與三星也達(dá)成合作協(xié)議開(kāi)發(fā)“下一代”瀏覽器渲染引擎Servo
順便說(shuō)一下,什么是Chromium計(jì)劃?
Chromium是Google為發(fā)展自家的瀏覽器Google Chrome(以下簡(jiǎn)稱(chēng)Chrome)而開(kāi)啟的計(jì)劃,所以Chromium相當(dāng)于Chrome的工程版或稱(chēng)實(shí)驗(yàn)版(盡管Chrome自身也有β版階段),新功能會(huì)率先在Chromium上實(shí)現(xiàn),待驗(yàn)證后才會(huì)應(yīng)用在Chrome上,故Chrome的功能會(huì)相對(duì)落后但較穩(wěn)定。
所以,Chromium和Chrome都是瀏覽器,Chromium是開(kāi)發(fā)版本,相比起Chrome更新速度快很多,有時(shí)數(shù)個(gè)小時(shí)就有一個(gè)新版本,不過(guò)普通人一般用Chrome就可以了。
再順便說(shuō)一下,為什么要新搞一個(gè)Blink內(nèi)核?
Blink 其實(shí)是 WebKit 的分支,如同 WebKit 是 KHTML 的分支。Google 的 Chromium 項(xiàng)目此前一直使用 WebKit(WebCore) 作為渲染引擎。
后來(lái),由于蘋(píng)果推出的 WebKit2 與 Chromium 的沙箱設(shè)計(jì)存在沖突,所以 Chromium 一直停留在 WebKit,并使用移植的方式來(lái)實(shí)現(xiàn)和主線(xiàn) WebKit2 的對(duì)接。這增加了 Chromium 的復(fù)雜性,且在一定程度上影響了 Chromium 的架構(gòu)移植工作。
基于以上原因,Google 決定從 WebKit 衍生出自己的 Blink 引擎(后由 Google 和 Opera Software 共同研發(fā)),將在 WebKit 代碼的基礎(chǔ)上研發(fā)更加快速和簡(jiǎn)約的渲染引擎,并逐步脫離 WebKit 的影響,創(chuàng)造一個(gè)完全獨(dú)立的 Blink 引擎。這樣以來(lái),唯一一條維系 Google 和蘋(píng)果之間技術(shù)關(guān)系的紐帶就這樣被切斷了。
Google 和蘋(píng)果在多個(gè)領(lǐng)域都是競(jìng)爭(zhēng)對(duì)手,而唯獨(dú)在瀏覽器引擎上有技術(shù)合作,利益一致。但為了各自的利益,誰(shuí)都不會(huì)拿出 100% 的 "誠(chéng)意" 來(lái)做好 WebKit,因?yàn)槟阕龀鰜?lái)的成果競(jìng)爭(zhēng)對(duì)手可以直接享用。移動(dòng)互聯(lián)網(wǎng)已經(jīng)崛起,手機(jī)和平板設(shè)備端必將成為瀏覽器的另一個(gè)戰(zhàn)場(chǎng)。這個(gè)時(shí)候,如果 Google 跟蘋(píng)果仍然黏在一起,將會(huì)嚴(yán)重阻礙雙方的進(jìn)步,也會(huì)阻礙 WebKit 的進(jìn)步。
據(jù)說(shuō) Blink 刪除了 880w 行 webkit 代碼。嘖嘖嘖……
最后
參考文章:
主流瀏覽器內(nèi)核介紹(前端開(kāi)發(fā)值得了解的瀏覽器內(nèi)核歷史)
各主流瀏覽器內(nèi)核介紹