1. 首页 / 百科

浏览器内核代码有多少行 常见的浏览器及其内核

浏览器内核代码有多少行 常见的浏览器及其内核

网友提问:

据报道称“浏览器内核有上千万行代码”,浏览器内核真的很复杂吗?

优质回答:

浏览器内核的复杂性就在于它几乎囊括了计算机所有的专业知识。

编译原理:V8引擎中的各种黑优化哪个是简单的?没有一定的编译原理基础你还真搞不定!

计算机网络:Chromium是自己搞了一套网络栈的,实现了很多协议,比如目前移动端使用较多的QUIC。

操作系统:Chromium的多进程,必须得每个系统写一套,同时还要消除不同系统之间的差异,如果操作系统你学的一塌糊涂,我想多进程的程序你是写不好的!

图形学:网页排版真的很复杂啊,有木有?你要支持世界各国的奇奇怪怪的文字。

我们以霸主chromium为例,目前的Chrome、360极速浏览器、Edge最新版,以及前段时间被爆丑闻的红芯浏览器都是以其为内核来开发。它到底有多复杂呢?请看下图,我简单列举了一些重要模块的功能:

实际上,拆分开每一项都是一套很复杂的东西。我们以其中的net网络库为例。

net网络库

如果你认为net只是一个简单的网络库实现,那么就大错特错了,还包括谷歌自己牵头实现的一些协议(比如QUIC等)。它里面涉及的知识点,包含了主机解析,cookies,网络改变探测,SSL,资源缓存,ftp,HTTP, OCSP实现,代理 (SOCKS和HTTP) 配置,解析,QUIC(Quick UDP Internet Connection,是谷歌制定的一种基于UDP的低时延的互联网传输层协议),socket池,SPDY,WebSockets……每一项分开来写成一本厚厚的书都不成问题。具体我们可以参考下图,github上关于net模块的代码结构。

浏览器内核到底有多复杂呢?也许只有你真正参与其中才会发现。这也是为什么强大如微软的企业也放弃了浏览器内核的维护,转投chromium怀抱,因为需要投入的人力、物力、财力简直太恐怖了,而且还不见好。

本文为作者“一个程序员的奋斗史”问答原创文章,未经允许转载、抄袭必究!

其他网友回答

请相信,至少百万行. 写一个内核模型并不容易, 单说是要兼容各种操作系统的不同版本,各种内存容量,屏幕大小, 网络状况, 还要优化速度, 尽量少崩溃, 也就是容错性, 就不是件容易的事.

主程序要做的事: tcp/ip的解析,http, https , ftp 等各种协议的解析,应答, java script/css/html 的分析及实现, 插件, 哪一个部分单独实现都得几万行代码了.

其他网友回答

这样说比较合适:

一个现代的,全功能的、高性能的浏览器内核必然是很复杂。

关键在需求

和普通软件一样,浏览器内核是否复杂,取决于其需求。

如果需求很多,内核就很复杂;需求不多,就可以比较简单。

现存浏览器内核中,有庞大、复杂的,也有短小精悍的。

简单的浏览器内核

世界上第一个浏览器是运行在NextStep系统上的WorldWideWeb(www这一简写就是从这里来的),这一浏览器恐怕也是最小的浏览器了。

其它较小的浏览器还有:

Links:运行于文本模式

NetSurf:运行于图形模式,不支持Javascript

我做了一个统计,这三个浏览器源代码情况大致如下:

(用scc完成代码统计,并去掉License,HTML及纯文本)

以上可以说明:浏览器代码可以很少,甚至一万行以内即可实现一个浏览器内核。

但大家都知道,现代的全功能浏览器都是庞大的。这正是因为需求多。

全功能现代浏览器为何庞大?

主要有两方面原因。

一方面,浏览器需要兼容各种各样的网页标准。比如:

HTTP标准,从1.0,1.1到2.0,都需要支持;

SSL,TLS各种版本的支持,各种根证书的支持都需内置在浏览器中;

HTML,HTML3.2,HTML 4.0, DHTML一个都不能少;用这些标准编写的网页还都存在呢;

HTML5肯定要支持,其中的音频标签需要支持哪些音频解码器?常见的不能少吧?视频标签又需要支持哪些视频解码器呢?另外,WebSocket要不要支持?

