A component-oriented macrokernel derived from ArceOS.
First prize in CSCC OS Competition 2025.
user ABI -> xkernel::syscall -> xkernel services -> xmodules / xcore
.
├── rust-toolchain.toml // Toolchain configuration
├── docs // Documentations
├── Makefile // Build scripts
├── Cargo.toml // Rust workspace configuration and dependencies
├── scripts // Build and QEMU helper scripts
├── configs // Build and platform configurations
├── crates // Lower-level and general-purpose crates
├── drivers // Driver interfaces and implementations
├── xcore // ArceOS-derived low-level modules
├── starry // Thin runtime and image integration crate
├── xkernel // Kernel services and syscall ABI
│ └── src/syscall // Linux syscall translation and dispatch
├── xmodules // Flat collection of reusable x* components
└── xtest // Standalone host/guest test framework (submodule)Run Alpine-Linux:
make rv
make laPort to Vision-Five2:
make vf2StarryX 是从组件化操作系统 ArceOS 演进而来的宏内核实现。当前代码由底层 xcore 组件集、扁平组织的可复用 xmodules 和承载 Linux ABI 的 xkernel 组成。xmodules 既包含内核机制组件,也包含 StarryX 自有的基础接口组件;它是代码归属边界,不代表单一的宏内核层级。学习/开发日志;决赛文档;决赛PPT
截至目前,StarryX共实现约200项系统调用,包括进程管理、文件系统、内存管理、网络等各个模块的系统调用,能够运行大量LTP测例,并能够运行Redis、Git、Gcc等Linux应用。
StarryX的各个子模块实现均较为完善,完成情况如下:
| 子模块 | 完成情况 |
|---|---|
| 文件系统 | 类Linux 的 VFS设计 丰富的抽象文件支持和完善的伪文件系统实现 支持EXT4与FAT文件系统 模块解耦的页缓存设计 |
| 内存管理 | 懒分配、写时复制 模块解耦的用户空间访问 模块解耦的文件映射管理 |
| 进程管理 | 多核场景下的负载均衡 多种调度方式支持 完整实现的System V进程通信 模块解耦的进程管理 |
| 网络模块 | 支持TCP和UDP套接字 |
| 信号系统 | 模块解耦的信号系统 可被信号中断的系统调用 |
Tri-licensed, matching the ArceOS upstream. Pick whichever fits:
