淺談主流瀏覽器與其內(nèi)核?
目前主流的瀏覽器有5大款,分別是Google、IE、Firefox、Safari、Opera。其中最流行的是google的開源Chromium體系,包括blink渲染引擎和JS v8解析引擎。微軟和Opera也紛紛選擇了Chromium作為自己的瀏覽器內(nèi)核。
瀏覽器最重要的部分是瀏覽器的內(nèi)核,是瀏覽器的核心,也稱渲染引擎,用來(lái)解釋網(wǎng)頁(yè)的語(yǔ)法并渲染到網(wǎng)頁(yè)上。其中內(nèi)核可以分為兩部分,一部分是渲染引擎(render engineer或layout engineer),其負(fù)責(zé)生成DOM樹,負(fù)責(zé)渲染和重繪;另一部分是JS引擎,負(fù)責(zé)JS的解析、編譯與解釋執(zhí)行。現(xiàn)在通常將html/css的渲染引擎和js解析引擎分離開來(lái)。
渲染引擎內(nèi)核分別有trident、webkit、blink、gecko等:
1、Trident 內(nèi)核(Windows)
Trident 就是IE瀏覽器 所使用的內(nèi)核,也是很多瀏覽器所使用的內(nèi)核,通常被稱為IE內(nèi)核。目前基本快消亡。
2、Gecko(跨平臺(tái))
Netscape6 啟用的內(nèi)核,現(xiàn)在主要由Mozilla基金會(huì)進(jìn)行維護(hù),是開源的瀏覽器內(nèi)核,目前最主流的Gecko內(nèi)核瀏覽器是Mozilla Firefox,所以也常常稱之為火狐內(nèi)核。非常小眾人群使用。
3、WebKit(跨平臺(tái))
由KHTML發(fā)展而來(lái),蘋果給開源世界的一大貢獻(xiàn)。是目前火熱的瀏覽器內(nèi)核,火熱倒不是說(shuō)市場(chǎng)份額,而是應(yīng)用的面積和勢(shì)頭。因?yàn)槭敲撎ビ贙HTML,所以也是具有高速的特點(diǎn),同樣遵循W3C標(biāo)準(zhǔn)。仍然占有少部分市場(chǎng)。
4、Presto(跨平臺(tái))
Opera 所采用的內(nèi)核,準(zhǔn)確地說(shuō),是Opera 7.0及以后版本的內(nèi)核,Opera 3.5-6.1版本使用的內(nèi)核叫做Elektra。目前已經(jīng)死掉。
5、Blink內(nèi)核(跨平臺(tái)),由Google和Opera Software共同開發(fā)的瀏覽器內(nèi)核,基于webkit。現(xiàn)在Chrome(28及往后版本)、Opera(15及往后版本)的Webkit內(nèi)核換成了Blink內(nèi)核。目前chrome已經(jīng)是70多的版本了。目前最流行的渲染引擎,預(yù)計(jì)blink將壟斷渲染引擎市場(chǎng)。
JS解析引擎包括:
1、Chakra ,IE9啟用的JavaScript引擎。
2、SpiderMonkey / TraceMonkey / JaegerMonkey
SpiderMonkey應(yīng)用在Mozilla Firefox 1.0-3.0,TraceMonkey應(yīng)用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應(yīng)用在Mozilla Firefox 4.0及后續(xù)的版本。
3、V8 應(yīng)用于Chrome,現(xiàn)在同時(shí)應(yīng)用于后臺(tái)node環(huán)境。目前最火熱的引擎,發(fā)展迅猛。
4、Nitro 應(yīng)用于Safari 4及后續(xù)的版本。
5、Linear A/Linear B/Futhark/Carakan
Linear A應(yīng)用于Opera 4.0-6.1版本,Linear B應(yīng)用于Opera 7.0~9.2版本,F(xiàn)uthark應(yīng)用于Opera 9.5-10.2版本,Carakan應(yīng)用于Opera 10.5及后續(xù)的版本。
6、KJS KHTML對(duì)應(yīng)的JavaScript引擎。
根據(jù)最新的統(tǒng)計(jì)顯示,全球?yàn)g覽器市場(chǎng)份額最大的幾家廠商及其排名分別是:Google Chrome、Mozilla Firefox、Internet Explorer、Microsoft Edge、Opera及Safari,國(guó)內(nèi)的主要瀏覽器UC、QQ瀏覽器、搜狗、360,百度等。
在手機(jī)上瀏覽器內(nèi)核就是Chromium和Safari兩者,Safari因?yàn)樘O果操作系統(tǒng)緣故仍占有少部分份額。其他幾家均沒(méi)有市場(chǎng)。
除了國(guó)外瀏覽器有自己的內(nèi)核外,中國(guó)沒(méi)有任何瀏覽器有自己的渲染引擎或解析引擎,全都是套殼瀏覽器。這也是為何中國(guó)在信息科技領(lǐng)域缺乏核心技術(shù)的例證之一。現(xiàn)在瀏覽器越來(lái)越復(fù)雜,與操作系統(tǒng)類似,提供了強(qiáng)大的運(yùn)行平臺(tái)。而我們國(guó)家并沒(méi)有相關(guān)的技術(shù)也沒(méi)有相應(yīng)的投入,有的只是拿來(lái)主義,通過(guò)開源框架按照本地習(xí)慣改一下UI界面。
如果把瀏覽器做個(gè)拆分,其組成部分主要有:用戶界面、瀏覽器引擎、渲染引擎、 網(wǎng)絡(luò) 、JS解釋器、UI后端、數(shù)據(jù)存儲(chǔ)7個(gè)部分。而這些核心技術(shù),可惜都是舶來(lái)品。但國(guó)內(nèi)的開發(fā)者也很聰明,開創(chuàng)性發(fā)明了雙核瀏覽器。360瀏覽器、獵豹瀏覽器都是采用IE+Chrome雙內(nèi)核,搜狗、遨游、QQ瀏覽器也是雙內(nèi)核:Trident(兼容模式)+Webkit(高速模式); UC瀏覽器電腦版采用Blink內(nèi)核和Trident內(nèi)核,百度瀏覽器、世界之窗內(nèi)核都是單核(IE內(nèi)核)。
如果要選擇瀏覽器內(nèi)核毫無(wú)疑問(wèn)是chromium體系的的blink+v8。但隨著中美貿(mào)易戰(zhàn)升級(jí),美國(guó)對(duì)中國(guó)核心技術(shù)封鎖和掣肘,中國(guó)的大型互聯(lián)網(wǎng)公司以及手機(jī)廠商應(yīng)該明白,自研操作系統(tǒng)以及瀏覽器內(nèi)核已經(jīng)迫在眉睫了。