总体架构
TGOSKits 是一个统一的 Cargo workspace,包含 140 余个 crate,覆盖三个操作系统(ArceOS、StarryOS、Axvisor)及其共享组件层。理解这些 crate 之间的层次关系和依赖方向,是判断改动影响范围和选择验证策略的前提。
三套系统
TGOSKits 包含三套独立的系统实现,它们共享同一套组件基础设施,但面向不同的应用场景。
ArceOS
ArceOS 是组件化 Unikernel,同时充当三个角色:独立运行时、示例应用平台和共享能力提供者。它通过 Cargo feature 做编译期装配,只链接被选中的子系统,避免不需要的运行时负担。StarryOS 和 Axvisor 均复用其 HAL、调度、内存、驱动等基础能力。
- 17 个内核模块(
os/arceos/modules/) - 3 个 API crate(
os/arceos/api/) - 2 个用户库(
os/arceos/ulib/) - 9 个 Rust std 应用(
apps/arceos/)
→ 详细架构见 ArceOS 架构
StarryOS
StarryOS 是建立在 ArceOS 基础能力之上的组件化宏内核系统,引入了更接近 Linux 的进程、线程、syscall、文件系统和 rootfs 语义。它并非简单地为 ArceOS 增加一个 shell,而是将进程、地址空间、syscall 分发、伪文件系统、信号、资源限制等内核机制系统化地组合起来。
- 10 个内核子系统(
os/StarryOS/kernel/src/) - 12 个 syscall 功能域
- 3 个可独立发布的 StarryOS 子 crate(
os/StarryOS/{process,signal,vm})
→ 详细架构见 StarryOS 架构
Axvisor
Axvisor 是基于 ArceOS 的统一组件化 Type-I Hypervisor,建立在 ArceOS 运行时、虚拟化组件库与分层配置系统之上。它与 ArceOS/StarryOS 的最大差异在于:代码、配置和 Guest 镜像同等重要。
- 4 套架构适配(aarch64、riscv64、loongarch64、x86_64)
- 10 份板级配置、50 余份 VM 配置
- 支持 ArceOS、Linux、RT-Thread、FreeRTOS、Zephyr 等 Guest
→ 详细架构见 Axvisor 架构