ArceOS 架构
ArceOS 是 TGOSKits 中的组件化 Unikernel,通过 Rust crate 与 Cargo feature 做编译期装配。它在仓库中同时扮演三种角色:独立运行时、示例应用平台,以及 StarryOS 和 Axvisor 的共享能力提供者。
本文聚焦 ArceOS 的分层边界、Feature 装配机制、模块协作与启动流程。若仅需要运行示例,请先阅读 ArceOS 快速上手。
系统定位
ArceOS 在仓库中同时扮演三种角色:独立运行的 Unikernel、示例应用的平台,以及 StarryOS 和 Axvisor 的共享能力提供者。这种多重定位决定了它的模块化程度和接口设计——既要自身可用,又要便于上游系统复用。
| 角色 | 含义 | 在仓库中的体现 |
|---|---|---|
| 组件化单内核 | 通过 Cargo feature 做编译期装配,只链接被选中的能力 | os/arceos/modules/*、api/*、ulib/* |
| 基础系统平台 | 直接承载示例应用和测试包 | os/arceos/examples/*、test-suit/arceos/* |
| 共享能力提供者 | 为 StarryOS 和 Axvisor 复用 HAL、调度、内存、驱动等基础能力 | ax-hal、ax-task、ax-mm、ax-driver 等被上层直接依赖 |
ArceOS 的设计核心在于:"功能是否存在"本质上是编译期装配问题,而非运行时开关问题。 应用只需在 Cargo.toml 中声明所需的 feature,运行时自动按 feature 组装对应的模块链路。