可能的引擎:Chromium如何成功占领了90%的浏览器市场



从最初在不受欢迎的浏览器中使用的鲜为人知的替代浏览器引擎,到占领整个市场的冠军。



您可能有时会遇到文本中的浏览器多样性的概念。...它是指Web平台上的平衡,在该平衡中,世界上有许多浏览器实现,足以刺激它们之间的创新和竞争。另一种选择是浏览器单一文化,其中一种浏览器或浏览器实现控制整个市场,并因此驱动网络的发展。当某人提升浏览器的多样性时,他们通常这样做是为了创建由W3C维护的独立Web标准的过程,该过程仅在没有浏览器可以指示Web平台中包含的功能时才起作用。



网络社区有足够的理由担心浏览器的多样性。 Internet Explorer在2000年代初占领了浏览器市场90%的份额后,开发人员花了半个多世纪才发布了新的浏览器。在此期间,Web的开发停止了,安全问题开始出现。这使网络变得更糟,因此我们经常希望浏览器参与竞争而不是垄断网络。



但是这个问题也有一个缺点。由于存在多个浏览器制造商,因此Web开发人员需要确保所有平台都兼容。浏览器之间可能存在细微的不一致,这可能会使Web开发复杂化。



这位担心的网页创作者蒂姆·伯纳斯·李(Tim Berners-Lee)。甚至在90年代初期,当网络还很年轻时,随着软件开发人员的试验,数十种浏览器开始在世界范围内出现。 Berners-Lee担心,太多的浏览器将使网站测试变得更加困难,并且就如何解析和向用户提供HTML达成共识。



1992年, Tim Berners-Lee在超文本邮件列表中表达了他的关注。



8 12 , . (, , ! , , (, ), . , ; , , , .


Berners-Lee认识到Web开发人员可能会花费过多的精力来实施多种实现,因此开发人员可能会完全避免此问题,而只能在最受欢迎的浏览器中进行测试(他不知道类似的问题会在网络上频繁发生。) -开发)。就是说,即使没有垄断,太多的浏览器也会淹没市场并创造一个真正的赢家,在不考虑所有其他浏览器的情况下将针对该赢家创建标准。确保所有浏览器实现的一致性是创建W3C和推广Web技术中一组通用标准的原因。



Berners-Lee的担忧是有充分根据的。有时候,浏览器已经走了自己的路,迫使网页设计师修改页面以使页面到处看起来都一样。近年来,完善的标准化流程通过创建用于向Web添加新功能的清晰流程并确保决策过程中的平衡,从而在很大程度上解决了浏览器之间不一致的问题。



创建一组不同的浏览器的基本基础是开发完全不同的浏览器引擎。浏览器引擎是浏览器中的代码,它接受您编写的代码并将其呈现在页面上。从技术上讲,它解析HTML,CSS和JavaScript以处理网页的结构和呈现。...该引擎通常包括处理交互性的JavaScript引擎。大多数情况下,当讨论浏览器引擎时,他们会谈论相关的JavaScript引擎,但并非总是如此。



在浏览器制造商开始使用Web标准之前,在“浏览器大战”期间,微软的Internet Explorer浏览器占据了主导地位十年。 Internet Explorer使用了专有的Microsoft浏览器引擎Trident。 Internet Explorer是免费分发的,并且默认情况下已安装在所有Windows计算机上。由于其发行速度,Trident多年来已成为使用最广泛的浏览器引擎。



但是,一些较小的开源浏览器很快开始流行。其中最受欢迎的是Mozilla Firefox(基于Netscape),它使用了一个名为Gecko的引擎。 Opera的Presto浏览器引擎落后于它。一个小型社区爱上了Konqueror的KHTML浏览器,该浏览器在浏览器市场中所占的份额很小。



除Presto外,所有这些浏览器引擎的源代码都是开源的,这意味着任何人都可以使用它,并且可以在任何项目中使用它。这刺激了这些新浏览器之间的协作和健康的竞争,从而有利于W3C主导的Web标准流程。借助开放源代码,大量基于相同浏览器引擎构建的小型利基浏览器出现在市场上。



