跳到主要内容

系统集成

rdrive + rdif 驱动框架是 ArceOS、StarryOS、Axvisor 共享的宿主设备能力来源。三个系统通过各自的 OS Glue 和领域 service 接入驱动框架,但不复制设备状态或绕过 rdrive registry。

集成模型

ArceOS 集成

ArceOS 的 ax-runtime 是驱动框架的主要消费者:

集成点职责
ax-runtime init_later调用 rdrive::init()register_append()probe_pre_kernel()
ax-runtime devices init调用 rdrive::probe_all(false),初始化领域 service
ax-runtime IRQ将 platform IRQ 注册能力适配为 ax_net::EthernetIrqRegistrar
ax-fs / ax-fs-ng通过 block volume service 消费块设备
ax-net通过 net interface service 消费网卡

ax-runtime 不再拆 AllDevices.block/net/display/input/vsock 后逐个传给模块,只触发 probe 和领域 service 初始化。

StarryOS 集成

StarryOS 复用 ArceOS 的 ax-driver glue 和 rdrive registry,上层通过 Linux-like driver layer 适配:

集成点职责
starry-kernel 启动复用 ax-runtime 的 probe 流程
Linux-like driver layerrdif-* 能力适配为 Linux 驱动模型(如 /dev/kpu、USBFS)
Starry USBFS host 管理允许直接使用 rdrive::get_* 查询 USB 设备

StarryOS 的 ext4 rootfs 启动、net/DHCP、display/input 都通过领域 service 消费驱动能力。

Axvisor 集成

Axvisor 作为 hypervisor,使用驱动框架管理宿主物理设备:

集成点职责
Axvisor HAL查询 rdif-intc 设置 GIC backend
Axvisor GIC backend允许直接使用 rdrive::get_* 查询中断控制器
guest emulated devicesaxdevice / axdevice_base 提供 guest 设备模型,不参与宿主 probe

axdeviceaxdevice_base 不纳入驱动框架范围。它们作为 Axvisor / axvm 的 guest emulated device model,不作为 FS、NET、display、input、vsock 的设备来源。

自定义平台接入

ax-driver 不再提供面向旧平台私有路径的自动注册 feature,也不再通过 feature 选择平台探测路径。仓库内置平台路径默认使用 FDT/ACPI/PCI probe 注册设备;外部平台应优先提供可发现的设备描述,缺少固件描述时再使用 rdrive::Platform::Static / PlatformSource::StaticProbeKind::Static 做显式设备注册。完整平台侧接入方式见设备发现