Summary
This is the first public release of rustos.
rustos is a minimal, educational, and maintainable operating system project in Rust. The project is designed to help developers learn modern operating system fundamentals through a small real codebase, explicit subsystem boundaries, and reproducible workflows.
This release marks the project as publicly launch-ready on GitHub while keeping expectations clear: rustos is still early-stage, experimental, and educational.
Highlights
- minimal bootable Rust UEFI kernel foundation
- direct QEMU workflow
- bounded QEMU smoke testing
- controlled breakpoint exception smoke test
- real UEFI memory-map discovery
- minimal paging direction boundary
- minimal Unix-like boundary starter for:
- syscalls
- tasks
- descriptor-like handles
- consolidated contributor-facing documentation
- Rust-native
xtaskworkflow for local validation
What Works Today
- building the workspace with the documented local workflow
- running formatting, linting, and host-side unit tests through
xtask - booting the kernel in QEMU
- validating the normal boot path with a bounded QEMU smoke test
- validating the controlled breakpoint path with a bounded exception smoke test
- studying host-testable pure logic in
nucleus/ - studying firmware-facing runtime code in
kernel/
Validation
The project currently validates through:
cargo run -p xtask -- checkcargo run -p xtask -- fmtcargo run -p xtask -- lintcargo run -p xtask -- test-unitcargo run -p xtask -- test-qemucargo run -p xtask -- test-exception
CI is aligned with the same workflow shape.
Known Limitations
This release is intentionally minimal.
It does not provide:
- user-mode execution
- a real syscall ABI
- multitasking or scheduling
- a filesystem implementation
- networking
- descriptor tables
- heap allocation
- page-table management
- POSIX compatibility
It should be treated as an educational foundation, not a production operating system.
Toolchain Notes
rustos currently uses a pinned nightly Rust toolchain.
Nightly is required because the current real x86_64 breakpoint-handler path depends on the unstable x86-interrupt ABI. The project keeps the nightly-only surface as small as practical.
Documentation
Start with:
README.mddocs/README.mddocs/architecture.mddocs/roadmap.mddocs/testing.md
Next Direction
The next work will continue to focus on:
- keeping the project minimal and teachable
- tightening documentation and contributor experience
- growing the Unix-like boundary carefully
- avoiding premature subsystem complexity
Thanks
Thanks for checking out rustos.
Contributions, questions, and focused feedback are welcome.