浏覽器内核

浏覽器内核

浏覽器的核心部分
浏覽器最重要或者說核心的部分是“Rendering Engine”,可大概譯為“渲染引擎”,不過我們一般習慣将之稱為“浏覽器内核”。[1]負責對網頁語法的解釋(如标準通用标記語言下的一個應用HTML、JavaScript)并渲染(顯示)網頁。 所以,通常所謂的浏覽器内核也就是浏覽器所采用的渲染引擎,渲染引擎決定了浏覽器如何顯示網頁的内容以及頁面的格式信息。
    中文名:浏覽器内核 外文名:Rendering Engine 别名: 作用:決定網頁及頁面格式信息 分類:Trident、Gecko、Presto等

内核

Trident(IE内核)

Trident:該内核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎之上修改而來的,并沿用到目前的IE11。Trident實際上是一款開放的内核,其接口内核設計的相當成熟,因此才有許多采用IE内核而非IE的浏覽器(殼浏覽器)湧現(如360浏覽器、Maxthon、TheWorld、TT、GreenBrowser、AvantBrowser等)。此外,為了方便也有很多人直接簡稱其為IE内核(當然也不排除有部分人是因為不知道内核名稱而隻好如此說)。

由于IE本身的“壟斷性”(雖然名義上IE并非壟斷,但實際上,特别是從Windows95年代一直到XP初期,就市場占有率來說IE的确借助Windows的東風處于“壟斷”的地位)而使得Trident内核的長期一家獨大,微軟很長時間都并沒有更新Trident内核,這導緻了兩個後果——一是Trident内核曾經幾乎與W3C标準脫節(2005年)。

二是Trident内核的大量Bug等安全性問題沒有得到及時解決,然後加上一些緻力于開源的開發者和一些學者們公開自己認為IE浏覽器不安全的觀點,也有很多用戶轉向了其他浏覽器,Firefox和Opera就是這個時候興起的。非Trident内核浏覽器的市場占有率大幅提高也緻使許多網頁開發人員開始注意網頁标準和非IE浏覽器的浏覽效果問題。

補充:IE從版本11開始,初步支持WebGL技術。

補充:IE8的JavaScript引擎是Jscript,IE9開始用Chakra,這兩個版本區别很大,Chakra無論是速度和标準化方面都很出色。

Trident内核的常見浏覽器有:

IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);

360安全浏覽器、360極速浏覽器(采用Chrome+IE内核)、傲遊浏覽器(傲遊1.x、2.x為IE内核,3.x為IE與Webkit雙核)、百度浏覽器(早期版本)、世界之窗浏覽器(最初為IE内核,2013年采用Chrome+IE内核)、2345浏覽器、騰訊TT、淘寶浏覽器、采編讀浏覽器、搜狗浏覽器、阿雲浏覽器(早期版本)、瑞星安全浏覽器、Slim Browser、 GreenBrowser。

愛帆浏覽器(12 之前版本)、115浏覽器、155浏覽器、閃遊浏覽器、N氧化碳浏覽器、糖果浏覽器、彩虹浏覽器、瑞影浏覽器、勇者無疆浏覽器、114浏覽器、螞蟻浏覽器、飛騰浏覽器、速達浏覽器、佐羅浏覽器、海豚浏覽器(iPhone/iPad/Android)、UC浏覽器(Blink内核+Trident内核)等。

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

Gecko(Firefox内核)

Gecko:Netscape6開始采用的内核,後來的MozillaFireFox(火狐浏覽器)也采用了該内核,Gecko的特點是代碼完全公開,因此,其可開發程度很高,全世界的程序員都可以為其編寫代碼,增加功能。因為這是個開源内核,因此受到許多人的青睐,Gecko内核的浏覽器也很多,這也是Gecko内核雖然年輕但市場占有率能夠迅速提高的重要原因。

