关于浏览器内核的简单笔记

    浏览器由shell和内核组成,其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏 等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。其中浏览器内核部分由渲染引擎(layout engineer或Rendering Engine)和JS引擎组成,现在主要来看下浏览器内核。


    浏览器内核的组成和作用:

    主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。

    渲染引擎:负责对网页语法的解释并渲染(显示)网页。如取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

    JS引擎则:解析和执行javascript来实现网页的动态效果。

    最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。


    常见浏览器内核的分类:

    Trident(IE内核):是微软开发的一种排版引擎。Trident内核的常见浏览器有IE,360,猎豹,搜狗浏览器等。有些浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换。

    Gecko(Firefox内核):一套开放源代码的、以C++编写的网页排版引擎。Netscape6开始采用的内核,后来的Mozilla FireFox(火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko内核的浏览器也很多,这也是Gecko内核虽然年轻但市场占有率能够迅速提高的重要原因。

    Webkit(Safari内核,Chrome内核原型,开源):开源,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统,它的特点在于源码结构清晰、渲染速度极快。缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。。

    Presto(Opera前内核) (已废弃):实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。该款引擎的特点就是渲染速度的优化达到了极致,然而代价是牺牲了网页的兼容性。


    总结

    1. Trident内核:IE,360,搜狗浏览器,猎豹等。[又称MSHTML]
    2. Gecko内核:Firefox,Netscape6及以上版本,MozillaSuite/SeaMonkey等
    3. Webkit内核:Safari,Chrome等。 [ Chrome的:Blink(WebKit的分支)]
    4. Presto内核:Opera7及以上。 [Opera内核原为:Presto,现为:Blink;]