瀏覽器內(nèi)核

瀏覽器內(nèi)核(browser kernel)是瀏覽器最為核心的部分,國(guó)內(nèi)的瀏覽器(諸如360,QQ,搜狗)大多數(shù)用了第三方的內(nèi)核,不同的只是外觀以及一些裝飾性的功能。(有些瀏覽器是雙核模式,標(biāo)準(zhǔn)模式下是chrome的內(nèi)核,兼容模式下是IE的內(nèi)核,用以向下兼容舊網(wǎng)頁(yè),諸如360瀏覽器。)

瀏覽器內(nèi)核可以分為兩部分:一部分是渲染引擎(render engineer或layout engineer),負(fù)責(zé)取得網(wǎng)頁(yè)的內(nèi)容(HTML、XML、圖像等等)、整理訊息(例如加入 CSS 等),以及計(jì)算網(wǎng)頁(yè)的顯示方式,生成DOM樹,render,repaint這些工作,然后會(huì)輸出至顯示器或打印機(jī)。瀏覽器的內(nèi)核的不同對(duì)于網(wǎng)頁(yè)的語(yǔ)法解釋會(huì)有不同,所以渲染的效果也不相同。所有網(wǎng)頁(yè)瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要此內(nèi)核。另一部分是JS引擎,負(fù)責(zé)解析 Javascript 語(yǔ)言,執(zhí)行 javascript 語(yǔ)言來實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)態(tài)效果。

最開始渲染引擎和 JS 引擎并沒有區(qū)分的很明確,后來 JS 引擎越來越獨(dú)立,內(nèi)核就傾向于只指渲染引擎。有一個(gè)網(wǎng)頁(yè)標(biāo)準(zhǔn)計(jì)劃小組制作了一個(gè) ACID 來測(cè)試引擎的兼容性和性能。

內(nèi)核的種類很多,如果加上沒什么人使用的非商業(yè)的免費(fèi)內(nèi)核,可能會(huì)有 10 多種,但是常見的瀏覽器內(nèi)核可以分這五種:Trident、Gecko、Webkit、Chromium、Presto。

五大瀏覽器內(nèi)核

1、Trident ([‘tra?d(?)nt])

Trident是IE的內(nèi)核,也就是國(guó)內(nèi)雙核瀏覽器的內(nèi)核之一,又稱為IE內(nèi)核或MSHTML,此內(nèi)核只能用于Windows平臺(tái),且不是開源的。Trident內(nèi)核一直延續(xù)到IE11,IE11的后繼者Edge采用了新內(nèi)核EdgeHTML。代表作品還有騰訊、Maxthon(遨游)、360瀏覽器等。但由于市場(chǎng)份額比較大,曾經(jīng)出現(xiàn)脫離了W3C標(biāo)準(zhǔn)的時(shí)候,同時(shí)IE版本比較多,存在很多的兼容性問題。

2、Gecko ([‘gek??])(開源)

Gecko是Netscape6Z開始采用的內(nèi)核,是一個(gè)開源內(nèi)核,后來被FF(FireFox)采用,因火狐是最多的用戶,故常被稱為firefox內(nèi)核它是開源的,最大優(yōu)勢(shì)是跨平臺(tái),在Microsoft Windows、Linux、MacOs X等主要操作系統(tǒng)中使用。

3、Webkit(開源)

Webkeit的鼻祖是Safari, 其前身是KDE(Linux的桌面系統(tǒng))的KHTML(開源的)。Webkit也是開源的。曾經(jīng)的Chrome用的是Webkeit。注意:Webkit其實(shí)包括是渲染引擎Webcore(前身是KHTML),以及JS引擎JSCore,

4、Chromium(Blink,V8)(開源)

