从零开始的新跨平台浏览器:Ladybird 正式起飞

2022 年 9 月 18 日 InfoQ

作者 | 闫园园

近期,SerenityOS 的发起者 Andreas Kling 在博客中宣布了他最新开源跨平台浏览器项目 Ladybird,Ladybird 浏览器基于 SerenityOS 的 LibWeb 和 LibJS 引擎,LibWeb 始于 2019 年开发,其 JavaScript 引擎 LibJS 则于 2020 年开发。

Andreas 写道,他和他的团队不再只是想开发一个基于 Linux 的浏览器,而是想开发一个跨平台的浏览器,“建造一些有朝一日可能对更多人有用的东西”。根据文章末尾的常见问题解答,Ladybird 已经在 Linux、macOS、Windows 和 Android 上运行。

1 浏览器的诞生

Ladybird 浏览器诞生于 7 月 4 日,最初是作为 LibWeb 浏览器引擎调试工具,随后 Andreas 决定继续推进并为它构建一个简单的 GUI 。然而两个月后,Andreas 发现自己使用 Ladybird 完成了一个 Web 浏览器的大部分开发工作,这也让他意识到可以将 SerenityOS 的浏览器引擎”调整为“跨平台浏览器引擎”。

2 基本架构

从时间上来看,LibWeb 和 LibJS 都是比较新的引擎。并且 Andreas 有开发 Qt 和 WebKit 项目的经历,从中也吸取了一部分经验。“但所有的代码都是新的”,他在博文中表示,浏览器和库都是用 C++ 编写,并且在 2-clause BSD 许可下是免费的。“没有人可以购买该项目,但欢迎志愿者。毕竟,SerenityOS 不是一个人的表演。这项工作只有在 SerenityOS 社区的支持下才能实现,该社区已经发展到数百名贡献者,并正在帮助开发操作系统和浏览器。”

当前浏览器主要组件:

  • Ladybird : 选项卡式浏览器 GUI 应用程序

  • 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、日期时间、MIME 数据……)

  • Qt:跨平台 GUI 和网络

LibWeb 有一个 Platform 层,Ladybird 在这里为事件循环、计时器、系统字体设置等注入 Qt 支持代码。Ladybird 使用 Qt 进行联网,因为多进程的 RequestServer 系统在 SerenityOS 之外还没有使用。同时,Ladybird 是单进程的,“所有这些都是暂时的,并且会随着时间而改变。”

3 仍处于开发初期

Andreas 坦言目前该浏览器仍处于开发初期,许多功能要么根本无法使用,要么存在错误,甚至还需要很长时间才能真正投入日常使用。“我们处于‘让它工作,让它变得更好,让它更快’中的‘让它工作’阶段中,因此,我们现阶段更多地还是在关注正确性和功能支持,而不是优化。”

Ladybird 已经通过了经典的 Acid3 标准测试,它涵盖了基本的 CSS 布局特性和各种 DOM/HTML API。但该测试并未涵盖最新 Web 标准及功能,如 CSS flexbox、CSS Gird 等。这意味着,即便在 Ladybird 中浏览最新网站的稳定性正在提高,但仍然会出现很多布局和兼容性问题。

例如用 Ladybird 浏览器浏览 Reddit 页面:

4 写在最后

传统观点认为,如果没有巨大的资本支出和人力、成本的付出,从头开始构建一个新的浏览器引擎几乎是不可能的,然而,Andreas 正在做的事情似乎反驳了这一观点。

同时 Ladybird 的出现,也增加了浏览器和浏览器引擎的多样性,不少开发者表示对此项目的期待,并希望此项目和其他浏览器项目能够成功,“这似乎是一项令人难以置信的艰巨任务,但他们似乎确实有乐观的前景。”

今日好文推荐

“羊了个羊”一天宕机 3 次,马化腾辟谣日赚 468 万元;60 岁史玉柱“重返一线”改游戏;旷工为由辞退员工,脉脉被判赔 24 万|Q 资讯

Adobe 豪掷 200 亿美元收购 Figma,开发者却将其骂上了“热搜”

历时三年替换掉二十年老系统,这个团队选择“一次性到位”  | 卓越技术团队访谈录

对峙数年后,微软对 Java 的态度 180°大反转

登录查看更多
0

相关内容

【开放书】《命令行数据科学指南(第二版)》
专知会员服务
42+阅读 · 2021年12月13日
专知会员服务
27+阅读 · 2021年6月2日
【经典书】Linux UNIX系统编程手册,1554页pdf
专知会员服务
45+阅读 · 2021年2月20日
专知会员服务
51+阅读 · 2020年9月2日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
Python图像处理,366页pdf,Image Operators Image Processing in Python
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
22+阅读 · 2019年11月7日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
27+阅读 · 2019年11月2日
Python 3.11 正式版来了,比 3.10 快 10-60%
InfoQ
2+阅读 · 2022年10月31日
新一波JavaScript Web框架
InfoQ
1+阅读 · 2022年10月7日
Istio 正式成为 CNCF 孵化项目
InfoQ
0+阅读 · 2022年9月30日
Flutter 3.3发布,带来新的预览版渲染引擎
无处不在的 JavaScript
AI前线
0+阅读 · 2022年3月18日
10 个用于 Linux 的开源轻量级 Web 浏览器
CSDN
0+阅读 · 2022年2月23日
尤雨溪:Vue 3 将成为新的默认版本
InfoQ
0+阅读 · 2022年1月25日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Arxiv
0+阅读 · 2022年11月29日
Arxiv
14+阅读 · 2022年8月25日
已删除
Arxiv
32+阅读 · 2020年3月23日
VIP会员
相关VIP内容
【开放书】《命令行数据科学指南(第二版)》
专知会员服务
42+阅读 · 2021年12月13日
专知会员服务
27+阅读 · 2021年6月2日
【经典书】Linux UNIX系统编程手册,1554页pdf
专知会员服务
45+阅读 · 2021年2月20日
专知会员服务
51+阅读 · 2020年9月2日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
Python图像处理,366页pdf,Image Operators Image Processing in Python
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
22+阅读 · 2019年11月7日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
27+阅读 · 2019年11月2日
相关资讯
Python 3.11 正式版来了,比 3.10 快 10-60%
InfoQ
2+阅读 · 2022年10月31日
新一波JavaScript Web框架
InfoQ
1+阅读 · 2022年10月7日
Istio 正式成为 CNCF 孵化项目
InfoQ
0+阅读 · 2022年9月30日
Flutter 3.3发布,带来新的预览版渲染引擎
无处不在的 JavaScript
AI前线
0+阅读 · 2022年3月18日
10 个用于 Linux 的开源轻量级 Web 浏览器
CSDN
0+阅读 · 2022年2月23日
尤雨溪:Vue 3 将成为新的默认版本
InfoQ
0+阅读 · 2022年1月25日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Top
微信扫码咨询专知VIP会员