This is an experimental AMD64 operating system featuring a Rust no_std kernel,
a Rust UEFI bootloader, and a minimal C userspace.
The tree boots through UEFI into a higher-half kernel, initializes memory management (PMM/Slab), interrupts, scheduling, VFS, and syscall handling. This system runs ring 3 ELF processes and starts a userspace shell from an in-memory filesystem.
This project uses a syscall dispatch system generated by custom Python tooling. While many Linux-numbered syscalls are implemented, this ABI is evolving toward broader compatibility for userspace applications.
- Bootloader: Rust UEFI loader handling memory map acquisition and PML4 paging setup.
- Kernel: AMD64 higher-half kernel with a preemptive round-robin scheduler.
- Memory: Physical Memory Manager (PMM), recursive page tables, and a Slab allocator for kernel heap.
- Filesystem: VFS layer with support for RamFS, pipe-backed descriptors, and device nodes.
- Hardware: IDT/GDT, PIT/RTC, PS/2 Keyboard, and PSF-font framebuffer console.
- Userspace: Minimal libc shim, shell, and syscall regression tests.
- Rust nightly (with
llvm-tools-preview) clang,lld, andgcc-multilib- QEMU and OVMF firmware
mtoolsanddosfstools
./bootstrap.sh # Install and setup dependencies
cargo run -p xtask -- build # Build the OS
cargo run -p xtask -- run # Boot in QEMUThis build produces a bootable GPT image at build/coreos.img.
This is NOT a production ready / daily-driver OS (if you couldn't tell already), so don't expect standard programs to run just yet without major modifications to many subsystems.
However, if you would prefer to see standard programs being ran or are just interested in the making of this OS, feel free to try to follow the steps above.
If you would like to report a bug in any of the subsystems, feel free to open an issue.
abi/ Syscall definitions and auto-generated headers
assets/ System fonts and static resources
bootloader/ UEFI bootloader (Rust)
kernel/ 64-bit Kernel (Rust)
user/ Userspace programs and libc shim (C)
tools/ Build and code-generation scripts