世界上最复杂的软件是什么?
有人认为是操作系统,有人认为是数据库,我觉得是
浏览器
。
比如开源的Chromium,上千万行,十几G源码,那真是相当复杂。
Chromium
浏览器中涉及到的每一项技术,展开来说都是厚厚的一本书
,比如HTTP、SSL、QUIC、WebSocket、JIT编译器、WebRTC、WebAssembly、垃圾回收、内存和CPU的性能统计等等。
而
Web平台的规范HTML、CSS、JavaScript等各种细节加起来,都是成千上万页
。
强如微软,也不得不放弃了自己的浏览器内核,转而使用Chromium,因为维护一套所需要投入的人力和财力实在是太恐怖了。
详情可以参见之前转载的龙泉寺扫地僧的文章:《
上千万行,十几G源码,浏览器为什么这么“变态”?
》
现在的浏览器,大部分都基于开源的内核,然后加上自己功能,没有人敢于重起炉灶。
但是世界上有两个人不信邪,总想着搞一套独立的浏览器出来。
这两人,一个是
Chris Wanstrath
,GitHub联合创始人
另外一个是
Andreas Kling
,宁静OS的创始人。
已经有了现成的、开源的浏览器,为什么还要从头儿再来呢?不是自讨苦吃吗?
Chris Wanstrath认为,开源的浏览器虽然推动了网络的繁荣,但是它们都是
由Google的广告帝国所资助的
。
Chrome、Edge、Brave、Arc 和 Opera 都使用谷歌的 Chromium。
Google花了数十亿美元,就是为了成为苹果的Safari 的默认搜索引擎。
而Firefox每年获得的数亿美元(最大的收入)也是Google的赞助的。
网络太重要了,以至于不能只有一个主要的资金来源,而这个资金来源又太重要了,以至于不能只有广告。
这个世界需要一种
以人为本的、使用全新引擎为开放标准做贡献,不受广告影响的浏览器
。
理想很丰满,现实很骨感,浏览器如此复杂,谁愿意从头儿开发呢?
远在北欧,瑞典程序员Andreas Kling为了打发戒毒后无所事事的时光,他开始开发一套全新的操作系统宁静OS,这个目标极其宏大,不仅从头儿写操作系统,更是要从头儿构建操作系统上的所有软件。
Andreas Kling的故事可以在下面的视频中找到:
这个庞大计划中,其中就包括一个简单的HTML浏览器。
Andreas曾经参与过QT和WebKit的开发,从中汲取了一些灵感,但是所有的代码都是全新的,用C++编写。
Andreas不断地完善它,让它支持简单的JS,HTTPS和图片解码,通过了
ACID2
和
ACID3
的兼容性测试。