內核是瀏覽器底層架構最核心和基礎的部分,按照功能可分爲:渲染引擎和JS引擎。程序員
渲染引擎(Rendering Engine)也稱爲佈局引擎(Layout Engine)、排版引擎,負責對網頁語法的解釋和渲染顯示到瀏覽器。一個渲染引擎一般包括HTML解釋器、CSS解釋器、佈局layout、網絡等模塊:瀏覽器
一般講的瀏覽器內核就是指代的瀏覽器的渲染引擎。網絡
不一樣的瀏覽器使用不一樣的渲染內核,對HTML/JS/CSS的標準語法的解釋也存在差別,致使在顯示效果、語法支持度和渲染效率上也存在差異,因此也就致使了網頁程序在不一樣內核的瀏覽器下的表現和渲染差別,乃至bug都不統一。架構
瀏覽器 | 渲染內核 | JS引擎 |
IE/Edge | Trident(<=IE10);EdgeHTML | JScript(<IE9);Chakra(IE9+及Edge) |
Safari | Webkit/Webkit2 | JSCore/Nitro(4+) |
Chrome | Chromium(Webkit);Blink | V8 |
Firefox | Gecko | SpiderMonkey(<3.0);TraceMonkey(<3/6);JaegerMonkey(4.0+) |
Opera | Presto;Blink | Futhark(9.5-10.2);Carakan(10.5+) |
IE/Edge:微軟的IE瀏覽器瀏覽器更新至IE10後,伴隨着WIN10系統的上市,遷移到了全新的瀏覽器Edge。除了JS引擎沿用以前IE9就開始使用的查克拉(Chakra),渲染引擎使用了新的內核EdgeHTML(本質上不是對Trident的徹底推翻重建,而是在Trident基礎上刪除了過期的舊技術支持的代碼,擴展和優化了對新的技術的支持,因此被看作是全新的內核)。框架
Safari:Safari自2003年面世,就一直是蘋果公司的產品自帶的瀏覽器,它使用的是蘋果研發和開源的Webkit引擎。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來。Webkit2發佈於2010年,它實現了元件的抽象畫,提升了元件的重複利用效率,提供了更加乾淨的網頁渲染和更高效的渲染效率。另外,Webkit也是蘋果Mac OS X系統引擎框架版本的名稱,主要用於Safari、Dashboard、Mail。ide
Chrome:提到Chrome瀏覽器,通常人會認爲使用的Webkit內核,這種說法不徹底準確。Chrome發佈於2008年,使用的渲染內核是Chromium,它是fork自Webkit,但把Webkit梳理得更有條理可讀性更高,效率提高明顯。2013年,因爲Webkit2和Chromium在沙箱設計上的衝突,谷歌聯手Opera自研和發佈了Blink引擎,逐步脫離了Webkit的影響。因此,能夠這麼認爲:Chromium擴展自Webkit止於Webkit2,其後Chrome切換到了Blink引擎。另外,Chrome的JS引擎使用的V8引擎,應該算是最著名和優秀的開源JS引擎,大名鼎鼎的Node.js就是選用V8做爲底層架構。佈局
Firefox:火狐的內核Gecko也是開源引擎,任何程序員都能爲其提供擴展和建議。火狐的JS引擎歷經SpiderMonkey、TraceMonkey到如今的JaegerMonkey。其中JaegerMonkey部分技術借鑑了V八、JSCore和Webkit,算是集思廣益。優化
Opera:Opera在2013年V12.16以前使用的是Opera Software公司開發的Presto引擎,以後連同谷歌研發和選擇Blink做爲Opera瀏覽器的排版內核。lua
從全球範圍內看,Chrome瀏覽器的市場份額遙遙領先,IE/Edge因爲微軟系統的市場佔有率優點,也有至關大的使用比例,這二者合計佔據了市場近80%比例。spa
國內市場亂象橫生,但Chrome和IE/Edge也佔據了超過50%的市場佔有率,另外,國內瀏覽器廠商(QQ、234五、搜狗、獵豹、UC、360)也有必定的市場佔有率。總結國內廠商內核來看,通常爲三類:1、使用的Trident單核,如:234五、世界之窗;2、使用Trident+Webkit/Blink雙核,如:UC、獵豹、360、百度;3、使用Webkit/Blink單核,如:搜狗、遨遊。
總之,國內並無優秀的自研內核,一般都是使用的Webkit/Blink 或者 Trident 內核,除此以外的差別一般體如今體驗擴展和各自的商業訴求上。
一般指的是移動設備系統自帶的瀏覽器內核。IOS設備內置Safari使用的Webkit,同蘋果PC一致;Andriod4.4以前版本系統瀏覽器內核是Webkit,以後切換到Chromium/Blink;WinPhone8及以上使用的是Trident。
值得注意的是,因爲系統環境條件及功能差別,不一樣瀏覽器內核在PC和移動端都有特定的優化或擴展定製,因此在具體的使用中就存在差別。