IT 工程师必须知道的最新术语:次时代的 Web 浏览器内核引擎

文 / 杉山贵章 Sugiyama Takaak(i ONGS 公司)

takaaki@ongs.co.jp

译/苏祎

动荡的 Web 浏览器市场

Web 浏览器所搭载的浏览器内核,是支撑以 HTML5/ CSS3 为中心的 Web 技术快速发展的最重要因素。近年,Web 浏览器内核势力鼎足三分,主要有 Apple 公司和 Google 公司开发的、Safari 和 Chrome(以及 Chromium)所搭载的 WebKit;Mozilla Foundation 开发的、Firefox 所搭载的 Gecko;还有 Microsoft 公司所开发、Internet Explorer 搭载的 Trident。

特别是 WebKit,在 2005 年开源后,它的份额急速扩大,现在基于 WebKit 内核的 Web 浏览器已经占领了大约一半的市场。其快速成长的背后,一方面源于与最新 Web 技术相对应的、技术与硬件方面的高强度发展;另一方面,源于移动终端市场中,iOS(Safari 被用作默认浏览器)和 Android(Chrome 被用作默认浏览器)拥有压倒性的份额。

2013 年 2 月,Opera 公司也发表声明,将把 Web 浏览器 Opera 的内核引擎从自己公司研发的 Presto 更换为 WebKit,WebKit 的市场份额更加坚实。

但是,进入 4 月,传出了两条冲击性的新闻,撼动着原有的势力版图。第一条是,Mozilla 宣布,将与三星联手开发替换 Gecko 的最新引擎 Servo。第二条是,Google 宣布,将开发用于 Chrome 的新引擎 Blink,用以替换 WebKit。

Google 的新引擎 Blink

Blink 以 WebKit 项目的分支形式进行开发,最大的特征是,基础代码的完善与多进程架构的优化。Blink 将从 Chrome 28 开始正式使用,很快会发布正式版(截至本文编写时)。但是,因其涉及内部的架构改动与代码的简化,这是否会对 Web 开发者产生较大的影响仍不明了。虽然如此,刚刚决定使用 WebKit 内核的 Opera 仍将意愿移向天平中 Blink 的一端。

Google 舍弃 WebKit,进而独自开发内核引擎,主要是因为 Chrome 与其他的 Web 浏览器相比,采用了多进程架构。为了对应 Chrome,WebKit 的开发变得很繁琐,反过来,Chrome 方面为了保持和 WebKit 的兼容性,也阻碍了它技术的进一步改良,两者最终在痛苦中做出了艰难的分手决定。

Mozilla 的新引擎 Servo

Servo 是基于 Rust 语言开发的新引擎,主要功能是支持多核和异构处理器,灵活使用 GPU 进行并行处理,通过大幅改善内存管理来强化安全性。Rust 是 Mozilla 独自推进开发的开源语言,主要特点是精准的硬件资源调配和内存安全功能,以及针对多核 CPU 的优化设计,因此,Rust 具备 Servo 所要求的全部要素。

Servo 最初是以 Android+ARM 这样的移动环境为目标进行开发的,并没有打算用于替换 Gecko。Servo 所扮演的角色是“针对新硬件的全新引擎”,PC 环境下,依旧由 Gecko 担任主要的内核引擎。但是也不排除将来会把 Servo 的成果反馈到面向 PC 的浏览器中。

Blink 和 Servo 这两个新引擎的出现,一方面扩大了 Web 浏览器的新的可能性,另一方面也包含了平台的多样性的问题。最先受其影响的 Web 开发者和设计师们,当然要密切关注各个公司的动向了。

目录