浏览器内核有哪些?全面介绍浏览器内核
我们上网一直在用浏览器,可谁又知道浏览器内核是什么概念呢?现在所有浏览器厂家都开始打起了核战争,所以纷纷的开始了解浏览器内核了。浏览器到底有那些内核?不同的内核支持的浏览器有那些?各种内核又有什么不同?我将在下面为您讲解。
简单来说,浏览器组成可分两部分:Shell+内核。shell就是指浏览器外壳,就是我们用肉眼能看到的部分,如菜单、工具栏等用户界面。内核,我们就看不到了,他是幕后英雄,我们上网看到的所有东西都先需要经过它处理,然后再把内容呈现到我们眼前。
浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)JS引擎。它负责取得网页的内容(HTMLXML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、客户端以及其它需要编辑、显示网络内 容的应用程序都需要内核。JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引 擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是排版引擎,也被
称为页面渲染引擎(下文中各种说法通用)。它负责取得网页的内容(HTMLXML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。
  而浏览器的Shell(“外壳)便很好理解了,它是一个面向用户的界面,也就是网页浏览器为我们实现的各种功能。
浏览器的外壳开发和内核开发完全是两个不同的领域。相对而言,内核开发更简单一些,因为其用户需求简单而明确,面对的使用者也都是程序员;外壳开发要面对最终用户,要考虑适应不同的用户使用习惯,特别是还要和各种弹出广告的网站做斗争
在技术上,其实内核开发和外壳开发很多地方是相通的,我认识的一些外壳开发者可以在非常短的时间内成为Gecko内核的开发者。不过内核开发和外壳开发还是有很多不同的,其中最大的区别在于引擎的可信程度,在外壳开发时,可以假设完全信任渲染引擎,假设其没有Bug;而在浏览器内核开发时,这些假设不存在。另外,对于程序员的要求也有很大的不同,特别是浏览器的DOM、插件、LayoutJavaScript模块,这些模块的部分代码对于性能
的要求非常严格。我曾经犯了一个错误,在发行代码中多写了一句调试用的printf,结果导致CPU占有率增加了接近30%。而同样的问题,在外壳开发中则很少会遇到。
同样,在外壳开发中的鼠标手势、广告过滤和书签管理等功能在内核开发中根本不会遇到,可以这么认为,虽然外壳和内核都是浏览器开发,但实际上是截然不同的两种软件。
浏览器内核的优缺点
Trident:这种浏览器内核是IE浏览器用的内核,因为在早期IE占有大量的市场份额,所以这种内核比较流行,以前有很多网页也是根据这个内核的标准来编写的,但是实际上这个内核对真正的网页标准支持不是很好,甚至在2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节,同时 Trident 内核本身的BUG比较多,对一些符合W3C标准的网页代码支持不是很好,这在早期的IE版本中比较明显,比如IE5.5以前(包括IE5.5),其实IE6W3C标准的支持也不是很好,而我们现在很多人都在使用IE6,事实上它也属于一个比较早的版本。
但是由于IE的高市场占有率,微软也很长时间没有更新Trident内核,这导致了二个结果
1Trident内核和W3C标准脱节。
2Trident内核的大量Bug等安全问题没有得到解决,加上一些专家学者公开自己认为IE浏览器不安全的观点,使很多用户开始转向其他浏览器,FF,Opera就是这时期兴起的。
Gecko:这是Firefox Flock 所采用内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。
PrestoOpera 采用的是 Presto内核,Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。
WebkitWebkit Safari 采用的内核,不过 Safari 是苹果系统下的浏览器(虽然也有windows版,但是比较少),所以只简单介绍一下这个内核的优点和缺点,优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。
现在的浏览器内核及支持的浏览器主要有以下几种:
四大引擎内核:TridentGeckoPrestoWebkit
GeckoC++开发的,Open Source的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox
Webkit是苹果公司基于KHTML开发的。他包括WebcoreJavaScriptCoreSquirrelFish,V8)两个引擎。主要的使用者有SafariChrome
PrestoOpera Software公司开始的,用于Opera的渲染引擎。Macromedia Dreamweaver MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。
WebCoreWebKit引擎,它们均是KHTML的衍生产品
Safari浏览器版本不同,使用内核不同。老版本使用WebCore内核,新版本都使用WebKit内核。
从该表上,我们可以看到主要是前4个内核占领了大部分市场。而我们常用的IE浏览器,所用的内核是Tridentchrome浏览器国内能用吗。
现在见到的浏览器:遨游、搜狗、360TT等,最开始用的都是单独Trident内核,可现在新版本已是双核了。
国内的开源浏览器开发氛围状况
其实,开发浏览器内核并不难,至少没有大家想像的难,比开发操作系统内核简单多了。一般一个有中等c++开发经验的程序员学习1-2个月就可以上手。至于具体能作到什么层次,需要看个人的努力程度了。至于开发Firefox浏览器外壳(做扩展)则相对简单一些,有一定的网页制作基础就可以了。
国内的开源浏览器开发氛围,和国内的开源软件的大环境很像,公司的领导还很难接受自己投资开发的软件拿出去让其他人用,而国内的开源浏览器开发最大的问题在于高质量的开发人员太少,当然,这可能和国内的大环境有关。如果不能很好的解决程序员的生存和发展问题,开发人员短缺的问题将一直存在。
主流浏览器所使用的内核分类
Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey
Presto内核:Opera7及以上
Webkit内核:Safari,Chrome
典型的双核浏览器包括:
搜狗2.0Trident内核和WebKit内核
傲游3.0BetaTridentWebKit内核
QQ浏览器5Trident内核和WebKit内核
使用双核浏览器时,可以自动/手动切换内核来浏览网页。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。