paint-brush
运行 SerenityOS,一封写给 90 年代用户界面的情书经过@ChrisChinchilla
2,663 讀數
2,663 讀數

运行 SerenityOS,一封写给 90 年代用户界面的情书

经过 Chris Chinchilla5m2022/10/20
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

SerenityOS 是一个复古风格的现代操作系统。这篇文章展示了我如何在 Mac 上运行它,以及我对不使用 Chromium 或 WebKit 的项目浏览器项目的实验。
featured image - 运行 SerenityOS,一封写给 90 年代用户界面的情书
Chris Chinchilla HackerNoon profile picture


我一直喜欢玩弄操作系统和桌面环境。我相信我的第一个图形操作系统是 AmigaOS。几十年来,我已经使用了各种 Windows 版本,自 7.0 以来的每个版本的 macOS,不同的 Linux 风格和组合,以及许多其他小众操作系统,我已经在大量的窗口和菜单中忘记了。


在另一种(也许是未来?)生活中,我想为电影、电视节目和游戏创建虚构的用户界面。我最喜欢的一本书是《 Make it so 》,它比较了科幻小说中的界面和真实界面。


你最喜欢的操作系统是什么?让我们知道使用这个写作提示


我第一次听说 SerenityOS 是通过 Changelog 上的一条新闻。他们提到少数开源程序员正在开发另一种浏览器和浏览器引擎Ladybird 。这对我来说是一个令人兴奋的前景,因为我担心基于 Chromium 的浏览器霸权,并且几乎没有其他选项不受严格控制(WebKit)或慢慢消失(Firefox)。 Ladybird 还没有假装功能齐全或准备就绪,但正在迅速发展。


然后当我深入研究 Ladybird 时,我发现它是为同样独特的操作系统设计的浏览器,我很感兴趣!澄清一下,Serenity 不是另一个 Linux 或 BSD 皮肤。它是从头开始构建的,但深受现代和经典操作系统的启发。它旨在成为日常使用的功能齐全且可用的操作系统。


在这篇文章中,我着眼于在我的 M1 MacBookPro 上构建和运行 Ladybird 和 SerenityOS。使用 Apple Silicon 会带来一些复杂性,但不会太多,当您遇到问题时,该项目的社区会提供帮助和交流。



构建和运行 Ladybird

最初是作为使用 SerenityOS HTML 库创建浏览器的实验而构建的,最近,它发展成为一种新的跨平台浏览器选项。

它使用 Qt UI 库,因此它看起来并不完全跨平台,但可以在支持 Qt 的所有平台上使用,这意味着有足够的空间进行进一步的增强。

遵循您选择的平台的构建先决条件和说明,我没有任何问题。从 6.2 版开始,Qt 支持 Apple Silicon,所以这些对我来说都不是问题。只是我必须安装 Xcode。有一点,只需安装 Apple 的命令行工具就足够了,但我发现我越来越需要只有 Xcode 提供的工具。


构建步骤需要一点时间,然后浏览器应该会打开。浏览器最初的重点是帮助人们调试他们使用 Serenity 的 HTML 库构建的应用程序,因此有很多可用的调试工具,但对最终用户来说还不是太多。我最初遇到了字体渲染问题,可能是由于我的 Retina 屏幕,但 Serenity Discord 服务器中的一个问题得到了快速响应(这是 macOS 特有的)。


Build/ladybird中右击构建的二进制文件并打开Contents/info.plist文件(可能在 Xcode 中,但任何编辑器都可以。将NSHighResolutionCapable的值更改为“NO”并重新启动。文本渲染看起来仍然有点奇怪,但它是可读的。


我注意到 Ladybird 不渲染音频或视频。这是因为它尚未实现 HTML 的该功能还是由于许可问题,我不确定。

构建和运行 SerenityOS

构建和运行浏览器是一回事,构建和运行整个操作系统则更加复杂。由于 Serenity 是为 X86_64 系统设计的,这也意味着我作为 Apple Silicon 用户需要在模拟环境中运行它。幸运的是,由于 Serenity 是一个完整的操作系统,社区通常假设您希望在虚拟机中运行它,并且已经在运行脚本中提供了使用 QEMU 的步骤。通过几个额外的步骤,您也可以在 Apple Silicon 上运行时使其正常工作,尽管性能会受到影响。


首先,我遵循了 macOS 构建先决条件说明对于 Linux 用户,有不同的先决条件说明。然后您可以返回到一般构建说明。这些都运行良好,但花费了很长时间,这对于构建操作系统是合理的。

最初,在 QEMU 阶段运行 Serenity 失败了,我之前在我正在写的一篇通用 macOS 虚拟化和仿真文章中遇到了 QEMU 的一些问题。但是,Discord 服务器中的另一个快速响应和我有一个解决方案。


在第 256 行的run.sh中(在撰写本文时),添加以下内容:


 -machine pc-i440fx-7.0


整个块定义了 Serenity 将使用的 QEMU 虚拟机,而“ pc-i440fx-7.0 ”定义了特定的 PC 配置。添加后,运行 Serenity 就可以了。由于使用了模拟处理器,它很迟钝,但只有一点点,每次我点击某个东西时都会有第二次延迟。不能在日常基础上使用,但可以用于测试目的。


Serenity 肯定具有早期的 Windows UI 氛围,但具有 Linux 思维方式。没有官方的包管理器,但是可以使用端口来构建.相反,它将许多常见的应用程序与操作系统构建捆绑在一起。有一个代码编辑器、一个浏览器(不是 Ladybird)、游戏等等。

回到未来

你有它。通过一些调整和大量等待下载和构建,您也可以运行全新且独特的浏览器和操作系统!我不完全确定 Serenity 项目的最终目标是什么,因为它最初是主要维护者的激情项目,后来发展成为更大的项目。这是我喜欢这个项目的原因之一。它完全是由享受创造他们引以为豪的东西的过程的人们创造的,开源世界需要更多这样的项目。


这是 hacktoberfest 月,如果您喜欢 SerenityOS 等开源项目,请告诉我们您使用此提示为开源做出贡献的经历


你最喜欢的操作系统是什么?让我们知道使用这个写作提示