瀏覽器內核趣聞

瀏覽器核心的部分是“Rendering Engine”- “渲染引擎”,稱為“瀏覽器內核”。負責對網頁語法的解釋(HTML、CSS 的解析,頁面布局)并渲染(顯示)網頁。
不過現在,我們提起的“瀏覽器內核”,大多包含了javascript引擎,如WebKit,它是WebCore排版引擎及JavaScriptCore解析引擎組合。

分類:

1、Trident(IE內核):

該內核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎之上修改而來的,并沿用到IE11,也被普遍稱作”IE內核”。Trident實際上是一款開放的內核,其接口內核設計的相當成熟,因此才有許多采用IE內核而非IE的瀏覽器(殼瀏覽器)涌現。

IE從版本11開始,初步支持WebGL技術。IE8的JavaScript引擎是Jscript,IE9開始用Chakra,這兩個版本區別很大,Chakra無論是速度和標準化方面都很出色。

還要說一下,Window10 發布后,IE 將其內置瀏覽器命名為 Edge,Edge 最顯著的特點就是新內核 EdgeHTML。據說,M$ 瀏覽器開發團隊現在的態度是開放、進取、擁抱標準、與其他瀏覽器保持統一,聽取開發者和用戶的意見啦,快速迭代更新啦之類的。

Trident內核的迭代列表

版本圖示

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雙核)
百度瀏覽器(早期版本)
世界之窗瀏覽器(最初為IE內核,2013年采用Chrome+IE內核)
搜狗高速瀏覽器(1.x為Trident,2.0及以后版本為Trident+Webkit)
UC瀏覽器(Blink內核+Trident內核)

部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個內核是Trident,然后再增加一個其他內核。國內的廠商一般把其他內核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶可以來回切換。

2、Gecko(Firefox內核):

Netscape6開始采用的內核,后來的Mozilla FireFox(火狐瀏覽器) 也采用了該內核,Gecko的特點是代碼完全公開,其JavaScript引擎是SpiderMonkey。

Gecko內核常見的瀏覽器:

Mozilla Firefox、Mozilla SeaMonkey、Flock(早期版本)、K-Meleon

3、Presto(Opera前內核) (已廢棄):

Opera12.17及更早版本曾經采用的內核,現已停止開發并廢棄。

Opera在2013年2月宣布放棄Presto,轉而跟隨Chrome使用WebKit分支的Chromium引擎作為其核心引擎。
在Chrome與2013年推出Blink引擎(也是基于WebKit的分支)之后,Opera也緊跟其腳步表示將轉而使用Blink作為瀏覽器核心引擎。

4、Webkit(Safari內核,Chrome內核原型,開源):

它是蘋果公司自己的內核,也是蘋果的Safari瀏覽器使用的內核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來
Google Chrome、360極速瀏覽器以及搜狗高速瀏覽器高速模式也使用Webkit作為內核(在腳本理解方面,Chrome使用自己研發的V8引擎)。WebKit 內核在手機上的應用也十分廣泛,例如 Google 的手機 Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 內核引擎,都是基于 WebKit。

很多人錯誤的把Webkit叫做Chrome內核,其實Chrome瀏覽器的內核一開始叫Chromium,后來又變成了Blink了,蘋果的Safari才是從一開始就叫Webkit,后來又升級為Webkit2的。

2008 年,谷歌公司發布了 Chrome 瀏覽器,瀏覽器使用的內核被命名為 Chromium。
Chromium fork 自開源引擎 Webkit,谷歌公司還研發了自己的 Javascript 引擎,V8,極大地提高了 Javascript 的運算速度。
Chromium 問世后,帶動了國產瀏覽器行業的發展。前面提到的,一些基于 Chromium 的單核,雙核瀏覽器如雨后春筍般拔地而起,例如 搜狗、360、QQ瀏覽器等等,無一不是套著不同的外殼用著相同的內核。

WebKit內核常見的瀏覽器:

Apple Safari (Win/Mac/iPhone/iPad)、Android 默認瀏覽器。

5、Blink

2013 年 4 月 3 日,谷歌在 Chromium Blog 上發表 博客,稱將與蘋果的開源瀏覽器核心 Webkit 分道揚鑣,在 Chromium 項目中研發 Blink 渲染引擎(即瀏覽器核心),內置于 Chrome 瀏覽器之中。Blink是一個由Google和Opera Software開發的瀏覽器排版引擎,Google計劃將這個渲染引擎作為Chromium計劃的一部分。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用
此外,Mozilla與三星也達成合作協議開發“下一代”瀏覽器渲染引擎Servo

順便說一下,什么是Chromium計劃?

Chromium是Google為發展自家的瀏覽器Google Chrome(以下簡稱Chrome)而開啟的計劃,所以Chromium相當于Chrome的工程版或稱實驗版(盡管Chrome自身也有β版階段),新功能會率先在Chromium上實現,待驗證后才會應用在Chrome上,故Chrome的功能會相對落后但較穩定。
所以,Chromium和Chrome都是瀏覽器,Chromium是開發版本,相比起Chrome更新速度快很多,有時數個小時就有一個新版本,不過普通人一般用Chrome就可以了。

再順便說一下,為什么要新搞一個Blink內核?

Blink 其實是 WebKit 的分支,如同 WebKit 是 KHTML 的分支。Google 的 Chromium 項目此前一直使用 WebKit(WebCore) 作為渲染引擎。

后來,由于蘋果推出的 WebKit2 與 Chromium 的沙箱設計存在沖突,所以 Chromium 一直停留在 WebKit,并使用移植的方式來實現和主線 WebKit2 的對接。這增加了 Chromium 的復雜性,且在一定程度上影響了 Chromium 的架構移植工作。

基于以上原因,Google 決定從 WebKit 衍生出自己的 Blink 引擎(后由 Google 和 Opera Software 共同研發),將在 WebKit 代碼的基礎上研發更加快速和簡約的渲染引擎,并逐步脫離 WebKit 的影響,創造一個完全獨立的 Blink 引擎。這樣以來,唯一一條維系 Google 和蘋果之間技術關系的紐帶就這樣被切斷了。

Google 和蘋果在多個領域都是競爭對手,而唯獨在瀏覽器引擎上有技術合作,利益一致。但為了各自的利益,誰都不會拿出 100% 的 "誠意" 來做好 WebKit,因為你做出來的成果競爭對手可以直接享用。移動互聯網已經崛起,手機和平板設備端必將成為瀏覽器的另一個戰場。這個時候,如果 Google 跟蘋果仍然黏在一起,將會嚴重阻礙雙方的進步,也會阻礙 WebKit 的進步。

據說 Blink 刪除了 880w 行 webkit 代碼。嘖嘖嘖……

最后

參考文章:
主流瀏覽器內核介紹(前端開發值得了解的瀏覽器內核歷史)
各主流瀏覽器內核介紹

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容