// the find
skyzh/core-os-riscv
🖥️ An xv6-like operating system on RISC-V with multi-core support. Documentation available online.
A Rust reimplementation of xv6 targeting RISC-V, built as a learning project by one developer. It covers the core xv6 subsystems — virtual memory, process scheduling with multi-core support, a basic filesystem, and syscalls — running on QEMU. Aimed at OS students who want to see xv6 concepts in Rust rather than C.
Multi-core scheduling is actually implemented and tested, which most hobby OS projects skip. The code is split into coherent modules (process, file, trap, virtio) that map closely to xv6's structure, making it useful as a reference alongside the original. Auto-generated API docs are deployed and kept in sync via CI, which is more discipline than most projects at this star count show. The Rust-native spinlock and sleeplock implementations are worth reading if you're studying how xv6's locking model translates out of C.
Abandoned since mid-2021 and the author says so explicitly in the README — the async scheduling rewrite was never started, several open issues acknowledge kernel panics and known security holes. The build setup is fragile: macOS requires a manual Homebrew tap for RISC-V tools that may no longer work cleanly, and Ubuntu instructions just say 'use Linuxbrew'. Large swaths of the roadmap are unchecked: no pipe support, no copyin/copyout, no shell, no userspace allocator. There's a cpp file (fs/fs.cpp) sitting in a Rust project with no explanation.