StarryOS 架构
StarryOS 是建立在 ArceOS 基础能力之上的组件化宏内核系统,继承了 ArceOS 的模块化、跨平台和 Rust 安全性,同时引入了更接近 Linux 的进程、线程、syscall、文件系统和 rootfs 语义。它介于"ArceOS 单内核应用运行时"与"完整 Linux 宏内核"之间。
本文聚焦 StarryOS 的内部结构、syscall 分发机制和执行路径。若尚未运行过 StarryOS,建议先阅读 StarryOS 快速上手。
系统定位
StarryOS 并非从零构建一个全新的内核,而是在 ArceOS 的模块化基础设施之上,补齐 Linux 兼容所需的进程管理、syscall 分发、信号、伪文件系统等宏内核语义。这种设计让 StarryOS 能够复用底层能力,同时将精力集中在 Linux 用户态程序的兼容性上。
| 目标 | 含义 | 典型落点 |
|---|---|---|
| Linux 兼容语义 | 提供更接近 Linux 的用户态程序运行环境 | kernel/src/syscall/*、kernel/src/task/*、kernel/src/file/* |
| 复用 ArceOS 基础能力 | 不重复实现 HAL、调度、部分文件与网络基础设施 | os/arceos/modules/* |
| 组件化宏内核 | 在一个内核映像中组织多种子系统,但继续按组件边界拆分职责 | components/starry-*、kernel/* |
| 用户态验证闭环 | 通过 rootfs 和 init shell 验证系统行为 | os/StarryOS/starryos、rootfs 镜像、test-suit/starryos |