CSS1到3,都要支持,往往还需要支持标准以外的各种方言,比如webkit方言。毕竟有许多网页都包含这些方言所编写的代码;

我们把Javascript支持单独分出来说,因为这部分复杂性比较高。

首先,从古老的Javascript到较新的各种ECMA Script都需要支持,这就不简单。Javascript支持了,DOM数据也要支持吧?

一旦支持全功能编程语言,就涉及更多问题,因为这根本就是要实现一个虚拟机,一个平台。这可以从一些例子看出:如有人在浏览器中用Javascript启动一个Linux系统。

像谷歌的Chrome浏览器,花费了很大工夫在优化Javascript执行性能上,这部分的复杂性就很高了。

小结

现代全功能浏览器其实就是一个虚拟机,一个平台,支持着繁多的标准和语言。这么高的需求下,这一平台的庞大、复杂也是必然的。尤其在渴求性能的情况下,复杂度会更高。

当然,如果缩减需求,比如减少所需支持的标准和语言,降低性能要求,减少功能(比如视音频播放),浏览器也可以做得不那么复杂。

其他网友回答

复杂是因为HTML这个玩意从诞生起就没有很严格的标准,更没有严格的执行厂家。各家一套标准,html又是个粗糙不严谨的标记语言,发展初期混乱不堪,各家浏览器为了满足向下兼容又只能把自己弄的异常复杂。chrome源码16GB各种核心代码、测试代码加起来大概2000多万行,但实际编译后也就几十M大小。可见其中的冗余代码有多少。

其他网友回答

不是很复杂,是超级复杂。

现在的微软牛逼吧,但是微软浏览器使用的也是Chromium内核,自己现在也没开发属于自己的浏览器内核。

各大浏览器内核如下:

1、IE浏览器内核:Trident内核,也是俗称的IE内核;

2、Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核;

3、Firefox浏览器内核:Gecko内核,俗称Firefox内核;

4、Safari浏览器内核:Webkit内核;

5、Opera浏览器内核:最初是自己的Presto内核,后来是Webkit,现在是Blink内核;

6、360浏览器、猎豹浏览器内核:IE+Chrome双内核;

7、搜狗、遨游、QQ浏览器内核:Trident(兼容模式)+Webkit(高速模式);

8、百度浏览器、世界之窗内核:IE内核;

9、2345浏览器内核:以前是IE内核,现在也是IE+Chrome双内核;

一个浏览器的内核牵扯的东西太多,不是简简单单一两句话能够说明白的。

浏览器内核的开发,可以说丝毫不比十九世纪中期登陆月球计划简单,甚至犹有过之而无不及。

咱们国内的浏览器,比如百度浏览器,QQ浏览器,UC浏览器,搜狗浏览器等等浏览器,基本上都是使用的原有的内核,利用现成的内核惊醒二次开发,修改,迅速成型,根本没有一家是自己开发的浏览器内核。

