当前位置: 首页 > 科技观察

浏览器内核开发难吗?听说光是代码就有几千万行?

时间:2023-03-20 00:37:31 科技观察

浏览器开发难吗?非常困难。留心的话会发现,360浏览器使用的内核并不是自己开发的,因为它使用的是谷歌浏览器和IE浏览器的内核,两者是相互兼容的。其他的搜狗浏览器、傲腾浏览器、雷暴浏览器等只要不是用谷歌内核就是火狐内核,我们为什么不自己开发一个浏览器呢?因为开发一个成熟的浏览器内核不亚于开发一个操作系统。开发浏览器内核和开发操作系统属于同一个维度。首先,从技术角度来说,很多互联网标准都是国外公司首先制定的。如果你一个人做一套东西,没有人愿意去适配你的产品,你做出来的东西也没什么用。所以,你在开发内核的时候,需要遵循别人定制的标准。你需要熟悉他们的技术,这涉及到设计很多复杂的内容。因为你需要遵循别人的标准,所以有很多独立的约束,就像移动通信的2G、3G、4G一样,你无法避免。其次,现在一个浏览器的代码接近2400万行,按项目规模计算接近操作系统的一半。GoogleChrome背后有成千上万的程序员和工程师支持这个东西。过去十年,光是人工成本就花费了数十亿,更不用说营销成本了,可想而知,整合百亿资金打造一个浏览器内核,国内没有人没事干,这个内核怎么盈利,还是个未知数,因为已经有比较成熟的产品了,你不需要单独构建一个需要花费金钱和精力的东西。因此,不重新发明轮子,而是用别人的东西来实现自己的产品,是很多厂商的首选方案。不是每个人都能像华为那样,重新制定市场规则。另外,有空的话,看下本《操作系统设计与实现》的书,再看看浏览器的具体实现过程,比如进程调度、IO系统、存储系统、文件系统、网络系统,这些你都可以用在操作系统开发中。浏览器可能已经使用了我们所学的所有技术。考虑到Linux内核代码2万多行,谷歌浏览器也超过2000万行,可以说浏览器内核的开发和操作系统的开发基本属于一维。强调浏览器内核的复杂性,html协议本身就是一个松散的协议,而且非常庞大。光是处理这个就相当麻烦了,而且这只是内核处理的一部分。另外还要考虑超多属性的使用,实现各种属性的渲染,还涉及到算法优化。另外,图形方面的知识也要了解。当然,你至少要熟练开发浏览器的C++语法,否则就没有必要了。另外光是JS引擎就需要程序员吃好几本书,更何况浏览器内核涉及编译原理、计算机图形学、计算机网络、计算机操作系统、数据结构,还有一大堆标准和兼容性问题。想想就害怕。最后,您已完成所有安全性。如果你学过计算机安全,你可能知道微软喜欢在他们没事的时候打补丁。其中,浏览器安全补丁占了近一半,所以对于浏览器的安全领域来说也是一项极其复杂的工作。当然,你做的浏览器除了安全之外,还需要一个词,性能,对于性能不够好的人来说,还是死路一条。总之,你只需要知道,“浏览器内核”在工程复杂度上要比“操作系统内核”高。