聊聊浏览器内核

浏览器核心的部分是“Rendering Engine”- “渲染引擎”,称为“浏览器内核”。负责对网页语法的解释(HTML、CSS 的解析,页面布局)并渲染(显示)网页。
不过现在,我们提起的“浏览器内核”,大多包含了javascript引擎,如WebKit,它是WebCore排版引擎及JavaScriptCore解析引擎组合。

分类:

1、Trident(IE内核):

该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE内核”。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器(壳浏览器)涌现。

IE从版本11开始,初步支持WebGL技术。IE8的JavaScript引擎是Jscript,IE9开始用Chakra,这两个版本区别很大,Chakra无论是速度和标准化方面都很出色。

还要说一下,Window10 发布后,IE 将其内置浏览器命名为 Edge,Edge 最显著的特点就是新内核 EdgeHTML。据说,M$ 浏览器开发团队现在的态度是开放、进取、拥抱标准、与其他浏览器保持统一,听取开发者和用户的意见啦,快速迭代更新啦之类的。

Trident内核的迭代列表

Trident内核的常见浏览器

IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)
360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)
360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)
猎豹安全浏览器(1.0-4.2版本为Trident+Webkit,4.3及以后版本为Trident+Blink)
傲游浏览器(傲游1.x、2.x为IE内核,3.x为IE与Webkit双核)
百度浏览器(早期版本)
世界之窗浏览器(最初为IE内核,2013年采用Chrome+IE内核)
搜狗高速浏览器(1.x为Trident,2.0及以后版本为Trident+Webkit)
UC浏览器(Blink内核+Trident内核)

部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换。

2、Gecko(Firefox内核):

Netscape6开始采用的内核,后来的Mozilla FireFox(火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,其JavaScript引擎是SpiderMonkey。

Gecko内核常见的浏览器:

?Mozilla Firefox、Mozilla SeaMonkey、Flock(早期版本)、K-Meleon

3、Presto(Opera前内核) (已废弃):

Opera12.17及更早版本曾经采用的内核,现已停止开发并废弃。

Opera在2013年2月宣布放弃Presto,转而跟随Chrome使用WebKit分支的Chromium引擎作为其核心引擎。
在Chrome与2013年推出Blink引擎(也是基于WebKit的分支)之后,Opera也紧跟其脚步表示将转而使用Blink作为浏览器核心引擎。

4、Webkit(Safari内核,Chrome内核原型,开源):

它是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来
Google Chrome、360极速浏览器以及搜狗高速浏览器高速模式也使用Webkit作为内核(在脚本理解方面,Chrome使用自己研发的V8引擎)。WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

很多人错误的把Webkit叫做Chrome内核,其实Chrome浏览器的内核一开始叫Chromium,后来又变成了Blink了,苹果的Safari才是从一开始就叫Webkit,后来又升级为Webkit2的。

2008 年,谷歌公司发布了 Chrome 浏览器,浏览器使用的内核被命名为 Chromium。
Chromium fork 自开源引擎 Webkit,谷歌公司还研发了自己的 Javascript 引擎,V8,极大地提高了 Javascript 的运算速度。
Chromium 问世后,带动了国产浏览器行业的发展。前面提到的,一些基于 Chromium 的单核,双核浏览器如雨后春笋般拔地而起,例如 搜狗、360、QQ浏览器等等,无一不是套着不同的外壳用着相同的内核。

WebKit内核常见的浏览器:

Apple Safari?(Win/Mac/iPhone/iPad)、Android 默认浏览器。

5、Blink

2013 年 4 月 3 日,谷歌在 Chromium Blog 上发表?博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。Blink是一个由Google和Opera Software开发的浏览器排版引擎,Google计划将这个渲染引擎作为Chromium计划的一部分。这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用
此外,Mozilla与三星也达成合作协议开发“下一代”浏览器渲染引擎Servo

顺便说一下,什么是Chromium计划?

Chromium是Google为发展自家的浏览器Google Chrome(以下简称Chrome)而开启的计划,所以Chromium相当于Chrome的工程版或称实验版(尽管Chrome自身也有β版阶段),新功能会率先在Chromium上实现,待验证后才会应用在Chrome上,故Chrome的功能会相对落后但较稳定。
所以,Chromium和Chrome都是浏览器,Chromium是开发版本,相比起Chrome更新速度快很多,有时数个小时就有一个新版本,不过普通人一般用Chrome就可以了。

再顺便说一下,为什么要新搞一个Blink内核?

Blink 其实是 WebKit 的分支,如同 WebKit 是 KHTML 的分支。Google 的 Chromium 项目此前一直使用 WebKit(WebCore) 作为渲染引擎。

后来,由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突,所以 Chromium 一直停留在 WebKit,并使用移植的方式来实现和主线 WebKit2 的对接。这增加了 Chromium 的复杂性,且在一定程度上影响了 Chromium 的架构移植工作。

基于以上原因,Google 决定从 WebKit 衍生出自己的 Blink 引擎(后由 Google 和 Opera Software 共同研发),将在 WebKit 代码的基础上研发更加快速和简约的渲染引擎,并逐步脱离 WebKit 的影响,创造一个完全独立的 Blink 引擎。这样以来,唯一一条维系 Google 和苹果之间技术关系的纽带就这样被切断了。

Google 和苹果在多个领域都是竞争对手,而唯独在浏览器引擎上有技术合作,利益一致。但为了各自的利益,谁都不会拿出 100% 的 "诚意" 来做好 WebKit,因为你做出来的成果竞争对手可以直接享用。移动互联网已经崛起,手机和平板设备端必将成为浏览器的另一个战场。这个时候,如果 Google 跟苹果仍然黏在一起,将会严重阻碍双方的进步,也会阻碍 WebKit 的进步。

据说 Blink 删除了 880w 行 webkit 代码。啧啧啧……

最后

参考文章:
主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)
各主流浏览器内核介绍

