六⼤主流浏览器及四⼤内核
六⼤主流浏览器及四⼤内核
只是⽤户看到仅仅只是浏览器本⾝,却很少能看到浏览器最核⼼的部分—浏览器内核。从第⼀款libwww(Library WorldWideWeb)浏览器发展⾄今已经经历了⽆数竞争与淘汰了。现在国内常见的浏览器有:IE、Firefox、QQ浏览器、Safari、Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、遨游浏览器、世界之窗浏览器等。但⽬前最为主流浏览器有五⼤款,分别是IE、Firefox、Google Chrome、Safari、Opera。
浏览器最重要的部分是浏览器的内核。浏览器内核是浏览器的核⼼,也称“渲染引擎”,⽤来解释⽹页语法并渲染到⽹页上。浏览器内核决定了浏览器该如何显⽰⽹页内容以及页⾯的格式信息。不同的浏览器内核对⽹页的语法解释也不同,因此⽹页开发者需要在不同内核的浏览器中测试⽹页的渲染效果。
浏览器内核⼜可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它负责取得⽹页的内容(HTML、XML、图像等等)、整理讯息(例如加⼊ CSS 等),以及计算⽹页的显⽰⽅式,然后会输出⾄显⽰器或打印机。浏览器的内核的不同对于⽹页的语法解释会有不同,所以渲染的效果也不相同。所有⽹页浏览器、电⼦邮件客户端以及其它需要编辑、显⽰⽹络内容的应⽤程序都需要内核。JS 引擎则是解析 Javascript 语⾔,执⾏ javascript 语⾔来实现⽹页的动态效果。
最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独⽴,内核就倾向于只指渲染引
擎。有⼀个⽹页标准计划⼩组制作了⼀个ACID 来测试引擎的兼容性和性能。内核的种类很多,如加上没什么⼈使⽤的⾮商业的免费内核,可能会有 10 多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。
1、IE浏览器:
梦见地震IE是微软公司旗下浏览器,是⽬国内⽤户量最多的浏览器。IE诞⽣于1994年,当时微软为了对抗市场份额占据将近百分之九⼗的⽹景Netscape Navigator,于是在Windows中开发了⾃⼰的浏览器Internet Explorer,⾃此也引发了第⼀次浏览器⼤战。结果可想⽽知,微软⼤获全胜,⽹景不得不将⾃⼰卖给AOL公司。但实际上事情并没有结束,⽹景后来开发了风靡⼀时的Firefox⽕狐,⾄今Firefox也成为世界五⼤浏览器之⼀。1996年,微软从Spyglass⼿⾥拿到Spyglass Mosaic的源代码和授权,开始开发⾃⼰的浏览器IE。后来,微软以IE和Windows捆绑的模式不断向市场扩展份额,使IE成为市场的绝对主流。现在装了Windows系统的电脑基本⽆法卸载IE。
2、Opera浏览器:
Opera是挪威Opera Software ASA公司旗下的浏览器。1995年,opera公司发布第⼀版Opera浏览器,使⽤⾃⼰研发的Presto内核。当时opera公司的开发团队不断完善Presto内核,使Opera浏览器⼀度成为顶级浏览器。直到2016年奇虎360和昆仑万维收购了Oprea浏览器,从此也丢弃了强⼤的Prest
o内核,改⽤当时Google开源的webkit内核。后来Opera浏览器跟随Google将浏览器内核改为Blink内核。⾃此Presto内核也淡出了互联⽹市场。
3、Safari浏览器:
深圳杨梅坑好玩吗第⼆次浏览器⼤战是从苹果公司发布Safari浏览器开始的。2003年,苹果公司在苹果⼿机上开发Safari浏览器,利⽤⾃⼰得天独厚的⼿机市场份额使Safari浏览器迅速成为世界主流浏览器。Safari是最早使⽤webkit内核的浏览器也是现在苹果默认的浏览器。
4、Firefox浏览器:
工业洗地机哪个牌子好Firefox浏览器使Mozilla公司旗下浏览器,也是刚才提到的⽹景公司后来的浏览器。⽹景被收购后,⽹景⼈员创办了Mozilla基⾦会,这是⼀个⾮盈利组织,他们在2004年推出⾃⼰的浏览器Firefox。Firefox采⽤Gecko作为内核。Gecko是⼀个开源的项⽬,代码完全公开,因此受到很多⼈的青睐。Firefox的问世加快了第⼆次浏览器⼤战的开始。第⼆次浏览器⼤战与第⼀次⼆元⿍⼒的局⾯不同,这⼀次的特点就是百家争鸣,也⾃此打破了IE浏览器从98年⽹景被收购后独步浏览器市场的局⾯。
5、Chrome浏览器:
Chrome浏览器是google旗下的浏览器。Chrome浏览器⾄发布以来⼀直讲究简洁、快速、安全,所以
Chrome浏览器到现在⼀直受⼈追捧。最开始Chrome采⽤webkit作为浏览器内核,直到2013年,google宣布不再使⽤苹果的webkit内核,开始使⽤webkit的分⽀内核Blink。
以上是五⼤浏览器的简介,接下来是四⼤内核。在介绍五⼤浏览器的同时也已经顺便介绍了四⼤内核。四⼤内核分别是:Trident(也称IE内核)、webkit、Blink、Gecko。五⼤浏览器采⽤的都是单内核,⽽随着浏览器的发展现在也出现了双内核。像360浏览器、QQ浏览器都是采⽤双内核。
作为前端开发,熟悉四⼤内核是⾮常有必要的。四⼤内核的解析不同使⽹页渲染效果更具多样化。下⾯总结⼀下各常⽤浏览器所使⽤的内核。
1、IE浏览器内核:Trident内核,也是俗称的IE内核;
2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核;
3、Firefox浏览器内核:Gecko内核,俗称Firefox内核;
4、Safari浏览器内核:Webkit内核;
5、Opera浏览器内核:最初是⾃⼰的Presto内核,后来是Webkit,现在是Blink内核;
6、360浏览器、猎豹浏览器内核:IE+Chrome双内核;
7、搜狗、遨游、QQ浏览器内核:Trident(兼容模式)+Webkit(⾼速模式);
8、百度浏览器、世界之窗内核:IE内核;
9、2345浏览器内核:以前是IE内核,现在也是IE+Chrome双内核;
Trident (['traɪd(ə)nt])
Trident(IE内核):该内核程序在 1997 年的 IE4 中⾸次被采⽤,是微软在 Mosaic("马赛克",这是⼈类历史上第⼀个浏览器,从此⽹页可以在图形界⾯的窗⼝浏览) 代码的基础之上修改⽽来的,并沿⽤到 IE11,也被普遍称作 "IE内核"。
Trident实际上是⼀款开放的内核,其接⼝内核设计的相当成熟,因此才有许多采⽤ IE 内核⽽⾮ IE 的浏览器(壳浏览器)涌现。由于 IE 本⾝的 "垄断性"(虽然名义上 IE 并⾮垄断,但实际上,特别是从 Windows 95 年代⼀直到 XP 初期,就市场占有率来说 IE 的确借助 Windows 的东风处于 "垄断" 的地位)⽽使得 Trident 内核的长期⼀家独⼤,微软很长时间都并没有更新 Trident 内核,这导致了两个后果——⼀是 Trident 内核曾经⼏乎与 W3C 标准脱节(2005年),⼆是 Trident 内核的⼤量 Bug 等安全性问题没有得到及时解决,然后加上⼀些致⼒于开源的开发者和⼀些学者们公开⾃⼰认为 IE 浏览器
不安全的观点,也有很多⽤户转向了其他浏览器,Firefox 和 Opera 就是这个时候兴起的。⾮ Trident 内核浏览器的市场占有率⼤幅提⾼也致使许多⽹页开发⼈员开始注意⽹页标准和⾮ IE浏览器的浏览效果问题。
补充:IE 从版本 11 开始,初步⽀持 WebGL 技术。IE8 的 JavaScript 引擎是 Jscript,IE9 开始⽤ Chakra,这两个版本区别很⼤,Chakra ⽆论是速度和标准化⽅⾯都很出⾊。
国内很多的双核浏览器的其中⼀核便是 Trident,美其名⽈ "兼容模式"。
Window10 发布后,IE 将其内置浏览器命名为 Edge,Edge 最显著的特点就是新内核 EdgeHTML。关于 Edge 浏览器更多可以参考 如何评价Microsoft Edge 浏览器? 以及 微软开源Edge的JS引擎ChakraCore
关于 IE 的历史,推荐这篇⽂章 激荡20年:IE浏览器的辉煌与落寞
Gecko (['gekəʊ])
Gecko(Firefox 内核):Netscape6 开始采⽤的内核,后来的 Mozilla FireFox(⽕狐浏览器) 也采⽤了该内核,Gecko 的特点是代码完全公开,因此,其可开发程度很⾼,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多⼈的青睐,Gecko 内核的浏览器也很多,这也是
Gecko 内核虽然年轻但市场占有率能够迅速提⾼的重要原因。
事实上,Gecko 引擎的由来跟 IE 不⽆关系,前⾯说过 IE 没有使⽤ W3C 的标准,这导致了微软内部⼀些开发⼈员的不满;他们与当时已经停⽌更新了的 Netscape 的⼀些员⼯⼀起创办了 Mozilla,以当时的 Mosaic 内核为基础重新编写内核,于是开发出了 Gecko。不过事实上,Gecko
内核的浏览器仍然还是 Firefox (⽕狐) ⽤户最多,所以有时也会被称为 Firefox 内核。此外 Gecko 也是⼀个跨平台内核,可以在Windows、BSD、Linux 和 Mac OS X 中使⽤。
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。
PS:Apple 在 Safari ⾥⾯使⽤了⾃⼰的 Nitro JavaScript 引擎(只⽤ WebKit 来渲染 HTML),所以⼀般说到 Webkit,通常指的就是渲染引擎(⽽不包括 Javascript 引擎)
Chromium/Blink
2008 年,⾕歌公司发布了 chrome 浏览器,浏览器使⽤的内核被命名为 chromium。
中国旅游最好的地方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 浏览器之中。
webkit ⽤的好好的,为何要投⼊到⼀个新的内核中去呢?
Blink 其实是 WebKit 的分⽀,如同 WebKit 是 KHTML 的分⽀。Google 的 Chromium 项⽬此前⼀直使⽤ WebKit(WebCore) 作为渲染引擎,但出于某种原因,并没有将其多进程架构移植⼊Webkit。
后来,由于苹果推出的 WebKit2 与 Chromium 的沙箱设计存在冲突,所以 Chromium ⼀直停留在 WebKit,并使⽤移植的⽅式来实现和主线WebKit2 的对接。这增加了 Chromium 的复杂性,且在⼀定程度上影响了 Chromium 的架构移植⼯作。
基于以上原因,Google 决定从 WebKit 衍⽣出⾃⼰的 Blink 引擎(后由 Google 和 Opera Software 共同研发),将在 WebKit 代码的基础上研发更加快速和简约的渲染引擎,并逐步脱离 WebKit 的影响,创造⼀个完全独⽴的 Blink 引擎。这样以来,唯⼀⼀条维系 Google 和苹果之间技术关系的纽带就这样被切断了。
Google 和苹果在多个领域都是竞争对⼿,⽽唯独在浏览器引擎上有技术合作,利益⼀致。但为了各⾃的利益,谁都不会拿出 100% 的 "诚意" 来做好 WebKit,因为你做出来的成果竞争对⼿可以直接享⽤。移动互联⽹已经崛起,⼿机和平板设备端必将成为浏览器的另⼀个战场。这个时候,如果 Google 跟苹果仍然黏在⼀起,将会严重阻碍双⽅的进步,也会阻碍 WebKit 的进步。
据说 Blink 删除了 880w ⾏ webkit 代码。
水果拼盘的做法⾄于为什么叫 blink?有兴趣的可以看下这篇访谈 Paul Irish on Chrome Moving to Blink,⾥⾯说Blink 引擎问世后,国产各种 chrome 系的浏览器也纷纷投⼊ Blink 的怀抱,可以在浏览器地址栏输⼊ chrome://version 进⾏查看。⽐如在 360 下:
image
2020年1⽉16⽇微软发布基于chrominum的edge浏览器性能提升很⼤,可与chrome媲美
Presto (['prestəʊ])
Presto 是挪威产浏览器 opera 的 "前任" 内核,为何说是 "前任",因为最新的 opera 浏览器早已将之抛弃从⽽投⼊到了⾕歌⼤本营。
Opera 的⼀个⾥程碑作品是 Opera7.0,因为它使⽤了 Opera Software ⾃主开发的 Presto 渲染引擎,取代了旧版 Opera 4 ⾄ 6 版本使⽤的Elektra 排版引擎。该款引擎的特点就是渲染速度的优化达到了极致,然⽽代价是牺牲了⽹页的兼容性。
Presto 加⼊了动态功能,例如⽹页或其部分可随着 DOM 及 Script 语法的事件⽽重新排版。Presto 在推出后不断有更新版本推出,使不少错误得以修正,以及阅读 Javascript 效能得以最佳化,并成为当时速度最快的引擎。
然⽽为了减少研发成本,Opera 在 2013 年 2 ⽉宣布放弃 Presto,转⽽跟随 Chrome 使⽤ WebKit 分⽀的 Chromium 引擎作为⾃家浏览器核⼼引擎,Presto 内核的 Opera 浏览器版本永远的停留在了 12.17。在 Chrome 于 2013 年推出 Blink 引擎之后,Opera 也紧跟其脚步表⽰将转⽽使⽤ Blink 作为浏览器核⼼引擎。
Presto 与开源的 WebKit 和经过⾕歌加持的 Chromium 系列相⽐毫⽆推⼴上的优势,这是 Opera 转投 WebKit 的主要原因,并且使⽤WebKit 内核的 Opera 浏览器可以兼容⾕歌 Chrome 浏览器海量的插件资源。但是换内核的代价对于 Opera 来说过于惨痛。使⽤⾕歌的WebKit 内核之后,原本快速,轻量
化,稳定的 Opera 浏览器变得异常的卡顿,⽽且表现不稳定,Opera 原本旧内核浏览器书签同步到新内核上的⼯作 Opera 花了整整两年时间,期间很多 Opera 的⽤户纷纷转投⾕歌浏览器和其他浏览器,造成了众多的⽤户流失。时⾄今⽇现在还有上千万⼈在使⽤⽼版本的 Opera。
很多⼈都认为 Opera 浏览器终⽌在了 12.17,此后所更新的 Opera 版本号不再是原来那个 Opera。
说好的 Presto Forever 呢?
关于移动端
移动端的浏览器内核主要说的是系统内置浏览器的内核。
⽬前移动设备浏览器上常⽤的内核有 Webkit,Blink,Trident,Gecko 等,其中 iPhone 和 iPad 等苹果 iOS 平台主要是 WebKit,Android 4.4 之前的 Android 系统浏览器内核是 WebKit,Android4.4 系统浏览器切换到了Chromium,内核是 Webkit 的分⽀ Blink,Windows Phone 8 系统浏览器内核是 Trident。
总结
最健康的饮料浏览器内核主要指的是浏览器的渲染引擎,2013 年以前,代表有 Trident(IE),Gecko(firefox),
Webkit(Safari chrome 等)以及Presto(opera)。2013 年,⾕歌开始研发 blink 引擎,chrome 28 以后开始使⽤,⽽ opera 则放弃了⾃主研发的 Presto 引擎,投⼊⾕歌怀抱,和⾕歌⼀起研发 blink 引擎,国内各种 chrome系的浏览器(360、UC、QQ、2345 等等)也纷纷放弃 webkit,投⼊ blink 的怀抱。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论