浏览器内核 = 渲染引擎 + 脚本解析引擎 + 其余引擎 + 相关组件前端
因为脚本基本上只有JS,因此脚本引擎也叫JS引擎,即JS引擎 = 脚本引擎chrome
下文如无特殊说明,内核泛指渲染引擎。windows
目前市场上的浏览器内核有10+种,现主要介绍常见的四种。浏览器
一、Trident(大名鼎鼎的IE)安全
二、Gecko(曾经前端开发工程师最喜欢的Firefox)app
三、Presto(曾经最快的浏览器Opera)ide
四、Webkit(巨头google的Chrome和垄断Apple的Safari)测试
五、Chromium/Bink(使Chrome的崛起,使Opera背叛)优化
浏览器ui |
内核 |
UC浏览器 |
Blink+Trident |
2345浏览器、腾讯TT、淘宝浏览器、搜狗高速浏览器 |
1.x为Trident,2.0及之后版本为Trident+Webkit |
360安全浏览器 |
1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink |
360极速浏览器 |
7.5以前为Trident+Webkit,7.5为Trident+Blink |
傲游浏览器 |
1.x、2.x为Trident,3.x为Trident+Webkit |
百度浏览器(早期版本)、世界之窗浏览器 |
最初为Trident,2013年采用Trident+Webkit |
阿云浏览器(早期版本)、瑞星安全浏览器 |
Blink+Trident |
猎豹安全浏览器 |
1.0-4.2版本为Trident+Webkit,4.3版本为Trident+Blink |
1997年10月在IE4中首次使用,IE5.五、IE六、IE七、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)。
Trident(又称为MSHTML),是微软开发的一种排版引擎,从"马赛克"(Mosaic——人类历史上第一个浏览器)修改而来。Trident II(IE5)——增进对CSS1.0的支持及对CSS2重大的变动
Trident III(IE5.5)——修正部分CSS的排版控制
Trident IV(IE6)——修正了一部分box-model的错误以及增长了“兼容模式(Quirks Mode)”切换功能,以增长对文件类型描述(Document Type Definition,DTD)的支持
Trident V(IE7)——修正许多CSS排版处理上的错误以及增长对PNG格式alpha通道(半透明)的支持
从windows 95 ~ windows XP都是IE一家独大,微软并无注重Trident内核的更新,致使几乎与W3C标准脱节(2005年)并涌现大量的bug和安全性问题没有获得及时的修复,这时候FireFox和Opera来了~~~
后续:IE8的JS引擎是Jscript,IE9开始使用Chakra,IE11开始支持WebGL技术。win10内置的Edge浏览器使用新内核EdgeHTML。
Netscape 6~8以及FireFox使用的内核,从2005年开始市场占用率迅速提升(和IE的不更新密切相关),当时由微软的一些内部员工与中止更新的Netscape一些员工一块儿创办Mozilla,开发出Gecko。其特色是代码彻底公开,跨平台(windows、BSD、Linux、Unix、Mac OS X)。
IE骄傲,FireFox来了,Opera也来了,挪威产的Opera,牺牲网页的兼容性把渲染速度的优化达到了极致,曾经(2013年2月前)一度是最快的浏览器。为了减小研发成本,Opera在2013年2月宣布放弃Presto(Opera12.17版本以后的版本将使用新的内核),转而跟Chrome使用Chromium,以后一直紧跟chrome的脚步。因此,Presto内核永远停留在了Opera12.17版本。
Chrome将Webkit深刻人心啊,哈哈,然而,Webkit的鼻祖是Safari。一开始Safari使用KDE(Linux桌面系统)的KHTML引擎做为浏览器内核,Apple对比了Gecko和KHTML以后毅然选择了KHTML,开发出Webkit(Webkit能够说是KHTML的一个开源分支),2003年1月7日发行测试版本。必须吐槽一句,Webkit内核的开发能够说是以硬件盈利为主的苹果公司对软件行业的最大贡献之一。
后续:2008年Chrome浏览器发布,开始使用chromium引擎(fork自Webkit)。因此,Webkit和Chromium/Bink都算是KHTML的分支。
chromium是fork Webkit,谷歌公司通过梳理和改进后产生的,跟随2008年Chrome(28版本)的发布一块儿诞生。随后,使用Webkit内核的浏览器都转换为chromium(Safari除外)。2013年4月3日谷歌公开发表博客称与Webkit分道扬镳,在chromium中研发Blink渲染引擎,Blink其实也是Webkit的分支(如同Webkit是KHTML的分支同样)。以前谷歌一直是使用Webkit内核以及Webkit内核中的WebCore渲染引擎,可是在评估推出Webkit2之后,渲染引擎与chromium的沙箱设计存在冲突,如需兼容将大大增长了chromium的复杂性,因此,决定开发Blink引擎(由Google和Opera共同研发),听说Blink删除了880万行Webkit的代码,改进程度至关于重构。
移动端的浏览器内核主要指的是系统内置的浏览器内核,IOS系统是Webkit内核,Android 4.4 以前是Webkit内核,Android 4.4(含)是chromium+Blink,Windows Phone 8 是Trident内核。
一、KHTML和Webkit和chromium和Blink和V8引擎是什么关系?
答:KHTML是KDE的渲染引擎,被苹果公司使用到浏览器中。Webkit(泛指Webkit的渲染引擎WebCore)是KHTML的分支,Webkit的JS引擎是JSCore(JSCore是KJS的分支),Google后来开发了V8做为JS引擎代替了JSCore。chromium是一个项目(和Webkit是同一级别),至关于一个内核项目,包括渲染引擎、脚本引擎以及其余引擎。Blink是Webkit的分支,是一个渲染引擎,Google开发,用来代替WebCore。因此总结一下,Webkit和chromium是内核,KHTML、WebCore、Blink是渲染引擎,KJS、JSCore、V8是JS引擎。chrome用是的Blink+V8,Safari用是的WebCore+JSCore。