事實上,Gecko引擎的由來跟IE不無關系,前面說過IE沒有使用W3C的标準,這導緻了微軟内部一些開發人員的不滿;他們與當時已經停止更新了的Netscape的一些員工一起創辦了Mozilla,以當時的Mosaic内核為基礎重新編寫内核,于是開發出了Gecko。不過事實上,Gecko内核的浏覽器仍然還是Firefox(火狐)用戶最多,所以有時也會被稱為Firefox内核。此外Gecko也是一個跨平台内核,可以在Windows、BSD、Linux和MacOSX中使用。

補充:JavaScript引擎是SpiderMonkey。

Gecko内核常見的浏覽器:Mozilla Firefox、Mozilla SeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon

Presto(Opera前内核)(已廢棄)

Presto:Opera12.16及更早版本曾經采用的内核,現已停止開發并廢棄,該内核在2003年的Opera7中首次被使用,該款引擎的特點就是渲染速度的優化達到了極緻,然而代價是犧牲了網頁的兼容性。

實際上這是一個動态内核,與前面幾個内核的最大的區别就在腳本處理上,Presto有着天生的優勢,頁面的全部或者部分都能夠在回應腳本事件時等情況下被重新解析。此外該内核在執行Javascrīpt的時候有着最快的速度,根據在同等條件下的測試,Presto内核執行同等Javascrīpt所需的時間僅有Trident和Gecko内核的約1/3(Trident内核最慢,不過兩者相差沒有多大),本文的其中一個修改者認為上述測試信息過于老舊且不完整,因為他曾做過的小測試顯示Presto部分快部分慢,各内核總體相當。

那次測試的時候因為Apple機的硬件條件和普通PC機不同所以沒有測試WebCore内核。隻可惜Presto是商業引擎,使用Presto的除開Opera以外,隻剩下NDSBrowser、WiiInternet Channle、Nokia770網絡浏覽器等,這很大程度上限制了Presto的發展。

Opera現已改用Google Chrome的Blink内核。

它是蘋果公司自己的内核,也是蘋果的Safari浏覽器使用的内核。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟件,在GPL條約下授權,同時支持BSD系統的開發。所以Webkit也是自由軟件,同時開放源代碼。在安全方面不受IE、Firefox的制約,所以Safari浏覽器在國内還是很安全的。

限于MacOSX的使用不廣泛和Safari浏覽器曾經隻是MacOSX的專屬浏覽器,這個内核本身應該說市場範圍并不大;但似乎根據最新的浏覽器調查表明,該浏覽器的市場甚至已經超過了Opera的Presto了——當然這一方面得益于蘋果轉到x86架構之後的人氣暴漲,另外也是因為Safari3終于推出了Windows版的緣故吧。Mac下還有OmniWeb、Shiira等人氣很高的浏覽器。

GoogleChrome、360極速浏覽器以及搜狗浏覽器高速模式也使用webkit作為内核(在腳本理解方面,Chrome使用自己研發的V8引擎)。

WebKit内核在手機上的應用也十分廣泛,例如Google的手機Gphone、Apple的iPhone,Nokia’sSeries60browser等所使用的Browser内核引擎,都是基于WebKit。

Webkit(Safari内核,Chrome内核原型,開源)

Webkit:它是蘋果公司自己的内核,也是蘋果的Safari浏覽器使用的内核。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟件,在GPL條約下授權,同時支持BSD系統的開發。所以Webkit也是自由軟件,同時開放源代碼。在安全方面不受IE、Firefox的制約,所以Safari浏覽器在國内還是很安全的。

限于Mac OS X的使用不廣泛和Safari浏覽器曾經隻是Mac OS X的專屬浏覽器,這個内核本身應該說市場範圍并不大;但似乎根據最新的浏覽器調查表明,該浏覽器的市場甚至已經超過了Opera的Presto了——當然這一方面得益于蘋果轉到x86架構之後的人氣暴漲,另外也是因為Safari 3終于推出了Windows版的緣故吧。Mac下還有OmniWeb、Shiira等人氣很高的浏覽器。

