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
[維基百科]
閱讀更多 小蔣不素小蔣 的文章