1. WebKit
When Apple decided to make its own web browser back in 2001, it chose KHTML/KJS from the KDE project as the basis of its rendering engine. Apple didn‘t merely "adopt" this technology; it took the source code and ran with it, hiring a bunch of smart, experienced developers and giving them the time and resources they needed to massively improve KHTML/KJS over the course of several years. Thus, WebKit was born.
Apple基于KDE的 KHTML/KJS开发出了Webkit.
KHTML is a browser engine,KJS is KDE‘s ECMAScript-JavaScript engine.
which lately respectively evolve to WebCore and JavaScriptCore.
2. Blink
When Google introduced its own web browser in 2008, it chose WebKit as the basis for its rendering engine. Rather than forking off its own engine based on WebKit, Google chose to participate in the existing WebKit community.
Google在WebKit社区影响日盛,Apple比较保守,所以fork出了Blink.
Given these graphs, and knowing the history between Apple and Google over the past decade, one of two things seemed inevitable: either Google was going to become the new de facto "owner" of WebKit development, or it was going to create its own fork of WebKit. It turned out to be the latter. Thus, Blink was born.
Google has already proven that it has the talent, experience, and resources to develop a world-class web browser. It made its own JavaScript engine, its own multi-process architecture for stability and code isolation, and has added a huge number of improvements to WebKit itself. Now it‘s taken the reins of the rendering engine too.
On April 3, 2013, Google announced that it had forked WebCore, a component of WebKit, to be used in future versions of Google Chrome and the Opera web browser, under the name Blink.
3. WebKit2
WebKit2 is created to support multi-process architecture.
Google did not want to contribute its multi-process architecture back to the WebKit project, so Apple created its own solution: the somewhat confusingly named WebKit2. While Google chose to put the process management into the browser application, Apple baked multi-process support into the WebKit engine itself. This means that any application that uses WebKit2 gets the benefits of multi-process isolation without having to do anything special.
4. Chromium
V8 是 Blink 内置的 JavaScript 引擎。Chromium 是 Google 公司一个开源浏览器项目,使用 Blink 渲染引擎驱动。Chromium 和 Google Chrome 的关系,可以理解为:Chromium + 集成 Google 产品 = Google Chrome。
可以理解为 Google Chrome 是个商业项目,而 Chromium 是一个中立、无立场的(理论上)的开源项目
Chromium是Google为发展浏览器Google Chrome而发布的免费开源软件项目,以BSD许可协议等数种许可发行并开放源代码。Chromium与Google Chrome共享大部分代码和功能,但功能和商标之间有一些细微差别。
Chromium的更新速度很快,每隔数小时即有新的开发版本发布。[8]由于新功能会先在Chromium上测试,等待认证后才会应用在Google Chrome上,所以Chromium相当于Google Chrome的先行版。
许多其他浏览器也基于Chromium的代码,例如Microsoft Edge和Opera。
5. JavaScript Engine
把JavaScript代码编译成本地机器码
Node.js 运行时系统也是由 V8 引擎驱动的。这使得 Node.js 可以不断受益于 V8 的开发和改进,并提供出色而快速的服务器体验。由于 V8 是用 C++ 编写的,因此能够将 JavaScript 编译为本地机器代码,而不是实时解释它,这使的 Node.js 在服务器市场中如此快速的占据一定的竞争力。
V8 对 DOM(文档对象模型)一无所知,因为它仅用于处理 JavaScript。Blink 内置的布局引擎负责处理网页布局和展示。因为 Node.js 不需要使用 DOM,所以 Node.js 只使用了 V8 引擎,而没有把整个 Blink 引擎都搬过来用。
-
V8------开源,由 Google 开发,使用 C++ 编写
-
SpiderMonkey------第一个 JavaScript 引擎,该引擎过去驱动 Netscape Navigator,如今驱动 Firefox 浏览器。
-
JavaScriptCore------开源,苹果公司为 Safair 浏览器开发的