Blink:修订间差异
TeodoroSeccombe(留言 | 贡献) 小 创建页面,内容为“。” |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| 第1行: | 第1行: | ||
{{Infobox | |||
| title = Blink | |||
| label1 = 開發者 | |||
| data1 = The Chromium Project及貢獻者<ref name=":0" /><ref name=":1" /> | |||
| label2 = 首次发布 | |||
| data2 = 2013年4月3日<ref name=":2" /><ref name=":3" /> | |||
| label3 = 源代码库 | |||
| data3 = chromium.googlesource.com | |||
| label4 = 编程语言 | |||
| data4 = [[C++]]<ref name=":1" /><ref name=":4" /> | |||
| label5 = 类型 | |||
| data5 = 瀏覽器排版引擎<ref name=":4" /> | |||
| label6 = 许可协议 | |||
| data6 = [[BSD许可证|BSD]]及[[LGPL|LGPLv2.1]]<ref name=":1" /><ref name=":4" /> | |||
| label7 = 前身 | |||
| data7 = [[WebKit]](WebCore)<ref name=":5" /><ref name=":6" /> | |||
}}'''Blink'''是由[[Google]]主导开发的开源[[浏览器]]引擎,作为[[Chromium]]项目的一部分<ref name=":0">[https://zh.m.wikipedia.org/wiki/Blink Blink — 维基百科(中文)]</ref><ref name=":7">[https://baike.baidu.com/item/Blink/13986338 Blink — 百度百科]</ref>。该引擎最初是[[WebKit]]项目中WebCore组件的一个分支,于2013年4月首次公开发布<ref name=":2">[https://blog.chromium.org/2013/04/blink-rendering-engine-for-chromium.html Blink: A rendering engine for the Chromium project — Chromium Blog]</ref><ref name=":5">[https://developer.mozilla.org/zh-CN/docs/Glossary/Blink Blink — MDN Web Docs]</ref>。Blink被广泛应用于[[Google Chrome]]、[[Microsoft Edge]]、[[Opera]]、[[Brave]]、[[Vivaldi]]、[[Samsung Internet]]等众多基于Chromium的浏览器中<ref name=":0" /><ref name=":1">[[wikipedia:Blink_(browser_engine)|Blink (browser engine) — Wikipedia]]</ref>。由于[[Go]]ogle [[Chrome]]的市场主导地位以及大量Chromium衍生浏览器的存在,Blink是目前使用最为广泛的浏览器引擎<ref name=":1" /><ref name=":8">[https://www.chromium.org/blink/ Blink — The Chromium Projects]</ref>。 | |||
== 历史 == | |||
Blink的诞生源于Google在Chromium项目开发过程中对[[WebKit]]代码进行的大量修改。Chromium采用与其他WebKit浏览器不同的多进程[[架构]],多年来的架构差异导致WebKit与Chromium项目的复杂性不断增加,减缓了创新速度<ref name=":2" />。2013年4月3日,Google正式宣布从WebKit中分支出Blink渲染引擎<ref name=":2" /><ref name=":3">[https://www.phoronix.com/news/Google-Forks-WebKit-Blink Google Forks WebKit As Blink Rendering Engine — Phoronix]</ref>。其名称的由来有两层含义:一是暗示速度(blink意为“闪烁”),二是指向非标准的[[HTML]] blink元素<ref name=":1" />。 | |||
分拆之初,Blink团队即删除了超过4.5百万行代码和7个构建系统,以简化代码库<ref name=":2" />。分拆后的首批改动之一便是弃用包括WebKit前缀在内的CSS供应商前缀,实验性功能改为选择加入(opt-in)方式启用<ref name=":1" />。 | |||
在分拆之前,从2009年末至2013年,Google是WebKit项目最大的代码贡献者<ref name=":1" />。Blink项目吸引了来自[[Google]]、[[Facebook]]、[[Microsoft]]、[[Opera Software]]、[[Adobe Systems]]、[[Intel]]、[[IBM]]、[[Samsung]]等多家公司的代码贡献<ref name=":0" /><ref name=":7" />。 | |||
== 技术架构 == | |||
== | === 渲染流程 === | ||
Blink作为渲染引擎,负责将[[HTML]]、[[CSS]]和[[JavaScript]]代码(以及图片和其他资源)转换为[[用户]]可查看和交互的网页<ref name=":9">[https://developer.chrome.com/docs/web-platform/blink?hl=zh-cn 什麼是 Blink? — Chrome for Developers]</ref>。其渲染过程包括资源收集、解析、样式计算、布局、绘制和合成等多个阶段<ref name=":9" />。 | |||
Blink使用开源的[[Skia]]图形引擎与[[计算机]]或移动设备的底层图形硬件进行交互,Skia通过[[OpenGL]]、[[Vulkan]]和[[DirectX]]等图形库提供[[跨平台]]渲染能力<ref name=":9" />。 | |||
== | === JavaScript引擎 === | ||
Blink内嵌[[V8 (JavaScript引擎)|V8]] [[JavaScript]]引擎,用于解析和执行[[Java]]Script及[[WebAssembly]]代码<ref name=":9" /><ref name=":10">[https://cloud.tencent.com/developer/article/2182117 揭秘字节码到像素的一生!Chromium 渲染流水线 — 腾讯云]</ref>。V8根据[[ECMAScript]]标准处理[[JavaScript]],开发者可通过V8访问底层浏览器功能,如操作[[文档对象模型|DOM]]<ref name=":9" />。 | |||
=== 多进程架构 === | |||
Blink采用多进程模型,UI主进程与渲染进程分离运行,每个标签页在单独的渲染进程中运行,以提高稳定性和响应速度<ref name=":7" />。渲染进程包含主线程(处理JavaScript)等多个线程<ref name=":7" />。 | |||
== | === Web标准实现 === | ||
Blink遵循[[WHATWG]]和[[W3C]]定义的Web标准,包括[[HTML]]、[[CSS]]和[[DOM]]等规范<ref name=":9" />。浏览器功能的接口规范以[[WebIDL]](Web接口定义语言)编写,确保在不同设备和平台之间实现标准化的交互方式<ref name=":9" />。 | |||
== 特性 == | |||
== | === 多进程与安全 === | ||
Blink通过多进程架构和沙箱机制提升页面渲染效率及安全性<ref name=":7" />。每个渲染进程运行在受限的沙箱环境中,以限制潜在安全漏洞的影响范围。 | |||
=== 跨平台支持 === | |||
Blink作为跨平台渲染引擎,支持[[Windows]]、[[Linux]]、[[macOS]]、[[Android]]和[[ChromeOS]]等多个[[操作系统]]<ref name=":1" /><ref name=":4">[https://zh.m.wikipedia.org/zh-sg/Blink Blink — 维基百科(中文·新加坡)]</ref>。但在[[iOS]]平台上,由于[[Apple]]的政策限制,所有浏览器必须使用[[WebKit]]引擎,因此基于Chromium的浏览器在iOS上无法使用Blink<ref name=":1" /><ref name=":11">[https://m.ithome.com/html/670633.htm 谷歌希望在 iOS 上使用 Chrome Blink 引擎,以取代苹果的 WebKit — IT之家]</ref>。 | |||
== 用 | == 应用范围 == | ||
Blink被广泛应用于所有基于Chromium的浏览器,包括但不限于<ref name=":0" /><ref name=":1" /><ref name=":7" />: | |||
* [[Google Chrome]](版本28及以后) | |||
* [[Microsoft Edge]](版本79及以后) | |||
* [[Opera]](版本15及以后) | |||
* [[Brave]] | |||
* [[Vivaldi]] | |||
* [[Yandex Browser]] | |||
* [[Samsung Internet]](部分版本) | |||
* [[Amazon Silk]] | |||
== | == 许可协议 == | ||
Blink采用多重许可协议。Google作者贡献的部分以[[BSD许可证|BSD]]风格许可证发布,而基于WebCore的组件沿用[[LGPL|GNU宽通用公共许可证]](L[[GPL]])v2.1<ref name=":1" /><ref name=":4" />。 | |||
== 参考文献 == | == 参考文献 == | ||
<references /> | <references /> | ||