We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quantum 初探:即本篇文章,将介绍 Quantum 项目的由来和概况,引出它的强大“后台” Servo Servo 的设计架构:介绍了 Servo 的基于任务的设计架构,重点介绍了并行并发的策略
quantum 这个词来自拉丁语 quantus,意思是 how great - 多么伟大
Quantum 是 Mozilla 为了构建下一代 Web 引擎的项目。在正式介绍它之前,我们需要先了解一些浏览器的相关知识。
图1. 浏览器结构,源自 How Browsers Work
渲染引擎(Rendering Engine)也叫布局引擎(Layout Engine)。浏览器的渲染引擎,有时也简称为浏览器引擎(Browser Engine)。
注意:这里的 Browser Engine 不同于图1中的 Browser engine
所以,以下名词往往是等价的: 浏览器的渲染引擎 ~ 浏览器引擎 ~ 渲染引擎 ~ 布局引擎
主流浏览器用到的渲染引擎如下:
之所以列出“脚本引擎”,旨在强调渲染引擎不负责 JS。对 JS 的解释和执行是由独立的引擎完成的,比如大名鼎鼎的 V8 引擎。
对 HTML 文档来说,渲染引擎的主要任务就是解析 HTML 和 CSS,再把最终的结果绘制到屏幕上。
下面是各个渲染引擎的时间线,我们可以很直观地看出她们的生日和年龄。其中,Trident、KHTML、Presto 已经停止更新;Gecko、WebKit、Blink 和 Edge 依然在持续更新中。
图2. 浏览器引擎,源自维基百科 Browser engine
2013年,Mozilla 启动了一项研究型项目 Servo。这是一个从零开始设计的浏览器引擎,目标是提高并发性和并行性,同时减少内存安全漏洞。它是由 Rust 语言编写的,而 Rust 有更好的内存安全属性和并发功能。
2016年4月,考虑到 Servo 还需要几年才能成为功能完备的浏览器引擎。所以,Mozilla 决定启动 Quantum 项目,将 Servo 的稳定部分带到 Firefox 里。
关于集成到 Firefox 中的 Servo 组件,可查看 Jack Moffitt 的演讲视频 Web Engines Hackfest
Gecko 是 Mozilla 的一个成熟且功能健全的 Web 浏览器引擎,它起源于1997年的 Netscape。Mozilla 采用渐进式的方法,将 Servo 里已稳定的组件迁移到 Gecko 中,用户将不必等很长时间就能看到 Firefox 在稳定性和性能上的显著改进。
2017年11月发布的 Firefox 57 是第一版启用了 Servo 组件的浏览器,之后便在此版本的基础上进行迭代开发。
Quantum 以 Gecko 引擎为基础,同时利用了 Rust 的良好并发性和 Servo 的高性能组件,为 Firefox 带来了更多的并行化和 GPU 运算,让 Firefox 更快更可靠。
Quantum 是一个将 Mozilla 的多个社区及其代码仓库联系在一起的大项目,它包含多个子项目:
至此,大家对 Quantum 项目的由来和概况有了初步的认识。后续,我会继续探索更多详细内容。敬请期待。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Quantum 初探
Quantum 是 Mozilla 为了构建下一代 Web 引擎的项目。在正式介绍它之前,我们需要先了解一些浏览器的相关知识。
浏览器相关
浏览器的结构
图1. 浏览器结构,源自 How Browsers Work
渲染引擎
渲染引擎(Rendering Engine)也叫布局引擎(Layout Engine)。浏览器的渲染引擎,有时也简称为浏览器引擎(Browser Engine)。
主流浏览器用到的渲染引擎如下:
对 HTML 文档来说,渲染引擎的主要任务就是解析 HTML 和 CSS,再把最终的结果绘制到屏幕上。
下面是各个渲染引擎的时间线,我们可以很直观地看出她们的生日和年龄。其中,Trident、KHTML、Presto 已经停止更新;Gecko、WebKit、Blink 和 Edge 依然在持续更新中。
图2. 浏览器引擎,源自维基百科 Browser engine
Quantum
背景
2013年,Mozilla 启动了一项研究型项目 Servo。这是一个从零开始设计的浏览器引擎,目标是提高并发性和并行性,同时减少内存安全漏洞。它是由 Rust 语言编写的,而 Rust 有更好的内存安全属性和并发功能。
2016年4月,考虑到 Servo 还需要几年才能成为功能完备的浏览器引擎。所以,Mozilla 决定启动 Quantum 项目,将 Servo 的稳定部分带到 Firefox 里。
Quantum 项目
Gecko 是 Mozilla 的一个成熟且功能健全的 Web 浏览器引擎,它起源于1997年的 Netscape。Mozilla 采用渐进式的方法,将 Servo 里已稳定的组件迁移到 Gecko 中,用户将不必等很长时间就能看到 Firefox 在稳定性和性能上的显著改进。
2017年11月发布的 Firefox 57 是第一版启用了 Servo 组件的浏览器,之后便在此版本的基础上进行迭代开发。
Quantum 以 Gecko 引擎为基础,同时利用了 Rust 的良好并发性和 Servo 的高性能组件,为 Firefox 带来了更多的并行化和 GPU 运算,让 Firefox 更快更可靠。
多个子项目
Quantum 是一个将 Mozilla 的多个社区及其代码仓库联系在一起的大项目,它包含多个子项目:
下一步
至此,大家对 Quantum 项目的由来和概况有了初步的认识。后续,我会继续探索更多详细内容。敬请期待。
参考
The text was updated successfully, but these errors were encountered: