浏览器内核简介

浏览器内核可以说是浏览器的心脏,浏览器内核由两部分组成,渲染引擎——“Rendering Engine”,和JS引擎。渲染引擎主要负责网页的显示方式等,JS引擎主要负责解析JavaScript代码,由于后来JS引擎越来越独立,浏览器内核一般指渲染引擎。在常见的主流浏览器中,各浏览器内核是不同的,主要分为Trident、Gecko、Blink和Webkit。

Trident

微软在1994年夏天,为抵抗当时的主流浏览器网景Netscape Navigator,与Spyglass合作,IE从早期一款商业性的专利网页浏览器Spyglass Mosaic派生出来,并于1996年,微软购买了Spyglass Mosaic的源代码和并获取授权,IE逐渐成为微软的专属浏览器,其排版引擎就是Trident,Trident内核也因此被称为“IE内核”。

Trident内核实际上是开源的,其接口内核设计的很成熟,因此产生了很多使用Trident内核的非IE浏览器,而当时微软一家独大,导致很长一段时间微软都没有更新Trident内核,这导致了两个后果,一是Trident内核几乎与W3C标准脱轨,二是产生了很多bug,一些致力于开源的开发者逐渐认为IE不安全,很多用户开始弃用IE而转用其他浏览器,Firefox和Opera就是这个时候兴起的。

Gecko

Gecko(Firefox内核)之前Netscape 6 在使用该内核,后来Mozilla FireFox(火狐浏览器) 也采用了该内核,Mozilla FireFox在2004年2月9日由Mozilla Firebird改名而来,Gecko内核是完全开源的,可开发程度很高,因此受到很多人的青睐,使用Gecko内核的浏览器逐渐增多,Gecko的市场份额也因此迅速提高。不过使用Firefox的用户居多,因此Gecko也被称为Firefox内核。

Webkit

Safari是苹果公司开发的浏览器,使用KDE(Linux桌面系统)的KHTML作为浏览器的运算核心,其内核便是Webkit。 Safari在2003年1月7日首度发行测试版,并成为Mac OS X v10.3与之后版本的默认浏览器,也成为苹果其它系列产品的指定浏览器(也已支持Windows平台)。

Webkit的前身是KHTML引擎,由于KHTML拥有清晰的源码结构和极快的渲染速度,苹果公司在比较了Gecko和KHTML后,选择了KHTML做引擎开发,随后,Webkit在开源世界诞生了很多Webkit分支,其中包括2008年Google公司发布的chrome浏览器的Chromium内核。可以说Chrome 将 Webkit内核深入人心,导致很多人认为 webkit 内核就是 chrome内核。

根据上面可以知道,Chromium内核其实是Webkit的一个分支,内置于Chrome浏览器中。Google还研发了自己的JavaScript引擎——V8,极大提高了JavaScript的运行速度。之后,由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突,所以 Chromium 一直停留在 WebKit,并使用移植的方式来实现和主线 WebKit2 的对接。这增加了 Chromium 的复杂性,且在一定程度上影响了 Chromium 的架构移植工作。

基于以上原因,Google 决定从 WebKit 衍生出自己的 Blink 引擎(后由 Google 和 Opera Software 共同研发),并逐步脱离 WebKit 的影响。

2013 年 4 月 3 日,谷歌在 Chromium Blog 上发表 博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。Blink问世后,各种国产Chrome系浏览器纷纷投入Blink引擎的怀抱中。

Presto

Presto是挪威浏览器Opera的“前任”内核,自2013年2月,Opera宣布放弃Presto,转而跟随Chrome使用WebKit分支的Chromium引擎作为自家浏览器核心引擎。2013年4月,Chrome推出Blink引擎,Opera也紧跟其脚步表示将转而使用Blink作为浏览器核心引擎。

Opera的一个里程碑作品是Opera7.0,因为它使用了Opera Software自主开发的Presto渲染引擎,取代了旧版Opera 4至6版本使用的Elektra排版引擎。Opera与开源的Webkit和Chrome的Chromium系列相比毫无推广上的优势,Opera无奈转投Webkit,但在使用 WebKit 内核的 Opera 浏览器出现了很多问题,导致了众多用户流失。

移动端

目前移动设备浏览器上常用的内核有 Webkit,Blink,Trident,Gecko 等,其中 iPhone 和 iPad 等苹果 iOS 平台主要是 WebKit,Android 4.4 之前的 Android 系统浏览器内核是 WebKit,Android4.4 系统浏览器切换到了Chromium,内核是 Webkit 的分支 Blink,Windows Phone 8 系统浏览器内核是 Trident。

原文:大专栏  浏览器内核简介


猜你喜欢

转载自www.cnblogs.com/petewell/p/11585098.html