市面上的瀏覽器的內(nèi)核和發(fā)展史:
瀏覽器最重要或者說核心的部分是“Rendering Engine”料饥,可大概譯為“渲染引擎”岸啡,不過我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”赫编。負(fù)責(zé)對網(wǎng)頁語法的解釋(如標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用HTML奋隶、JavaScript)并渲染(顯示)網(wǎng)頁唯欣。 所以,通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎黍聂,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息身腻。不同的瀏覽器內(nèi)核對網(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ú)大僻焚,微軟很長時間都并沒有更新Trident內(nèi)核,這導(dǎo)致了兩個后果——一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié)(2005年)隙弛,二是Trident內(nèi)核的大量 Bug等安全性問題沒有得到及時解決,然后加上一些致力于開源的開發(fā)者和一些學(xué)者們公開自己認(rèn)為IE瀏覽器不安全的觀點(diǎn)叉寂,也有很多用戶轉(zhuǎn)向了其他瀏覽器总珠,Firefox和Opera就是這個時候興起的。非Trident內(nèi)核瀏覽器的市場占有率大幅提高也致使許多網(wǎng)頁開發(fā)人員開始注意網(wǎng)頁標(biāo)準(zhǔn)和非IE瀏覽器的瀏覽效果問題局服。
補(bǔ)充:IE從版本11開始,初步支持WebGL技術(shù)山涡。IE8的JavaScript引擎是Jscript唆迁,IE9開始用Chakra,這兩個版本區(qū)別很大鳞溉,Chakra無論是速度和標(biāo)準(zhǔn)化方面都很出色鼠哥。
Trident內(nèi)核的常見瀏覽器有:[1]IE6、IE7肴盏、IE8(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)核)等。
其中部分瀏覽器的新版本是“雙核”甚至是“多核”漾岳,其中一個內(nèi)核是Trident粉寞,然后再增加一個其他內(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)檫@是個開源內(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)時已經(jīng)停止更新了的 Netscape的一些員工一起創(chuàng)辦了Mozilla阅酪,以當(dāng)時的Mosaic內(nèi)核為基礎(chǔ)重新編寫內(nèi)核,于是開發(fā)出了Gecko术辐。不過事實(shí)上,Gecko 內(nèi)核的瀏覽器仍然還是Firefox (火狐) 用戶最多必孤,所以有時也會被稱為Firefox內(nèi)核瑞躺。此外Gecko也是一個跨平臺內(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á)到了極致莱没,然而代價是犧牲了網(wǎng)頁的兼容性。
實(shí)際上這是一個動態(tài)內(nèi)核饰躲,與前面幾個內(nèi)核的最大的區(qū)別就在腳本處理上,Presto有著天生的優(yōu)勢妄壶,頁面的全部或者部分都能夠在回應(yīng)腳本事件時等情況下被重新解析寄狼。此外該內(nèi)核在執(zhí)行Javascrīpt的時候有著最快的速度,根據(jù)在同等條件下的測試泊愧,Presto內(nèi)核執(zhí)行同等Javascrīpt所需的時間僅有Trident和Gecko內(nèi)核的約1/3(Trident內(nèi)核最慢,不過兩者相差沒有多大)屑埋,本文的其中一個修改者認(rèn)為上述測試信息過于老舊且不完整腋腮,因?yàn)樗鲞^的小測試顯示Presto部分快部分慢即寡,各內(nèi)核總體相當(dāng)。那次測試的時候因?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)俊啼,同時支持BSD系統(tǒng)的開發(fā)。所以Webkit也是自由軟件同木,同時開放源代碼跛十。在安全方面不受IE芥映、Firefox的制約远豺,所以Safari瀏覽器在國內(nèi)還是很安全的躯护。
限于Mac OS X的使用不廣泛和Safari瀏覽器曾經(jīng)只是Mac OS X的專屬瀏覽器丽涩,這個內(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是一個由Google和Opera Software開發(fā)的瀏覽器排版引擎袋坑,Google計(jì)劃將這個渲染引擎作為Chromium計(jì)劃的一部分枣宫,并且在2013年4月的時候公布了這一消息。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支洋幻,并且在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)時采用蘋果的Webkit核心打造了Chrome瀏覽器急迂。Opera也宣布稱將會轉(zhuǎn)向Webkit核心僚碎,但是谷歌宣布此舉后勺阐,Opera表示將會跟隨谷歌采用其Blink瀏覽器核心渊抽,同時參與了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ù)的創(chuàng)新步伐放典。但是他也表示壳影,谷歌自主研發(fā)Blink內(nèi)核絕非易事宴咧,但是新內(nèi)核將會提升整個開源網(wǎng)絡(luò)生態(tài)系統(tǒng)的機(jī)能掺栅。谷歌做出此舉之際氧卧,Mozilla與三星也達(dá)成合作協(xié)議開發(fā)“下一代”瀏覽器渲染引擎Servo怎栽。