`
kxhu
  • 浏览: 84334 次
社区版块
存档分类
最新评论

转:http://www.itlearner.com/article/4553

 
阅读更多

浏览器内核的解析和对比

要搞清楚浏览器内核是什么,首先应该先搞清楚浏览器的 构成。简单来说浏览器可以分为两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏 等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些 浏览器并不区分外壳和内核。从Mozilla将Gecko独立出来后,才有了外壳和内核的明确划分。目前主流的浏览器有IE6、IE8、Mozilla、FireFox、Opera、Safari、Chrome、Netscape等。

什么是浏览器内核

浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内 容的应用程序都需要内核。(参见维基百科)JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引 擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个ACID来测试引擎的兼容性和性 能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、 Presto、Webkit。

Trident又称MSHTML,是微软开发的渲染引 擎(包含了Javascript引擎JScript),他已经深入了Windows操作系统的骨髓,例如Windows Media Play,Windows Explorer,Outlook Express等都使用了。目前很多浏览器都使用这个引擎,例如IE,Maxthon(最新版已经不使用)等。

Gecko是C++开发的,Open Source的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox。

Webkit是苹果公司基于KHTML开发的。他包括Webcore和JavaScriptCore(SquirrelFish,V8)两个引擎。主要的使用者有Safari,Chrome。

Presto由Opera Software公司开始的,用于Opera的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。

主流浏览器所使用的内核分类

Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto内核:Opera7及以上
Webkit内核:Safari,Chrome等

Engine

Creator

Software license

Leading application

Gecko

Netscape/Mozilla Foundation

MPL/GNU GPL/GNU LGPL tri-license

Mozilla Firefox

KHTML

KDE

GNU LGPL

Konqueror

Presto

Opera Software

Proprietary

Opera

Tasman

Microsoft

Proprietary

Microsoft Entourage

Trident

Microsoft

Proprietary

Internet Explorer

WebKit (Based on KHTML)

WebKit Foundation

GNU LGPLBSD-style

SafariGoogle Chrome

JS引擎

JavaScript最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMAScript标 准。他的起源并不是如《Javascript高级程序设计》书中所述,是Brendan Eich自主发明的。(参考aimingoo的考证文章)JavaScript在浏览器的实现中还必须含有DOM和BOM。Web浏览器一般使用公共 API来创建主机对象来负责将DOM对象反射进JavaScript。

 

Trident

Gecko

WebKit

KHTML

Presto

Name of ECMAScript Engine

JScript

Spidermonkey

JavaScriptCore

KJS

linear b/futhark

ECMAScript Version

Edition 3

Yes

0.6

Yes

Yes

7.0

JavaScript 1.5 extensions

No

0.6

Yes

Yes

7.0

JavaScript 1.7 extensions

No

1.8.1

No

No

No

JavaScript 1.8 extensions

No

1.9

No

No

No

浏览器内核实现原理

渲染流程如下所示:

渲染引擎运作流程

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。

Mozilla架构设计

Webkit的处理流程:

Webkit的处理流程浏览器内核的优缺点

Trident:这种浏览器内核是IE浏览器用 的内核,因为在早期IE占有大量的市场份额,所以这种内核比较流行,以前有很多网页也是根据这个内核的标准来编写的,但是实际上这个内核对真正的网页标准 支持不是很好,甚至在2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节,同时 Trident 内核本身的BUG比较多,对一些符合W3C标准的网页代码支持不是很好,这在早期的IE版本中比较明显,比如IE5.5以前(包括IE5.5),其实IE6对W3C标准的支持也不是很好,而我们现在很多人都在使用IE6,事实上它也属于一个比较早的版本。

但是由于IE的高市场占有率,微软也很长时间没有更新Trident内核,这导致了二个结果
1,Trident内核和W3C标准脱节。
2,Trident内核的大量Bug等安全问题没有得到解决,加上一些专家学者公开自己认为IE浏览器不安全的观点,使很多用户开始转向其他浏览器,FF,Opera就是这时期兴起的。
Gecko:这是Firefox 和 Flock 所采用内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。
Presto:Opera 采用的是 Presto内核,Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。

Webkit:Webkit 是 Safari 采用的内核,不过 Safari 是苹果系统下的浏览器(虽然也有windows版,但是比较少),所以只简单介绍一下这个内核的优点和缺点,优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。

总结:就浏览器来说,互联网经历了十年的高速发展期,近几年市场上也推出了很多新的浏览器,但是他们并非是采用自主开发的内核,所以浏览器内核本身实际没有实质突破。

分享到:
评论

相关推荐

    ASP探针 v1.3.rar

    '#################################### '# # '# ITlearner ASP探针 V1.3 # ...'# http://www.itlearner.com # '# # '# 转载本程序时请保留这些信息 # '# # '####################################

    总浏览量统计插件for dvbbs7.0 sp2

    在服务器上浏览admin.asp,默认密码为ITlearner。进入后修改相关设定,修改好后提交,系统设置完成。 (如果你的服务器不支持fso,你可以手动更改config.asp中的文件,仅最后一项更改无效,但这不会影响到系统的...

    Memcache2.8

    memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、... ---★ 本文转摘自『IT学习者』→ http://www.itlearner.com/article/4327

    ITlearner ASP探针_v1.4.zip

    【ITlearner ASP探针_v1.4.zip】是一款专门针对ASP(Active Server Pages)环境进行监控和检测的工具,主要用于帮助开发者和系统管理员了解ASP应用程序的运行状态和潜在问题。这款工具由ITlearner开发,版本号为v1.4...

    ITlearner PHP探针

    程序名称: ITlearner PHP探针 功能描述: 服务器主要参数: 显示服务器的一些参数,操作系统、CPU信息、内存信息、WEB服务器软件、磁盘信息等。 Linux下可读取到即时的系统负荷、内存使用情况。 Apache下可罗列...

    ITlearner ASP探针 v1.1

    功能描述: 测试服务器基本信息: 显示服务器的一些参数,并带遍历Application、Session和服务器参数的功能。 测试服务器组件情况: 测试IIS自带,常用文件上传、收发邮件、图像处理等组件,和自定义组件的支持...

    注入技巧收集.txt

    - 利用WebShell工具进行更深层次的渗透,例如通过上传ASP格式的WebShell (`#ITlearner.asp`)来获取对服务器的完全控制权。 #### 防范措施 1. **限制SA账户权限**:避免在生产环境中使用SA账户,并限制其访问敏感...

    ITlearner_CuteLink.rar_WEB开发_PHP_

    在互联网世界中,网站间的互相链接是提升流量、扩大影响力的重要手段。...它允许用户自主申请、修改和查询链接,同时系统能自动进行审核和排序,以优化网站链接的展示效果。 一、WEB开发基础 WEB开发是构建互联网应用...

    IT学习者智能自助友情链接系统 1.6.rar

    IT学习者智能自助友情链接系统,按申请链接的网站平均每天点进的次数排序显示链接。...用户自助申请、修改、查询,系统自动审核,自动排列。 IT学习者智能自助友情链接系统 1.6 主要有如下改进: ...

    IT学习者ASP探针 v1.3.zip

    是ITlearner以Ajiang和COCOON的ASP探针的代码为原型,结合部分自已原创的代码精心编写,服务器有关参数,服务器组件情况,服务器运算能力,服务器磁盘信息,服务器连接速度 v1.3更新:按Web标准重构,兼容在FireFox...

    平凡生活全站程序 v3.0

    用最新,最酷的FLASH在等着你`` 加入了音乐频道`` 加入了电影频道``` 加入了在线书吧频道``` 加入了在线翻译频道``` 加入了ITlearner CuteCounter V1.6 流量统计系统``使得流量统计更加精确``修正了...

    IT学习者ASP探针 v1.3

    是ITlearner以Ajiang和COCOON的ASP探针的代码为原型,结合部分自已原创的代码精心编写,服务器有关参数,服务器组件情况,服务器运算能力,服务器磁盘信息,服务器连接速度  v1.3更新:按Web标准重构,兼容在Fire...

Global site tag (gtag.js) - Google Analytics