浏览器最重要的部分是浏览器的内核,是浏览器的核心,也称渲染引擎,用来解释网页的语法并渲染到网页上。其中内核可以分为两部分,一部分是渲染引擎(renderengineer或layoutengineer),其负责生成DOM树,负责渲染和重绘;另一部分是JS引擎,负责JS的解析、编译与解释执行。现在通常将html/css的渲染引擎和js解析引擎分离开来。
渲染引擎内核分别有trident、webkit、blink、gecko等:
1、Trident内核(Windows)
Trident就是IE浏览器所使用的内核,也是很多浏览器所使用的内核,通常被称为IE内核。目前基本快消亡。
2、Gecko(跨平台)
Netscape6启用的内核,现在主要由Mozilla基金会进行维护,是开源的浏览器内核,目前最主流的Gecko内核浏览器是MozillaFirefox,所以也常常称之为火狐内核。非常小众人群使用。
3、WebKit(跨平台)
由KHTML发展而来,苹果给开源世界的一大贡献。是目前火热的浏览器内核,火热倒不是说市场份额,而是应用的面积和势头。因为是脱胎于KHTML,所以也是具有高速的特点,同样遵循W3C标准。仍然占有少部分市场。
4、Presto(跨平台)
Opera所采用的内核,准确地说,是Opera7.0及以后版本的内核,Opera3.5-6.1版本使用的内核叫做Elektra。目前已经死掉。
5、Blink内核(跨平台),由Google和OperaSoftware共同开发的浏览器内核,基于webkit。现在Chrome(28及往后版本)、Opera(15及往后版本)的Webkit内核换成了Blink内核。目前chrome已经是70多的版本了。目前最流行的渲染引擎,预计blink将垄断渲染引擎市场。
JS解析引擎包括:
1、Chakra,IE9启用的JavaScript引擎。
2、SpiderMonkey/TraceMonkey/JaegerMonkey
SpiderMonkey应用在MozillaFirefox1.0-3.0,TraceMonkey应用在MozillaFirefox3.5-3.6版本,JaegerMonkey应用在MozillaFirefox4.0及后续的版本。
3、V8应用于Chrome,现在同时应用于后台node环境。目前最火热的引擎,发展迅猛。
4、Nitro应用于Safari4及后续的版本。
5、LinearA/LinearB/Futhark/Carakan
LinearA应用于Opera4.0-6.1版本,LinearB应用于Opera7.0~9.2版本,Futhark应用于Opera9.5-10.2版本,Carakan应用于Opera10.5及后续的版本。
6、KJSKHTML对应的JavaScript引擎。
根据最新的统计显示,全球浏览器市场份额最大的几家厂商及其排名分别是:GoogleChrome、MozillaFirefox、InternetExplorer、MicrosoftEdge、Opera及Safari,国内的主要浏览器UC、QQ浏览器、搜狗、360,百度等。
在手机上浏览器内核就是Chromium和Safari两者,Safari因为苹果操作系统缘故仍占有少部分份额。其他几家均没有市场。
除了国外浏览器有自己的内核外,中国没有任何浏览器有自己的渲染引擎或解析引擎,全都是套壳浏览器。这也是为何中国在信息科技领域缺乏核心技术的例证之一。现在浏览器越来越复杂,与操作系统类似,提供了强大的运行平台。而大家国家并没有相关的技术也没有相应的投入,有的只是拿来主义,通过开源框架按照本地习惯改一下UI界面。
如果把浏览器做个拆分,其组成部分主要有:用户界面、浏览器引擎、渲染引擎、网络、JS解释器、UI后端、数据存储7个部分。而这些核心技术,可惜都是舶来品。但国内的开发者也很聪明,开创性发明了双核浏览器。360浏览器、猎豹浏览器都是采用IE+Chrome双内核,搜狗、遨游、QQ浏览器也是双内核:Trident(兼容模式)+Webkit(高速模式);UC浏览器电脑版采用Blink内核和Trident内核,百度浏览器、世界之窗内核都是单核(IE内核)。
如果要选择浏览器内核毫无疑问是chromium体系的的blink+v8。但随着中美贸易战升级,美国对中国核心技术封锁和掣肘,中国的大型互联网公司以及手机厂商应该明白,自研操作系统以及浏览器内核已经迫在眉睫了。