被國產紅芯騙了?——瀏覽器內核了解一下

JS 引擎瀏覽器內核 = 渲染引擎 + JS 引擎。

後來網頁越來越複雜,JS 引擎獨立出來,遂:

瀏覽器內核 = 渲染引擎

所以我們下文所提到的瀏覽器內核統統指的是渲染引擎

二、常見的幾種 PC 瀏覽器內核

1、Trident —— IE

微軟當年為了抵抗當時主流的網景瀏覽器(Netscape Navigator),立馬收購另外一家瀏覽器公司 Mosaic,基於它的內核修改成了新的 Trident,開發出了 Internet Explorer,而且微軟為了推銷 IE,強制捆綁在了自家的操作系統中,從此網景瀏覽器日漸式微。

被國產紅芯騙了?——瀏覽器內核瞭解一下

過了很多年,2015 年 3 月 17 日,當 Window10 發佈時,微軟的內置瀏覽器改為了 Edge,Edge 最顯著的特點就是新內核 EdgeHTML這使 Internet Explorer 11 成為最後一個版本。

這裡還有個小插曲,當年微軟還為「Internet Explorer for Mac」開發了一套新的排版引擎,叫 Tasman。但微軟自 04 年就停止了對 Mac版 IE 的開發。

注1:IE 和 Edge 瀏覽器的渲染引擎不一樣,但是 JS 引擎都一樣,叫 Chakra

注2:國內的雙核瀏覽器其中一核便是 Trident,美其名曰 “兼容模式”。

2、Gecko —— Firefox

被國產紅芯騙了?——瀏覽器內核瞭解一下

Gecko瀏覽器引擎最早是網景開發的。但上面剛說到,微軟的 IE 阻擊網景瀏覽器的故事,最終以時代華納解散了網景公司收場,大部分開發者被解僱。於是 Mozilla 基金會亦在當天成立,繼續推動著 Gecko 的發展

而微軟的 Trident 內核長期一家獨大,很長時間都不更新,這導致了兩個後果:

(1)遺留了大量的 BUG 和安全性的漏洞

(2)跟 W3C 標準的脫節【 W3C(萬維網聯盟)是負責制定網頁標準的國際機構】

於是,針對 IE,Mozilla 基金會推出了自己的瀏覽器 Firefox,搭載的 Gecko 內核也祭出了自己的殺手鐧——開源,通過源代碼的開放,鼓勵全世界的開發者加入進來,解決了安全和速度問題。尤其是熱代碼加速這個全新思路,為 Firefox 打開了勝利之門。從剛開始被微軟取笑為“臭狐狸” Firefox 卷頭重來,到了跟 IE 形成分庭抗禮的局勢

不過,成也蕭何敗也蕭何。Gecko 再次犯了當年的錯誤——貪大求全,將郵件組、新聞組、聊天等流行應用都打包進了 Firefox,導致內存佔用問題。此外,Firefox 對 JavaScript 的支持並不好,反應遲鈍也開始被頻頻抨擊。這就給接下來上場的角色留下了超越的契機。

3、WebKit —— Safari

恕我無知,先前一直以為 WebKit 的谷歌開發的,沒想到是蘋果爸爸旗下的,即蘋果電腦中自帶的 Safari 瀏覽器,內核使用的就是大名鼎鼎的 WebKit

被國產紅芯騙了?——瀏覽器內核瞭解一下

WebKit 內核是蘋果基於 KDE(Linux 桌面系統)的 KHTML 引擎開發出來的,可以說 WebKit 是 KHTML 的一個開源的分支。當年蘋果在比較了 Gecko 和 KHTML 後,選擇了後者來做引擎開發,是因為相比 Gecko,KHTML 擁有清晰的源碼結構和極快的渲染速度,也實現了 JavaScript 腳本的快速解釋器調用。

WebKit 可以說是蘋果公司給開源世界的一大貢獻,基於此開源引擎,又衍生了多個 WebKit 分支,如下面要介紹的 Chrome 的瀏覽器引擎。

注:其實 WebKit 本身由兩個引擎構成的,一個是渲染引擎WebCore,基於 KDE 的KHTML,另一個則是 JS 引擎JSCore,基於 KDE 的KJS

4、Chromium —— Chrome

谷歌 Chrome瀏覽器從08年創始至今一直使用蘋果公司的

WebKit 作為瀏覽器內核,隸屬谷歌旗下的 Chromium 開源項目去做維護。Chromium 把 WebKit 的代碼梳理得可讀性和性能提高很多。

被國產紅芯騙了?——瀏覽器內核瞭解一下

注意,Chromium 是灰色而 Chrome 是彩色

每次新功能會先在 Chromium 上實現,待驗證後才會應用在 Chrome上。Chromium 一天最多可以更新十幾二十個版本,實驗性的新特性都會現在這裡放出,但是 Chromium 本身其實並不穩定;而 Chrome 總共有四個更新分支:Canary、Dev、Beta、Stable,穩定性依次增強。

Chromium 問世後,帶動了國產瀏覽器行業的發展。一些基於 chromium 的單核,雙核瀏覽器如雨後春筍般拔地而起,例如:搜狗、360、QQ 瀏覽器等等,無一不是套著不同的外殼用著相同的內核。

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

基於以上原因,2013年4月3日,谷歌在 Chromium Blog 上發表博客,Google 決定從 WebKit 衍生出自己的引擎(後由 Google 和 Opera Software 共同研發)自立門戶,即在 WebKit 代碼的基礎上研發更加快速和簡約的渲染引擎,並逐步脫離 WebKit 的影響,創造一個完全獨立的 Blink 內核,同樣隸屬於 Chromium開源項目下。這樣以來,唯一一條維繫 Google 和蘋果之間技術關係的紐帶就這樣被切斷了。

界面簡潔、加載快速、數據安全等這些特點讓 Chrome 越來越受喜歡,甚至好過於蘋果。

所以現在 Chrome 是全世界市場佔有率最高的瀏覽器。

注1:Chrome 的 JS 引擎叫 V8,也是大名鼎鼎

注2:國內的雙核瀏覽器其中一核便是 Chromium(Blink),美其名曰 “極速模式”。

國產紅芯就是基於 Chromium(Blink)的基礎上,套了個殼,所以稱為自主研發真的等於詐騙了。

被國產紅芯騙了?——瀏覽器內核瞭解一下

不過憑心而論,研發瀏覽器的內核難度非常大,不亞於搗鼓出半個操作系統,所以上面提到的幾大公司其實也沒有完全從零開始,都是基於之前成熟的開源引擎修改而來。哪怕這樣,據說 Google 公司 對 Chrome 的研發也投入了1000個工程師,持續 N 年,耗費了數百億。

5、Presto —— Opera

被國產紅芯騙了?——瀏覽器內核瞭解一下

Presto 也是 Opera 瀏覽器開發並服役近十年的老牌內核了。

但是前文提到,在 Chrome 於 2013 年推出 Blink 之後,Opera 也一同參與開發並牢牢跟進,於是 Opera 瀏覽器從 Presto 改為了 Blink

二、常見的幾種移動端瀏覽器內核

由於智能移動端發展歷史相對於 PC 很短,所以 IE、Opera 這些元老級瀏覽器內核很少見,移動端瀏覽器大都是從 Webkit 開始的

1、手機 OS 內置瀏覽器

(1)iPhone 和 iPad 等蘋果 iOS 平臺上是自家的 WebKit / WebKit2

同時,IOS 提供了WKWebView組件給第三方 APP 使用,可以實現瀏覽器功能。

(2)Android 4.4 之前的 Android 系統瀏覽器內核是 WebKit,Android 4.4 系統瀏覽器切換到了Chromium / Blink

同時,Android 提供了 Webview 組件給第三方 APP 使用,可以實現瀏覽器功能。

(3)Windows Phone 系統瀏覽器內核是 Trident。

Android 的微信是騰訊基於 Webkit 開發的 X5 內核

IOS 中 的微信因為系統的限制,只能使用系統自帶的 WKWebView 組件

3、第三方瀏覽器 App

大多都是基於 webkit 做了二次開發,如:

UC 是 U3內核

qq 瀏覽器是 X5內核


[全面瞭解瀏覽器(內核)發展史] https://www.jianshu.com/p/db1b230e3415

[維基百科]


分享到:


相關文章: