开源浏览器-Ladybird
2024-07-11 22:06:25 阿炯

Ladybird是一个真正独立的Web浏览器,使用基于Web标准的新颖引擎。主要采用C++开发并在二类的BSD协议下授权使用。


Ladybird is a truly independent web browser, using a novel engine based on web standards.


其目标是为现代网络构建一个完整的,可用的浏览器。

Ladybird使用多进程架构,包括一个主UI进程、几个WebContent渲染器进程、一个ImageDecoder进程和一个RequestServer进程。

图像解码和网络连接是在进程外完成的,以更强大地抵御恶意内容。每个选项卡都有自己的渲染进程,该进程与系统的其余部分隔离。

目前许多核心库支持组件都继承自SerenityOS,项目在2024年7月仍在开发测试阶段。Ladybird中的相关组件如下:
LibWeb: Web rendering engine
LibJS: JavaScript engine
LibWasm: WebAssembly implementation
LibCrypto/LibTLS: Cryptography primitives and Transport Layer Security
LibHTTP: HTTP/1.1 client
LibGfx: 2D Graphics Library, Image Decoding and Rendering
LibArchive: Archive file format support
LibUnicode: Unicode and locale support
LibAudio, LibMedia: Audio and video playback
LibCore: Event loop, OS abstraction layer
LibIPC: Inter-process communication



两个程序员要彻底重写世界上最复杂的软件

世界上最复杂的软件是什么?

多数人认为是操作系统和大型数据库,然后就是浏览器。

比如开源的Chromium,上千万行,十几G源码,那真是相当复杂。Chromium浏览器中涉及到的每一项技术,展开来说都是厚厚的一本书,比如HTTP、SSL、QUIC、WebSocket、JIT编译器、WebRTC、WebAssembly、垃圾回收、内存和CPU的性能统计等等。而Web平台的规范HTML、CSS、JavaScript等各种细节加起来,都是成千上万页。微软都不得不放弃了自己的浏览器内核,转而使用Chromium,因为维护一套所需要投入的人力和财力实在是太高了。

现在的浏览器大部分都基于开源的内核,然后加上自己功能,没有人敢于重起炉灶。

但是世界上有两个人不信邪,总想着搞一套独立的浏览器出来。这两人一个是Chris Wanstrath,GitHub联合创始人。


另外一个是Andreas Kling宁静OS的创始人。


已经有了现成的、开源的浏览器,为什么还要从头儿再来呢?

Chris Wanstrath认为,开源的浏览器虽然推动了网络的繁荣,但是它们都是由Google的广告帝国所资助的。Chrome、Edge、Brave、Arc 和 Opera 都使用谷歌的 Chromium。Google花了数十亿美元,就是为了成为苹果的Safari 的默认搜索引擎。而Firefox每年获得的数亿美元(最大的收入)也是Google的赞助的。

网络太重要了,以至于不能只有一个主要的资金来源,而这个资金来源又太重要了,以至于不能只有广告。这个世界需要一种以人为本的、使用全新引擎为开放标准做贡献,不受广告影响的浏览器。浏览器如此复杂,谁愿意从头儿开发呢?

远在北欧,瑞典程序员Andreas Kling为了打发戒毒后无所事事的时光,他开始开发一套全新的操作系统宁静OS,这个目标极其宏大,不仅从头儿写操作系统,更是要从头儿构建操作系统上的所有软件。这个庞大计划中就包括一个简单的HTML浏览器。


Andreas曾经参与过QT和WebKit的开发,从中汲取了一些灵感,但是所有的代码都是全新的,用C++编写。他不断地完善它,让它支持简单的JS,HTTPS和图片解码,通过了ACID2和ACID3的兼容性测试。


随着宁静OS社区人员的参与,这个HTML浏览器变成了一个完整的浏览器LadyBird(瓢虫)。


经过这几年LadyBird高速发展,已经形成了完整的体系架构,其中的重要组件如下:
- LibWeb: Web引擎, 支持多种标准: HTML, DOM, CSS, SVG, …
- LibJS: 支持ECMAScript, 运行时库,垃圾回收。
- LibGfx: 2D图形,文本渲染, 图像格式 (PNG, JPG, GIF, …)
- LibRegex: 正则表达式引擎
- LibXML: XML解析器
- LibWasm: WebAssembly 引擎
- LibUnicode: Unicode 支持
- LibTextCodec: 文本编码转换
- LibMarkdown: Markdown 解析器
- LibCore: I/O, datetime, MIME data, …

2023年,电子商务公司Shopify向LadyBird捐款10万美元,支持LadyBird的开发。

Andreas兴奋地说道:在大型科技公司纷纷放弃自家浏览器、转而使用 Chromium 的时代,像我们这样的黑客和网络爱好者有责任将多样性引入浏览器市场。这正是我们希望通过 Ladybird 实现的目标:以经典的开源精神,从头开始创建一款独立的浏览器,不包含第三方代码。Chris也发现了LadyBird这个从头儿开始构建的浏览器,这正是他梦寐以求的东西啊!他一下子捐赠了100万美元,和Andreas一期推出了LadyBird浏览器计划,这是一家美国501(c)(3) 非营利组织。

为了追求独立性,LadyBird基金特意设置了几个限制条件:

(1).资金完全来自公司和个人的赞助和捐赠
除了捐赠之外,不追求企业交易和收入。

(2).不允许捐赠者购买董事会席位
许多开源世界都面临这个问题,那些巨头通过对董事会的控制,破坏了开源的核心使命。

2024年7月上旬消息,Andreas也把LadyBird从原来的SerentityOS中分叉出来,成为了和宁静OS并立的顶级项目。他自己也辞去了SerenityOS BDFL 的职务,把所有的精力都投入到LadyBird浏览器中来。

浏览器市场因此迎来新鲜血液,Ladybird 这款浏览器由 GitHub 联合创始人投资,承诺“不使用友商的代码”,要从零开始重新构建全新的浏览器。浏览器市场目前主要有 3 款内核,Chromium 的 Blink 内核、苹果 Safari 的 WebKit 内核以及 Mozilla Firefox 浏览器的 Gecko 内核,而现在市场将迎来新鲜血液--Ladybird。The Ladybird Browser Initiative 作为非营利组织,资金全部来自“关心开放网络”的企业或者个人赞助,并且只接受“不受限制的捐赠”。

Ladybird 最初是 SerenityOS(x86-64 处理器的类 Unix 操作系统)的 HTML 浏览器,由 Kling 于 2018 年创建。Kling 于2024年6月将 SerentityOS 移交给了一个维护者小组,并表示他现在的全部精力都放在了 Ladybird 浏览器上。话说Google主导的Chromium开发人员已经上千,投入超数十亿,而LadyBird基金会现在只有区区100多万美元,就想开发一个像Chrome那样功能完备的浏览器?

Chris Wanstrath和Andreas Kling他们为什么要这么做?

开源社区的力量是非常巨大的,过去几年,LadyBird在没有捐赠的情况下已经取得了巨大的成功,因为这个世界上有一大批程序员,纯粹是为了自己的爱好而投入开源软件的开发,正是他们构建出了互联网的基石。他俩做的事情是要回归经典开源精神,破除商业垄断,这样的理念是非常吸引人的。


最新版本:


官方主页:https://ladybird.org/