资讯专栏INFORMATION COLUMN

聊聊浏览器内核

Developer / 1528人阅读

摘要:内核内核原型开源它是苹果公司自己的内核,也是苹果的浏览器使用的内核。很多人错误的把叫做内核,其实浏览器的内核一开始叫,后来又变成了了,苹果的才是从一开始就叫,后来又升级为的。年,谷歌公司发布了浏览器,浏览器使用的内核被命名为。

浏览器核心的部分是“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.ucloud.cn/yun/88425.html

相关文章

  • 聊聊览器内核

    摘要:内核内核原型开源它是苹果公司自己的内核,也是苹果的浏览器使用的内核。很多人错误的把叫做内核,其实浏览器的内核一开始叫,后来又变成了了,苹果的才是从一开始就叫,后来又升级为的。年,谷歌公司发布了浏览器,浏览器使用的内核被命名为。 浏览器核心的部分是Rendering Engine- 渲染引擎,称为浏览器内核。负责对网页语法的解释(HTML、CSS 的解析,页面布局)并渲染(显示)网页。不...

    chavesgu 评论0 收藏0
  • 聊聊并发(五)——线程池

    摘要:线程池一种线程使用模式。线程池不仅能够保证内核的充分利用,还能防止过分调度。相关起提供了线程池相关顶级接口,及子接口和工具类。线程池的最大线程数,要大于。可扩容创建一个可根据需要线程数,创建新的线程的线程池。一、概述1、介绍  在使用线程时,需要new一个,用完了又要销毁,这样频繁的创建和销毁很耗资源,所以就提供了线程池。道理和连接池差不多,连接池是为了避免频繁的创建和释放连接,所以在连 接...

    xiaochao 评论0 收藏0
  • Deno 兼容览器具体指的是什么?

    摘要:里面有一句描述,可以看到的目标是兼容浏览器。那么这里的兼容浏览器到底如何是什么意思呢我简单谈谈我的理解吧。很多人还有误解以为兼容浏览器指的是会提供类似里的写法。 Deno 里面有一句描述:Aims to be browser compatible,可以看到 Deno 的目标是兼容浏览器。那么这里的兼容浏览器到底如何是什么意思呢? 我简单谈谈我的理解吧。 首先这里的兼容性肯定不是 Den...

    Yangyang 评论0 收藏0
  • 说透 Docker:虚拟化

    摘要:本章内容将讲解虚拟化虚拟化本质。在中限制容器能够使用的资源量参数示例是的缩写,是内核提供的一种可以进程所使用的物理资源的机制。本章内容将讲解 Docker 虚拟化、虚拟化本质、namespace、cgroups。Docker 虚拟化关于Docker本小节将介绍 Docker 虚拟化的一些特点。 Docker 是一个开放源代码软件项目,自动化进行应用程序容器化部署,借此在Linux操作系统上,...

    luffyZh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<