chromium fork自webkit,代碼可讀性和編譯速度得到提升。值得一提是谷歌專門研發(fā)了自己的JS引擎——V8,極大地提高了JS的運(yùn)算速度。由于chromium也是開源的,所以搜狗、QQ、360都用chromium內(nèi)核。自13年4月后,谷歌開始在Chromium項(xiàng)目中研發(fā)Blink渲染引擎,之前一直用的是Webkit的渲染引擎。之所以研發(fā)獨(dú)立的渲染引擎,是因?yàn)樘O果推出的Webkit2與chromium的設(shè)計(jì)存在沖突,影響了chromium的架構(gòu)移植工作。Blink內(nèi)核是由Google和Opera Software開發(fā)的瀏覽器排版引擎,2013年4月發(fā)布?,F(xiàn)在Chrome內(nèi)核是Blink。

5、Presto ([‘prest??]) -》Chromium

Presto是由Opera Software開發(fā)的瀏覽器排版引擎,它是世界公認(rèn)最快的渲染速度的引擎,Opera7.0開始使用。13年2月后為了減少研發(fā)成本,Opera放棄Presto宣布加入谷歌陣營(yíng),采用chromium,之后也緊跟Blink的腳步。

國(guó)內(nèi)的主流瀏覽器內(nèi)核

1、IE瀏覽器內(nèi)核:Trident內(nèi)核,也是俗稱的IE內(nèi)核。

2、Chrome瀏覽器內(nèi)核:統(tǒng)稱為Chromium內(nèi)核或Chrome內(nèi)核,以前是Webkit內(nèi)核,現(xiàn)在是Blink內(nèi)核。演進(jìn)Chromium內(nèi)核 → Webkit內(nèi)核 → Blink內(nèi)核。

3、Firefox瀏覽器內(nèi)核:Gecko內(nèi)核,俗稱Firefox內(nèi)核。

4、Safari瀏覽器內(nèi)核:Webkit內(nèi)核。演進(jìn) KHTML->Webkit(WebCore+JSCore)->Webkit2。

5、Opera瀏覽器內(nèi)核:最初是自己的Presto內(nèi)核,后來加入谷歌大軍,從Webkit又到了Blink內(nèi)核。

6、360瀏覽器、獵豹瀏覽器內(nèi)核:IE內(nèi)核+Chrome雙內(nèi)核;

7、搜狗、遨游、QQ瀏覽器內(nèi)核:IE內(nèi)核(兼容模式)+Webkit(高速模式);

8、百度瀏覽器、世界之窗內(nèi)核:IE內(nèi)核;

9、2345瀏覽器內(nèi)核:好像以前是IE內(nèi)核,現(xiàn)在也是IE+Chrome雙內(nèi)核了;

10、UC瀏覽器內(nèi)核:這個(gè)眾口不一,UC說是他們自己研發(fā)的U3內(nèi)核,但好像還是基于Webkit和Trident,還有說是基于火狐內(nèi)核

五大主流瀏覽器(按照誕生順序介紹):

1、IE(Internet Explorer)瀏覽器:

