浏览器内核

作者: 沉落的星星 | 来源:发表于2018-03-27 16:55 被阅读0次

    浏览器内核(browser kernel)是浏览器最为核心的部分,国内的浏览器(诸如360,QQ,搜狗)大多数用了第三方的内核,不同的只是外观以及一些装饰性的功能。(有些浏览器是双核模式,标准模式下是chrome的内核,兼容模式下是IE的内核,用以向下兼容旧网页,诸如360浏览器。)

    浏览器内核可以分为两部分:一部分是渲染引擎(render engineer或layout engineer),负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,生成DOM树,render,repaint这些工作,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要此内核。另一部分是JS引擎,负责解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。

    最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个 ACID 来测试引擎的兼容性和性能。

    内核的种类很多,如果加上没什么人使用的非商业的免费内核,可能会有 10 多种,但是常见的浏览器内核可以分这五种:Trident、Gecko、Webkit、ChromiumPresto

    五大浏览器内核

    1、Trident ([‘traɪd(ə)nt])

    Trident是IE的内核,也就是国内双核浏览器的内核之一,又称为IE内核或MSHTML,此内核只能用于Windows平台,且不是开源的。Trident内核一直延续到IE11,IE11的后继者Edge采用了新内核EdgeHTML。代表作品还有腾讯、Maxthon(遨游)、360浏览器等。但由于市场份额比较大,曾经出现脱离了W3C标准的时候,同时IE版本比较多,存在很多的兼容性问题。

    2、Gecko ([‘gekəʊ])(开源)

    Gecko是Netscape6Z开始采用的内核,是一个开源内核,后来被FF(FireFox)采用,因火狐是最多的用户,故常被称为firefox内核它是开源的,最大优势是跨平台,在Microsoft Windows、Linux、MacOs X等主要操作系统中使用。

    3、Webkit(开源)

    Webkeit的鼻祖是Safari, 其前身是KDE(Linux的桌面系统)的KHTML(开源的)。Webkit也是开源的。曾经的Chrome用的是Webkeit。注意:Webkit其实包括是渲染引擎Webcore(前身是KHTML),以及JS引擎JSCore,

    4、Chromium(Blink,V8)(开源)

    chromium fork自webkit,代码可读性和编译速度得到提升。值得一提是谷歌专门研发了自己的JS引擎——V8,极大地提高了JS的运算速度。由于chromium也是开源的,所以搜狗、QQ、360都用chromium内核。自13年4月后,谷歌开始在Chromium项目中研发Blink渲染引擎,之前一直用的是Webkit的渲染引擎。之所以研发独立的渲染引擎,是因为苹果推出的Webkit2与chromium的设计存在冲突,影响了chromium的架构移植工作。Blink内核是由Google和Opera Software开发的浏览器排版引擎,2013年4月发布。现在Chrome内核是Blink。

    5、Presto ([‘prestəʊ]) -》Chromium

    Presto是由Opera Software开发的浏览器排版引擎,它是世界公认最快的渲染速度的引擎,Opera7.0开始使用。13年2月后为了减少研发成本,Opera放弃Presto宣布加入谷歌阵营,采用chromium,之后也紧跟Blink的脚步。

    国内的主流浏览器内核

    1、IE浏览器内核:Trident内核,也是俗称的IE内核。

    2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核。演进Chromium内核 → Webkit内核 → Blink内核。

    3、Firefox浏览器内核:Gecko内核,俗称Firefox内核。

    4、Safari浏览器内核:Webkit内核。演进 KHTML->Webkit(WebCore+JSCore)->Webkit2。

    5、Opera浏览器内核:最初是自己的Presto内核,后来加入谷歌大军,从Webkit又到了Blink内核。

    6、360浏览器、猎豹浏览器内核:IE内核+Chrome双内核;

    7、搜狗、遨游、QQ浏览器内核:IE内核(兼容模式)+Webkit(高速模式);

    8、百度浏览器、世界之窗内核:IE内核;

    9、2345浏览器内核:好像以前是IE内核,现在也是IE+Chrome双内核了;

    10、UC浏览器内核:这个众口不一,UC说是他们自己研发的U3内核,但好像还是基于Webkit和Trident,还有说是基于火狐内核

    五大主流浏览器(按照诞生顺序介绍):

    1、IE(Internet Explorer)浏览器:

    IE的诞生起源于1994年,当时微软为了对抗几乎占据市场百分之九十份额的网景Netscape Navigator(导航者),准备在windows中开发自己的浏览器,取名为Internet Explorer,意为因特网探险者,好吧,一个导航者一个探险者,从名字起火药味就很重啊(ps 自此也拉开了第一次浏览器大战的帷幕,结果大家都知道了,微软大获全胜,基本以98年网景将自己卖给了AOL公司暂且告终,但是还没结束,因为后来网景换了个身份,也就是Firefox火狐,又进入了大众视野,迸发了一种凤凰涅槃的快感,到今天为止Firefox也成为了五大主流之一,后面我们再说它~话说回来,竞争才能推动技术的发展,第一次浏览器大战以微软和网景为代表,大力推动了浏览器方面技术的发展,各大公司开始着手研发自己的浏览器,有压力才有动力嘛),但是微软着急对抗网景啊,没那么多时间从零开始,于是选择和和Spyglass合作,所以IE其实从早期一款商业性的专利网页浏览器Spyglass Mosaic派生出来,虽然Spyglass Mosaic与NCSA Mosaic(1993年,美国NCS(National Center for Supercomputing Applications)也就是国家超级计算机中心,发布的世界上第一款Web浏览器取名为Mosaic,后来网景大名鼎鼎的Mozilla就来自于这里,意为Mosaic Killer(Mosaic杀手)不过事实上, Mosaic 并不是第一个具有图形界面的网页浏览器,但是, Mosaic 是第一个被人普遍接受的浏览器,它让许多人了解了Internet )甚为相似,但Spyglass Mosaic则相对地较不出名并使用了NCSA Mosaic少量的源代码~~

    从1996年开始,微软从Spyglass手里拿到了Spyglass Mosaic的源代码和授权。从而使IE逐渐成为微软专属软件。(后来,微软以IE和操作系统捆绑的模式不断扩展其市场份额,使IE成为了浏览器市场的绝对主流~~)从那时开始,IE的呈现引擎就是Trident,这也是大家俗称的IE内核,国内的大多数浏览器都有使用IE内核,或者是IE和Chrome双内核这样的形式来提高性能。

    2、Opera浏览器:

    Opera创始于1995年4月,由挪威Opera Software ASA公司发布,2016年2月确定被奇虎360和昆仑万维收购(题外话~Opera浏览器从一开始,就在做自己的东西,无论是内核还是版本号,虽然后来为了市场份额还是弃用了曾让其达到巅峰的Presto,转向了Webkit,现在是Blink,但我还是欣赏这家公司在残酷的浏览器大战中坚持自己并存活下来的顽强精神的,它的起源时间和IE差不多,但是没有微软那样强大的后台~也许从它弃用自己内核的那时候起就决定了这个结果吧~~但是不得不说,它为浏览器的发展贡献了不可或缺的一份力量~~最后,希望奇虎和万维能将这样一个有骨血的浏览器继续发扬光大吧,虽然~最初的东西已经没有了)。自我感觉,Opera能从第一次浏览器大战两大霸主的交火中勉强存活下来已经是个奇迹了,毕竟后来的三大浏览器都是诞生于第一次浏览器大战之后,但是却没抵得过时间的考验,这真的是个悲伤的故事~~

    前段括弧里面已经交代清楚了,Opera浏览器的内核最初是Presto,前几年宣布使用Google的开源项目Webkit作为自己的内核,没过多久,又跟随Google使用Blink内核~~就酱~

    3、Safari浏览器:

    第二次浏览器大战基本是从苹果公司2003年1月发布其自有浏览器Safari开始的,苹果利用自己独天得厚的手机市场份额,使Safari浏览器的用户数量不断上升。从Safari推出之时起,它的渲染引擎就是Webkit,一提到 webkit,首先想到的便是 chrome,可以说,chrome 将 Webkit内核 深入人心,殊不知,Webkit 的鼻祖其实是 Safari。现在很多人错误地把 webkit 叫做 chrome内核(即使 chrome内核已经是 blink 了),苹果都哭瞎了有木有。Safari 是苹果公司开发的浏览器,使用了KDE(Linux桌面系统)的 KHTML 作为浏览器的内核,Safari 所用浏览器内核的名称是大名鼎鼎的 WebKit。 Safari 在 2003 年 1 月 7 日首度发行测试版,并成为 Mac OS X v10.3 与之后版本的默认浏览器,也成为苹果其它系列产品的指定浏览器(也已支持 Windows 平台)。如上述可知,WebKit 前身是 KDE 小组的 KHTML 引擎,可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后,选择了后者来做引擎开发,是因为 KHTML 拥有清晰的源码结构和极快的渲染速度。Webkit内核可以说是以硬件盈利为主的苹果公司给软件行业的最大贡献之一。随后,2008 年谷歌公司发布 chrome 浏览器,采用的 chromium 内核便 fork 了 Webkit。

    4、Firefox浏览器:

    前面提到过,在第一次浏览器中大败的网景公司并没有彻底烟消云散,就是几经曲折(此处省略,有兴趣查阅资料),原网景公司的人员创办了Mozilla基金会,这是一个非盈利组织,正是他们在2004年推出了自己的浏览器Firefox,并且以之前的Mosaic内核为基础,开发了Gecko引擎,这也是火狐自04年发布以来一直使用的渲染引擎~后来在2005年,又在基金会的基础上成立了Mozilla公司,其主要任务就是继续开发Firefox。Gecko是一个开源项目,代码完全公开,因此受到很多人的青睐~~对了,从Firefox问世开始,第二次浏览器大战基本算是彻底打响了,第二次浏览器大战与第一次二元鼎力的局面不同,这一次的特点就是百家争鸣,也自此打破了IE浏览器从98年网景被收购后独步浏览器市场的局面。

    5、Chrome浏览器:

    2008年,大名鼎鼎的互联网巨头Google公司发布了它的首款浏览器Chrome浏览器。虽然在浏览器方面,Chrome算是年轻的一代了,但是没办法啊,人家是富二代官二代啊,后台太强,而且确实先天能力得天独厚,从文章最初贴的那个浏览器市场份额报告可以看出即便是在国内市场,Chrome浏览器依然占据着半壁江山。前面说的,其实Chrome浏览器的内核名为chromium,也就是现在大家习惯称的chrome内核,而且按照大家的误解,一直认为的chrome内核就是由苹果公司最先选择的算是KHTML引擎的分支-Webkit,这大概是苹果公司至今说不清道不明的伤痛吧~~chromium fork 自开源引擎 webkit,却把 WebKit 的代码梳理得可读性提高很多,所以以前可能需要一天进行编译的代码,现在只要两个小时就能搞定。因此 Chromium 引擎和其它基于 WebKit 的引擎所渲染页面的效果也是有出入的。所以有些地方会把 chromium 引擎和 webkit 区分开来单独介绍,而有的文章把 chromium 归入 webkit 引擎中,都是有一定道理的。(谷歌公司还研发了自己的 Javascript 引擎,V8,极大地提高了 Javascript 的运算速度。)chromium 问世后,带动了国产浏览器行业的发展。一些基于 chromium 的单核,双核浏览器如雨后春笋般拔地而起,例如 搜狗、360、QQ浏览器等等,无一不是套着不同的外壳用着相同的内核。

    然而 2013 年 4 月 3 日,谷歌在 Chromium Blog 上发表 博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。其实Blink引擎就是也就是Webkit的分支,就像Webkit是KHTML的分支一样。Blink引擎现在是谷歌公司与Opera Software共同研发,上面提到过的,Operaqq弃用了自己的Presto内核,加入Google阵营,跟随谷歌一起研发Blink,套上Chromium内核后,用户体验貌似确实大不如前,鼎盛时期的Opera7.0也不复存在~~

    相关文章

      网友评论

        本文标题:浏览器内核

        本文链接:https://www.haomeiwen.com/subject/ntjscftx.html