公开预览

SpaceOS 9

内核 SpaceKernel 3.0 用 Rust 写成,实现 Linux 64 位 ABI,目标是直接运行现成的 Linux 程序。目前验证过 musl 动态链接的 BusyBox。

内核
SpaceKernel 3.0(SPK),Rust
架构
x86_64
ABI
Linux 64 位
终端截图:fastfetch 显示 SpaceOS 9 x86_64,内核 SpaceKernel 3.0-spk,shell 为 ash,旁边是彩色的数字 9 字符画
在 SpaceOS 9 里运行 fastfetch 的截图。

这是公开预览

内核自测、三个架构的编译检查和 QEMU 启动已经通过,用户态和驱动还在补。下载前请读使用声明。

组成

  • 内核:SpaceKernel 3.0,Rust、soft-float,x86_64 优先。
  • ABI:Linux 64 位,支持 ELF / PIE / 动态链接、信号、futex、epoll、AF_UNIX。
  • 根盘:FAT32,由 Limine 模块提供,只读挂载。
  • PID 1:systemg,按依赖启动服务并回收进程。
  • 用户态:自带 C 库 splibc 和 sh;BusyBox 通过 musl 动态链接运行。
  • 终端:ash,支持作业控制和 Ctrl-C / Ctrl-Z。

启动顺序

  1. UEFI 固件(QEMU 里是 OVMF)从 ISO 启动引导程序。
  2. Limine 加载内核,并把 FAT32 根盘作为模块交给它。
  3. SpaceKernel 初始化,只读挂载根盘,启动 PID 1。
  4. systemg 按 .service 的依赖启动服务。
  5. 拉起控制台 shell ash;退出后由 systemg 重启。

这一版新增

  • VFS 缓存:Linux 语义的 dentry / inode 缓存和 LRU 回收;FAT32 大文件读取加了簇链缓存。
  • 动态链接:内核装载 ELF 解释器和 PIE,能运行 musl 动态链接的 BusyBox。
  • 进程与信号:线程、进程组与会话、POSIX 信号、futex、epoll、signalfd、timerfd。
  • 终端:控制终端、前后台进程组和 raw 模式。

验证情况

范围状态说明
x86_64已验证QEMU / UEFI 启动、systemg、BusyBox 动态加载、ash 交互和内核自测。
aarch64 / riscv64仅编译检查用户态和启动链路未验证。
真实硬件未验证只在 QEMU 的 VirtIO GPU 2D 上测过。

源码与许可

源码在 ViudiraTech/SpaceOS-9。镜像里的 BusyBox、musl、Limine 等组件各有许可,见 THIRD_PARTY_NOTICES.md。

下载 SpaceOS 9 · 上一代:SpaceOS 8