IE的誕生起源于1994年,當(dāng)時(shí)微軟為了對(duì)抗幾乎占據(jù)市場(chǎng)百分之九十份額的網(wǎng)景Netscape Navigator(導(dǎo)航者),準(zhǔn)備在windows中開發(fā)自己的瀏覽器,取名為Internet Explorer,意為因特網(wǎng)探險(xiǎn)者,好吧,一個(gè)導(dǎo)航者一個(gè)探險(xiǎn)者,從名字起火藥味就很重?。╬s 自此也拉開了第一次瀏覽器大戰(zhàn)的帷幕,結(jié)果大家都知道了,微軟大獲全勝,基本以98年網(wǎng)景將自己賣給了AOL公司暫且告終,但是還沒結(jié)束,因?yàn)楹髞砭W(wǎng)景換了個(gè)身份,也就是Firefox火狐,又進(jìn)入了大眾視野,迸發(fā)了一種鳳凰涅槃的快感,到今天為止Firefox也成為了五大主流之一,后面我們?cè)僬f它~話說回來,競(jìng)爭(zhēng)才能推動(dòng)技術(shù)的發(fā)展,第一次瀏覽器大戰(zhàn)以微軟和網(wǎng)景為代表,大力推動(dòng)了瀏覽器方面技術(shù)的發(fā)展,各大公司開始著手研發(fā)自己的瀏覽器,有壓力才有動(dòng)力嘛),但是微軟著急對(duì)抗網(wǎng)景啊,沒那么多時(shí)間從零開始,于是選擇和和Spyglass合作,所以IE其實(shí)從早期一款商業(yè)性的專利網(wǎng)頁(yè)瀏覽器Spyglass Mosaic派生出來,雖然Spyglass Mosaic與NCSA Mosaic(1993年,美國(guó)NCS(National Center for Supercomputing Applications)也就是國(guó)家超級(jí)計(jì)算機(jī)中心,發(fā)布的世界上第一款Web瀏覽器取名為Mosaic,后來網(wǎng)景大名鼎鼎的Mozilla就來自于這里,意為Mosaic Killer(Mosaic殺手)不過事實(shí)上, Mosaic 并不是第一個(gè)具有圖形界面的網(wǎng)頁(yè)瀏覽器,但是, Mosaic 是第一個(gè)被人普遍接受的瀏覽器,它讓許多人了解了Internet?)甚為相似,但Spyglass Mosaic則相對(duì)地較不出名并使用了NCSA Mosaic少量的源代碼~~

從1996年開始,微軟從Spyglass手里拿到了Spyglass Mosaic的源代碼和授權(quán)。從而使IE逐漸成為微軟專屬軟件。(后來,微軟以IE和操作系統(tǒng)捆綁的模式不斷擴(kuò)展其市場(chǎng)份額,使IE成為了瀏覽器市場(chǎng)的絕對(duì)主流~~)從那時(shí)開始,IE的呈現(xiàn)引擎就是Trident,這也是大家俗稱的IE內(nèi)核,國(guó)內(nèi)的大多數(shù)瀏覽器都有使用IE內(nèi)核,或者是IE和Chrome雙內(nèi)核這樣的形式來提高性能。

2、Opera瀏覽器:

Opera創(chuàng)始于1995年4月,由挪威Opera Software ASA公司發(fā)布,2016年2月確定被奇虎360和昆侖萬(wàn)維收購(gòu)(題外話~Opera瀏覽器從一開始,就在做自己的東西,無論是內(nèi)核還是版本號(hào),雖然后來為了市場(chǎng)份額還是棄用了曾讓其達(dá)到巔峰的Presto,轉(zhuǎn)向了Webkit,現(xiàn)在是Blink,但我還是欣賞這家公司在殘酷的瀏覽器大戰(zhàn)中堅(jiān)持自己并存活下來的頑強(qiáng)精神的,它的起源時(shí)間和IE差不多,但是沒有微軟那樣強(qiáng)大的后臺(tái)~也許從它棄用自己內(nèi)核的那時(shí)候起就決定了這個(gè)結(jié)果吧~~但是不得不說,它為瀏覽器的發(fā)展貢獻(xiàn)了不可或缺的一份力量~~最后,希望奇虎和萬(wàn)維能將這樣一個(gè)有骨血的瀏覽器繼續(xù)發(fā)揚(yáng)光大吧,雖然~最初的東西已經(jīng)沒有了)。自我感覺,Opera能從第一次瀏覽器大戰(zhàn)兩大霸主的交火中勉強(qiáng)存活下來已經(jīng)是個(gè)奇跡了,畢竟后來的三大瀏覽器都是誕生于第一次瀏覽器大戰(zhàn)之后,但是卻沒抵得過時(shí)間的考驗(yàn),這真的是個(gè)悲傷的故事~~

前段括弧里面已經(jīng)交代清楚了,Opera瀏覽器的內(nèi)核最初是Presto,前幾年宣布使用Google的開源項(xiàng)目Webkit作為自己的內(nèi)核,沒過多久,又跟隨Google使用Blink內(nèi)核~~就醬~

