原文地址:http://user.qzone.qq.com/1449455002/blog/1336376565
目前瀏覽器產品繁多,網上經常有文章對各類瀏覽器進行比較,其中常常被提及的一個重要指標就是“瀏覽器內核”,究竟什麼是內核呢?
此外,雙核瀏覽器近幾年來異軍突起,迅速佔領了大片市場份額,那麼什麼是雙核瀏覽器?雙核和單核相比有什麼區別,優勢?
爲了解釋上述的疑問,給同學們提供“選擇瀏覽器”的依據,我們特地撰寫了此篇文章。
本文將爲您介紹以下幾個方面的內容:
1:什麼是瀏覽器內核;
2:瀏覽器內核的作用;
3:當前主流瀏覽器內核有哪些;
4:瀏覽器內核對我有哪些影響;
5:什麼是雙核?爲什麼要使用雙核?以及雙核的優勢。
瀏覽器內核其實就是瀏覽器的排版引擎,也被稱爲頁面渲染引擎(RenderingEngine)。所謂引擎,即對一組核心功能模塊的統稱,這組功能模塊提供API調用接口,供外部調用。
舉個例子而言:瀏覽器內核,相當於汽車的發動機部分,沒有發動機,汽車外表再漂亮也跑不動。
圖表 1 瀏覽器內核
那麼瀏覽器內核主要做什麼事情呢?如下表所示:
1:網絡功能:請求網絡鏈接,接收網頁數據; |
2:對網頁語法進行解析(HTML、JavaScript、CSS); |
3:對網頁進行佈局、渲染和顯示; |
由於不同的瀏覽器內核對網頁語法的解釋不盡相同,因此同一網頁在不同的內核的瀏覽器裏的展現有可能是不同,這也是網頁編寫者需要在不同內核的瀏覽器中測試網頁顯示效果的原因。
圖表 2 不同內核可能導致不同頁面效果
如果加上一些幾乎沒有什麼人在用的內核,那麼瀏覽器內核大約有10款以上,甚至更多,不過通常我們比較常見的大約只有四種。
一:四種主流內核
Trident(IE瀏覽器採用的內核)
Trident內核,又被很多人稱爲IE內核,這是由於該內核與微軟的淵源很深。爲了規範起見,我們將在下面的文章中將其統一稱爲Trident。該內核是微軟在Mosaic代碼的基礎之上修改而來的,於1997年在IE4中首次被採用,並一直沿用到目前的IE9。Trident爲閉源引擎,所以開發者無法直接修改或封裝該內核,不過微軟提供了相應的調用接口。
由於微軟將IE捆綁在Windows平臺上,所以在瀏覽器的內核領域,Trident很長時間內都是一家獨大。這種情況導致的後果有利有弊:
1:國內大量的網站插件(例如銀行網站的插件)都基於該內核支持的ActiveX格式,使得IE瀏覽器具有很強的普適性。舉例而言,大家通過網上銀行轉賬,基本都會使用IE瀏覽器;
2:Trident內核曾經在很長時間沒有更新(老大一般懶得動彈),幾乎與W3C標準脫節,其速度也差強人意;不過現在微軟已經致力於將其做得更好,如Win8消費者預覽版上的IE10就已經有長足的進步,對WebGL也提供了支持。
總的來說,Trident內核有點像以前的日不落帝國,佔領的地域廣闊(使用率高),是很長時間的霸主(幾乎所有的網站都會兼容他),保守而高傲,但現在由於受到諸多挑戰,而鬥志高漲,奮力前行,我們拭目以待其後續發展。
除IE瀏覽器外,目前世面上有很多采用Trident內核的瀏覽器涌現,如:Maxthon、The World、TT、GreenBrowser、AvantBrowser等。
WebKit(Chrome瀏覽器使用的內核)
WebKit其起源可追溯到KDE( KDesktop Environment )【1】。WebKit所包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟件,在LGPL【2】條約下授權,所以WebKit也是自由軟件,開放源代碼。
Apple將KHTML發揚光大,在其基礎上創建了WebKit分支,並推出基於該引擎的Safari瀏覽器,該瀏覽器是Mac OS X平臺默認的瀏覽器。此外,WebKit內核在手機上的應用非常廣泛,例如 Google 的手機 Gphone、Apple 的 IPhone, Nokia’s Series 60 browser 等所使用的 Browser 內核引擎,都是基於 WebKit。
挑戰微軟的,一般是Google,微軟的瀏覽器基於Trident,Google出產的Chrome瀏覽器則採用WebKit引擎。那麼兩個引擎有什麼區別嗎?
|
Trident |
WebKit |
是否開源 |
否 |
是 |
對HTML5的支持 |
支持小部分(在持續增加中) |
支持大部分在持續增加中) |
運行效率 |
一般 |
高效 |
文檔 |
接口描述文檔 |
文檔多,易於學習 |
代碼是否清晰 |
由於不開源,所以不知道 |
代碼清晰,易於維護與封裝 |
對網頁插件的支持 |
支持ActiveX插件,不支持NPAPI格式插件 |
從上面的論述可以看出,WebKit內核,是一個有很深背景(KDE、Apple)的新貴,在很多方面要優於Trident內核,但是,由於長時間以來,互聯網界廣泛使用IE瀏覽器,很多插件或多或少的依賴於Trident內核,這種習慣帶來的勢力範圍,不是WebKit內核可以取代的。所以很長時間內,這兩種內核必然是共生共存。事實上,已經有很多雙核瀏覽器出現了,即:同時基於Trident和WebKit,並可以在兩個內核間進行切換。
Gecko(Mozilla FireFox火狐瀏覽器採用的內核)
Gecko引擎是網景公司於1998年開發的。2003年7月15日,時代華納解散了網景公司,同時成立Mozilla基金會,繼續推動Gecko的發展。
Gecko完全開源,這點和WebKit是相同的。
說句實話,很難對Gecko和WebKit進行比較,因爲兩者都具有很大一批狂熱的追捧者。而我本人,也同時使用基於Gecko的Firefox,和基於WebKit的Chrome。當我覺得Firefox的網頁打開有點慢了,就會用Chrome開啓同樣的網頁;當我要上雅虎郵箱時,就會選擇Firefox。
不過從代碼的複雜度而言,Gecko要高於WebKit。Gecko因龐大與複雜的代碼基礎而頻遭詬病。基於Gecko的Firefox非常強大,但存在高內存佔用現象。
Gecko內核過於複雜的原因是:由於Mozilla龐大的野心,Gecko意圖提供除了HTML渲染之外的更多功能,如瀏覽器、郵件和新聞組程序、Web設計工具、IRC聊天工具。除了渲染HTML,Gecko還要提供一種應用廣泛的,基於XML的用戶界面生成引擎,XUL。XUL被用在所有這些程序中。XUL現在仍用在Firefox中,用來生成用戶界面,因此造就了Firefox最有價值的重多擴展應用。
Gecko 和 Webkit 之間有很多東西可以互相學習,無論誰替代誰都是沒有道理的,這不是“東風壓倒西風”,而是互補共存。
Presto(Opera瀏覽器採用的內核)
大名鼎鼎的Opera瀏覽器使用的是Presto內核。該款引擎的特點就是“快”,網絡上不少文章宣稱:Presto對JavaScript的解析有着最快的速度。不知道和Google的V8相比如何?很多測試文章的結論是:Presto內核執行同等JavaScript所需時間僅爲Trident和Gecko的1/3。
然而由於其商業引擎和閉源的特性,所以在很大程度上限制了Presto的發展與推廣。除Opera使用Presto,NDSBrowser、WiiInternet Channle、Nokia 770等也使用該引擎。
上述4種內核的一些基本情況,列舉如下:
|
開源 |
插件支持 |
應用瀏覽器 |
操作系統支持 |
Trident |
閉源,但提供調用接口 |
ActiveX |
Internet Explorer(IE) |
Windows |
WebKit |
開源,遵從LGPL協議 |
NPAPI |
Chrome、Safari |
Windows, Mac OS X, Linux/BSD |
開源,以多種許可協議進行授權發行,包括MPL、GPL和LGPL |
NPAPI |
Firefox |
Windows, Mac OS X, Linux/BSD |
|
Presto |
閉源,商業內核 |
NPAPI |
Opera |
Windows, Mac OS X, Linux/BSD |
二:雙核瀏覽器
什麼是雙核?爲什麼要使用雙核?
如前所述,當前主流瀏覽器內核主要有4種:Trident、WebKit、Gecko、Presto。這些內核各有所長,亦有所短。其中以Trident內核使用最爲廣泛,支持的網頁最多,尤其是國內的網銀系統,和支付系統大部分只支持Trident內核,所以使用Trident的最大優勢在於其方便,一路通途;而WebKit內核以速度快捷,對HTML5支持好,而倍受青睞,但兼容性始終是其軟肋。
很多人就在思考:能不能開發這樣一款瀏覽器,同時集中了Trident和WebKit兩種內核的優點,形成一個互補,爲用戶提供更方便、快捷的上網方式。
圖表 3 雙核瀏覽器應運而生
於是,雙核瀏覽器應運而生了:提供一個切換按鈕,當用戶瀏覽普通網頁時,使用速度快的WebKit內核,很多瀏覽器稱之爲“極速模式”;當需要使用網銀或者支付系統時,則點擊切換按鈕,切換到Trident內核,又稱爲“兼容模式”。
這樣一個瀏覽器,可以切換不同的內核,滿足用戶對“快捷”和“方便”的需求。
雙核瀏覽器一經推出,便迅速得到網友的青睞, DCCI互聯網數據中心在《2011中國瀏覽器用戶調查》一文中宣稱,約19.4%的中國網民在上網時選擇使用雙核瀏覽器。目前這個趨勢還在不停的上升之中。
國內的雙核瀏覽器主要有:QQ瀏覽器、遨遊瀏覽器、搜狗瀏覽器QQ瀏覽器、遨遊瀏覽器、搜狗瀏覽器等。QQ瀏覽器、遨遊瀏覽器、搜狗瀏覽器QQ瀏覽器、遨遊瀏覽器、搜狗瀏覽器QQ瀏覽器、遨遊瀏覽器、搜狗瀏覽器
附錄:
1:KDE是Linux上第一個真正的桌面,所有KDE計劃的代碼全部按LGPL/GPL發佈。
2:LGPL是 GNU Lesser General Public License (GNU寬通用公共許可證)的縮寫形式,舊稱GNU Library General PublicLicense (GNU 庫通用公共許可證),後來改稱作LesserGPL,即爲更寬鬆的GPL,在寬鬆程度上與 BSD, Apache,XFree86 許可證相似。