Google Chrome、360極速浏覽器以及搜狗浏覽器高速模式也使用webkit作為内核(在腳本理解方面,Chrome使用自己研發的V8引擎)。

WebKit 内核在手機上的應用也十分廣泛,例如 Google 的手機 Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

WebKit内核常見的浏覽器:Apple Safari (Win/Mac/iPhone/iPad)、Symbian手機浏覽器、Android 默認浏覽器,

Blink(Google的最新内核)

2013年4月3日,谷歌在Chromium Blog上發表博客,稱将與蘋果的開源浏覽器核心Webkit分道揚镳,在Chromium項目中研發Blink渲染引擎(即浏覽器核心),内置于Chrome浏覽器之中。

蘋果在Safari中采用Webkit核心,并于2005年将Webkit公開為開源軟件。谷歌當時采用蘋果的Webkit核心打造了Chrome浏覽器。Opera也宣布稱将會轉向Webkit核心,但是谷歌宣布此舉後,Opera表示将會跟随谷歌采用其Blink浏覽器核心,同時參與了Blink的開發。

谷歌轉向研發Blink浏覽器内核意義重大,谷歌此舉欲降低Webkit即蘋果在浏覽器市場的影響力。截止2012年底,Webkit浏覽器内核占總浏覽器市場份額約40%。

谷歌解釋稱,Chromium多處理架構系統與其他Webkit浏覽器很不相同。

谷歌工程師Adam Barth在博客中表示,随着浏覽器的發展,蘋果的Webkit已經不能滿足用戶需求,同時也有礙浏覽器技術的創新步伐。但是他也表示,谷歌自主研發Blink内核絕非易事,但是新内核将會提升整個開源網絡生态系統的機能。

谷歌做出此舉之際,Mozilla與三星也達成合作協議開發“下一代”浏覽器渲染引擎Servo。

排版引擎

WebCore

WebCore是蘋果公司開發的排版引擎,它是在另外一個排版引擎“KHTML”的基礎上而來的。使用WebCore的主要有Safari,此外還有OmniWeb、Shiira、Swift等。Safari現支持Windows,但效果不如iOS上的。

KHTML

KHTML,是HTML網頁排版引擎之一,由KDE所開發。

KDE系統自KDE2版起,在檔案及網頁浏覽器使用了KHTML引擎。該引擎以C++編程語言所寫,并以LGPL授權,支援大多數網頁浏覽标準。由于微軟的Internet Explorer的占有率相當高,不少以FrontPage制作的網頁均包含隻有IE才能讀取的非标準語法,為了使KHTML引擎可呈現的網頁達到最多,部分IE專屬的語法也一并支援。

KHTML擁有速度快捷的優點,但對錯誤語法的容忍度則比Mozilla産品所使用的Gecko引擎小。

蘋果電腦于2002年采納了KHTML,作為開發Safari浏覽器之用,并發布所修改的最新及過去版本源代碼。後來發表了開放源代碼的WebCore及WebKit引擎,它們均是KHTML的衍生産品,在開發網站列出引擎改變内容,并會傳回至KDE計劃。由于兩個衍生産品各走不同路線,使兩者源代碼偏離,在與KDE交換更新會出現困難。

其中一個原因,是蘋果在對外公開源代碼之前,以一年時間編修他們的KHTML。另外,蘋果傳送更新至KDE計劃的方式,多是一口氣把大量改動一起傳送,KDE在整理資料也出現一定的困難,及後蘋果表示會以CVS格式來傳送。再者,蘋果所作出的改動包括Mac OS X系統獨有的事物,如Objective-C、KWQ等,在Linux及KHTML是沒有的。但KDE方面仍透過這些改動,為KHTML加入新功能及加快其排版速度。

基于KHTML内核的内核:WebKit、WebCore。

上一篇:幸運賽車

下一篇:五河一中

相關詞條

相關搜索

其它詞條