3、Safari瀏覽器:

第二次瀏覽器大戰(zhàn)基本是從蘋果公司2003年1月發(fā)布其自有瀏覽器Safari開始的,蘋果利用自己獨(dú)天得厚的手機(jī)市場(chǎng)份額,使Safari瀏覽器的用戶數(shù)量不斷上升。從Safari推出之時(shí)起,它的渲染引擎就是Webkit,一提到 webkit,首先想到的便是 chrome,可以說,chrome 將 Webkit內(nèi)核 深入人心,殊不知,Webkit 的鼻祖其實(shí)是 Safari?,F(xiàn)在很多人錯(cuò)誤地把 webkit 叫做 chrome內(nèi)核(即使 chrome內(nèi)核已經(jīng)是 blink 了),蘋果都哭瞎了有木有。Safari 是蘋果公司開發(fā)的瀏覽器,使用了KDE(Linux桌面系統(tǒng))的 KHTML 作為瀏覽器的內(nèi)核,Safari 所用瀏覽器內(nèi)核的名稱是大名鼎鼎的 WebKit。 Safari 在 2003 年 1 月 7 日首度發(fā)行測(cè)試版,并成為 Mac OS X v10.3 與之后版本的默認(rèn)瀏覽器,也成為蘋果其它系列產(chǎn)品的指定瀏覽器(也已支持 Windows 平臺(tái))。如上述可知,WebKit 前身是 KDE 小組的 KHTML 引擎,可以說 WebKit 是 KHTML 的一個(gè)開源的分支。當(dāng)年蘋果在比較了 Gecko 和 KHTML 后,選擇了后者來做引擎開發(fā),是因?yàn)?KHTML 擁有清晰的源碼結(jié)構(gòu)和極快的渲染速度。Webkit內(nèi)核可以說是以硬件盈利為主的蘋果公司給軟件行業(yè)的最大貢獻(xiàn)之一。隨后,2008 年谷歌公司發(fā)布 chrome 瀏覽器,采用的 chromium 內(nèi)核便 fork 了 Webkit。

4、Firefox瀏覽器:

前面提到過,在第一次瀏覽器中大敗的網(wǎng)景公司并沒有徹底煙消云散,就是幾經(jīng)曲折(此處省略,有興趣查閱資料),原網(wǎng)景公司的人員創(chuàng)辦了Mozilla基金會(huì),這是一個(gè)非盈利組織,正是他們?cè)?004年推出了自己的瀏覽器Firefox,并且以之前的Mosaic內(nèi)核為基礎(chǔ),開發(fā)了Gecko引擎,這也是火狐自04年發(fā)布以來一直使用的渲染引擎~后來在2005年,又在基金會(huì)的基礎(chǔ)上成立了Mozilla公司,其主要任務(wù)就是繼續(xù)開發(fā)Firefox。Gecko是一個(gè)開源項(xiàng)目,代碼完全公開,因此受到很多人的青睞~~對(duì)了,從Firefox問世開始,第二次瀏覽器大戰(zhàn)基本算是徹底打響了,第二次瀏覽器大戰(zhàn)與第一次二元鼎力的局面不同,這一次的特點(diǎn)就是百家爭(zhēng)鳴,也自此打破了IE瀏覽器從98年網(wǎng)景被收購(gòu)后獨(dú)步瀏覽器市場(chǎng)的局面。

5、Chrome瀏覽器:

