serenityos – 一款为桌面电脑设计的图形化类 Unix 操作系统

SerenityOS 是一款为桌面电脑设计的图形化类 Unix 操作系统。它致敬了 90 年代的用户界面设计,并结合了现代 Unix 系统的强大功能。SerenityOS 借鉴了其他操作系统的优秀理念,旨在打造一个兼具美观和易用的系统。SerenityOS 将 90 年代的软件美学与 2000 年代末 *nix 系统的强大功能结合在一起。

file

特性

  • 支持现代 x86 64 位内核,支持抢占式多线程
  • 内置浏览器,支持 JavaScript、WebAssembly 等技术
  • 安全功能,如硬件保护、用户权限限制、W^X 内存、(K)ASLR 等
  • 系统服务,包括 WindowServer、LoginServer、AudioServer 等
  • 良好的 POSIX 兼容性,支持多种 Unix 实用工具
  • 虚拟文件系统和 ext2 文件系统
  • 支持 IPv4、TCP、UDP 的网络堆栈
  • 开发工具,如内核支持的分析工具、CrashReporter 等
  • 广泛的文件格式支持,包括 PNG、JPEG、MP3 等
  • 统一的设计风格和灵活的主题系统
  • 各种游戏和日常 GUI 程序

安装

前提条件,确保您已安装所有依赖项:

Debian / Ubuntu

sudo apt install build-essential cmake curl libmpfr-dev libmpc-dev libgmp-dev e2fsprogs ninja-build qemu-system-gui qemu-system-x86 qemu-utils ccache rsync unzip texinfo libssl-dev

可选:安装 fuse2fs 以在无需 root 权限的情况下构建映像。

GCC 13 或 Clang 17

构建主机工具需要支持 C++23 的编译器,推荐使用 gcc-13clang-17

在 Ubuntu 24.04 及更高版本中,gcc-13 可通过以下命令安装:

sudo apt update
sudo apt install gcc-13 g++-13

QEMU 6.2 或更高版本

QEMU 6.2 在 Ubuntu 22.04 可用。较早版本的 Ubuntu 可能需要运行 Toolchain/BuildQemu.sh 来构建推荐的 QEMU 版本。

CMake 版本 3.25.0 或更高

构建工具将尝试从源代码构建 CMake,如果系统中的 CMake 版本低于 3.25.x,您可能需要手动删除旧的 CMakeCache.txt 文件:

rm Build/*/CMakeCache.txt

Windows

SerenityOS 可以使用 WSL 2 版本在 Windows 上进行构建和运行。WSL 1 版本不支持 ext2 文件系统,因此不适用。

WSL 2 的系统要求:

  • Windows 10 版本 2004 或更高版本(操作系统版本号 19041 或更高)

安装 WSL 2:

有关如何安装 WSL 2 的指南,请参阅官方教程。(此处省略链接,可自行搜索)

检查 WSL 版本:

安装完成后,请确保您要使用的 Linux 发行版(以及新的默认发行版)均为 WSL 2 版本。

  • wsl -l -v 可以列出所有已安装的 Linux 发行版及其版本。
  • wsl --set-version <发行版名称> <版本号> 可以将某个发行版转换为另一个版本。
  • wsl --set-default-version 2 可以将所有新安装的 Linux 发行版都设置为默认的 WSL 2 版本(可选)。

获取构建工具:

接下来,前往 BuildInstructions.md 文档,并根据您选择的 Linux 环境,按照其中的说明获取所需的构建工具。

文件系统性能注意:

在 Windows 主机文件系统上进行大量 IO 操作(例如编译大型 C++ 项目)时,WSL 2 的文件系统性能会比较差。有关详细信息,请参阅 WSL GitHub 项目上的相关议题。(此处省略链接,可自行搜索)

微软团队在此议题中建议:

  • 如果可以,请将您的项目存储在 WSL 2 的 Linux 文件系统中。

这实际上意味着您需要将项目克隆并构建到诸如 /home/用户名/serenity 的目录下。然后,您可以通过 \\wsl$ 访问 Linux 文件系统,例如,您的项目将位于 \\wsl$\home\用户名\serenity

设置 QEMU:

  • 从官方网站下载并安装最新的 QEMU 二进制文件。(此处省略链接,可自行搜索)
  • 至少需要安装以下组件:工具、用于 i386 和 x86_64 架构的系统仿真器,以及 DLL 库。

运行 SerenityOS:

执行 Meta/serenity.sh run 命令即可像往常一样构建并运行 SerenityOS。

硬件加速 (可选):

以上步骤会以软件虚拟化模式运行 QEMU,速度会比较慢。QEMU 可以通过 Windows Hypervisor Platform (WHPX) 支持 Windows 上的硬件加速。

  • 通过“启用或关闭 Windows 功能”或在提升权限的 PowerShell 会话中运行以下命令启用 Windows Hypervisor Platform (WHPX) 功能:
dism /Online /Enable-Feature /All /FeatureName:HypervisorPlatform

启用 WHPX 功能后,您可能需要重新启动计算机。

启用完成后,您可以像往常一样使用 Meta/serenity.sh run 命令启动虚拟机,并享受硬件加速带来的性能提升。

Arch Linux / Manjaro

运行以下命令安装所需依赖项:

sudo pacman -S --needed base-devel cmake curl mpfr libmpc gmp e2fsprogs ninja qemu-desktop qemu-system-aarch64 ccache rsync unzip

可选:安装 fuse2fs 用于无需 root 构建镜像。

SerenityOS

需要安装以下端口:bash cmake curl e2fsprogs gawk genext2fs git ninja patch python3 qemu rsync

如果使用 LLVM 构建,安装 llvm 端口;使用 GCC 构建,安装 gcc gmp mpc 端口。

由于 Shell 中 POSIX shell 支持尚未完成,需要创建从 /bin/sh/usr/local/bin/bash 的符号链接。

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注