标题图片:作者:armin
文字总数:4693字,9张图片
预计阅读时间:12 分钟
号称中国“自主研发”的红芯浏览器在宣布获得C轮2.5亿投资后,引起了大家的关注。 微博用户@Touko在对自己的安装包进行加压后发现,所谓的自主研发只是浏览器的“换皮”。
红芯浏览器当晚关闭了官网下载通道。 原因是技术部门进行了自检。 随后又发布公告承认内核内部使用,并在开源内核的基础上进行二次开发。
最后,“红芯公司”也就此事道歉,称其夸大自主研发,并承认确实是基于开源进行二次开发,至此尘埃落定。
但话说回来,如何才能被认定为技术领域的浏览器内核“自主研发”呢? 让我们借此机会回顾一下浏览器内核的发展历史。
什么是浏览器内核
首先,应该明确浏览器的构成。
简单来说,浏览器可以分为两部分:Shell和。 Shell是指浏览器的外壳,如菜单、工具栏等,为浏览器提供方便的用户可操作界面、参数配置等。 贝壳其实很丰富。 国内大部分浏览器实际上都是利用现有的内核来定制不同的shell,有些有能力的浏览器会在内核之上进行一些定制化的修改。
对于浏览器来说,内核是它的核心。 浏览器内核也可以分为两部分:
渲染引擎主要负责将网页中的元素(HTML、CSS、图像)渲染成其相应的外观并输出到显示器或打印机。 不同的浏览器有不同的渲染效果火狐浏览器的内核,这也是前端工程师需要适配不同浏览器的原因。
JS引擎是对语言进行解析并执行,实现网页的动态效果和逻辑。
起初渲染引擎和JS引擎并没有明确区分,但后来JS引擎越来越独立。 后来说到浏览器核心,就简单的指渲染引擎了。
除了一些小众的非商业免费内核外,比较常见的浏览器内核可以分为四种类型: 、Gecko、Blink、. 接下来我们分别介绍一下。
(IE核心)
IE的前身是微软的(历史上第一个浏览器),是在代码的基础上进行修改的,对外输出的产品是微软的IE,所以也被称为“IE内核”。
一个开放的浏览器内核,一开始它的内核设计已经相当成熟,并且作为系统内置浏览器使用,使得它在很长一段时间内是唯一的。 导致有点臃肿,这直接导致两个后果。
IE的扩张也导致许多用户转向其他浏览器,而Opera正是在这一时期兴起的。 当选择不再单一时,很多开发者也开始关注Web标准和非IE浏览器的渲染效果。
说起IE浏览器,我们先来说一些冷知识。 IE 在 Mac OS 下有“for Mac”版本。 它的内核不使用内核,而是使用内核。 相比之下,内核对web标准的支持更好。 很高兴知道这一点。
IE浏览器从最初的扩张到如今的开放态度和对标准的拥抱,一路走来经历了许多重大变化。 比如使用IE8的JS引擎,IE9开始使用。 两个版本相差很大,无论是速度还是水准都非常出色火狐浏览器的内核,IE9算是重大版本改动,底下已经形成断层,这也是为什么现在非常流行的前端框架VUE才敢告诉IE它兼容IE9+。
在中国的使用仍然占有很大的市场。 大多数所谓的双核浏览器,其中之一就是指所谓的“兼容模式”。
壁虎(内核)
Gecko最初是浏览器()使用的内核,后来(浏览器)也采用了该内核。 而在使用Gecko内核的浏览器中,它有时被称为Gecko内核,因为它拥有最高的市场份额。
Gecko引擎和IE也有一些渊源。 正是因为IE的扩展,导致了微软内部的一些开发者对其的不满。 他们选择离开微软,与当时已经停止更新的团队的一些成员一起创建。 在当时的内核基础上重写内核,就产生了后来的Gecko。 而且Gecko是完全开源的,因此可以开发的程度很高,导致大量的程序员在上面编写代码、添加功能。 当时出现了大量以Gecko为核心的浏览器,但只被大家记住了。 向上。
(核心)
它的前身是来自KDE团队的KHTML,包含的(渲染引擎)和引擎来自KDE的KHTML和KJS。
在比较了 Gecko 和 KHTML 后,Apple 选择了它,因为它具有更清晰的源代码结构和极快的渲染速度。 苹果公司将KHTML发扬光大,推出了基于KHTML的改进引擎,并用在自己的浏览器上。
虽然它是鼻祖,但是很多时候我们一提到它,就会想到它。 事实上,内核早年确实被使用过,并且已经深入人心。 我们稍后会详细介绍。
/闪烁(内核)
该浏览器于 2008 年发布,使用的内核名为 .
代码在此基础上进行了重构,大大提高了编译速度,因此渲染引擎渲染出来的页面效果也有些不同。 也正是因为这个渊源,有的地方放在一起讨论,有的地方则加以区分,其实也是有道理的。
后来(丹麦)还开发了用于JS解析和执行的V8引擎,这就是后来Node.js的运行环境。 替换原来的V8引擎带来更快的计算速度。
虽然是分叉,但其实是两个项目,而且因为在很多领域与苹果竞争,所以两方并不想在浏览器方向完全共享技术。 双方独立开发,但最终由于苹果的沙盒设计与沙盒设计之间存在冲突,强制集成会增加复杂度,所以干脆决定从中衍生出自己的Blink引擎。
归根结底,都是基于被剪下来的支行代码。 经过一段时间的独立开发,他们终于发现差异太大,导致代码集成的成本太高,所以干脆独立开发。
Blink引擎后期与Opera联合开发。 它在代码的基础上开发了更快、更简单的渲染引擎,并逐渐脱离了互联网的影响。 据说Blink为此删除了880w行代码,最终开发出了独立的浏览器内核。
前面提到,在国产双核浏览器中,其中一个核心使用IE,被定义为“兼容模式”,而另一个核心则基本两者都使用,被称为“极速模式”。
我们来谈谈移动
移动终端的浏览器内核主要是指系统内置的浏览器内核。
上面提到的四个核心在移动端都有对应的产品。 平台方面,iOS平台4.4之前主要是浏览器内核,4.4之后切换到/Blink。
腾讯推出的X5内核实际上是在该内核的基础上进行二次开发,而且是假的“双核”模式。 当内核加载失败时
,将使用原生的 Blink 内核。 X5内核用于微信、QQ等腾讯的产品中,一定程度上解决了自身与iOS两个版本的渲染差异,以及内核版本差异带来的版本碎片化带来的渲染差异。内核开发图
Gecko和Gecko都比较简单,就是从一个版本发展而来,增加功能。
相对而言,其中纠缠的关系更多。
这个图中,实际上并没有体现出内核的升级和改变,以及一些细节的替换。 事实上,每一次迭代都伴随着大量的代码投入、功能变更和优化。 这张图只是为了让大家了解一下事情的发展。
上图中,渲染引擎和JS引擎是分开的,其实是为了说明开发流程。 我在文章开头也说过,现在说到浏览器内核,一般都是指渲染引擎内核。 所以Apple开发的其实是KED团队开发的(KHTML、KJS)的一个分支(,)。 其实我觉得它还有一些不足,所以我自己搭建了一个V8 JS引擎。 这就是为什么我敢说它比一些JS效率测试中表现更好。 基本上我也看到了不足,站在巨人的肩膀上做更好的优化。
浏览器状态
以国内浏览器的现状为例,大多数公司生产的浏览器无非是这些浏览器核心的组合。 所谓的双核或多核浏览器通常是协调的或Blink的,在其中进行二次开发。 ,并且可以在多个核心之间切换,以适应不同的场景。
360浏览器被认为是中国浏览器市场上比较早的产品。 据360的刊物《为什么中国没有自主开发的浏览器内核?》 ”文中提到,研发时至少投入了30亿美元的研发费用和数百亿的推广费用。在中国,没有同等实力的公司投入此类研发和推广资金用于创建独立开发的浏览器内核。
另外,Today和Gecko()本身就是一个开源项目,产品是社区共同出品的。 从许可协议的角度来看,他们也鼓励基于现有技术的技术创新,而不是重复发明轮子。 因此,遵守开源标准来制作浏览器并不可耻。 比大量开源项目的积累,才有现在的体量和市场。 这就是开源的力量。 与开源项目被美国人掌控相比,更令人担忧的是标准本身缺乏话语权。 毕竟,浏览器中的每一行代码都必须受到 W3C、组织和 RFC 协议的监管。 内核引擎中的每一行代码都遵循相应的行业标准。
看完浏览器内核的发展史,你应该知道为什么没有人批评在基础上开发的Blink,而国产红核内核所谓的“自主研发”到底是个笑话。
本文由程翔墨影整理,参考:
《主流浏览器简介》:
《主流浏览器内核简介》:
百度百科-X5内核:%E5%86%85%E6%A0%B8/
维基百科。
》》推荐我的知识星球,一年50道优质题,在线学习上桌。
如果您在公众号后台回复“成长”,您将获得我准备的学习资料,也可以回复“加入群组”,共同学习进步; 您也可以回复“问题”向我提问。
版权保护: 本文由 浏览器之家-浏览器下载,浏览器插件,浏览器教程 原创,转载请保留链接: /Firefox/8334.html