欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

浏览器引擎总结分类概况

知识点 water 1233℃ 0评论
浏览器引擎(web browser engine)
网页浏览器引擎俗称浏览器内核,又叫排版引擎(layout engine)或者渲染引擎(rendering engine),是一套处理标记语言(例如html、xml、图片文件等)和格式化信息(例如css、xsl、xml等)并且进行内容展现的应用软件组件。
前世今生
世界上的第一个浏览器是monolithic,出现的具体时间无法考证,只知道后来这款浏览器采用了一种更加模块化的设计方式——即分成用户界面和引擎内核两部分进行设计和实现。随着这种设计模式的广为传播,才有了现在的浏览器引擎(即浏览器内核)这一说。而我们嘴里常说的浏览器其实说的是浏览器内核和用户界面的封装整体。可惜的是我最近花了很长时间也没找到这款浏览器的其他资料,我想应该已经退出市场或者被合并了吧。
引擎概述
现代的浏览器可以分为两大组件构成–浏览器引擎和用户界面:
大部分网民听到浏览器引擎,头脑里的唯一认知就是它是用来浏览网页的。事实上,浏览器引擎能做很多事情:你给它一个url地址,它就可以获取到该地址代表的文档内容并按照一定的排版样式显示在你的显示器上。它还处理链接、缓存、脚本、各种插件和其他的一些事情。
用户界面的工作就相对简单一些:它提供菜单栏、地址栏、状态栏、书签管理、浏览历史和参数配置等等和界面窗口紧密相关的工作。用户界面整合在浏览器引擎上并且作为电脑用户和浏览器引擎之间的接口为我们提供简单易用的图形化服务。
当然了,浏览器进行模块化设计和实现这种理念的最大好处就是可以把浏览器引擎非常简单容易地整合到不同的应用程序中。例如,同一个浏览器引擎,它既可以用于网页浏览器,也可以用于电子邮件客户端程序中,以方便显示html格式的邮件。各种应用软件中常见的在线帮助系统也可以通过浏览器引擎展示帮助系统的各种各样的文本内容。极大的方便了各种内容和数据的共享和传递。
浏览器引擎分类
KHTML引擎–KDE的开源引擎,用于KDE的Konqueror网页浏览器,由于Linux系统在中国网民中用的还不是很广泛,因此说出来估计大家也不认识。
WebKit引擎–基于开源的KHTML引擎修改开发而成,目前用于苹果系统的Safari浏览器和Google的Chrome浏览器,值得一提的是,这款引擎是世界上运行速度最快的浏览器内核(个人观点)。
Gecko引擎–Mozilla项目的开源引擎,用于很多种由Mozilla代码衍生出来的产品,包括大名鼎鼎的Firefox浏览器、Thunderbird邮件客户端、SeaMonkey互联网套装等。
Presto引擎–Opera拥有所有版权的商用浏览器引擎,当然了,主要用于Opera自己的网页浏览器。
Trident引擎–用这个引擎的浏览器恐怕无人不知:IE浏览器。这款引擎同样用于很多中基于微软平台的应用程序,例如Outlook Express、Winnamp播放器和RealPlayer播放器等。

一、Trident

图形接口的排版引擎:Trident – Windows版的Internet Explorer

Trident (又称为MSHTML),是微软的窗口操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版释出,之后不断的加入新的技术并随着新版本的Internet Explorer释出。在最新的Internet Explorer第七版中,微软将对Trident排版引擎做了重大的变动,除了加入新的技术之外,并增加对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其它的排版引擎,如Gecko、WebCore、KHTML及Presto。

Trident引擎被设计成一个软件组件(模块),使得其它软件开发人员很容易的将网页浏览的功能加到他们自行开发的应用程序里。微软提出了一个称为组件对象模型(COM)的软件接口架构。供其它支持的组件对象模型开发环境的应用程序(如:C++及.NET)存取及编辑网页。例如,由C++所撰写的程序可以加入浏览器控件里,并透过Trident引擎存取当前显示在浏览器上的网页内容及网页的各种元素的值,从浏览器控件触发的事件亦可被程序撷取并进行处理。Trident引擎所提供的所有函式库可以透过与 mshtml.dll这个档案的连结而达成撰写程序时所需要的功能。
除此之外,微软还有另一个网页浏览器排版引擎,称为Tasman,它是使用在「Internet Explorer for Mac」的排版引擎。相较于Trident,Tasman引擎对网页标准有较佳的支持。与普遍的看法相反的是,微软已经停止了Mac计算机版本的 Internet Explorer的开发,但Tasman的开发仍旧持续, 新版本的Tasman引擎仍被应用在一些微软产品上,如:麦金塔计算机版本的Microsoft Office。

二、Tasman

图形接口的排版引擎:Tasman – Macintosh版的Internet Explorer
Tasman,是微软的Internet Explorer for Mac浏览器所使用的排版引擎,也是为尝试支持W3C所制定的网页标准而设计的。在Tasman推出时,一度是最切合HTML及CSS等标准的排版引擎。现时微软方面也停止为Internet Explorer for Mac提供支持,但新版本的Tasman引擎仍被应用在一些微软产品上。

三、Presto

Presto是一个由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。

