不同浏览器的内核研究

原文地址:http://hi.baidu.com/sandpie/blog/item/66fb95c8202f288cc81768bc.html/cmtid/93f20926fe6ec627d507420c

 

 

=============================================================================

 

主要参考维基百科整理 

通常所谓的浏览器内核也就是浏览器所采用的渲染引擎(layout engine, 也称排版引擎),渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

0、四种常用的浏览器排版引擎简介

Trident: IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE7。 Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。此外,为了方便也有很多人直接简称其 为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

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

 

Geckos: Netcape6开始采用的内核,后来的Mozilla FireFox也采用了改内核,Geckos的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。而且这个内核 跟Mosaic的关系更深,或者说事实上现在的Netscape Navigator已经改用这个内核了,因此Firefox的插件能够在Navigator上使用——当然,不是所有的都能兼容。因为这是个开源内核,因 此受到许多人的青睐,Geckos内核的浏览器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。

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

 

Presto: 目前Opera采用的内核,该内核在2003年的Opera7中首次被使用,也是由Opera Software开发出来的用以代替早期的Elektra内核(Opera 4~6)。该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者 部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript的时候有着最快的速度,根据在同等条件下的测试,Presto内核 执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大)。那次测试的时 候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外, 只剩下NDS Browser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展

 

Webkit:  苹果公司自己的内核,也是苹果的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版的缘故吧。

因为Apple最近才将Safari移植到Windows因此暂时没有Windows上使用WebKit的其他浏览器,不过Mac下还有OmniWeb、Shiira等人气很高的浏览器。


1、常用浏览器的排版引擎比较



2、以Trident为核心的浏览器

3、其它使用Trident技术的应用程式

4、 一般浏览器所支持的网页标准和技术


除了以上的标准网页技术外, Internet Explorer亦支持微软自家开发的VBScriptActiveX; 只有Windows版本的Internet Explorer才能使用ActiveX。

  • Internet Explorer亦有部分不正规的Javascript。
  • Firefox亦有部分不正规的css。例如 -moz-***

注 (5): CSS2为W3C为建议的标准,亦为最常用的CSS版本。

注 (6): XHTML建基于HTML,但为XML的应用。因此,XHTML的源代码必须比HTML更严谨。XHTML本应为XML parser所分析,但为了向后兼容的关系亦可当作HTML来分析。这表格只虑为把XHTML当作XML的浏览器。

注 (7): Internet Explorer 6支持大部分CSS2的特性,但相比于其他浏览器,它有重大的程序错误。

注 (8): 2005年1月28日后的nightly browser实验性的支持XForms [2]。需要安装插件。

注 (9): Konqueror可点选右下角雷达图直接链接至Akregator订阅RSS或Atom。

注 (10): Firefox 3.0 以后,已经可以完整支持 Acid2。

5、各种不同浏览器的起源及发展情况

http://zh.wikipedia.org/zh-cn/File:Timeline_of_web_browsers.svg