浏览器|浏览器的复杂程度,可以和一个操作系统媲美

浏览器|浏览器的复杂程度,可以和一个操作系统媲美

文章图片

浏览器|浏览器的复杂程度,可以和一个操作系统媲美

文章图片

浏览器|浏览器的复杂程度,可以和一个操作系统媲美

文章图片


浏览器的复杂程度可以和一个操作系统媲美 。 随着云计算的发展 , 浏览器虽然一直操着前端的业务 , 但是也不乏成为一种操作系统的可能 , 所以浏览器的地位 , 就如同操作系统一样 , 我觉得并不无道理 。 现在都可以通过html加java script来实现 。 不需要对操作系统了解 , 只需要对网页设计有所了解 , 就可以了 。 再加上云计算的流行 , 也极大的简化了对操作系统的依赖 。 大概就是这么个意思吧 。 在说两句云计算和云存储 。 操作系统操作的是电脑本身的内存和cpu , 而现在可以存在云上 , 可以在云上进行计算 , 也就相当于内存和cpu都在云上 , 而操作云存储和云计算的 , 是浏览器 。

操作系统的梦想经过10年的发展 , Chrome已经占据了浏览器市场超过三分之二的份额 , 成为大多数人的默认浏览器 。 谷歌仍然在不断推出着新功能 , 并用最新的Web标准来对它进行改进 。 我的经验是做一个好的浏览器引擎需要做以下几个大部分引擎 。 第一 , HTML的处理引擎;第二 , JS虚拟机引擎;第三 , 渲染阿引擎 , 有了这三个其他的都是小的事情了 。 做一个能用浏览器引擎本身不难 , 难的是后期各有优化磨合 。 比如标准的遵守 , 网站的兼容 , 效率的提升 。
【浏览器|浏览器的复杂程度,可以和一个操作系统媲美】
为什么微软 , 欧朋最后都放弃了自己的引擎而使用谷歌家的 , 主要就是磨合以及效率谷歌做到目前最好 。 能用和好用虽然只差一个字 , 但需要下的功夫真的差的不是一星半点 。 谷歌做到让微软和欧朋纷纷放弃自己的引擎投靠Chrome用了十几年的时间 。 前段时间听说华为要做自己的浏览器核心 , 不知道是二次开发还是从头构建一个 。 以华为的投入和他能请到的人才我相信可以做出比较完整的产品 , 主要还是长期的磨合优化 , 不知道它肯投入多少年的时间磨合优化 。

浏览器 , 首先它是一个HTTP客户端 , 要实现对HTTP/1.1协议的支持并不难 , 本质上是一些根据\\r\分隔取出数据的字符串操作 。 拿到解析出来的数据后 , 把数据显示在本地程序里 , 也不难 , 但要做到对HTML这门标记语言的支持 , 你就要自己实现一个HTML的解析器了 , 你可以用libxml这个库来辅助你实现DOM结构 。 接下来要实现对CSS的支持 , 你就要开发一套排版引擎 , 优化一下渲染 。 有了HTTP/1.1和HTML4和CSS2这三个大件后 , 你的浏览器引擎就做好了 , 配合HTTP服务器就可以开发支持数据交互的动态网站了 。

JS这东西其实是可选的 , 表单的提交和验证并不依赖JS , 据说当初Mozilla的工程师(也就是JS之父)单枪匹马花了十来天 , 就给浏览器提供了JS支持 , 可见当初根本就不重视JS这玩意 。 至于图片解析和多媒体播放 , 都是调用开源库比如libpng和ffmpeg就行了 , 不需要自己折腾 。 HTTPS的支持调用openssl这个漏洞满满的加密库就行 。 数据存储用SQLite 。

还记得塞班时代的UC浏览器么 , 如果没猜错 , 这个东西应该就是自己搞的一套浏览器引擎 , 或者是基于开源代码深度修改的一套引擎 。 所以 , 浏览器引擎并没有你想象中那么复杂 。 但你要搞一个超越Chrome工程(shit mountain)的浏览器 , 就是另外一回事了 。