相关推荐

  • 清空所有的搜索历史 彻底删除手机浏览器历史记录步骤

    清空所有的搜索历史 彻底删除手机浏览器历史记录步骤

    清空所有的搜索历史 彻底删除手机浏览器历史记录步骤,搜索,步骤,手机浏览器,历史记录,点击,清空历史,书签,右下角,彻底删除手机浏览器历史记录步骤: 1、打开浏览器,点击右下角我的。 2、点击书签历史。 3、点击历史。 4、点击清空历史。 5、点击删除,就可以彻底删除手机浏览器中的搜索记录了...

  • 猜你想搜怎么删除 浏览器猜你想搜关闭方法

    猜你想搜怎么删除 浏览器猜你想搜关闭方法

    猜你想搜怎么删除 浏览器猜你想搜关闭方法,浏览器,方法,怎么删除,点击,你想,华为,手机型号,右下角,浏览器猜你想搜功能关闭方法手机型号华为p40,操作系统鸿蒙3.0,以自带华为浏览器为例。1、打开浏览器。2、点击右下角我的。3、进入我的页面,点击设置进入。4、点击安全与隐私。5、关闭个性化搜索建议,就删除了猜你想搜。...

  • 小米浏览器视频缓存文件在哪 小米浏览器缓存视频保存

    小米浏览器视频缓存文件在哪 小米浏览器缓存视频保存

    小米浏览器视频缓存文件在哪 小米浏览器缓存视频保存路径,分享,缓存,小米浏览器,视频,文件,路径,点击,选项,小米浏览器的很多功能大家还不是非常的熟悉和了解,那么关于自己的更多使用技巧,就比如大家想要知道自己缓存的本地视频怎么分享出去,在哪可以找到缓存的文件内容,感兴趣的朋友不要错过了,按照小编分享的步骤就可以。 小米浏览器缓存视频分享路径 1、找到手机当中的文件管理 2、点击download文件夹 3、长按视频会出现发送分享的选项 4、根据对方的接收方式点击分享...

  • 网页怎么截图 浏览器截网页长图方法

    网页怎么截图 浏览器截网页长图方法

    网页怎么截图 浏览器截网页长图方法,网页,方法,器截,浏览,长图,网页怎么截图,分享,浏览器,阅读文章、小说的时候,想要把一些精彩的片段分享给朋友看,却发现网页不允许截长图,一张一张截图拼凑在一起既浪费时间又降低了阅读体验。今天哒哒给大家分享网页截长图的小技巧,有需要的宝子们看来学吧~ 电脑自带浏览器 浏览器都自带截屏功能,以360浏览器为例,点击右上角的“三条横杠”,然后选择“保存网页为图片”。 然后一个长截图就做好啦,超级方便。 以上就是今天的网页截长图分享啦...

  • ie浏览器打开怎么是360导航

    ie浏览器打开怎么是360导航

    ie浏览器打开怎么是360导航,导航,选择,浏览器打开,点击,主页,浏览器,属性,快捷方式,IE浏览器打开是360导航,有可能是IE快捷方式被360导航篡改了,首先我们找到IE浏览器,然后右键点击【属性】,在常规栏目中选择下方的【只读】,之后在属性里选择【快捷方式】,找到【目标】项,将其里面的网址改为任意主页,点击【应用】;第二种方法,打开360安全卫士,在软件主页面中点击【安全防护中心】,在防护功能页面中,选择【7层浏览器防护】,点击【上网首页防护】按钮,即可打...

  • 为什么政府网站只支持ie 上政府网站用什么浏览器

    为什么政府网站只支持ie 上政府网站用什么浏览器

    为什么政府网站只支持ie 上政府网站用什么浏览器,ie,浏览器,看齐,网友提问:为什么大多数政府的网站都需要用ie浏览器登录?优质回答:一是政府部门的电脑配置不高,只能用ie;二是政府部门对公务员电脑水平要求不高,会用ie就行三是开发人员觉得没必要替浏览器打广告其他网友回答听过最牛的答复就是:你们这样公平都得向我们看齐才行,你们都不像我们看齐,系统怎么用!猛一听很有道理,反思一下很气愤:这就是所谓...

  • uc浏览器和阿里巴巴 uc浏览器和夸克浏览器是一家吗

    uc浏览器和阿里巴巴 uc浏览器和夸克浏览器是一家吗

    uc浏览器和阿里巴巴(uc浏览器和夸克浏览器是一家吗),夸克,浏览器,阿里巴巴,网友提问:阿里巴巴旗下有UC浏览器了,为何还要发展夸克浏览器?优质回答:夸克的存在是因为UC已经不再是一个真正的浏览器了,而阿里UC团队依然需要一个真正的相对纯净的浏览器,而不是一个“淘宝新闻浏览器”。夸克一开始确实是这样做的,遗憾的是随着夸克浏览器的在逐渐做大,你会发现夸克浏览器也越来越重,开始向信息流、内容侧倾斜,...

  • 火狐浏览器收藏夹位置 edge浏览器收藏夹位置

    火狐浏览器收藏夹位置 edge浏览器收藏夹位置

    火狐浏览器收藏夹位置(edge浏览器收藏夹位置),位置,收藏夹,浏览器,收藏夹位置,火狐浏览器收藏夹位置?如今的信息太过碎片化,我们喜欢的文章往往分散在微信(公众号)、今日头条、知乎或其他小众媒体平台。很多较长的文章一次很难读完,再次阅读时需要打开对应的APP,找到文章才能继续阅读,好不麻烦。那么,有没有什么方法可以整合管理多个平台的文章?“慢读”(下载地址请自行搜索)是一款支持Android和i...

  • 360无法卸载怎么办 360无法卸载谷歌浏览器

    360无法卸载怎么办 360无法卸载谷歌浏览器

    360无法卸载怎么办(360无法卸载谷歌浏览器),浏览器,360无法卸载,360无法卸载怎么办?卫士卸载入口及卸载方法:一、 在控制面板卸载在卸载或更改程序内找到360安全卫士图标,右键选择“卸载/更改”。3、在控制面板卸载调起的窗口上选择“狠心卸载”,按照引导继续卸载即可。卸载后重启电脑,会自动删除残留文件及文件夹。二、 在软件管家卸载1、 在安全卫士主界面点击打开软件管家。在软件管家 上端ta...

  • 最好用浏览器 世界上最好的浏览器是哪一个

    最好用浏览器 世界上最好的浏览器是哪一个

    最好用浏览器(世界上最好的浏览器是哪一个),哪个,最好,浏览器,哪个浏览器最好用?哪个浏览器最好用推荐一、IE浏览器是最常见的浏览器,但是很多人不喜欢用,因为设置不美观,相对于其他浏览器,显得有点古老,而且它的安全性也不高,用这个浏览器不能隔离广告,有很多漏洞,打开一个界面各种广告弹出来。哪个浏览器最好用推荐二、猎豹浏览器,它支持百种视频格式、自动跳过片头片,启动速度快、下载速度快、看视频预读快,...

  • 搜狗浏览器兼容模式怎么设置:搜狗浏览器兼容模式怎么设

    搜狗浏览器兼容模式怎么设置:搜狗浏览器兼容模式怎么设

    搜狗浏览器兼容模式怎么设置:搜狗浏览器兼容模式怎么设置?,搜狗,模式,浏览器,网友提问:搜狗浏览器兼容模式怎么设置?优质回答:一、首先,在“搜狗浏览器”上方网址旁边点击闪电标志图标。二、然后网址旁边会出现一个“ie”标志,切换兼容模式完成三、另外,还可以点击搜狗浏览器的“工具”,点击打开。四、然后在下拉菜单中选择“切换为兼容模式”点击此项。搜狗浏览器兼容模式设置成功以上就是小编分享的关于搜狗浏览器...

  • 包含全新开始菜单和新版 Edge 浏览器 Windows 10 20H2

    包含全新开始菜单和新版 Edge 浏览器 Windows 10 20H2

    包含全新开始菜单和新版 Edge 浏览器 Windows 10 20H2 ISO 原版镜像发布!,原版,开始菜单,镜像,大眼仔生活圈了解到微软今天在 Beta 通道中向 Windows Insiders 发布了新的 Windows 10 20H2 内部版本 19042.487(KB4571744)。随着更新,Microsoft 还发布了 Windows Insiders 的 Windows 10...

  • ie浏览器是什么浏览器 ie浏览器是什么图标

    ie浏览器是什么浏览器 ie浏览器是什么图标

    ie浏览器是什么浏览器(ie浏览器是什么图标),图标,浏览器,ie浏览器是什么,ie浏览器是什么浏览器?来源:中国新闻网中新网客户端北京5月21日电(记者 张旭)“我们宣布,Internet Explorer 11桌面应用程序将于2022年6月15日退役。”Microsoft Edge项目经理Sean Lyndersay的一番话,宣告了IE浏览器生命进入了倒计时。 服役25年的IE浏览器,终于要走...

  • 安全证书错误:打开浏览器显示安全证书有问题怎么解决?

    安全证书错误:打开浏览器显示安全证书有问题怎么解决?

    安全证书错误:打开浏览器显示安全证书有问题怎么解决?,打开浏览器,证书,错误,网友提问:打开浏览器显示安全证书有问题怎么解决?优质回答:出现网站安全证书有问题,主要是两种原因造成的:一种是浏览器安全设置过高导致的;还有一种是系统时间不对造成的。解决方法一:1、打开浏览器,点击【工具】选项,找到【Internet选项】,点击并打开。2、在【Internet选项】中点击【安全】选项,在下方的【该区域的...

  • 上海48小时内核酸报告是从哪天算 北京48小时内核酸报

    上海48小时内核酸报告是从哪天算 北京48小时内核酸报

    上海48小时内核酸报告是从哪天算(北京48小时内核酸报告是从哪天算),小时,是从,核酸,48小时内核酸报告是从哪天算,上海48小时内核酸报告是从哪天算?据各地疫情防控政策最新要求,除旅客健康码绿码外,全国部分机场还须旅客提供48小时内核酸检测阴性证明。核酸检测阴性证明时效计算公式:航班计划起飞时间减去核酸报告结果时间(健康宝显示核酸检测时间),小于48小时。近期防疫政策变动频繁,建议旅客出行前随时...

  • 哪个浏览器速度快一些 哪个浏览器速度快不卡

    哪个浏览器速度快一些 哪个浏览器速度快不卡

    哪个浏览器速度快一些(哪个浏览器速度快不卡),浏览器,速度快,哪个浏览器速度快,哪个浏览器速度快一些?说到手机下载,相信大家能说出很多来,小雷也给大家介绍过几款。但说到最让人省心的工具,还得是今天分享的。这是一款让人省心的下载器,卡片式设计朴实无华。内置网页视频嗅探功能,并提供了 aria2 和某雷两个下载引擎。(下载方式放在文末了,欢迎大家自取)使用方法:1、打开界面后,只需要复制文件链接,点击...

  • 为什么程序员都喜欢用谷歌浏览器 为什么很多人喜欢用

    为什么程序员都喜欢用谷歌浏览器 为什么很多人喜欢用

    为什么程序员都喜欢用谷歌浏览器 为什么很多人喜欢用谷歌浏览器,喜欢,浏览器,用谷歌,网友提问:为什么程序员都喜欢用Chrome浏览器?优质回答:Chrome 浏览器的插件比较丰富,对于程序员来说主要是做开发另外还是浏览一些信息,Chrome的插件可以让他灵活的使用工具更好的运用在工作中,还有人喜欢没事F12以下看看别人的源码,适当的修改下,哈哈,毕竟自己就是搞这个看看有啥漏洞不。其他网友回答Chr...

  • 谷歌浏览器怎么样才能用 谷歌浏览器怎么样下载视频

    谷歌浏览器怎么样才能用 谷歌浏览器怎么样下载视频

    谷歌浏览器怎么样才能用(谷歌浏览器怎么样下载视频),浏览器,能用,视频,谷歌浏览器怎么样,谷歌浏览器怎么样才能用?兰州市中考网上报名系统首页,建议使用谷歌浏览器,谷歌不是都退出中国市场了吗?我们的百度、腾讯、360、UC、搜狗……都不靠谱吗?好疑惑。以上就是小编分享的关于谷歌浏览器怎么样下载视频.webp/>与谷歌浏览器怎么样相关的文章...

  • 火狐浏览器好用吗 火狐浏览器的优缺点

    火狐浏览器好用吗 火狐浏览器的优缺点

    火狐浏览器好用吗 火狐浏览器的优缺点,火狐浏览器,浏览器,公司,火狐,好用,市场,版本,媒体,火狐浏览器的优点: 1,风格简洁。安装好火狐,打开后首页特别的骨感,看着感觉不错,有人说会有些不适应,但是有了几天,我就觉得很顺手,首页里几大网站的导航都有,方便操作。当然,火狐也提供了大量的皮肤,可以根据自己的需要选择。 2,速度快。火狐浏览器相比IE浏览器更小巧一些,因此在占用系统资源方面相对较少。 3,安全性高。由于很多木马病毒主要是针对IE浏览器构成威胁,而对火狐...

  • 怎样把网页加入显示栏 将网页添加到浏览器菜单栏的方

    怎样把网页加入显示栏 将网页添加到浏览器菜单栏的方

    怎样把网页加入显示栏 将网页添加到浏览器菜单栏的方法,网页,添加,浏览器,方法,菜单栏,显示,导航栏,光标,怎样将常用的网页添加到浏览器的导航栏?今天就教大家如何操作使用方法步骤。 材料/工具 电脑 将网页添加到浏览器菜单栏的方法 1、在搜索栏输入关键字,搜索所需网页。 2、找到相应的链接点击进入。 3、将鼠标的光标放到地址栏的星星图标上会弹出提示语“添加收藏”。 4、弹出“添加收藏”对话框,可以对收藏的网页的名称和位置进行设置。 5、收藏的网页就出现在收藏导航栏...