苹果不在这个名单上是值得注意的。在2003年,公司似乎完全忽略了Web平台。她尝试创建自己的名为Cyber​​dog的浏览器失败,但没有成功。如果没有操作系统固有的浏览器,Apple计算机就会附带Internet Explorer,它将Internet Explorer与最严重的竞争对手之一-Microsoft捆绑在一起。



但是随后有种种谣言开始流传苹果正在开发新的浏览器。来自Mozilla的几位资深人士加入了该公司,代表Apple为开源Mac版本的Firefox做出了贡献。在第一个失败的实验之后,工具和实现会更好。已经有许多成熟的开源解决方案。



最初,假设苹果会选择Mozilla Gecko作为浏览器引擎。她已经拥有合适的人员和经验,并且该引擎已在绝大多数浏览器项目中使用,包括由独立的非Apple团队开发的Mac浏览器Camino。有人认为苹果可以通过某种许可协议选择Presto。



史蒂夫·乔布斯(Steve Jobs)在期待已久的Macworld 2003大会上发表了主题演讲:苹果正在创建自己的浏览器Safari。令所有人惊讶的是,它将使用Konqueror的引擎。不是壁虎,不是Presto。 KHTML。这个新闻很大,在接下来的二十年里,它改变了网络的发展轨迹。





在KDE桌面上运行



的Konqueror浏览器Konqueror浏览器是Linux计算机KDE桌面环境中众多应用程序之一。严格来说,它不是操作系统,而是外观和行为类似于操作系统的软件包。该首字母缩写最初代表Kool Desktop Environment,但后来简称为KDE。 Konqueror是KDE内部的程序之一。 KHTML是Konqueror运行的引擎。像Linux本身一样,所有KDE都是开源的,包括其浏览器,并且开发者社区自成立以来就一直坚持开源原则。



这就是为什么Apple的公告中包含以下幻灯片很重要的原因:





在宣布选择KHTML时,Apple宣布了其对开源思想的承诺。 Safari开发团队已承诺将尽可能对KHTML项目进行更改。适应引擎时,Apple将其分为两部分:处理渲染和结构的WebCore和处理JavaScript的JavaScriptCore。这两个部分都成为开源项目,但是Safari错误跟踪器和浏览器引擎元素仍然处于关闭状态。然而,对于一家以保守机密而闻名的公司而言,这种透明性令人惊讶。



Safari的第一个公开版本在发布公告的同时于2003年1月发布。此后不久,Safari就开始作为所有Mac的默认浏览器提供。一到两年来,Safari一直占据着浏览器市场的2-3%。这还不足以称霸,但它给苹果开发团队增添了分量。



尽管对开源社区做出了承诺,但Safari开发人员最初发现很难将其更改移植回KTHML项目。一些代码特定于Mac操作系统。其他部分与现有代码库完全不兼容。这导致苹果团队与KHTML共同作者之间存在了几年的分歧。



随着时间的流逝,发现了适合所有人的妥协方案。 2005年6月,Apple合并了JavaScriptCore,Webcore和其他浏览器引擎,将它们作为一个开放源代码项目发布,并带有公共Bug跟踪器并呼吁提供帮助。通过这种方式,该公司向KHTML社区表明,它可以在保持代码独立性的同时进行协作。



该项目名为Webkit。



关键时刻。 Web作为平台发展迅速,并处于Web 2.0阶段。总体而言,Web 2.0只是一个很好的营销术语,它试图为越来越多的仅在网络上存在的复杂应用程序取一个名字。它包括Google的前两个Web应用程序-Google Maps和Gmail。 Google在一年内将YouTube添加到了列表中。



在2000年代中期,Google工程师仔细浏览了浏览器,发现它们无法满足构建复杂应用程序的需求。对于较旧且无人值守的浏览器(例如Internet Explorer)尤其如此(顺便说一句,YouTube也鼓励用户放弃IE6)。但是Google的头等大事是速度。该公司的联合创始人曾经表示希望创建“像翻阅纸质杂志一样快的网络”。那是该公司的目标,而Google感到,即使是像Firefox和Safari这样的现代浏览器也不够接近。



