浏览器发展史
现在浏览器已经成为网上生活的重要家园和工具。而从1991年,Web之父Tim Berners-Lee亲手设计第一个HTML浏览器开始,到现在HTML5大行其道,苹果、谷歌等创新企业引导潮流,恍若隔世。
曾经AOL收购Netscape后被大骂是“毁人不倦”,曾经也有很多人为IE写过“墓志铭”,曾经很多人还见证了Mozilla从出生到壮大,也曾惊讶于苹果Webkit的英明,而现在想起这一幕一幕,心中感慨万千。当再一次翻开浏览器的发展史,我们很鲜明地发觉一个规律:江山代有才人出,各领风骚仅几年。后来者居上,似乎是浏览器市场的宿命。
下面以内核(Rendering Engine)的变革来简述一下过去几十年浏览器市场风云,个中的刺刀见红,值得玩味。为了不让这篇文章写成技术说明文,我还是尽可能说得简单通俗点。
内核
首先得搞懂浏览器内核究竟指的是什么。
浏览器内核英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核,至于为什么流行这么称呼,请自行领悟。内核可以分成两部分:渲染引擎(layout engineer)或(Rendering Engine)和 JS 引擎。内核负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS 引擎则是解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。
最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于单指渲染引擎。有一个网页标准计划小组制作了一个 ACID 来测试引擎的兼容性和性能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有 10 多种,但是常见的浏览器内核可以分这四种:Gecko、Trident、Webkit、Blink。
需要注意浏览器和浏览器内核是不同的概念,浏览器指的是Chrome、Firefox、Safari、Opera等,而浏览器内核则是Blink、Webkit、Gecko、Trident等。浏览器内核只负责渲染,GUI及网络连接等跨平台工作则是浏览器实现的。
第一次变革:Netscape王者
曾几何时,我用着Netscape,大骂那些用IE的是人“土鳖”。而到现在,这个名字已成为历史。
故事从1994年开始,那一年网景通信公司推出了代号为“网景导航者”的网景浏览器1.0,互联网历史上第一款商业化浏览器产品——Netscape诞生了,随后的Netscape6开始采用Gecko内核。后来的Mozilla FireFox(火狐浏览器)也采用了该内核,Gecko 的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko 内核的浏览器也很多,这也是 Gecko 内核虽然年轻但市场占有率能够迅速提高的重要原因。这款产品迅速风靡,随后迭代版本占领了浏览器大部分份额。在最鼎盛的时期,风光程度甚至超过了后来者IE。
第二次变革:蝗虫IE
浏览器世界统治时间最长、最为著名的莫过于微软的IE系列浏览器。如果不是网景浏览器的太过成功,或许不会有后来的IE了,快速的发展让Netscape犯下了一个致命错误,由于浏览器的成功带来的自信导致这家公司干脆尝试去做一个操作系了,而当时操作系统领域已经领先的微软马上意识到网景的威胁,立马收购另外一家浏览器公司,1997年微软基于Mosaic(“马赛克”,这是人类历史上第一个浏览器,从此网页可以在图形界面的窗口浏览)代码修改成了新的Trident内核,开发出了Internet Explorer,而且微软把IE浏览器捆绑在了他自己的操作系统中,想想当时的场景,安装一个微软的操作系统没有浏览器,还需要再花钱买一张网景浏览器软件才能上网,尽管网景浏览器很好用,但这样也很麻烦。微软操作系统中直接带有浏览器,试问还有谁愿意去在花钱买个浏览器软件?所以IE立马占领了浏览器市场。一直到今天,尽管有些强弩之末,但依然占据了半壁江山。
很多人将IE的成功归咎于微软的“蝗虫”式垄断战略,但坦白地说,Trident内核帮了它大忙,尤其在早期,从IE4中首次采用一直沿用到了IE11,所以Trident也被普遍称为IE内核。Trident实际上是一款开放的内核,它比较轻盈,而且历经多代发展,已具有成熟的接口规范和接口开发性,能够适应不同的脚本要求。因此才有许多采用 IE 内核而非 IE 的浏览器(壳浏览器)涌现。
非 Trident 内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非 IE浏览器的浏览效果问题。
补充:IE 从版本 11 开始,初步支持 WebGL 技术。IE8 的 JavaScript 引擎是 Jscript,IE9 开始用 Chakra,这两个版本区别很大,Chakra 无论是速度和标准化方面都很出色。
国内很多的双核浏览器的其中一核便是 Trident,美其名曰 “兼容模式”。
Window10 发布后,IE 将其内置浏览器命名为 Edge,Edge 最显著的特点就是新内核 EdgeHTML。关于 Edge 浏览器更多可以参考 如何评价 Microsoft Edge 浏览器?
第三次变革:烈士遗孤Mozilla
1998年1月,网景与微软IE浏览器竞争失利以后,为了挽回市场,网景通信公司公布旗下所有软件以后的版本皆为免费,并成立了非正式组织Mozilla,自此Mozilla浏览器开始登上舞台。Netscape虽然死了,但是留下的“遗孤”Firefox(狐狸),则开始迈出了漫长的复仇之路。Mozilla Firefox也是基于Gecko内核,但此Gecko已非彼Gecko。
上一代的Gecko内核由于公司产品研发策略发生的偏差,导致它越来越臃肿,受人诟病。尤其是被AOL收购后,这家公司除了将Netscape带向死亡外,没有任何建树。
而新一代的Gecko内核引擎的由来跟 IE 不无关系,由于 IE 本身的 “垄断性”(虽然名义上 IE 并非垄断,但实际上,特别是从 Windows 95 年代一直到 XP 初期,就市场占有率来说 IE 的确借助 Windows 的东风处于 “垄断” 的地位)而使得 Trident 内核的长期一家独大,微软很长时间都并没有更新 Trident 内核,这导致了两个后果——一是 Trident 内核曾经几乎与 W3C 标准脱节(2005年)这也导致了微软内部一些开发人员的不满,二是 Trident 内核的大量 Bug 等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为 IE 浏览器不安全的观点,也有很多用户转向了其他浏览器,而那些不满的部分微软“叛将”与当时已经停止更新了的 Netscape 的一些员工一起创办了Mozilla(Opera 也是这个时候兴起的),以当时的 Mosaic 内核为基础重新编写内核,于是开发出了 Gecko。针对IE,Gecko祭出了自己的杀手锏——开源,通过源代码开放,彻底解决了安全和速度问题。尤其是热代码加速这个全新思路,为Firefox打开了胜利之门。从刚开始被微软取笑为“臭狐狸”到与IE形成分庭抗礼的局势,也不过是短短几年而已。不过,Gecko 内核的浏览器仍然还是 Firefox 用户最多,所以有时也会被称为 Firefox 内核。此外 Gecko 也是一个跨平台内核,可以在Windows、 BSD、Linux 和 Mac OS X 中使用。
第四次变革:苹果Safari来了
可惜的是尽管Mozilla、opera浏览器很好用,可微软操作系统的市场占有率很大,造成其他浏览器的市场份额一直不变。IE自从坐上了份额第一的头把交椅后,就一直不思进取了,自己制作一套web标准,也不怎么支持html,javascript,css这些web技术的新版本特性,微软从ie6开始到ie8七八年间几乎没对Trident进行过像样的更新,这与后来勤快的苹果、Google形成鲜明的对比。虽然ie通过垄断赢得了市场,但不安全、崩溃、速度慢等等问题也一直让用户难以忍受。现实往往就是这么捉摸不定,变幻莫测,正当人们认为Gecko将与Trident上演“双寡头”的时候,苹果大叔开始出手,做了蝉和黄雀后面的螳螂。
话说回来,这也得怪Gecko和Trident他们自己。Gecko再次犯了当年的错误——贪大求全,将邮件组、新闻组、聊天等流行应用都打包进了Firefox,导致内存占用问题。此外,Firefox对JavaScript的支持并不好,反应迟钝也开始被频频抨击。而Trident呢,几乎没怎么更新过,很多兼容问题导致开发者也是头大。再加上开放性问题,致使IE在安全性、速度等诸多问题上被群起而攻。从这个意义上来说,是垄断成就了IE,同样也是垄断毁灭了IE。
勤劳的又追求极致的苹果推出的基于WebKit内核的Safari浏览器则引导了浏览器的本质回归潮流。Safari 在 2003 年 1 月 7 日首度发行测试版,并成为 Mac OS X v10.3 与之后版本的默认浏览器,也成为苹果其它系列产品的指定浏览器(也已支持 Windows 平台)。WebKit内核则是苹果基于KDE小组(Linux桌面系统)的 KHTML 引擎开发出来的,可以说 WebKit 是 KHTML 的一个开源的分支。当年苹果在比较了 Gecko 和 KHTML 后,选择了后者来做引擎开发,是因为相比Gecko,KHTML 拥有清晰的源码结构和极快的渲染速度,也实现了JavaScript脚本的快速解释器调用。事实上,这个宝押对了。这种轻灵随后就赢得了Google的青睐(2008 年谷歌公司发布 chrome 浏览器,采用的 chromium 内核便 fork 了Webkit)。现在Google Chorme已成增长最快,最受开发者喜欢的浏览器了,加上苹果Safari的份额,WebKit已经与Gecko、Trident开始“三国演义”。
有意思的是,自从苹果的WebKit推出后,不光是谷歌青睐,就连Firefox内部也开始有“异见”,要求抛弃Gecko而选择WebKit。
更有意思的是,一提到 webkit,大家首先想到的便是chrome,可以说,chrome将 Webkit内核深入人心,殊不知,Webkit 的鼻祖其实是Safari。现在很多人错误地把 webkit 叫做 chrome内核(即使 chrome内核已经是 blink 了),苹果都哭瞎了有木有,Webkit内核可以说是以硬件盈利为主的苹果公司给软件行业的最大贡献之一。
第五次变革:后起之秀-谷歌Chrome(Bink/Chromium)
自苹果推出的WebKit内核后,这种回归本质的轻灵受到了谷歌的青睐,2008年chrome横空出世。界面简洁、加载快速、数据安全等这些特点让chrome越来越受喜欢,甚至好过于苹果了。加之很多web开发者对其的追捧,最终使其市场份额逐步攀升,成为了后起之秀。
谷歌发布的 chrome 浏览器使用的内核被命名为 chromium。chromium 虽然是开源引擎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 和 Apple 在多个领域都是竞争对手,而唯独在浏览器引擎上有技术合作,利益一致。但为了各自的利益,谁都不会拿出 100% 的 “诚意” 来做好 WebKit,因为你做出来的成果竞争对手可以直接享用。移动互联网已经崛起,手机和平板设备端必将成为浏览器的另一个战场。这个时候,如果 Google 跟苹果仍然黏在一起,将会严重阻碍双方的进步,也会阻碍 WebKit 的进步。据说 Blink 删除了 880w 行 webkit 代码。
至于为什么叫 Blink?有兴趣的可以看下这篇访谈 Paul Irish on Chrome Moving to Blink,里面说:it fits that Blink will never support the infamous <blink> tag.
Blink 引擎问世后,国产各种 chrome 系的浏览器也纷纷投入 Blink 的怀抱,可以在浏览器地址栏输入 chrome://version 进行查看。
在chrome发展壮大过程中,微软才意识到chrome开始对它逐步侵蚀自己的市场有了危机感,才开始频繁更新IE,2011年IE9发布,2012年IE10发布,2013年IE11发布,最后IE的代码实在适应不了新要求的web技术,就重新开发了一个名为“edge”的浏览器用来取代IE,但还是挡不住chrome成为市场份额第一的命运。在IE横行的那一段时间为了适应IE中国的大多数常用网站也不大符合互联网标准,也就是说如果用符合互联网标准的浏览器去解析这些网站,反而会不正常显示,可见IE坐头把交椅的那几年,却一直在误导和阻挠互联网的发展,悲哉啊。在此要向那些不断创新、不断完善、不断接纳新web技术的浏览器公司致敬,面对IE他们的市场份额不高,却仍然坚持着不断前进。
第六次变革:1+1>2,双核时代
Webkit的异军突起将浏览器的特性拉回到“浏览”的本质上来——评价浏览器优劣的关键词不外乎三个方面:兼容性、安全性、浏览速度。而追究每一次浏览器的更替,你总会发现,它们在这三方面总有致命缺陷。
如此情况下,一种新的呼声正在崛起——多核。尤其是在中国市场,由于Firefox等浏览器在中国的市场份额极少,中文网页多是“IE标准”,用户暂时无法抛弃Trident内核,但他们又需要速度更快、更稳定的浏览体验。采用“多核”之后,这种矛盾迎刃而解。
从全球范围来看,多核未必蔚然成风,但在特殊的中国市场,这代表了潮流。看看现在的国内浏览器吧:360安全浏览器,QQ浏览器、搜狗浏览器,UC浏览器、2345加速浏览器、百度浏览器、猎豹浏览器、遨游浏览器,世界之窗,有几个不是双核的?你再看看国外的浏览器:chrome、safari、opera、firefox、ie又有几个是双核?
为什么国内主流浏览器双核是标配?
其实,双核功能的出现与我国互联网环境有着极大的关系,因为有些像网银和公司校园这类网站用Chrome浏览器打不开或会出问题,但却可以用IE浏览器打开。但是对于常见的网站用 IE 浏览器搞不好就会卡死。对于这类问题,我们称之为“网站存在兼容性问题”。
在没有出现双核浏览器之前,用户的使用习惯是大多情况要使用一个基于 WebKit 内核的浏览器 Chrome、Safari、Firefox 或 Opera ,然后在碰到兼容性问题时再切换至兼顾兼容性的Trident内核IE浏览器上。很显然,这个“缝”给用户使用带来一定的不便。更有甚者,很多用户从技术层面并不知道Chrome其实比IE做得更好,没有机会享受更好的上网体验。而在那个移动互联网还没有大行其道的年代,大家普遍的观点是浏览器是互联网的重要入口,是推广自家产品的最佳工具,是巨大的流量入口,而用户的这种痛点正是一个拿到坐票的商机,这种背景造就了国内大量双核浏览器的出现,国产双核浏览器在2011年快速崛起,证明了浏览器在兼容性以及速度性能上的诉求,是用户所需要也是用户看重的。到现在双核已经成为了国内浏览器的标配。
综上,双核功能的定位实际上就是主打WebKit核的快速并以Trident核出色兼容性做为补充,让“多核”共存共融,真正发挥1+1>2效果的效果。UC浏览器的双核指的也正是这两个核,且两个核的定位也是这样的。但从长远来看,双核浏览器可能是一条死路,随着web标准的推广,ie内核也会越来越靠近标准,很多网站也将不支持旧版本的ie浏览器,等过几年,内核之间已经不存在兼容问题,双核浏览器就没有卖点了。
为什么Chrome是造就国内双核浏览器的幕后真英雄?
因为,在当时来说,一个是伴随着Windows操作系统而来的用户基础庞大的IE 浏览器(Trident内核),而另一个就是基于 WebKit 内核,更多的是兼顾性能的以Chrome为代表的浏览器了。
这里有问题,我们都知道 Webkit 内核是苹果公司基于KHTML内核开发的新内核,但为何大家都选择了 Chrome 作为第二核呢?
这一方面是因为,虽然Webkit内核是苹果开发的,但把它发扬光大的并非是苹果,而是谷歌。谷歌发布的Chromium内核虽然是开源引擎Webkit的一个分支,但却把 Webkit 的性能优化的更高。Google团队在Chromium项目上包括Webkit在内做了大量的创新,可以说只要存在影响网页打开速度的瓶颈,就能看到相应的创新点。象DNS Prefetch、SPDY、QUIC、Prerender、多进程架构、PPAPI、v8 JavaScript引擎、对HTML5的支持等技术内容都是很好的创新例子。这也导致了Chromium 引擎和其它基于 WebKit 的引擎所渲染页面的效果是有出入的。比如用户打开的一个站点包含有加载速度较慢的Java广告,Chromium则会把Java代码隔离起来,网页的其它部分则不会受到影响。点击图标后,Chrome在数秒钟内就能启动—远远领先于其他一些基于 Webkit 内核对手。另外 chromium 的预处理也是让打开网页的速度快的飞起,比如 Chrome 会根据历史统计来预估所输入字符对应的网站,比如输入了「ba」,根据之前的历史发现 90% 的概率会访问「www.baidu.com 」,因此就会在输入回车前就马上开始建立 TCP 链接甚至渲染了,这里面还有很多其它策略,感兴趣的推荐阅读 High Performance Networking in Chrome。这些特性让用户对chrome浏览器大加追捧,Webkit内核大红大紫。加上Chromium又是一个开源项目,所以很自然地会想到基于它做二次开发而吸收其优点。也正因如此,国内市场上的双核浏览器都是采用这一同样的开发模式。而且一直在快速的跟进Chromium项目的发展。比如2013年的时候,在谷歌Chromium与Webkit分道扬镳并发布新的 Blink 渲染引擎后,国内双核浏览器也都迅速转到了Blink 旗下。
这另一方面的原因可能在于移动端。虽然当时移动互联网还没有现在这么热,但苗头已经起来了,在PC端Webkit内核虽然还不能取代IE内核。但在手机上WebKit内核应用的十分广泛,例如Google的手机Gphone、Apple的iPhone、Nokia’s Series60 browser等所使用的Browser内核引擎,都是基于WebKit。加之后来谷歌安卓系统的普及和发展,更加确定了Chromium作为国内浏览器厂商的不二之选。
还有一方面原因在于chrome os,google估计对操作系统这块一直不甘心,身为一个和微软、苹果并肩的互联网公司,看着windows和mac在那斗来斗去没自己什么事儿实在尴尬。但操作系统开源的有linux,商业的有windows、mac,自己如何做一个放眼未来与众不同的pc操作系统呢?chrome浏览器这么成功,于是他们就搞出来了一个基于linux内核的chrome os。可以理解为在Linux的内核上运行一个使用新的窗口系统的Chrome浏览器,也就是说这个操作系统中除了驱动只有一个chrome浏览器,google把目标定位在了上网本,因为是基于“云概念”,所以办公和文件全部储存在云端,这样电脑可以省去硬盘等一部分硬件,从而降低售价。同时2010年google发布了chrome os并开放源代码,准备来android、chrome的老套路,2010年下半年google联合几大电脑厂商开始销售上网本。可惜的是上网本受同年乔帮主发布的iPad影响,从2010年到2012年两年间市场被压榨的所剩无几,chrome os至今没有个像样的业绩,连自家另外一个产品android也不得不跳着版本针对平板做大更新。但这并不妨碍它对chromium内核的推广贡献。
最最重要的原因是内核不好开发啊亲,Apple都不敢自己弄,拿了KHTML回来改。Google也不敢自己弄,拿了WebKit回来改。Opera自己弄了,然后扔了。IE修修补补,终于决定扔了再写一个。所以,不拿成熟的过来用,你难道指望国内的公司自己写一个牛逼的内核吗?
那为什么有些用户宁愿浏览器双开,也不愿意用国产的双核浏览器呢?
可能存在以下原因:
chrome的界面设计甩双核浏览器好几条街。
chrome功能上更加安全可靠,双核浏览器感觉会打折扣。
chrome有ie tab插件(插件会有Cookies丢失、假死现象),可以实现内核切换,没必要用双核。
用ie的场景不多了,网银和各大电商都已支持chrome了。
双核浏览器是一条死路,随着web标准的推广,ie内核也会越来越靠近标准。
国产双核浏览器的花里胡哨的自带插件各种弹窗广告和自作聪明的复杂设计、无用功能、过度吹嘘开始让人生厌。
极客、技术发烧友的使用习惯和普通网友有本质区别。
国产的外壳,商业目的远大于技术目的,第一目的是赚钱,而不是做一个好产品。
总结就是:因为一个没有实力开发内核的中国小公司,也同样不可能把外壳和用户体验做得比有能力开发优秀内核的世界级公司更好。
被抛弃的Presto
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 呢?
国产浏览器起源
国产浏览器起源于IE,一位网名为changyou(畅游)的程序员于1999年在论坛上发布一款叫"MyIE"的浏览器,基于IE,但采用多窗口浏览,占用系统资源比IE6少很多,且有鼠标手势、视觉化书签等功能。后来“畅游”这个人就消失不见了,MyIE版本到3.2版本后就再也没有更新过。MyIE代码停更后,有很多程序员接起了MyIE的开发工作。不过因为没有MyIE作者的参与,各自为战,从而诞生了一大批以MyIE为基础的浏览器,其中最出名的就是MyIE2(后改名Maxthon)、网际畅游(后改名GreenBrowser)和TheWorld(世界之窗)了。
MyIE2后来改名叫Maxthon,即今天的傲游。老板叫陈明杰,jeff Chen,独立开发MyIE2,然后回国创业,拉起了傲游公司,直到今天。傲游走的是高大全路线,一直以来属于重型浏览器——当然,重型不等于速度慢,只是外表看起来功能齐备而复杂,实际上对于粉丝来说这款浏览器当属灵敏与全能兼备的冲浪利器。
GreenBrowser比较可惜,走的是小巧路线,当然功能也不算少,而且不用安装,后来无声息了。
TheWorld就更可惜了,由凤凰工作室研发。后来被360安全浏览器收购了。360买下后,仍然允许凤凰工作室继续研发。再后来就是Chromium内核:世界之窗极速版、360极速浏览器,发展到世界之窗6的时候,360就不让凤凰工作室继续研发世界之窗了。于是就有了这个国内占有率极高的360极速浏览器。而世界之窗6停留在了14年,凤凰工作室转而研发Android上的星尘浏览器,以及基于Android x86的凤凰系统了。
TT 浏览器,腾讯的,后来改为QQ浏览器了(知名度仅次于360浏览器)。
猎豹浏览器,付盛接手金山网络后的一个力作,拿chromium改的,但是在包装上做足了文章。
淘宝浏览器神马的就不说了......
所以,将MyIE称为今日国产浏览器的鼻祖是不为过的。而且MyIE最大的贡献就是多标签!
悲催的遨游
遨游是极少数支持全平台(Android手机/平板, Mac, iPhone/iPad, Windows Phone 和 Linux)的浏览器,一直坚持底层开发,连续获得三次CNETWebware100大奖,“双核浏览”概念也是遨游在2010年首次提出的,即一个浏览器拥有Webkit+IE两个内核,用户可以快捷切换。但是傲游以为这是自己的独门绝技,别人学不来……然而悲催的是几乎没过几天搜狗浏览器早先发布了正式版,推出了国内第一款双核浏览器——搜狗高速浏览器,核心是“IE+Chrome”。呵呵......但是,不得不说搜狗在执行“多核”战略上非常彻底,甚至干脆直接改名为“高速浏览器”,以表决心。并且,在双核共融方面,搜狗浏览器走在了前列,其独家实现了WebKit和IE内核的无缝融合和切换,两个内核可共用浏览器的所有功能、共享所有数据,并且在内核切换时不丢失登录,相当于站在了谷歌的肩膀上。360则不着急,等大家都把IE打的妈妈都不认识的时候,直接把Chrome改了一个360极速浏览器……后来“双核”也几乎成了国产浏览器的标配,腾讯的 QQ 浏览器,百度浏览器等等都是如此,而且现在都是IE+Blink双内核了。所以,遨游的“双核”也就不再成为核心竞争力,反而因为要维护自主开发的webkit内核,变得步履缓慢,再加上有全球的开发者为chrome web store开发chrome插件,这些插件可以直接用在chromium引擎上,基于chromium的其他国产浏览器可以不费力气的利用了这个浏览器插件市场,由此看来遨游的未来堪忧,此处再次感慨世事变幻莫测,一声长叹。不过还是要向前辈致敬,比如像鼠标手势,同步收藏等最早就是在遨游上看到的,只是运气不好而已。
PC浏览器内核时间线
1997年 Trident
1998年 KHTML
2000年 Gecko
2001年 WebKit
2003年 Presto
2008年 Chromium
2010年 混合引擎(双核)
2013年 Blink
2015年 EdgeHtml
关于浏览器内核百度百科介绍的非常详细不再详述。
内核家谱
关于移动端浏览器
移动端的浏览器内核主要说的是系统内置浏览器的内核。
主要是:webkit、chromium、blink、trident、u3、x5
由于智能移动端发展历史相对于 pc 很短,所以 ie、opera这些元老级浏览器内核很少见,移动端浏览器大都是从webkit开始的,2005年,诺基亚公司的S60团队成为手机端WebKit的先驱,他们将WebKit框架移植到了Symbian S60平台,作为S60第三版的浏览器内核。2007年6月29日,iPhone上市,WebKit通过Safari浏览器进入iOS平台,而且立即成为当时iOS平台唯一的排版引擎。 2008年10月22日Chrome Lite浏览器内置在android中。所有的智能手机清一色的选择了webkit,也证明了KDE和苹果公司对webkit的贡献很大。有趣的事情在android操作系统中发生了,android原生网页视图WebView也是基于Webkit,chrome浏览器开发团队当初听取android开发团队的意见也选择了webkit,个人觉得当时他们就商量好了,那就是chrome后续开发的成果会用在android上。所以直到android 4.4为止,android上的webview组件都被人吐槽,速度慢、排版差,不得已第三方手机浏览器纷纷研发内核。腾讯的x5,UC的U3都是当时的迭代品。而同时chrome则一路高歌不断占领浏览器市场,期间chrome Lite只是作为android的内置浏览器,2013年9月android发布的android4.4终于把原本基于Android WebKit的WebView实现换成基于Chromium的WebView实现,从此基于Chromium的WebView实现成为了Android系统上的缺省实现方式。如果chromium用新的内核blink,android自然也会跟进,而最终chrome os和android会走在一起,不分你我。除此外的Windows Phone 8 系统浏览器内核则采用的是 Trident,但现已经没有声音了。
国内的手机端浏览器必须要提 UC 的U3内核和腾讯 QQ 的x5内核了,UC从非智能机开始就存在了,当之无愧最好用的移动浏览器。然而进入移动时代……UC反应慢了点,加上各种奇怪的APP都蜂拥而入,移动浏览器市场已经乱成了一锅粥。这锅粥里第一个炸开的米粒是海豚浏览器,号称硅谷华人创业团队,什么创新思维,高估值之类……但也没乱用,最后拼的都是一个字——钱。自从 UC认了马云干爸爸之后,就活过来了,现在移动端占有率依然很高, 而现在的 QQ 浏览器借助流量入口微信也算是很成功了。除此外手机百度、QQ 浏览器、360、搜狗、猎豹表现都不错。
浏览器发展时间表
浏览器的未来
浏览器内核是否会统一?
别想了,洗洗睡吧。
浏览器内核是否会跟进web技术?
尽管不会统一,但他们都会支持web新技术、也会随着硬件发展而不断优化,不会再出现IE时代的悲剧了。
主要会有哪几个浏览器内核?
google、opera拥抱的blink
苹果公司拥抱的webkit
微软的edgehtml
火狐的servo
参考资料:
《Code Rush》奔腾的代码【视频】
浏览器野史 UserAgent列传(上)
浏览器野史 UserAgent列传(下)
浏览器历史
浏览器大全-维基百科
浏览器内核-维基百科
浏览器内核
Mozilla浏览器
火狐的未来:既不会死,也不会活的很漂亮
WebKit
都用WebKit也并不意味Web的统一:WebKit的前世今生
历史在重演:从 KHTML 到 WebKit,再到 Blink
走向开放的移动 Web——写在腾讯 X5 内核开放之时
本文转载自:简书
作者:卐鑫卍
原文链接:https://www.jianshu.com/p/db1b230e3415