[ 基础 浏览器内核 ] 浏览器渲染引擎机制

浏览器内核程序员

浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过咱们通常习惯将之称为“浏览器内核”。负责对网页语法的解释(如标准通用标记语言下的一个应用HTMLJavaScript)并渲染(显示)网页。 因此,一般所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不一样的浏览器内核对网页编写语法的解释也有不一样,所以同一网页在不一样的内核的浏览器里的渲染(显示)效果也可能不一样,这也是网页编写者须要在不一样内核的浏览器中测试网页显示效果的缘由。编程

做    用浏览器

决定网页及页面格式信息 安全

内核分类 网络

Trident 架构

Trident(IE内核):该内核程序在1997年的IE4中首次被采 用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被广泛称做”IE内核”。Trident其实是一款开放的内核,其接口内核设 计的至关成熟,所以才有许多采用IE内核而非IE的浏览器(壳浏览器)涌现。并发

因为IE自己的“垄断性”(虽然名义上IE并不是垄断,但实际上,特别是从 Windows 95年代一直到XP初期,就市场占有率来讲IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间 都并无更新Trident内核,这致使了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有获得及时解决,而后加上一些致力于开源的开发者和一些学者们公开本身认为IE浏览器不安全的观点,也有不少用户转向了其余浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提升也导致许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。编程语言

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

Trident内核的常见浏览器有:[1]   IE6IE7IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);[1]  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双核)、百度浏览器(早期版本)、世界之窗浏览器[2]  (最初为IE内核,2013年采用Chrome+IE内核)、2345浏览器、腾讯TT淘宝浏览器采编读浏览器搜狗高速浏览器(1.x 为Trident,2.0及之后版本为Trident+Webkit)、阿云浏览器(早期版本)、瑞星安全浏览器、Slim Browser、 GreenBrowser、爱帆浏览器(12 以前版本)、115浏览器、155浏览器、闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览 器、飞腾浏览器、速达浏览器、佐罗浏览器、海豚浏览器(iPhone/iPad/Android)、UC浏览器(Blink内核+Trident内核) 等。测试

其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,而后再增长一个其余内核。国内的厂商通常把其余内核叫作“高速浏览模式”,而Trident则是“兼容浏览模式”,用户能够来回切换。

Gecko 

Gecko(Firefox内核):Netscape6开始采用的内核,后来的Mozilla FireFox(火狐浏览器) 也采用了该内核,Gecko的特色是代码彻底公开,所以,其可开发程度很高,全世界的程序员均可觉得其编写代码,增长功能。由于这是个开源内核,所以受到许多人的青睐,Gecko内核的浏览器也不少,这也是Gecko内核虽然年轻但市场占有率可以迅速提升的重要缘由。

事实上,Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这致使了微软内部一些开发人员的不满;他们与当时已经中止更新了的 Netscape的一些员工一块儿创办了Mozilla,以当时的Mosaic内核为基础从新编写内核,因而开发出了Gecko。不过事实上,Gecko 内核的浏览器仍然仍是Firefox (火狐) 用户最多,因此有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,能够在Windows、 BSD、Linux和Mac OS X中使用。

补充:JavaScript引擎是SpiderMonkey。

Gecko内核常见的浏览器:[1]  Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon

Presto 

Presto(Opera前内核) (已废弃): Opera12.17及更早版本曾经采用的内核,现已中止开发并废弃,该内核在2003年的Opera7中首次被使用,该款引擎的特色就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。

实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理 上,Presto有着天生的优点,页面的所有或者部分都可以在回应脚本事件时等状况下被从新解析。此外该内核在执行Javascrīpt的时候有着最快的 速度,根据在同等条件下的测试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident 内核最慢,不过二者相差没有多大),本文的其中一个修改者认为上述测试信息过于老旧且不完整,由于他曾作过的小测试显示Presto部分快部分慢,各内核 整体至关。那次测试的时候由于Apple机的硬件条件和普通PC机不一样因此没有测试WebCore内核。只惋惜Presto是商业引擎,使用Presto 的除开Opera之外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。

Opera现已改用Google Chrome的Blink内核。

Webkit 

