日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Chrome内核解析 -- 背景篇:Chrome, Chromium, WebKit, WebKit2, Blink

發(fā)布時(shí)間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Chrome内核解析 -- 背景篇:Chrome, Chromium, WebKit, WebKit2, Blink 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/yunchao_he/article/details/41577097


本文大部分內(nèi)容轉(zhuǎn)載于朱永盛的博客,原文地址:

http://blog.csdn.net/milado_nju/article/details/7292164

http://blog.csdn.net/milado_nju/article/details/7300074


本文將兩篇原文合并,略有刪改。并加入了一些新內(nèi)容,比如添加了Blink的介紹。


在介紹各個(gè)專題之前,有必要先解釋一下極其容易混淆的幾個(gè)概念,它們是WebKit和WebKit2,Chromium和Chrome, Blink。

首先來了解WebKit。廣義上來說,WebKit是一個(gè)開源項(xiàng)目,其前身來源于KDE的KHTML和KJS,由Apple發(fā)起并主導(dǎo)。該項(xiàng)目專注于網(wǎng)頁內(nèi)容的展示,并發(fā)展壯大為一流的網(wǎng)頁渲染引擎。它不是瀏覽器,而且也不想成為瀏覽器。 該項(xiàng)目包含兩個(gè)部分,第一部分是WebCore,其中包含了對(duì)HTML,CSS等很多W3C規(guī)范的實(shí)現(xiàn);第二部分就是狹義上的WebKit,它主要是各個(gè)平臺(tái)的的移植并提供相對(duì)應(yīng)的Web接口,也就是WebView或者類似WebView的組件,這些接口提供操作和顯示網(wǎng)頁的能力。目前使用WebKit的主流的瀏覽器或者WebView包括Chrome, Safari, QtWebKit, Android Browser, IOS平臺(tái)的WKWebView以及眾多的移動(dòng)平臺(tái)的瀏覽器和WebView。


WebKit2相對(duì)于狹義上的WebKit而言,它不是WebKit簡單的第二個(gè)版本,它是一個(gè)新的API層,其最主要的變化在于將網(wǎng)頁的渲染置于單獨(dú)的進(jìn)程,而接口層(API層)則在另外一個(gè)進(jìn)程,它們之間通過IPC來通訊。對(duì)于接口的調(diào)用者來說,中間的IPC和底下的實(shí)現(xiàn)是透明的,調(diào)用者感知不到它的存在,當(dāng)然也無法做定制。這樣做的好處有很多,一個(gè)很明顯的好處是,當(dāng)網(wǎng)頁的渲染出現(xiàn)問題時(shí),不會(huì)阻礙Web接口的調(diào)用者進(jìn)程,這會(huì)在很大程度上解決或者幫助解決瀏覽器或者這些調(diào)用者的穩(wěn)定性和安全性等問題。


Chromium是一個(gè)建立在WebKit之上的瀏覽器開源項(xiàng)目,由Google發(fā)起并主導(dǎo)。該項(xiàng)目被創(chuàng)建以來發(fā)展迅速,很多先進(jìn)的技術(shù)被采用,如跨進(jìn)程模型,沙箱模型等等。同時(shí),很多新的規(guī)范被支持,例如WebGL,Canvas2D,CSS3以及其他很多的HTML5特性,基本上每天你都可以看到它的變化,它的版本升級(jí)很快,現(xiàn)在沒6個(gè)月升級(jí)一個(gè)版本。在性能方面,它也備受稱贊,包括快速啟動(dòng),網(wǎng)頁加載迅速等。


Chrome是Google公司的瀏覽器產(chǎn)品,它基于chromium開源項(xiàng)目,一般選擇穩(wěn)定的版本作為它的基礎(chǔ),它和chromium的不同點(diǎn)在于chromium是開源試驗(yàn)場(chǎng),會(huì)嘗試很多新的東西,當(dāng)這些東西穩(wěn)定之后,chrome才會(huì)集成進(jìn)來,這也就是說chrome的版本會(huì)落后于chromium。另外,chrome會(huì)加入一些私有的codec,比如私有的音視頻編解碼器,這些僅在chrome中才會(huì)出現(xiàn),而Chromium里相應(yīng)的組件往往使用開源項(xiàng)目。再次,chrome還會(huì)整合Google的很多服務(wù)。 最后chrome還會(huì)有自動(dòng)更新的功能,這也是chromium所沒有的。

