瀏覽器內(nèi)核的初步了解

市面上的瀏覽器的內(nèi)核和發(fā)展史:

瀏覽器最重要或者說核心的部分是“Rendering Engine”,可大概譯為“渲染引擎”,不過我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。負(fù)責(zé)對(duì)網(wǎng)頁語法的解釋(如標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用HTMLJavaScript)并渲染(顯示)網(wǎng)頁。 所以,通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息。不同的瀏覽器內(nèi)核對(duì)網(wǎng)頁編寫語法的解釋也有不同,因此同一網(wǎng)頁在不同的內(nèi)核的瀏覽器里的渲染(顯示)效果也可能不同,這也是網(wǎng)頁編寫者需要在不同內(nèi)核的瀏覽器中測試網(wǎng)頁顯示效果的原因。Trident

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

由于IE本身的“壟斷性”(雖然名義上IE并非壟斷,但實(shí)際上,特別是從Windows 95年代一直到XP初期,就市場占有率來說IE的確借助Windows的東風(fēng)處于“壟斷”的地位)而使得Trident內(nèi)核的長期一家獨(dú)大,微軟很長時(shí)間都并沒有更新Trident內(nèi)核,這導(dǎo)致了兩個(gè)后果——一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié)(2005年),二是Trident內(nèi)核的大量 Bug等安全性問題沒有得到及時(shí)解決,然后加上一些致力于開源的開發(fā)者和一些學(xué)者們公開自己認(rèn)為IE瀏覽器不安全的觀點(diǎn),也有很多用戶轉(zhuǎn)向了其他瀏覽器,Firefox和Opera就是這個(gè)時(shí)候興起的。非Trident內(nèi)核瀏覽器的市場占有率大幅提高也致使許多網(wǎng)頁開發(fā)人員開始注意網(wǎng)頁標(biāo)準(zhǔn)和非IE瀏覽器的瀏覽效果問題。

補(bǔ)充:IE從版本11開始,初步支持WebGL技術(shù)。IE8的JavaScript引擎是Jscript,IE9開始用Chakra,這兩個(gè)版本區(qū)別很大,Chakra無論是速度和標(biāo)準(zhǔn)化方面都很出色。

Trident內(nèi)核的常見瀏覽器有:[1]IE6、IE7IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);[1]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內(nèi)核,3.x為IE與Webkit雙核)、百度瀏覽器(早期版本)、世界之窗瀏覽器[2](最初為IE內(nèi)核,2013年采用Chrome+IE內(nèi)核)、2345瀏覽器、騰訊TT、淘寶瀏覽器、采編讀瀏覽器、搜狗高速瀏覽器(1.x為Trident,2.0及以后版本為Trident+Webkit)、阿云瀏覽器(早期版本)、瑞星安全瀏覽器、Slim Browser、 GreenBrowser、愛帆瀏覽器(12 之前版本)、115瀏覽器、155瀏覽器、閃游瀏覽器、N氧化碳瀏覽器、糖果瀏覽器、彩虹瀏覽器、瑞影瀏覽器、勇者無疆瀏覽器、114瀏覽器、螞蟻瀏覽器、飛騰瀏覽器、速達(dá)瀏覽器、佐羅瀏覽器、海豚瀏覽器(iPhone/iPad/Android)、UC瀏覽器(Blink內(nèi)核+Trident內(nèi)核)等。

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

Gecko

Gecko(Firefox內(nèi)核):Netscape6開始采用的內(nèi)核,后來的Mozilla FireFox(火狐瀏覽器) 也采用了該內(nèi)核,Gecko的特點(diǎn)是代碼完全公開,因此,其可開發(fā)程度很高,全世界的程序員都可以為其編寫代碼,增加功能。因?yàn)檫@是個(gè)開源內(nèi)核,因此受到許多人的青睞,Gecko內(nèi)核的瀏覽器也很多,這也是Gecko內(nèi)核雖然年輕但市場占有率能夠迅速提高的重要原因。

事實(shí)上,Gecko引擎的由來跟IE不無關(guān)系,前面說過IE沒有使用W3C的標(biāo)準(zhǔn),這導(dǎo)致了微軟內(nèi)部一些開發(fā)人員的不滿;他們與當(dāng)時(shí)已經(jīng)停止更新了的 Netscape的一些員工一起創(chuàng)辦了Mozilla,以當(dāng)時(shí)的Mosaic內(nèi)核為基礎(chǔ)重新編寫內(nèi)核,于是開發(fā)出了Gecko。不過事實(shí)上,Gecko 內(nèi)核的瀏覽器仍然還是Firefox (火狐) 用戶最多,所以有時(shí)也會(huì)被稱為Firefox內(nèi)核。此外Gecko也是一個(gè)跨平臺(tái)內(nèi)核,可以在Windows、 BSD、Linux和Mac OS X中使用。

補(bǔ)充:JavaScript引擎是SpiderMonkey。

Gecko內(nèi)核常見的瀏覽器:[1]Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位開源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon

Presto