Presto取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。Presto在推出后不断有更新版本推出,使不少错误得以修正,以及阅读Javascript效能得以最佳化,并成为速度最快的引擎。

四、Gecko

于1997年,网景收购了DigitalStyle。当时,网景浏览器在各方面的表现已经比不上她的主要竞争对手Internet Explorer。这包括程式的执行速度、对W3C标准的支援度等等。网景开始研发下一代的排版引擎,并期望把新的排版引擎应用于下一版本的网景浏览器上。

1998年初,Mozilla计划开始执行。这个新的排版引擎名为Raptor,以开发源码的方式发放于互联网上。后来,因为商标问题,Raptor改外为NGLayout(即next generation layout之意)。而最后NGLayout就被网景重新命名为Gecko。但由于Gecko为网景的商标,所以有一段时期Mozilla组织(属于网景的非正式组织,亦为Mozilla基金会的前身)以NGLayout来称呼这个新的排版引擎,而在该时,Gecko这字亦指XPFE(cross- platform front-end),一个以XML为基础的使用者接口。不过,现时Gecko这字只用于排版引擎。

1998年10月,网景公布下一版的浏览器将会使用这个排版引擎,而该浏览器亦需要被大幅度重写。对于致力推动网上标准的人,这是一个令人振奋的消息。然而,对于网景开发者而言,这是一个长达六个月的大工程,而他们在网景5.0上(包括Mariner排版引擎)所花的心血亦被白白浪费。结果,网景6.0在2000年11月才被正式发布。

随着Gecko的开发,越来越多应用程式开始利用她。AOL作为网景的母公司,终于在CompuServe 7.0和AOL for Mac OS X上使用Gecko。可惜,Windows版的AOL浏览器始终没有利用过Gecko。

2003年7月15日时代华纳解散了网景公司,大部分开发者被解雇。而Mozilla基金会亦在当天成立,继续推动着Gecko的发展。时至今天,Gecko仍继续由Mozilla的雇员和义工所维护和发展。

Gecko将会继续支持更多的网络标准,例如XForms和SVG。Mozilla基金会作为WHATWG的一份子,Gecko和其他排版引擎将会率先支援WHATWG所定下的规格,例如可供绘画的canvas。

Gecko的绘画元件在1.9版将会有重大的改变。她将会使用跨平台的Cairo元件来代替作业平台的绘画接口。这个改变将会令Gecko拥有更佳的绘图能力。而加上Glitz的话,更可利用3D硬件加速。而所有多媒体内容(如HTML/CSS、canvas、SVG等)将可使用同一管道作出渲染, SVG的特效亦可以应用于HTML上。因为使用Cairo的关系,图像亦可以被输出作PNG和PDF,“另存本页为PDF”等作业将变得有可能。

1.兼容的标准
Gecko引擎支持下列标准:
* HTML 4.01
* XML 1.0
* XHTML 1.1
* MathML
* CSS Level 1(支援部份CSS 2和3)
* DOM Level 1和2(支援部份DOM 3)
* RDF
* JavaScript 1.7
* E4X
* SVG(支援部份SVG 1.1)

2 .使用KHTML的产品
网页浏览器
* Mozilla Application Suite *
* Mozilla Firefox *
* AOL for Mac OS X
* Aphrodite *
* Beonex Communicator *
* Camino
* CompuServe 7.0
* DocZilla
* Epiphany
* Galeon
* IBM Web Browser
* K-Meleon
* Kazehakase
* ManyOne *
* Maxthon(本身并不支持,需要使用插件)
* Minimo
* Netscape 6.0和以上 *
* Salamander
* SeaMonkey *
* Skipstone
* Flock *
其他应用程式
* ActiveState Komodo *
* Liferea
* Mozilla ActiveX Control
* Mozilla Calendar *
* Mozilla Thunderbird *
* Nvu *
* GRE for Gecko-Sharp *
MediaCoder
* 使用Gecko来渲染基于XUL的用户界面。

五、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加入新功能及加快其排版速度。

1.兼容的标准
KHTML引擎支持下列标准:
* HTML 4.01
* CSS 1
* CSS 2.1 (paged media除外)
* CSS 3 选择符(selector)及部分其他功能
* PNG, MNG, JPEG, GIF 图形格式
* DOM 1, 2 及部分的 DOM 3
* ECMA-262/JavaScript 1.5
* 部分 SVG

2 .使用KHTML的产品
* KDE Konqueror – KDE的网页浏览器及档案管理员
* Safari – 苹果电脑的网页浏览器
* Embedded Konqueror – PDA上的网页浏览器
* SkyKruzer – SkyOS上的网页浏览器
* ABrowse – Syllable操作系统上的网页浏览器
* Nokia Series 60 移动电话的浏览器

六、WebCore

WebCore是苹果公司开发的排版引擎,它是在另外一个排版引擎“KHTML”的基础上而来的。苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品。

使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等。

七、WebKit

WebKit 是一个开源浏览器网页排版引擎,与之相应的引擎有Gecko(Mozilla,Firefox 等使用的排版引擎)和Trident(也称为MSHTML,IE 使用的排版引擎)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度。

目前使用WebKit 引擎的浏览器主要有:Safari,Midori,Epiphany 等。

转载请注明:学时网 » 浏览器引擎总结分类概况

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!