2013年5月,Google將WebKit從WebKit開源項(xiàng)目中克隆出來,稱為Blink。這樣,Google對(duì)Blink的改造將自由得多,不像對(duì)WebKit的改動(dòng)時(shí)刻受Apple掣肘。從此,Blink與WebKit并駕齊驅(qū),彼此不相關(guān)聯(lián)??傮w上,Blink的功能和WebKit相同,是Chromium的繪制引擎。當(dāng)然,時(shí)至今日,Google對(duì)Blink在構(gòu)架上做了一些改動(dòng),以更好的適應(yīng)于Chromium項(xiàng)目。另外,Blink并不是一個(gè)完全獨(dú)立的項(xiàng)目,而是作為Chromium項(xiàng)目的一部分。


簡單來講,WebKit/Blink是一個(gè)渲染引擎,Chromium是一個(gè)瀏覽器,它們那么分別包含哪些不同的功能模塊?它們是如何劃分地?下面為大家詳細(xì)解讀WebKit/Blink的功能。

WebKit/Blink:

1. HTML解析::負(fù)責(zé)HTML語言的解析

2. CSS解析:負(fù)責(zé)CSS的解析工作

3. 圖片解碼:支持不同編碼格式的圖片

4. JavaScript引擎:JavaScript語言的解析引擎,缺省的是JavaScriptCore,但是目前Google 的V8 JavaScript被廣泛使用

5. 正則表達(dá)式

6. 布局:負(fù)責(zé)布局(layout)的計(jì)算和更新工作

7. 文檔對(duì)象模型(DOM):DOM是W3C定義的對(duì)象模型,該部分負(fù)責(zé)DOM樹及其相應(yīng)的接口

8. 渲染:與渲染相關(guān)的基礎(chǔ)設(shè)施,例如渲染樹,渲染層次樹等等

9. SVG:對(duì)SVG的支持

10. XML解析:XML語言的解析

11. XSLT:XSLT語言的解析執(zhí)行

12. URL解析器:URL規(guī)范的解析

13. Unicode編解碼器:各種編碼解碼工作

14. 移植:WebKit中比較大的一部分,因?yàn)閃ebKit要工作需要不同平臺(tái)上有具體的實(shí)現(xiàn),因而不同的移植有不同的實(shí)現(xiàn)。chromium的移植很復(fù)雜,因?yàn)槠渲С挚缙脚_(tái),所以它的移植需要在windows,linux和mac上工作。

... ...

由上面的模塊大致可以看出,WebKit主要是跟網(wǎng)頁的解析和渲染相關(guān)的工作,其不涉及瀏覽器的歷史,書簽,下載,cookie管理等等方面的工作。實(shí)際上,這些和瀏覽器緊密相關(guān)的功能在Chromium中,Chromium的功能模塊包括:

Chromium:

1. Cookie管理器:cookie生命周期的管理

2. 歷史管理器:歷史記錄的管理

3. 密碼管理器:網(wǎng)頁中密碼登錄信息管理

4. 窗口管理:多個(gè)Tab窗口的管理和切換

5. 地址欄:地址欄功能,智能地址填充與書簽的協(xié)同工作

6. 安全瀏覽黑名單管理:安全瀏覽機(jī)制

7. 網(wǎng)絡(luò)棧:與網(wǎng)絡(luò)傳輸相關(guān)的工作,其有很多創(chuàng)新的東西

8. SSL/TLS:網(wǎng)絡(luò)傳輸安全

9. 磁盤緩存:磁盤緩存頁面及其替換策略等生命周期的管理

10. 下載管理器:管理下載相關(guān)

11. 粘帖板:clipboard的功能

12.書簽管理:書簽的組織和管理

13. URL解析器:同WebKit

14. Unicode編解碼器:同WebKit

... ...

Chromium主要是實(shí)現(xiàn)瀏覽器相關(guān)的功能,如上面中的網(wǎng)絡(luò)棧等等。其實(shí)以上只是一些瀏覽器基本功能,chromium實(shí)現(xiàn)的遠(yuǎn)不止這些,這其中包含沙箱模型,NaCl,擴(kuò)展機(jī)制,硬件加速架構(gòu)等等。這些我們將在之后的章節(jié)中逐一介紹它們。

URL解析器和Unicode編解碼器在兩者中都存在是因?yàn)樗鼈兌家褂玫健?/p>

總結(jié)

以上是生活随笔為你收集整理的Chrome内核解析 -- 背景篇:Chrome, Chromium, WebKit, WebKit2, Blink的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。