到2006年,该公司开始计划建立自己的浏览器。她想要市场上最快的浏览器。在尝试了各种浏览器引擎之后,Google开发人员将注意力转移到了Webkit项目上,该项目已转向开源。与具有丰富历史的引擎(如Gecko或Trident)相比,它的代码紧凑且易读,并且资源强度相对较低(由于源代码封闭,因此后者始终未被考虑)。但最重要的是,他很快。首先,它比所有其他引擎都要快。



如果Safari团队此时尚未决定为他们的浏览器引擎打开源代码,那么故事的发展方向可能会完全不同。但是开发人员做到了这一点,因此Google调查了这种可能性,并决定使用该引擎。在接下来的几年中,她开始着手于Webkit的新的甚至更快的实现。



她的第一步是摆脱JavaScriptCore并将其替换为自己的JavaScript引擎V8,该引擎以强大的活塞引擎命名。顾名思义,V8速度很快。在发布时,它的性能比JavaScriptCore高出十倍。他通过在虚拟机中工作并以略微不同的方式执行代码,从而使其模块化并独立于浏览器引擎的其余部分,从而达到了这一速度。顺便说一句,经过几年的发展,这种模块化使得创建Node编程语言成为可能:其开发人员采用了V8引擎,摆脱了浏览器,然后将其放置在服务器上。



Google要做的第二件事是在其浏览器中添加多进程体系结构。关于多重处理,有很多话要说,但是最好以浏览器选项卡为例进行说明。以前,当一个标签页崩溃时,整个浏览器都崩溃了。但是,Google能够强制每个选项卡中的进程独立运行,从而一次仅崩溃一个选项卡。浏览器发布后,这成为它的主要吸引力。事实证明,这也是一个重要的决定,因为它与Webkit的工作方式大相径庭。很快,这一决定将适得其反。



2008年9月,Google正式宣布了其浏览器项目。该公司将广告与Scott McCloud的Nerd网络漫画结合在一起,其中详细介绍了该项目的所有技术细节。该浏览器可以处理市场上最快的网站,并且由于其多处理架构,即使在其他站点被冻结时,它也可以保持页面处于活动状态。追溯到那时,浏览器仍然充满了工具栏和附加组件,以及来自大型公司的包含邮件的软件包。 Google为该项目提供的名称也与此概念相符。在浏览器领域,术语“ chrome”(chrome)表示围绕网页的所有其他内容-地址栏,工具栏和文件菜单。 Google摆脱了大部分此类垃圾,这就是为什么它将浏览器称为Google Chrome浏览器,希望对简单性和性能的关注会有所回报。









从头开始的网络漫画片段除了封闭的搜索算法外,Google还为开源项目做出了贡献,并创建了许多新项目。了解了苹果的教训后,该公司在开发Chrome方面走得更远。在宣布Google Chrome浏览器的同一天,该公司将整个引擎作为一个名为Chromium的开源项目提供。这些不仅仅是一些Webkit扩展。这不仅仅是渲染引擎。一切都变得开放:Webkit,V8 JavaScript引擎以及浏览器本身的所有代码。任何开发人员都可以毫不费力地补充Chromium并发布自己的浏览器。发行后,它发生在许多浏览器上



2008年对于网络来说是重要的一年。在Chrome发布的同一个月,Google展示了其Android移动操作平台的原型,该原型是由多个开源项目组装而成的。它还包括谷歌浏览器的移动版本。这是在iPhone正式发布之后的一年多,iPhone带有Safari的修改版。到史蒂夫·乔布斯(Steve Jobs)开始不可挽回地杀死Flash并将本地Web平台作为头等大事时,这些设备已经无处不在。



也就是说,现在Safari或Chrome可以在所有移动智能设备中使用。Safari本身,完全归功于iPhone的购买,在短短几年内将其市场份额提高了一倍。Chrome浏览器的普及速度甚至更快。通过使用Chromium,您可以访问越来越多的独立浏览器和浏览器项目。此外,Chromium已成为Node编程语言和Electron桌面应用程序框架的骨干。



由于Webkit,所有这些项目都得以实现。多年以来,他已经从占领浏览器市场的一小部分发展为主导。



这种休息状态是短暂的。2013年4月,Google意外宣布将Webkit项目整合到一个名为Blink的新引擎中。Google Chrome和Chromium项目将转移到这个新引擎。



