跳至內容

Blink

輕之舟百科,讓知識輕裝啟航
Blink
開發者The Chromium Project及貢獻者[1][2]
首次發布2013年4月3日[3][4]
原始碼庫chromium.googlesource.com
編程語言C++[2][5]
類型瀏覽器排版引擎[5]
許可協議BSD及LGPLv2.1[2][5]
前身WebKit(WebCore)[6][7]

Blink是由Google主導開發的開源瀏覽器引擎,作為Chromium項目的一部分[1][8]。該引擎最初是WebKit項目中WebCore組件的一個分支,於2013年4月首次公開發布[3][6]。Blink被廣泛應用於Google Chrome、Microsoft Edge、Opera、Brave、Vivaldi、Samsung Internet等眾多基於Chromium的瀏覽器中[1][2]。由於Google Chrome的市場主導地位以及大量Chromium衍生瀏覽器的存在,Blink是目前使用最為廣泛的瀏覽器引擎[2][9]。

Blink的誕生源於Google在Chromium項目開發過程中對WebKit代碼進行的大量修改。Chromium採用與其他WebKit瀏覽器不同的多進程架構,多年來的架構差異導致WebKit與Chromium項目的複雜性不斷增加,減緩了創新速度[3]。2013年4月3日,Google正式宣布從WebKit中分支出Blink渲染引擎[3][4]。其名稱的由來有兩層含義:一是暗示速度(blink意為「閃爍」),二是指向非標準的HTML blink元素[2]。

分拆之初,Blink團隊即刪除了超過4.5百萬行代碼和7個構建系統,以簡化代碼庫[3]。分拆後的首批改動之一便是棄用包括WebKit前綴在內的CSS供應商前綴,實驗性功能改為選擇加入(opt-in)方式啟用[2]。

在分拆之前,從2009年末至2013年,Google是WebKit項目最大的代碼貢獻者[2]。Blink項目吸引了來自Google、Facebook、Microsoft、Opera Software、Adobe Systems、Intel、IBM、Samsung等多家公司的代碼貢獻[1][8]。

技術架構

[編輯 | 編輯原始碼]

渲染流程

[編輯 | 編輯原始碼]

Blink作為渲染引擎,負責將HTML、CSS和JavaScript代碼(以及圖片和其他資源)轉換為用戶可查看和交互的網頁[10]。其渲染過程包括資源收集、解析、樣式計算、布局、繪製和合成等多個階段[10]。

Blink使用開源的Skia圖形引擎與計算機或流動裝置的底層圖形硬件進行交互,Skia通過OpenGL、Vulkan和DirectX等圖形庫提供跨平台渲染能力[10]。

JavaScript引擎

[編輯 | 編輯原始碼]

Blink內嵌V8 JavaScript引擎,用於解析和執行JavaScript及WebAssembly代碼[10][11]。V8根據ECMAScript標準處理JavaScript,開發者可通過V8訪問底層瀏覽器功能,如操作DOM[10]。

多進程架構

[編輯 | 編輯原始碼]

Blink採用多進程模型,UI主進程與渲染進程分離運行,每個標籤頁在單獨的渲染進程中運行,以提高穩定性和響應速度[8]。渲染進程包含主線程(處理JavaScript)等多個線程[8]。

Web標準實現

[編輯 | 編輯原始碼]

Blink遵循WHATWG和W3C定義的Web標準,包括HTML、CSS和DOM等規範[10]。瀏覽器功能的接口規範以WebIDL(Web接口定義語言)編寫,確保在不同設備和平台之間實現標準化的交互方式[10]。

多進程與安全

[編輯 | 編輯原始碼]

Blink通過多進程架構和沙箱機制提升頁面渲染效率及安全性[8]。每個渲染進程運行在受限的沙箱環境中,以限制潛在安全漏洞的影響範圍。

跨平台支持

[編輯 | 編輯原始碼]

Blink作為跨平台渲染引擎,支持Windows、Linux、macOS、Android和ChromeOS等多個作業系統[2][5]。但在iOS平台上,由於Apple的政策限制,所有瀏覽器必須使用WebKit引擎,因此基於Chromium的瀏覽器在iOS上無法使用Blink[2][12]。

應用範圍

[編輯 | 編輯原始碼]

Blink被廣泛應用於所有基於Chromium的瀏覽器,包括但不限於[1][2][8]:

許可協議

[編輯 | 編輯原始碼]

Blink採用多重許可協議。Google作者貢獻的部分以BSD風格許可證發布,而基於WebCore的組件沿用GNU寬通用公共許可證(LGPL)v2.1[2][5]。

參考文獻

[編輯 | 編輯原始碼]