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之家