浏览器内核详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浏览器内核揭秘
目前浏览器产品繁多,网上经常有文章对各类浏览器进行比较,其中常常被提及的一个重要指标就是“浏览器内核”,究竟什么是内核呢?
此外,双核浏览器近几年来异军突起,迅速占领了大片市场份额,那么什么是双核浏览器?双核和单核相比有什么区别,优势?
为了解释上述的疑问,给同学们提供“选择浏览器”的依据,我们特地撰写了此篇文章。
本文将为您介绍以下几个方面的内容:
1:什么是浏览器内核;
2:浏览器内核的作用;
3:当前主流浏览器内核有哪些;
4:浏览器内核对我有哪些影响;
5:什么是双核?为什么要使用双核?以及双核的优势。
浏览器内核其实就是浏览器的排版引擎,也被称为页面渲染引擎(RenderingEngine)。所谓引擎,即对一组核心功能模块的统称,这组功能模块提供API调用接口,供外部调用。
举个例子而言:浏览器内核,相当于汽车的发动机部分,没有发动机,汽车外表再漂亮也跑不动。
图表1 浏览器内核
那么浏览器内核主要做什么事情呢?如下表所示:
由于不同的浏览器内核对网页语法的解释不尽相同,因此同一网页在不同的内核的
浏览器里的展现有可能是不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
图表2 不同内核可能导致不同页面效果
如果加上一些几乎没有什么人在用的内核,那么浏览器内核大约有10款以上,甚至更多,不过通常我们比较常见的大约只有四种。
一:四种主流内核
Trident(IE浏览器采用的内核)
Trident内核,又被很多人称为IE内核,这是由于该内核与微软的渊源很深。为了规范起见,我们将在下面的文章中将其统一称为Trident。该内核是微软在Mosaic代码的基础之上修改而来的,于1997年在IE4中首次被采用,并一直沿用到目前的IE9。Trident为闭源引擎,所以开发者无法直接修改或封装该内核,不过微软提供了相应的调用接口。
由于微软将IE捆绑在Windows平台上,所以在浏览器的内核领域,Trident很长时间内都是一家独大。这种情况导致的后果有利有弊:
1:国内大量的网站插件(例如银行网站的插件)都基于该内核支持的ActiveX格式,使得IE浏览器具有很强的普适性。举例而言,大家通过网上银行转账,基本都会使用IE浏览器;
2:Trident内核曾经在很长时间没有更新(老大一般懒得动弹),几乎与W3C标准脱节,其速度也差强人意;不过现在微软已经致力于将其做得更好,如Win8消费者预览版上的IE10就已经有长足的进步,对WebGL也提供了支持。
总的来说,Trident内核有点像以前的日不落帝国,占领的地域广阔(使用率高),是很长时间的霸主(几乎所有的网站都会兼容他),保守而高傲,但现在由于受到诸多挑战,而斗志高涨,奋力前行,我们拭目以待其后续发展。
除IE浏览器外,目前世面上有很多采用Trident内核的浏览器涌现,如:Maxthon、The World、TT、GreenBrowser、AvantBrowser等。
WebKit(Chrome浏览器使用的内核)
WebKit其起源可追溯到KDE(KDesktop Environment )【1】。WebKit所包含WebCore 排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在LGPL【2】条约下授权,所以WebKit也是自由软件,开放源代码。
Apple将KHTML发扬光大,在其基础上创建了WebKit分支,并推出基于该引擎的Safari浏览器,该浏览器是Mac OS X平台默认的浏览器。此外,WebKit内核在手机上的应用非常广泛,例如Google 的手机Gphone、Apple 的IPhone, Nokia’s Series 60 browser 等所使用的Browser 内核引擎,都是基于WebKit。
挑战微软的,一般是Google,微软的浏览器基于Trident,Google出产的Chrome浏览器则采用WebKit引擎。那么两个引擎有什么区别吗?
从上面的论述可以看出,WebKit内核,是一个有很深背景(KDE、Apple)的新贵,在很多方面要优于Trident内核,但是,由于长时间以来,互联网界广泛使用IE浏览器,很多插件或多或少的依赖于Trident内核,这种习惯带来的势力范围,不是WebKit内核可以取代的。所以很长时间内,这两种内核必然是共生共存。事实上,已经有很多双核浏览器出现了,即:同时基于Trident和WebKit,并可以在两个内核间进行切换。
Gecko(Mozilla FireFox火狐浏览器采用的内核)
Gecko引擎是网景公司于1998年开发的。2003年7月15日,时代华纳解散了网景公司,同时成立Mozilla基金会,继续推动Gecko的发展。
Gecko完全开源,这点和WebKit是相同的。
说句实话,很难对Gecko和WebKit进行比较,因为两者都具有很大一批狂热的追捧者。而我本人,也同时使用基于Gecko的Firefox,和基于WebKit的Chrome。当我觉得Firefox的网页打开有点慢了,就会用Chrome开启同样的网页;当我要上雅虎邮箱时,就会选择Firefox。
不过从代码的复杂度而言,Gecko要高于WebKit。Gecko因庞大与复杂的代码基础而频遭诟病。基于Gecko的Firefox非常强大,但存在高内存占用现象。
Gecko内核过于复杂的原因是:由于Mozilla庞大的野心,Gecko意图提供除了HTML 渲染之外的更多功能,如浏览器、邮件和新闻组程序、Web设计工具、IRC聊天工具。除了渲染HTML,Gecko还要提供一种应用广泛的,基于XML的用户界面生成引擎,XUL。XUL 被用在所有这些程序中。XUL现在仍用在Firefox中,用来生成用户界面,因此造就了Firefox 最有价值的重多扩展应用。
Gecko 和Webkit 之间有很多东西可以互相学习,无论谁替代谁都是没有道理的,这不是“东风压倒西风”,而是互补共存。
Presto(Opera浏览器采用的内核)
大名鼎鼎的Opera浏览器使用的是Presto内核。该款引擎的特点就是“快”,网络上不少文章宣称:Presto对JavaScript的解析有着最快的速度。不知道和Google的V8相比如何?很多测试文章的结论是:Presto内核执行同等JavaScript所需时间仅为Trident和Gecko