1、浏览器内核揭秘目前浏览器产品繁多,网上经常有文章对各类浏览器进行比较,其中常常被提及的一个重要指标就是“浏览器内核”,究竟什么是内核呢?此外,双核浏览器近几年来异军突起,迅速占领了大片市场份额,那么什么是双核浏览器?双核和单核相比有什么区别,优势?为了解释上述的疑问,给同学们提供“选择浏览器”的依据,我们特地撰写了此篇文章。本文将为您介绍以下几个方面的内容:1:什么是浏览器内核;2:浏览器内核的作用;3:当前主流浏览器内核有哪些;4:浏览器内核对我有哪些影响;5:什么是双核?为什么要使用双核?以及双核的优势。浏览器内核其实就是浏览器的排版引擎,也被称为页面渲染引擎(RenderingEngin
2、e) 。所谓引擎,即对一组核心功能模块的统称,这组功能模块提供 API调用接口,供外部调用。举个例子而言:浏览器内核,相当于汽车的发动机部分,没有发动机,汽车外表再漂亮也跑不动。图表 1 浏览器内核那么浏览器内核主要做什么事情呢?如下表所示:由于不同的浏览器内核对网页语法的解释不尽相同,因此同一网页在不同的内核的浏览器里的展现有可能是不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。图表 2 不同内核可能导致不同页面效果如果加上一些几乎没有什么人在用的内核,那么浏览器内核大约有 10 款以上,甚至更多,不过通常我们比较常见的大约只有四种。一:四种主流内核Trident(IE
3、 浏览器采用的内核)Trident 内核,又被很多人称为 IE 内核,这是由于该内核与微软的渊源很深。为了规范起见,我们将在下面的文章中将其统一称为 Trident。该内核是微软在 Mosaic 代码的基础之上修改而来的,于 1997 年在 IE4 中首次被采用,并一直沿用到目前的 IE9。Trident为闭源引擎,所以开发者无法直接修改或封装该内核,不过微软提供了相应的调用接口。由于微软将 IE 捆绑在 Windows 平台上,所以在浏览器的内核领域, Trident 很长时间内都是一家独大。这种情况导致的后果有利有弊:1:国内大量的网站插件(例如银行网站的插件)都基于该内核支持的 Acti
4、veX 格式,使得 IE 浏览器具有很强的普适性。举例而言,大家通过网上银行转账,基本都会使用IE 浏览器;2:Trident 内核曾经在很长时间没有更新(老大一般懒得动弹) ,几乎与 W3C 标准脱节,其速度也差强人意;不过现在微软已经致力于将其做得更好,如 Win8 消费者预览版上的 IE10 就已经有长足的进步,对 WebGL 也提供了支持。总的来说,Trident 内核有点像以前的日不落帝国,占领的地域广阔(使用率高) ,是很长时间的霸主(几乎所有的网站都会兼容他) ,保守而高傲,但现在由于受到诸多挑战,而斗志高涨,奋力前行,我们拭目以待其后续发展。除 IE 浏览器外,目前世面上有很多
5、采用 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 分支,
6、并推出基于该引擎的 Safari 浏览器,该浏览器是 Mac OS X 平台默认的浏览器。此外,WebKit 内核在手机上的应用非常广泛,例如 Google 的手机 Gphone、 Apple 的 IPhone, Nokias Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。挑战微软的,一般是 Google,微软的浏览器基于 Trident,Google 出产的 Chrome浏览器则采用 WebKit 引擎。那么两个引擎有什么区别吗?从上面的论述可以看出,WebKit 内核,是一个有很深背景(KDE 、Apple)的新贵,在很多方面要优于 Tr
7、ident 内核,但是,由于长时间以来,互联网界广泛使用 IE 浏览器,很多插件或多或少的依赖于 Trident 内核,这种习惯带来的势力范围,不是 WebKit 内核可以取代的。所以很长时间内,这两种内核必然是共生共存。事实上,已经有很多双核浏览器出现了,即:同时基于 Trident 和 WebKit,并可以在两个内核间进行切换。Gecko(Mozilla FireFox 火狐浏览器采用的内核)Gecko 引擎是网景公司于 1998 年开发的。2003 年 7 月 15 日,时代华纳解散了网景公司,同时成立 Mozilla 基金会,继续推动 Gecko 的发展。Gecko 完全开源,这点和
8、WebKit 是相同的。说句实话,很难对 Gecko 和 WebKit 进行比较,因为两者都具有很大一批狂热的追捧者。而我本人,也同时使用基于 Gecko 的 Firefox,和基于 WebKit 的 Chrome。当我觉得Firefox 的网页打开有点慢了,就会用 Chrome 开启同样的网页;当我要上雅虎邮箱时,就会选择 Firefox。不过从代码的复杂度而言,Gecko 要高于 WebKit。Gecko 因庞大与复杂的代码基础而频遭诟病。基于 Gecko 的 Firefox 非常强大,但存在高内存占用现象。Gecko 内核过于复杂的原因是:由于 Mozilla 庞大的野心,Gecko 意
9、图提供除了HTML 渲染之外的更多功能,如浏览器、邮件和新闻组程序、Web 设计工具、IRC 聊天工具。除了渲染 HTML,Gecko 还要提供一种应用广泛的,基于 XML 的用户界面生成引擎,XUL。 XUL 被用在所有这些程序中。XUL 现在仍用在 Firefox 中,用来生成用户界面,因此造就了 Firefox 最有价值的重多扩展应用。Gecko 和 Webkit 之间有很多东西可以互相学习,无论谁替代谁都是没有道理的,这不是“东风压倒西风” ,而是互补共存。Presto(Opera 浏览器采用的内核)大名鼎鼎的 Opera 浏览器使用的是 Presto 内核。该款引擎的特点就是“快”,
10、网络上不少文章宣称:Presto 对 JavaScript 的解析有着最快的速度。不知道和 Google 的 V8 相比如何?很多测试文章的结论是:Presto 内核执行同等 JavaScript 所需时间仅为 Trident 和Gecko 的 1/3。然而由于其商业引擎和闭源的特性,所以在很大程度上限制了 Presto 的发展与推广。除 Opera 使用 Presto,NDSBrowser、WiiInternet Channle、Nokia 770 等也使用该引擎。上述 4 种内核的一些基本情况,列举如下:二:双核浏览器什么是双核?为什么要使用双核?如前所述,当前主流浏览器内核主要有 4 种
11、:Trident、WebKit、Gecko、Presto。这些内核各有所长,亦有所短。其中以 Trident 内核使用最为广泛,支持的网页最多,尤其是国内的网银系统,和支付系统大部分只支持 Trident 内核,所以使用 Trident 的最大优势在于其方便,一路通途;而 WebKit 内核以速度快捷,对 HTML5 支持好,而倍受青睐,但兼容性始终是其软肋。很多人就在思考:能不能开发这样一款浏览器,同时集中了 Trident 和 WebKit 两种内核的优点,形成一个互补,为用户提供更方便、快捷的上网方式。图表 3 双核浏览器应运而生于是,双核浏览器应运而生了:提供一个切换按钮,当用户浏览普
12、通网页时,使用速度快的 WebKit 内核,很多浏览器称之为“ 极速模式”;当需要使用网银或者支付系统时,则点击切换按钮,切换到 Trident 内核,又称为“兼容模式”。这样一个浏览器,可以切换不同的内核,满足用户对“快捷”和“方便”的需求。双核浏览器一经推出,便迅速得到网友的青睐, DCCI 互联网数据中心在2011中国浏览器用户调查一文中宣称,约 19.4%的中国网民在上网时选择使用双核浏览器。目前这个趋势还在不停的上升之中。国内的双核浏览器主要有:QQ 浏览器、遨游浏览器、搜狗浏览器等。附录:1:KDE 是 Linux 上第一个真正的桌面,所有 KDE 计划的代码全部按 LGPL/GPL 发布。2:LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称GNU Library General PublicLicense (GNU 库通用公共许可证 ),后来改称作 LesserGPL,即为更宽松的 GPL,在宽松程度上与 BSD, Apache,XFree86 许可证 相似。