女性朋友,您是否有痛经、量少等月经不调情况?,推荐您使用【侬颜益母汤】,解决您一切烦恼!

浏览器内核有哪些?全面介绍浏览器内核

时间:2010-12-15 17:08来源:966266浏览器评测网 作者:admin 点击:

浏览器内核有哪些?全面介绍浏览器内核
    我们上网一直在用浏览器,可谁又知道浏览器内核是什么概念呢?现在所有浏览器厂家都开始打起了核战争,所以纷纷的开始了解浏览器内核了。浏览器到底有那些内核?不同的内核支持的浏览器有那些?各种内核又有什么不同?我将在下面为您讲解。
     简单来说,浏览器组成可分两部分:Shell+内核。shell就是指浏览器外壳,就是我们用肉眼能看到的部分,如菜单、工具栏等用户界面。内核,我们就看不到了,他是幕后英雄,我们上网看到的所有东西都先需要经过它处理,然后再把内容呈现到我们眼前。
      浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内 容的应用程序都需要内核。JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引 擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

       “内核”只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。

  而浏览器的Shell(“外壳)便很好理解了,它是一个面向用户的界面,也就是网页浏览器为我们实现的各种功能。

     浏览器的外壳开发和内核开发完全是两个不同的领域。相对而言,内核开发更简单一些,因为其用户需求简单而明确,面对的使用者也都是程序员;外壳开发要面对最终用户,要考虑适应不同的用户使用习惯,特别是还要和各种弹出广告的网站做斗争
      在技术上,其实内核开发和外壳开发很多地方是相通的,我认识的一些外壳开发者可以在非常短的时间内成为Gecko内核的开发者。不过内核开发和外壳开发还是有很多不同的,其中最大的区别在于引擎的可信程度,在外壳开发时,可以假设完全信任渲染引擎,假设其没有Bug;而在浏览器内核开发时,这些假设不存在。另外,对于程序员的要求也有很大的不同,特别是浏览器的DOM、插件、Layout和JavaScript模块,这些模块的部分代码对于性能的要求非常严格。我曾经犯了一个错误,在发行代码中多写了一句调试用的printf,结果导致CPU占有率增加了接近30%。而同样的问题,在外壳开发中则很少会遇到。
        同样,在外壳开发中的鼠标手势、广告过滤和书签管理等功能在内核开发中根本不会遇到,可以这么认为,虽然外壳和内核都是浏览器开发,但实际上是截然不同的两种软件。

各种浏览器内核特点

      如果都无法获取源码的情况下,IE的Trident内核实际上是最开放的。其接口设计的相对来讲最成熟,对外部应用程序支持的情况最好,这也是为什么IE外壳的浏览器非常多的原因之一。从我个人的经验看,越了解IE,越发现其设计的巧妙之处。
      Oprera的Presto,渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。;
      WebCorekhtml 本身没有本地Window版本,这限制其在win32上的普及,不过,由于khtml本身不大,也许在移动设备上存在市场机会。
    Gecko核心设计的相对成熟,在无法获取源码的情况下,开放程度仅次于IE。由于其本身Open Source。实际上是目前开发程度最好的浏览器。Firefox的扩展能够给浏览者带来完全不同的浏览体验。我个人因为接触的比较多,对于Gecko的缺点比优点了解的可能更多一些。其中,最大的麻烦是系统各部分和JavaScirpt绑定的太紧,导致很难加入对新的脚本语言的支持;其次,应该承认微软IE的很多设计方便了网页开发人员的开发,而Firefox在这些地方做的还很不够,当然这里里面有技术上的问题,也有法律上的问题

现在的浏览器内核及支持的浏览器主要有以下几种:

四大引擎内核:Trident,Gecko,Presto,Webkit

 

四大引擎内核:Trident,Gecko,Presto,Webkit所代表的浏览器

引擎名称

创建者

软件许可

浏览器

Gecko

Netscape/Mozilla Foundation

MPL/GNU GPL/GNU LGPL

Mozilla Firefox
Avant浏览器

Trident

Microsoft

Proprietary

Internet Explorer

WebKit(Based on KHTML)

WebKit Foundation

GNU LGPL, BSD-style

Safari, Google Chrome

Presto

Opera Software

Proprietary

Opera

KHTML

KDE

GNU LGPL

Konqueror

Tasman

Microsoft

Proprietary

Microsoft Entourage

WebCore

苹果公司

 

Safari、OmniWeb、Shiira、Swift

注:

  • WebCore及WebKit引擎,它们均是KHTML的衍生产品
  • Safari浏览器版本不同,使用内核不同。老版本使用WebCore内核,新版本都使用WebKit内核

       从该表上,我们可以看到主要是前4个内核占领了大部分市场。而我们常用的IE浏览器,所用的内核是Trident。
现在见到的浏览器:遨游、搜狗、360、TT等,最开始用的都是单独Trident内核,可现在新版本已是双核了。

国内的开源浏览器开发氛围状况

    其实,开发浏览器内核并不难,至少没有大家想像的难,比开发操作系统内核简单多了。一般一个有中等c++开发经验的程序员学习1-2个月就可以上手。至于具体能作到什么层次,需要看个人的努力程度了。至于开发Firefox浏览器外壳(做扩展)则相对简单一些,有一定的网页制作基础就可以了。
    国内的开源浏览器开发氛围,和国内的开源软件的大环境很像,公司的领导还很难接受自己投资开发的软件拿出去让其他人“白”用,而国内的开源浏览器开发最大的问题在于高质量的开发人员太少,当然,这可能和国内的大环境有关。如果不能很好的解决程序员的生存和发展问题,开发人员短缺的问题将一直存在。

典型的双核浏览器包括:

  • 搜狗2.0:Trident内核和WebKit内核
  • 傲游3.0Beta:Trident和WebKit内核
  • QQ浏览器5:Trident内核和WebKit内核

使用双核浏览器时,可以自动/手动切换内核来浏览网页。

本文标签: