Blink
Blink是由Google主導開發的開源瀏覽器引擎,作為Chromium項目的一部分[1][2]。該引擎最初是WebKit項目中WebCore組件的一個分支,於2013年4月首次公開發布[3][4]。Blink被廣泛應用於Google Chrome、Microsoft Edge、Opera、Brave、Vivaldi、Samsung Internet等眾多基於Chromium的瀏覽器中[1][5]。由於Google Chrome的市場主導地位以及大量Chromium衍生瀏覽器的存在,Blink是目前使用最為廣泛的瀏覽器引擎[5][6]。
歷史
Blink的誕生源於Google在Chromium項目開發過程中對WebKit代碼進行的大量修改。Chromium採用與其他WebKit瀏覽器不同的多進程架構,多年來的架構差異導致WebKit與Chromium項目的複雜性不斷增加,減緩了創新速度[3]。2013年4月3日,Google正式宣布從WebKit中分支出Blink渲染引擎[3][7]。其名稱的由來有兩層含義:一是暗示速度(blink意為「閃爍」),二是指向非標準的HTML blink元素[5]。
分拆之初,Blink團隊即刪除了超過4.5百萬行代碼和7個構建系統,以簡化代碼庫[3]。分拆後的首批改動之一便是棄用包括WebKit前綴在內的CSS供應商前綴,實驗性功能改為選擇加入(opt-in)方式啟用[5]。
在分拆之前,從2009年末至2013年,Google是WebKit項目最大的代碼貢獻者[5]。Blink項目吸引了來自Google、Facebook、Microsoft、Opera Software、Adobe Systems、Intel、IBM、Samsung等多家公司的代碼貢獻[1][2]。
技術架構
渲染流程
Blink作為渲染引擎,負責將HTML、CSS和JavaScript代碼(以及圖片和其他資源)轉換為用戶可查看和交互的網頁[8]。其渲染過程包括資源收集、解析、樣式計算、布局、繪製和合成等多個階段[8]。
Blink使用開源的Skia圖形引擎與計算機或流動裝置的底層圖形硬件進行交互,Skia通過OpenGL、Vulkan和DirectX等圖形庫提供跨平台渲染能力[8]。
JavaScript引擎
Blink內嵌V8 JavaScript引擎,用於解析和執行JavaScript及WebAssembly代碼[8][9]。V8根據ECMAScript標準處理JavaScript,開發者可通過V8訪問底層瀏覽器功能,如操作DOM[8]。
多進程架構
Blink採用多進程模型,UI主進程與渲染進程分離運行,每個標籤頁在單獨的渲染進程中運行,以提高穩定性和響應速度[2]。渲染進程包含主線程(處理JavaScript)等多個線程[2]。
Web標準實現
Blink遵循WHATWG和W3C定義的Web標準,包括HTML、CSS和DOM等規範[8]。瀏覽器功能的接口規範以WebIDL(Web接口定義語言)編寫,確保在不同設備和平台之間實現標準化的交互方式[8]。
特性
多進程與安全
Blink通過多進程架構和沙箱機制提升頁面渲染效率及安全性[2]。每個渲染進程運行在受限的沙箱環境中,以限制潛在安全漏洞的影響範圍。
跨平台支持
Blink作為跨平台渲染引擎,支持Windows、Linux、macOS、Android和ChromeOS等多個作業系統[5][10]。但在iOS平台上,由於Apple的政策限制,所有瀏覽器必須使用WebKit引擎,因此基於Chromium的瀏覽器在iOS上無法使用Blink[5][11]。
應用範圍
Blink被廣泛應用於所有基於Chromium的瀏覽器,包括但不限於[1][5][2]:
- Google Chrome(版本28及以後)
- Microsoft Edge(版本79及以後)
- Opera(版本15及以後)
- Brave
- Vivaldi
- Yandex Browser
- Samsung Internet(部分版本)
- Amazon Silk
許可協議
Blink採用多重許可協議。Google作者貢獻的部分以BSD風格許可證發布,而基於WebCore的組件沿用GNU寬通用公共許可證(LGPL)v2.1[5][10]。
參考文獻
- ↑ 1.0 1.1 1.2 1.3 Blink — 維基百科(中文)
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 Blink — 百度百科
- ↑ 3.0 3.1 3.2 3.3 Blink: A rendering engine for the Chromium project — Chromium Blog
- ↑ Blink — MDN Web Docs
- ↑ 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 Blink (browser engine) — Wikipedia
- ↑ Blink — The Chromium Projects
- ↑ Google Forks WebKit As Blink Rendering Engine — Phoronix
- ↑ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 什麼是 Blink? — Chrome for Developers
- ↑ 揭秘字節碼到像素的一生!Chromium 渲染流水線 — 騰訊雲
- ↑ 10.0 10.1 Blink — 維基百科(中文·新加坡)
- ↑ 谷歌希望在 iOS 上使用 Chrome Blink 引擎,以取代蘋果的 WebKit — IT之家