进行此过渡的原因有很多,但最重要的一个原因使我们回到了多处理问题。几年来,Google一直在扩展Webkit,以在其浏览器中添加多处理功能,这已成为Chromium浏览器性能的关键功能和基础。在2013年,该Webkit项目应该发布该引擎的新版本,该版本还改进了多处理功能。问题在于它的实现将完全不同,并且与Chrome中的实现不兼容。它已经使用了不同的JavaScript引擎,而这项新更改会使Chromium与原始项目相距太远。 Blink的核心仍然必须而且仍然是Webkit。但是他将走一条不同的道路,为自己创建一个新项目。



在这一点上,网络变得比任何人想象的都要复杂。 Berners-Lee首先提出的问题-太多的独立开发人员正在构建自己的浏览器引擎-不再是问题。现在需要大型团队来构建和维护浏览器引擎。随着Web平台的扩展及其标准的增强,将网站呈现为页面的复杂性呈指数增长。浏览器必须执行无数的网站,它们以无数的方式进行编码,以或多或少地与所有其他浏览器匹配。



此后,浏览器引擎开始消失。



在Blink发布前两个月,Opera宣布将放弃自己的Presto引擎,并将其浏览器移至Chromium。当Google宣布分叉时,Opera加入了。 2013年5月,她发布了第一个基于Blink的浏览器。



同时,微软多年来一直坚持使用自己的封闭源引擎。 Trident已转换为为Microsoft Edge浏览器构建的名为EdgeHTML的引擎,该引擎于2015年首次发布。但是,在已经拥挤的浏览器市场中,事实证明,投资开发独立引擎非常困难。在2019年,该公司宣布也将转向Blink。从那时起,该浏览器也已发布。



90%以上的用户使用KHTML的后代,即带有Blink / Webkit系列引擎的浏览器。从十五年来几乎被遗忘到90%的市场份额,这都是一个了不起的成就。它产生了后果。



Blink和Webkit是两个不同的引擎,它们的源代码有很多差异。但是他们使用相同的方法来呈现网页,并且项目中的大多数代码保持不变。这意味着实际上,在当前阶段还剩下两组浏览器引擎-Blink / Webkit系列和Firefox浏览器Gecko。即使将Blink和Webkit分开,仍然只剩下三个。



这使我们回到了浏览器多样性的问题。浏览器技术的创新并没有消失,幸运的是,每个严肃的浏览器都致力于Web标准化过程。但是,如果Blink和Webkit社区决定他们要向某个方向移动Web,则他们将拥有执行此操作所需的全部功能。尽管Gecko仍然坚持不懈,但即使在今天也是如此。微软决定移至Blink时,



杰弗里·泽德曼(Jeffrey Zeldman)对此进行了总结



当一家公司决定哪些想法值得支持,哪些想法不值得,哪些访问问题很重要而哪些不重要时,它将扼杀创新,破坏竞争并开辟机会,使人们无法使用数字信息。


从历史的角度来看,Webkit的发展轨迹是一个奇迹。感谢社区的开放和支持。但是,保持浏览器的多样性和创新同样重要。



这篇文章涵盖了网络历史上的五个里程碑。



  • 2013年4月3日。将Blink创建为Webkit项目的分支。Blink渲染引擎用于基于Chromium的浏览器,包括Google Chrome。Webkit奠定了其代码库的基础,但它处理多处理任务,并包含V8 JavaScript引擎。
  • 2 2008 . Google Chrome, . , Google . , .
  • 7 2005 . Webkit — Apple , : WebCore JavaScript- JavaScriptCore. Apple, Google Webkit .
  • 7 2003 . Safari — Apple , . Mac Internet Explorer Microsoft. KHTML, Webkit.
  • 23 2000 . Konqueror — KDE Konqueror 2. KDE , Konqueror . , , Apple Safari Google Chrome.









广告



我们公司提供带有免费DDoS保护的安全服务器能够在具有2 GB或更高RAM的计划中使用许可的Windows Server,能够自动创建或一键创建服务器备份。



我们使用Intel的极快服务器驱动器,并且不节省硬件-仅使用品牌设备以及俄罗斯和欧盟的一些最佳数据中心。赶快检查一下。






All Articles