跳到主要内容

Operating Systems and Virtualization Workspace

TGOSKits面向系统软件研发的一体化工作区

ArceOS、StarryOS、Axvisor 三条系统路径共享 190+ Rust crate, 通过 cargo xtask 统一构建、QEMU 运行和分层验证,在同一仓库内完成从组件开发到系统集成的完整闭环。

3核心系统
190+共享组件
4主流架构
xtask统一命令入口

Architecture

四层分层,依赖关系自底向上可推导

场景入口依赖系统形态,系统形态依赖共享组件,共享组件依赖平台抽象——每一层的变更范围可通过依赖图精确界定。

构建与配置

  • cargo xtask
  • scripts/axbuild
  • platform configs
  • VM configs
场景入口
ArceOS examplesStarryOS rootfsAxvisor guestsboard / VM configs
系统形态
ArceOS modular kernelStarryOS Linux-compatible OSAxvisor Type-I hypervisor
共享组件
memory / schedulerfs / net / deviceVM / vCPU / address spacedriver core APIs
平台与硬件
axplat cratesaxhal integrationQEMU targetsboard platforms

验证闭环

  • clippy / fmt checks
  • ArceOS tests
  • StarryOS test-suit
  • Axvisor QEMU / board tests

自底向上的依赖约束

下层 crate 不依赖上层实现,组件层不引用系统层代码,平台层不感知具体系统。依赖方向单一,修改影响可控。

水平切分的复用边界

同一层的 crate 通过 trait 或接口抽象解耦,系统通过组合而非继承获取能力,新增系统路径无需修改现有组件。

验证链路与架构层级对应

Host 测试覆盖组件层,QEMU 运行覆盖系统层,板级回归覆盖平台层——验证粒度与架构层级一一映射。

Component Workspace

Git Subtree 管理的组件同步工作流

每个组件同时维护独立仓库与工作区副本,通过 repo.py pull/push 双向同步,集成验证通过后才回推上游。

Git Subtree 工作流:组件仓库 ↔ 统一工作区 ↔ 上游
axallocatorcomponents/
arm_vcpucomponents/
rknpudrivers/npu/
TGOSKits统一集成工作区
独立组件汇聚60+ 个 subtree 仓库内存 · 调度 · 设备 · VFS · 虚拟化
Subtree 同步工具repo.py list / pull / push集成验证后同步回上游
来源边界清晰repos.csv · target_dir · category
axallocator独立仓库
arm_vcpu独立仓库
rknpu独立仓库
$ python3 scripts/repo/repo.py list查看组件仓库映射与同步状态
← 组件仓库集成验证上游仓库 →
$ repo.py pull$ repo.py pushrepos.csv

Systems

三条系统路径,各自聚焦不同抽象层级

ArceOS 关注模块组合与平台适配,StarryOS 关注 POSIX 语义与用户态兼容,Axvisor 关注虚拟化抽象与 Guest 管理。

ArceOS

模块化内核组件组合层

以模块化设计组织内核能力,每个模块对应一个独立 crate,可通过配置裁剪组合出不同形态的系统。

  • 模块化 crates: axlog, axnet, axfs, axhal …
  • examples 覆盖从 helloworld 到完整系统
  • StarryOS 与 Axvisor 的直接依赖

StarryOS

Linux 兼容 OSPOSIX 兼容层

在 ArceOS 模块基础上实现 Linux 系统调用接口,支持 ELF 加载、进程管理、信号处理与 rootfs 引导。

  • syscall 覆盖: 文件 I/O、进程、信号、网络
  • rootfs 构建与用户态程序验证
  • Linux 兼容性 test-suit 回归

Axvisor

Type-I Hypervisor虚拟化层

裸机 Hypervisor,管理 VM 生命周期、vCPU 调度、虚拟地址空间与虚拟设备,支持多 Guest 并行运行。

  • VM / vCPU 生命周期管理
  • 虚拟设备: UART、块设备、网络
  • 多架构 Guest: ArceOS、Linux 等
共享组件基础层components/ · ax* crates · starry-* · drivers/ · platform/

Platform Matrix

四种 CPU 架构,虚拟平台与物理板卡并行支持

每种架构通过 axplat crate 抽象平台差异,板卡适配与 QEMU 仿真共用同一接口层。

aarch64ARMv8 (AArch64)
QEMU virt虚拟平台仿真
Raspberry Pi树莓派板卡
Phytium Pi飞腾派板卡
BSTA1000BBSTA 板卡
4QEMU + board
riscv64RISC-V 64
QEMU virt虚拟平台仿真
VisionFive 2StarFive 板卡
2QEMU + board
x86_64x86-64
PC (QEMU)x86 PC 平台
1QEMU
loongarch64LoongArch 64
QEMU virt虚拟平台仿真
1QEMU

Driver Ecosystem

驱动核心逻辑与 OS 依赖完全解耦

Driver Core 只包含硬件操作逻辑,OS Glue 层适配不同内核的内存分配与调度接口,同一驱动无需修改即可在 ArceOS、StarryOS 和 Axvisor 中使用。

具体设备驱动

drivers/ 目录下的硬件驱动实现

块设备驱动

SD/MMC 存储支持

simple-sdmmc

NPU 驱动

神经网络加速

rockchip-npu

PCI 总线驱动

PCIe 控制器适配

rk3588-pci

SoC 平台驱动

片上系统外设

rockchip (GPIO, clk, reset)

驱动子系统抽象

axdriver_crates 提供的通用驱动接口层

axdriver_block块设备
axdriver_display显示
axdriver_input输入
axdriver_net网络
axdriver_pciPCI 总线
axdriver_virtioVirtIO
axdriver_vsock虚拟 Socket
axdriver_base驱动基础层

跨内核驱动框架

基于 Driver Core → Capability Boundary → OS Glue → Runtime 四层分层模型, 将驱动核心逻辑与 OS 依赖解耦,通过 mmio-api / dma-api / IRQ 契约实现跨系统复用。

Verification

三层验证:组件 → 系统 → 平台,粒度逐层放大

组件级 cargo test 快速反馈,系统级 QEMU 运行验证功能正确性,平台级板卡回归确认硬件适配完整性。

01

Host 侧组件验证

Local

在宿主机上直接执行标准库测试与 clippy 静态检查,秒级反馈,无需交叉编译。

  • cargo test -p <crate>
  • cargo xtask clippy
  • cargo xtask test
02

QEMU 系统级验证

System

构建目标系统镜像后在 QEMU 中运行,验证 syscall、进程管理、设备驱动等系统级行为。

  • ArceOS example 运行检查
  • StarryOS rootfs + shell 启动
  • Axvisor Guest 引导与交互
03

板级场景回归

Scenario

变更涉及平台适配或跨系统共享组件时,在物理板卡上执行端到端回归测试,确认硬件行为一致。

  • platform/* 编译与启动验证
  • VM / Guest 配置兼容性回归
  • 共享 crate 变更的多系统影响面检查

Documentation Map

四个维度组织文档入口

从项目概览到系统指南,每个维度提供不同粒度的信息,按需跳转即可。

项目介绍

仓库定位、系统关系、硬件支持矩阵和读者入口。

参考资料

仓库目录结构、组件清单、构建系统和依赖图谱。

设计与实现

分层架构原理、构建链路细节和 Guest 配置方法。

系统指南

按 ArceOS / StarryOS / Axvisor 分别说明目录、命令和验证方式。

Getting Started

三步进入开发:理解 → 构建 → 验证

先建立分层心智模型,再跑通 QEMU 构建运行,最后深入具体系统的开发与验证流程。

01

理解仓库分层

阅读 overview 与 repo 文档,建立组件层、系统层和平台层的心智模型。

docs/introduction/overview项目概览
02

跑通 QEMU 构建

选择目标系统,用 xtask 一条命令完成编译、镜像生成和虚拟平台运行。

cargo xtask arceos qemu --package ax-helloworld --target riscv64gc-unknown-none-elf快速开始
03

参与开发与验证

进入具体系统指南,了解目录约定、构建命令和验证策略后开始贡献。

cargo xtask clippy && cargo xtask test架构与验证