自從網(wǎng)頁瀏覽器誕生之日起,各公司間的競爭、各“派別”擁護(hù)者之間的爭吵,就從未停止過。直至今日,包括Internet Explorer、Firefox、Safari、Opera、Maxthon等各式各樣的網(wǎng)頁瀏覽器在市場上爭奇斗艷,好不熱鬧。當(dāng)然這其中也少不了惡意壟斷、槍手炒作、網(wǎng)友爭論等等。
事實(shí)上,還有很多人對瀏覽器的一些特性還不甚了解,所以就會(huì)有諸如“MT再好也只是一個(gè)殼”“有本事像FF那樣自己弄內(nèi)核去”“FF比IE的安全性高多了”這樣的言論。起初,我對這些也不甚了解,也不愿參與這些爭論。后來我慢慢地接觸到了一些關(guān)于瀏覽器的東西,不敢獨(dú)享,整理出來以FAQ的形式和大家分享,希望能提高大家對網(wǎng)頁瀏覽器這種軟件的認(rèn)知度。
※本文文本為大眼夾原創(chuàng),其中部分資料來自于Wikipedia等網(wǎng)絡(luò)媒體,力爭保持自己的言論的中立性。
Q1:經(jīng)常聽人家說什么瀏覽器“內(nèi)核”和“外殼”,它們都是什么意思?
A1:“內(nèi)核”只是一個(gè)通俗的說法,其英文名稱為“Layout engine”,翻譯過來就是“排版引擎”,也被稱為“頁面渲染引擎”(下文中各種說法通用)。它負(fù)責(zé)取得網(wǎng)頁的內(nèi)容(HTML、XML、圖像等等)、整理信息(例如加入CSS等),以及計(jì)算網(wǎng)頁的顯示方式,然后會(huì)輸出至顯示器或打印機(jī)。所有網(wǎng)頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要排版引擎。
而瀏覽器的“外殼”便很好理解了,它是一個(gè)面向用戶的界面,也就是網(wǎng)頁瀏覽器為我們實(shí)現(xiàn)的各種功能。
Q2:瀏覽器的內(nèi)核有哪些?
A2:事實(shí)上,有很多種(廢話?。?,但是常見的有Trident、Gecko、WebCore、Presto等。
Q3:Trident是什么內(nèi)核?
A3:Trident(又稱為MSHTML),是微軟開發(fā)的一種排版引擎。它的第一個(gè)版本隨著1997年10月Internet Explorer第四版的發(fā)布而發(fā)布。隨后,Trident不斷地被更新和完善:
Trident II(IE5)——增進(jìn)對CSS1.0的支持及對CSS2重大的變更
Trident III(IE5.5)——修正部分CSS的排版控制
Trident IV(IE6)——修正了一部分box-model的錯(cuò)誤以及增加了“兼容模式(Quirks Mode)”切換功能,以增加對文件類型描述(Document Type Definition,DTD)的支持
Trident V(IE7)——修正許多CSS排版處理上的錯(cuò)誤以及增加對PNG格式alpha通道(半透明)的支持
不光是IE,Windows中的許多地方也使用了Trident的技術(shù),包括從Windows 98到Windows Server 2003所有版本的Windows Explorer、Windows 98及其后續(xù)所有版本的視窗操作系統(tǒng)內(nèi)的Windows Help程序。此外,像RealPlayer、Windows Media Player、Windows Live Messenger、OutLook Express等等也使用了Trident技術(shù)。也正因?yàn)槿绱?,Trident無法從Windows系統(tǒng)中徹徹底底地卸載掉,就算是徹底卸載了,Windows的許多功能也會(huì)出現(xiàn)問題。
使用Trident內(nèi)核的網(wǎng)頁瀏覽器有:AOL Explorer、Avant、Internet Explorer、Maxthon、Netscape Browser (v.8)、Sleipnir、TheWorld、騰迅TT等。
Q4:Gecko是什么內(nèi)核?
A4:Gecko是套開放源代碼的、以C++編寫的網(wǎng)頁排版引擎。這軟件原本是由網(wǎng)景通訊公司開發(fā)的,現(xiàn)在則由Mozilla基金會(huì)維護(hù)。
由于Gecko是開源的,所以使用Gecko的網(wǎng)頁瀏覽器也很多,其中的領(lǐng)軍人物便是Mozilla Firefox。此外還有AOL for Mac OS X、Camino、Epiphany、Flock、Galeon、Netscape Browser (v.8)、Sleipnir、Maxthon等。
Q5:WebCore是什么內(nèi)核?
A5:WebCore是蘋果公司開發(fā)的排版引擎,它是在另外一個(gè)排版引擎“KHTML”的基礎(chǔ)上而來的。蘋果電腦于2002年采納了KHTML,作為開發(fā)Safari瀏覽器之用,并發(fā)布所修改的最新及過去版本源代碼。后來發(fā)表了開放源代碼的WebCore及WebKit引擎,它們均是KHTML的衍生產(chǎn)品。使用WebCore的主要有Safari,此外還有OmniWeb、Shiira、Swift等。
Q6:Presto是什么內(nèi)核?
Q6:Presto是一個(gè)由Opera Software開發(fā)的瀏覽器排版引擎,供Opera 7.0及以上使用。此外,Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的內(nèi)核。
Q7:(強(qiáng)烈推薦)瀏覽器的內(nèi)核和外殼有什么聯(lián)系?
A7:剛才已經(jīng)說到,內(nèi)核負(fù)責(zé)處理網(wǎng)頁的內(nèi)容,而外殼負(fù)責(zé)提供給用戶一些功能。外殼的某些功能是需要聯(lián)系到內(nèi)核的,比如保存網(wǎng)頁上的圖片;而有些功能是不需要經(jīng)過內(nèi)核的,比如前進(jìn)后退功能(當(dāng)然,在載入了URL以后還是需要經(jīng)過內(nèi)核的)。
相信大家都使用過XP中控制面板里的“用戶帳戶”功能,這實(shí)際上可以給我們一個(gè)更加感性的認(rèn)識(shí)。用戶帳戶的操作界面實(shí)際上就是一個(gè)小型且功能單一的網(wǎng)頁瀏覽器,它通過調(diào)用IE內(nèi)核來顯示主界面,而上方的“上一步”“下一步”等按鈕便是瀏覽器外殼所提供的功能。
說到這里,我們可以回看文章開頭提到的一些網(wǎng)友的言論。有些人認(rèn)為,Maxthon僅僅是附庸在IE之上的一個(gè)瀏覽器,根本不值得和IE、Firefox相提并論。這其實(shí)并不妥當(dāng)。首先,Maxthon是支持Trident和Gecko雙內(nèi)核的(支持Gecko內(nèi)核時(shí)需要單獨(dú)安裝Gecko組件,而且目前的2系列貌似沒有Gecko內(nèi)核支持),所以它并不是“IE的附庸”。此外,我們已經(jīng)知道,瀏覽器分有內(nèi)核和外殼兩部分。以這個(gè)眼光來看,Maxthon是Maxthon Shell+Trident(或Gecko),而Internet Explorer是IE Shell+Trident,F(xiàn)irefox是FF Shell+Gecko,這三款瀏覽器的地位實(shí)際上是一樣的。只不過IE Shell和Trident都是微軟開發(fā),而FF Shell和Gecko都是Mozilla基金會(huì)在維護(hù)。同時(shí),說IE是“IE內(nèi)核”,F(xiàn)F是“FF內(nèi)核”也是不準(zhǔn)確的,畢竟弄IE Shell和Trident的肯定不是微軟的同一個(gè)小組,而FF Shell和Gecko肯定也不是Mozilla基金會(huì)的同一個(gè)小組在維護(hù)(更何況Gecko原來也不是Mozilla開發(fā)的,原先Mozilla只是網(wǎng)景公司的非正式組織)。當(dāng)然不可否認(rèn),擁有了內(nèi)核和外殼的微軟和Mozilla,在開發(fā)瀏覽器的能力方面肯定是要高于Maxthon的,Maxthon不可能掌握到關(guān)鍵技術(shù)。
事實(shí)上,還有很多人對瀏覽器的一些特性還不甚了解,所以就會(huì)有諸如“MT再好也只是一個(gè)殼”“有本事像FF那樣自己弄內(nèi)核去”“FF比IE的安全性高多了”這樣的言論。起初,我對這些也不甚了解,也不愿參與這些爭論。后來我慢慢地接觸到了一些關(guān)于瀏覽器的東西,不敢獨(dú)享,整理出來以FAQ的形式和大家分享,希望能提高大家對網(wǎng)頁瀏覽器這種軟件的認(rèn)知度。
※本文文本為大眼夾原創(chuàng),其中部分資料來自于Wikipedia等網(wǎng)絡(luò)媒體,力爭保持自己的言論的中立性。
Q1:經(jīng)常聽人家說什么瀏覽器“內(nèi)核”和“外殼”,它們都是什么意思?
A1:“內(nèi)核”只是一個(gè)通俗的說法,其英文名稱為“Layout engine”,翻譯過來就是“排版引擎”,也被稱為“頁面渲染引擎”(下文中各種說法通用)。它負(fù)責(zé)取得網(wǎng)頁的內(nèi)容(HTML、XML、圖像等等)、整理信息(例如加入CSS等),以及計(jì)算網(wǎng)頁的顯示方式,然后會(huì)輸出至顯示器或打印機(jī)。所有網(wǎng)頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要排版引擎。
而瀏覽器的“外殼”便很好理解了,它是一個(gè)面向用戶的界面,也就是網(wǎng)頁瀏覽器為我們實(shí)現(xiàn)的各種功能。
Q2:瀏覽器的內(nèi)核有哪些?
A2:事實(shí)上,有很多種(廢話?。?,但是常見的有Trident、Gecko、WebCore、Presto等。
Q3:Trident是什么內(nèi)核?
A3:Trident(又稱為MSHTML),是微軟開發(fā)的一種排版引擎。它的第一個(gè)版本隨著1997年10月Internet Explorer第四版的發(fā)布而發(fā)布。隨后,Trident不斷地被更新和完善:
Trident II(IE5)——增進(jìn)對CSS1.0的支持及對CSS2重大的變更
Trident III(IE5.5)——修正部分CSS的排版控制
Trident IV(IE6)——修正了一部分box-model的錯(cuò)誤以及增加了“兼容模式(Quirks Mode)”切換功能,以增加對文件類型描述(Document Type Definition,DTD)的支持
Trident V(IE7)——修正許多CSS排版處理上的錯(cuò)誤以及增加對PNG格式alpha通道(半透明)的支持
不光是IE,Windows中的許多地方也使用了Trident的技術(shù),包括從Windows 98到Windows Server 2003所有版本的Windows Explorer、Windows 98及其后續(xù)所有版本的視窗操作系統(tǒng)內(nèi)的Windows Help程序。此外,像RealPlayer、Windows Media Player、Windows Live Messenger、OutLook Express等等也使用了Trident技術(shù)。也正因?yàn)槿绱?,Trident無法從Windows系統(tǒng)中徹徹底底地卸載掉,就算是徹底卸載了,Windows的許多功能也會(huì)出現(xiàn)問題。
使用Trident內(nèi)核的網(wǎng)頁瀏覽器有:AOL Explorer、Avant、Internet Explorer、Maxthon、Netscape Browser (v.8)、Sleipnir、TheWorld、騰迅TT等。
Q4:Gecko是什么內(nèi)核?
A4:Gecko是套開放源代碼的、以C++編寫的網(wǎng)頁排版引擎。這軟件原本是由網(wǎng)景通訊公司開發(fā)的,現(xiàn)在則由Mozilla基金會(huì)維護(hù)。
由于Gecko是開源的,所以使用Gecko的網(wǎng)頁瀏覽器也很多,其中的領(lǐng)軍人物便是Mozilla Firefox。此外還有AOL for Mac OS X、Camino、Epiphany、Flock、Galeon、Netscape Browser (v.8)、Sleipnir、Maxthon等。
Q5:WebCore是什么內(nèi)核?
A5:WebCore是蘋果公司開發(fā)的排版引擎,它是在另外一個(gè)排版引擎“KHTML”的基礎(chǔ)上而來的。蘋果電腦于2002年采納了KHTML,作為開發(fā)Safari瀏覽器之用,并發(fā)布所修改的最新及過去版本源代碼。后來發(fā)表了開放源代碼的WebCore及WebKit引擎,它們均是KHTML的衍生產(chǎn)品。使用WebCore的主要有Safari,此外還有OmniWeb、Shiira、Swift等。
Q6:Presto是什么內(nèi)核?
Q6:Presto是一個(gè)由Opera Software開發(fā)的瀏覽器排版引擎,供Opera 7.0及以上使用。此外,Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的內(nèi)核。
Q7:(強(qiáng)烈推薦)瀏覽器的內(nèi)核和外殼有什么聯(lián)系?
A7:剛才已經(jīng)說到,內(nèi)核負(fù)責(zé)處理網(wǎng)頁的內(nèi)容,而外殼負(fù)責(zé)提供給用戶一些功能。外殼的某些功能是需要聯(lián)系到內(nèi)核的,比如保存網(wǎng)頁上的圖片;而有些功能是不需要經(jīng)過內(nèi)核的,比如前進(jìn)后退功能(當(dāng)然,在載入了URL以后還是需要經(jīng)過內(nèi)核的)。
相信大家都使用過XP中控制面板里的“用戶帳戶”功能,這實(shí)際上可以給我們一個(gè)更加感性的認(rèn)識(shí)。用戶帳戶的操作界面實(shí)際上就是一個(gè)小型且功能單一的網(wǎng)頁瀏覽器,它通過調(diào)用IE內(nèi)核來顯示主界面,而上方的“上一步”“下一步”等按鈕便是瀏覽器外殼所提供的功能。
說到這里,我們可以回看文章開頭提到的一些網(wǎng)友的言論。有些人認(rèn)為,Maxthon僅僅是附庸在IE之上的一個(gè)瀏覽器,根本不值得和IE、Firefox相提并論。這其實(shí)并不妥當(dāng)。首先,Maxthon是支持Trident和Gecko雙內(nèi)核的(支持Gecko內(nèi)核時(shí)需要單獨(dú)安裝Gecko組件,而且目前的2系列貌似沒有Gecko內(nèi)核支持),所以它并不是“IE的附庸”。此外,我們已經(jīng)知道,瀏覽器分有內(nèi)核和外殼兩部分。以這個(gè)眼光來看,Maxthon是Maxthon Shell+Trident(或Gecko),而Internet Explorer是IE Shell+Trident,F(xiàn)irefox是FF Shell+Gecko,這三款瀏覽器的地位實(shí)際上是一樣的。只不過IE Shell和Trident都是微軟開發(fā),而FF Shell和Gecko都是Mozilla基金會(huì)在維護(hù)。同時(shí),說IE是“IE內(nèi)核”,F(xiàn)F是“FF內(nèi)核”也是不準(zhǔn)確的,畢竟弄IE Shell和Trident的肯定不是微軟的同一個(gè)小組,而FF Shell和Gecko肯定也不是Mozilla基金會(huì)的同一個(gè)小組在維護(hù)(更何況Gecko原來也不是Mozilla開發(fā)的,原先Mozilla只是網(wǎng)景公司的非正式組織)。當(dāng)然不可否認(rèn),擁有了內(nèi)核和外殼的微軟和Mozilla,在開發(fā)瀏覽器的能力方面肯定是要高于Maxthon的,Maxthon不可能掌握到關(guān)鍵技術(shù)。