原文地址:https://www.cnblogs.com/baimeishaoxia/p/12210104.html

时间: 2024-10-13 16:53:36

聊聊浏览器内核的相关文章

浏览器内核

主流浏览器内核介绍(前端开发值得了解的浏览器内核历史) 最近 "个人恶趣味" 持续发酵,突然想了解下浏览器内核的发展历史. 内核 首先得搞懂浏览器内核究竟指的是什么. 浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎.它负责取得网页的内容(HTML.XML.图像等等).整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机.浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效

浏览器内核、渲染引擎、js引擎

[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具 [2]常见引擎 渲染引擎: firefox使用gecko引擎 IE使用Trident引擎 2015年微软推出自己新的浏览器,原名叫斯巴达,后改名edge,使用edge引擎 opera最早使用Presto引擎,后来弃用 chrome\safari\opera使用webkit引擎 13年chrome和opera开始使用Blink引擎 js

Rendering Engine 主流的浏览器内核(排版引擎、渲染引擎、解释引擎)有哪几种,分别的特点

一.A web browser engine A rendering engine is software that draws text and images on the screen. The engine draws structured text from a document (often HTML), and formats it properly based on the given style declarations (often given in CSS). Example

浏览器内核常驻线程

浏览器内核常驻线程 浏览器 GUI 渲染线程 JavaScript 引擎线程 浏览器定时触发器线程 浏览器事件触发线程 浏览器 http 异步请求线程 浏览器 GUI 渲染线程 和 JavaScript 引擎线程之间是互斥的 在debug里面check一下如下代码的效果即可知道 var sleep = function(time) { var date = new Date(); while(new Date() - date <= time) {} } document.body.innerH

unigui判断浏览器内核、操作系统以及是否移动终端函数

function GetDeviceType(var OsName, BrowserName: string; var IsMobileDevice: Boolean): string; var I: Integer; BrowserInfo: string; OSTypes, BrowserTypes: TStringList; begin Result := ''; BrowserName := 'Unknown'; OsName := 'Unknown'; IsMobileDevice :

各浏览器内核

Trident(IE内核) Trident: 该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11.Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器(壳浏览器)涌现.此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说). 由于IE本身的"垄断性"(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就

各主流浏览器内核介绍

所谓的"浏览器内核"无非指的是一个浏览器最核心的部分--"Rendering Engine",直译这个词汇叫做"渲染引擎",不过我们也常称其为"排版引擎"."解释引擎".这个引擎的作用是帮助浏览器来渲染网页的内容,将页面内容和排版代码转换为用户所见的视图. 注:有时候我们所说的"浏览器内核"甚至"渲染引擎",其实除了渲染引擎,也悄悄包含了javascript引擎,如W

【转】浏览器内核、渲染引擎、js引擎

[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具 [2]常见引擎 渲染引擎(内核): firefox使用gecko引擎 IE使用Trident引擎 2015年微软推出自己新的浏览器,原名叫斯巴达,后改名edge,使用edge引擎 opera最早使用Presto引擎,后来弃用 chrome\safari\opera使用webkit引擎 13年chrome和opera开始使用Blink引

四大主流浏览器内核简单了解

浏览器最重要最核心的部分就是"解释引擎",也就是"浏览器内核".他负责对网页语法的解释(如HTML.JavaScript)并渲染(显示)网页.      所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语 法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原 因. 浏览器内核很多,如果加