Webkit(Safari内核,Chrome内核原型,开源):它是苹果公司本身的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下受权,同时支持BSD系统的开发。因此Webkit也是自由软件,同时开放源代码。在安全方面不受IE、Firefox的制约,因此Safari浏览器在国内仍是很安全的。

限于Mac OS X的使用不普遍和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核自己应该说市场范围并不大;但彷佛根据最新的浏览器调查代表,该浏览器的市场甚至已经超过了Opera的Presto了——固然 这一方面得益于苹果转到x86架构以后的人气暴涨,另外也是由于Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很高的浏览器。

Google Chrome、360极速浏览器以及搜狗高速浏览器高 速模式也使用Webkit做为内核(在脚本理解方面,Chrome使用本身研发的V8引擎)。WebKit 内核在手机上的应用也十分普遍,例如 Google 的手机 Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

WebKit内核常见的浏览器:傲游浏览器三、[1]  Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器,

Blink 

产品简介

Blink是一个由Google和Opera Software开发的浏览器排版引擎,Google计划将这个渲染引擎做为Chromium计划的一部分,而且在2013年4月的时候公布了这一消息。 这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,而且在Chrome(28及日后版本)、Opera(15及日后版本)和 Yandex浏览器中使用。

相关新闻

2013年4月3日,谷歌在Chromium Blog上发表博客[3]  ,称将与苹果的开源浏览器核心Webkit分道扬镳,在Chromium项目中研发Blink渲染引擎(即浏览器核心),内置于Chrome浏览器之中。

苹果在Safari中采用Webkit核心,并于2005年将Webkit公开为开源软件。谷歌当时采用苹果的Webkit核心打造了Chrome浏览器。Opera也宣布称将会转向Webkit核心,可是谷歌宣布此举后,Opera表示将会跟随谷歌采用其Blink浏览器核心,同时参与了Blink的开发。

谷歌转 向研发Blink浏览器内核意义重大,谷歌此举欲下降Webkit即苹果在浏览器市场的影响力。截止2012年末,Webkit浏览器内核占总浏览器市场 份额约40%。谷歌解释称,Chromium多处理架构系统与其余Webkit浏览器很不相同。谷歌工程师Adam Barth在博客[3]  中表示,随着浏览器的发展,苹果的Webkit已经不能知足用户需求,同时也有碍浏览器技术的创新步伐。可是他也表示,谷歌自主研发Blink内核绝非易 事,可是新内核将会提高整个开源网络生态系统的机能。谷歌作出此举之际,Mozilla与三星也达成合做协议开发“下一代”浏览器渲染引擎Servo。

排版引擎 

WebCore 

WebCore是苹果公司开发的排版引擎,它是在另一个排版引擎“KHTML”的基础上而来的。使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等。Safari现支持Windows,但效果不如iOS上的。

KHTML 

KHTML,是HTML网页排版引擎之一,由KDE所开发。

KDE系统自KDE2版起,在档案及网页浏览器使 用了KHTML引擎。该引擎以C++编程语言所写,并以LGPL受权,支援大多数网页浏览标准。因为微软的Internet Explorer的占有率至关高,很多以FrontPage制做的网页均包含只有IE才能读取的非标准语法,为了使KHTML引擎可呈现的网页达到最多, 部分IE专属的语法也一并支援。

KHTML拥有速度快捷的优势,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小。

苹果电脑于2002年采纳了KHTML,做为开发Safari浏览器之 用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品,在开发网站列出引擎 改变内容,并会传回至KDE计划。因为两个衍生产品各走不一样路线,使二者源代码偏 离,在与KDE交换更新会出现困难。其中一个缘由,是苹果在对外公开源代码以前,以一年时间编修他们的KHTML。另外,苹果传送更新至KDE计划的方 式,可能是一口气把大量改动一块儿传送,KDE在整理资料也出现必定的困难,及后苹果表示会以CVS格式来传送。再者,苹果所做出的改动包括Mac OS X系统独有的事物,如Objective-C、KWQ等,在Linux及KHTML是没有的。但KDE方面仍透过这些改动,为KHTML加入新功能及加快其排版速度。

基于KHTML内核的内核:WebKit、WebCore。