2008年,大名鼎鼎的互聯(lián)網(wǎng)巨頭Google公司發(fā)布了它的首款瀏覽器Chrome瀏覽器。雖然在瀏覽器方面,Chrome算是年輕的一代了,但是沒辦法啊,人家是富二代官二代啊,后臺(tái)太強(qiáng),而且確實(shí)先天能力得天獨(dú)厚,從文章最初貼的那個(gè)瀏覽器市場(chǎng)份額報(bào)告可以看出即便是在國(guó)內(nèi)市場(chǎng),Chrome瀏覽器依然占據(jù)著半壁江山。前面說的,其實(shí)Chrome瀏覽器的內(nèi)核名為chromium,也就是現(xiàn)在大家習(xí)慣稱的chrome內(nèi)核,而且按照大家的誤解,一直認(rèn)為的chrome內(nèi)核就是由蘋果公司最先選擇的算是KHTML引擎的分支-Webkit,這大概是蘋果公司至今說不清道不明的傷痛吧~~chromium fork 自開源引擎 webkit,卻把 WebKit 的代碼梳理得可讀性提高很多,所以以前可能需要一天進(jìn)行編譯的代碼,現(xiàn)在只要兩個(gè)小時(shí)就能搞定。因此 Chromium 引擎和其它基于 WebKit 的引擎所渲染頁(yè)面的效果也是有出入的。所以有些地方會(huì)把 chromium 引擎和 webkit 區(qū)分開來單獨(dú)介紹,而有的文章把 chromium 歸入 webkit 引擎中,都是有一定道理的。(谷歌公司還研發(fā)了自己的 Javascript 引擎,V8,極大地提高了 Javascript 的運(yùn)算速度。)chromium 問世后,帶動(dòng)了國(guó)產(chǎn)瀏覽器行業(yè)的發(fā)展。一些基于 chromium 的單核,雙核瀏覽器如雨后春筍般拔地而起,例如 搜狗、360、QQ瀏覽器等等,無一不是套著不同的外殼用著相同的內(nèi)核。

然而 2013 年 4 月 3 日,谷歌在 Chromium Blog 上發(fā)表 博客,稱將與蘋果的開源瀏覽器核心 Webkit 分道揚(yáng)鑣,在 Chromium 項(xiàng)目中研發(fā) Blink 渲染引擎(即瀏覽器核心),內(nèi)置于 Chrome 瀏覽器之中。其實(shí)Blink引擎就是也就是Webkit的分支,就像Webkit是KHTML的分支一樣。Blink引擎現(xiàn)在是谷歌公司與Opera Software共同研發(fā),上面提到過的,Operaqq棄用了自己的Presto內(nèi)核,加入Google陣營(yíng),跟隨谷歌一起研發(fā)Blink,套上Chromium內(nèi)核后,用戶體驗(yàn)貌似確實(shí)大不如前,鼎盛時(shí)期的Opera7.0也不復(fù)存在~~

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 還有很多要學(xué),要加油哇?;卣}。參考: js中的事件委托或是事件代理詳解 1、基本概念事件委托就是利用事件冒泡,只...
    立的flag一直在倒閱讀 267評(píng)論 0 0
  • 有時(shí)候會(huì)想如果這輩子都遇不到自己喜歡的,那怎么辦 孤獨(dú)終老嗎 還是聽從父母安排相親 如果讓我和一個(gè)毫無心動(dòng)感覺的人...
    985464閱讀 476評(píng)論 0 1
  • 國(guó)家給每個(gè)老師發(fā)一筆錢,領(lǐng)導(dǎo)簽字不仔細(xì)看,同樣的情況,有的發(fā),有的不發(fā)。原來財(cái)務(wù)發(fā)錢給我,是為了收買我,如果我跟領(lǐng)...
    樂了樂了樂了閱讀 177評(píng)論 0 0
  • 面向?qū)ο笈c基于對(duì)象 在傳統(tǒng)面向?qū)ο蟮恼Z(yǔ)言中,有兩個(gè)非常重要的概念 - 類和實(shí)例。 類定義了一類事物公共的行為和方法...
    LuciferTM閱讀 350評(píng)論 0 0
  • 昨夜夢(mèng)難回, 今宵意可歸? 但憑乏倦醉, 且以靜安隨。
    點(diǎn)下閱讀 386評(píng)論 0 7

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