Rustalis is an open-source, Rust-first operating-system project for building a real x86_64 OS from the boot path upward.
Experimental systems software. Rustalis is not production-ready and must not be treated as a security boundary.
Rustalis aims to provide a complete operating-system stack:
Firmware / Bootloader
↓
Rust Kernel
↓
Memory + Interrupts
↓
Processes + Scheduler
↓
Syscalls
↓
User Space + Shell
↓
VFS + Storage + Drivers
↓
Networking + Security + SMP
↓
Developer Tools + Package Manager
The project is deliberately incremental. A subsystem is only marked complete after a real implementation and an appropriate verification path exist.
- Cargo workspace
-
no_stdkernel - x86_64 target
- Bootloader integration
- Serial logging and panic reporting
- Boot memory-map summary
- QEMU launcher
- Open-source license and contribution documentation
- x86_64 architecture boundary
- Interrupt subsystem boundary
- GDT / TSS
- IDT
- Exception handlers
- Double-fault stack
- Physical frame allocator
- Page-table abstraction
- Virtual memory manager
- Page-fault handling
- Kernel heap
- APIC and timers
- Threads and context switching
- Preemptive scheduler
- Syscall ABI
- Processes and isolation
- Init process
- Core utilities
-
ferroshshell - File descriptors
- Pipes and redirection
- VFS
- Initial filesystem
- Block-device layer
- Device-driver framework
- Ethernet
- ARP
- IPv4
- ICMP
- UDP
- TCP
- Sockets
- DHCP / DNS / IPv6
- UID/GID permissions
- Capability model
- Kernel/user isolation
- Syscall validation
- W^X
- Stack protection
- ASLR where practical
- SMP / per-CPU state
- Package manager (
fpm) - Developer tools
- Automated QEMU integration tests
- Reproducible release images
- Optional graphical compositor
- Rust nightly
- Cargo
- QEMU x86_64
- Git
The repository contains rust-toolchain.toml, so Rustup can install the required toolchain automatically.
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspacecargo buildUEFI:
cargo run -- uefiBIOS:
cargo run -- biosOn Windows PowerShell:
cargo run -- uefiFor common toolchain, QEMU, firmware, and boot troubleshooting, see docs/troubleshooting.md.
Rustalis is intended to be a genuine open-source collaboration project. Start with the issue tracker before implementing a large subsystem.
- Read CONTRIBUTING.md.
- Read docs/architecture.md.
- Pick an open issue or propose a new one.
- Create a branch.
- Implement the smallest coherent subsystem.
- Add tests and safety documentation.
- Run formatting, check, clippy, and tests.
- Add QEMU verification when relevant.
- Open a pull request using the repository template.
Good first contributions include documentation, tests, architecture diagrams, CI improvements, small kernel abstractions, and carefully scoped subsystem work.
.
├── kernel/
│ └── src/
│ ├── arch/
│ │ └── x86_64/
│ ├── memory/
│ ├── logger.rs
│ └── main.rs
├── docs/
├── scripts/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ └── workflows/
└── src/
└── main.rs
- Rust first; assembly only where the architecture requires it.
no_stdkernel.- Minimize and document
unsafe. - Never trust user-space memory.
- Prefer explicit
Result/Optionover unchecked failure. - No fake implementations or fake verification.
- Preserve working functionality when adding subsystems.
- Document architectural decisions.
- Verify through unit tests, integration tests, and QEMU where appropriate.
The GitHub issue tracker is the authoritative implementation backlog. Major kernel, memory, scheduler, syscall, storage, networking, security, SMP, user-space, testing, and release milestones are tracked there.
Rustalis is dual-licensed under MIT or Apache-2.0.
Please use the issue templates for bugs and subsystem proposals. Follow the Code of Conduct and use SECURITY.md for security reports.
Rustalis is built in the open. If you want to learn operating-system engineering by contributing real code, pick an issue and build with us.