Presto(Opera前內(nèi)核) (已廢棄): Opera12.17及更早版本曾經(jīng)采用的內(nèi)核,現(xiàn)已停止開發(fā)并廢棄,該內(nèi)核在2003年的Opera7中首次被使用,該款引擎的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致,然而代價(jià)是犧牲了網(wǎng)頁的兼容性。

實(shí)際上這是一個(gè)動(dòng)態(tài)內(nèi)核,與前面幾個(gè)內(nèi)核的最大的區(qū)別就在腳本處理上,Presto有著天生的優(yōu)勢,頁面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析。此外該內(nèi)核在執(zhí)行Javascrīpt的時(shí)候有著最快的速度,根據(jù)在同等條件下的測試,Presto內(nèi)核執(zhí)行同等Javascrīpt所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3(Trident內(nèi)核最慢,不過兩者相差沒有多大),本文的其中一個(gè)修改者認(rèn)為上述測試信息過于老舊且不完整,因?yàn)樗鲞^的小測試顯示Presto部分快部分慢,各內(nèi)核總體相當(dāng)。那次測試的時(shí)候因?yàn)锳pple機(jī)的硬件條件和普通PC機(jī)不同所以沒有測試WebCore內(nèi)核。只可惜Presto是商業(yè)引擎,使用Presto的除開Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770網(wǎng)絡(luò)瀏覽器等,這很大程度上限制了Presto的發(fā)展。

Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核。

Webkit

Webkit(Safari內(nèi)核,Chrome內(nèi)核原型,開源):它是蘋果公司自己的內(nèi)核,也是蘋果的Safari瀏覽器使用的內(nèi)核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟件,在GPL條約下授權(quán),同時(shí)支持BSD系統(tǒng)的開發(fā)。所以Webkit也是自由軟件,同時(shí)開放源代碼。在安全方面不受IE、Firefox的制約,所以Safari瀏覽器在國內(nèi)還是很安全的。

限于Mac OS X的使用不廣泛和Safari瀏覽器曾經(jīng)只是Mac OS X的專屬瀏覽器,這個(gè)內(nèi)核本身應(yīng)該說市場范圍并不大;但似乎根據(jù)最新的瀏覽器調(diào)查表明,該瀏覽器的市場甚至已經(jīng)超過了Opera的Presto了——當(dāng)然這一方面得益于蘋果轉(zhuǎn)到x86架構(gòu)之后的人氣暴漲,另外也是因?yàn)镾afari 3終于推出了Windows版的緣故吧。Mac下還有OmniWeb、Shiira等人氣很高的瀏覽器。

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。

WebKit內(nèi)核常見的瀏覽器:傲游瀏覽器3、[1]Apple Safari(Win/Mac/iPhone/iPad)、Symbian手機(jī)瀏覽器、Android 默認(rèn)瀏覽器,

Blink

產(chǎn)品簡介

Blink是一個(gè)由Google和Opera Software開發(fā)的瀏覽器排版引擎,Google計(jì)劃將這個(gè)渲染引擎作為Chromium計(jì)劃的一部分,并且在2013年4月的時(shí)候公布了這一消息。這一渲染引擎是開源引擎WebKit中WebCore組件的一個(gè)分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用。

相關(guān)新聞

2013年4月3日,谷歌在Chromium Blog上發(fā)表博客[3],稱將與蘋果的開源瀏覽器核心Webkit分道揚(yáng)鑣,在Chromium項(xiàng)目中研發(fā)Blink渲染引擎(即瀏覽器核心),內(nèi)置于Chrome瀏覽器之中。

蘋果在Safari中采用Webkit核心,并于2005年將Webkit公開為開源軟件。谷歌當(dāng)時(shí)采用蘋果的Webkit核心打造了Chrome瀏覽器。Opera也宣布稱將會(huì)轉(zhuǎn)向Webkit核心,但是谷歌宣布此舉后,Opera表示將會(huì)跟隨谷歌采用其Blink瀏覽器核心,同時(shí)參與了Blink的開發(fā)。

谷歌轉(zhuǎn)向研發(fā)Blink瀏覽器內(nèi)核意義重大,谷歌此舉欲降低Webkit即蘋果在瀏覽器市場的影響力。截止2012年底,Webkit瀏覽器內(nèi)核占總瀏覽器市場份額約40%。谷歌解釋稱,Chromium多處理架構(gòu)系統(tǒng)與其他Webkit瀏覽器很不相同。谷歌工程師Adam Barth在博客[3]中表示,隨著瀏覽器的發(fā)展,蘋果的Webkit已經(jīng)不能滿足用戶需求,同時(shí)也有礙瀏覽器技術(shù)的創(chuàng)新步伐。但是他也表示,谷歌自主研發(fā)Blink內(nèi)核絕非易事,但是新內(nèi)核將會(huì)提升整個(gè)開源網(wǎng)絡(luò)生態(tài)系統(tǒng)的機(jī)能。谷歌做出此舉之際,Mozilla與三星也達(dá)成合作協(xié)議開發(fā)“下一代”瀏覽器渲染引擎Servo。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容