My toy kernel written in Rust. This is my second attempt at writing a kernel, the first one is here.
Progress:
- Serial output
- GDT
- IDT
- Buddy allocator
- Slab allocator
- Paging
- User mode
- Tasks & context switch
- Cooperative multi-tasking
- Preemptive multi-tasking
- Inactive tasks and wakeup
- ELF loading
- Syscalls
- Interrupt handling
- GUI
- Wallpaper
- Image rendering
- Text rendering
- Input system
- Window management
- Hardware drivers
- Security
Elytra OS features a simple build system powered by xtask. Cargo can automatically download Rust nightly and the required dependencies.
Run cargo kernel for a list of subcommands.
The ElytraOS build system
Commands:
build Build the kernel without running it
run Build and run the kernel in QEMU
fmt Run cargo fmt
clippy Run cargo clippy
help Print this message or the help of the given subcommand(s)
To run the kernel in QEMU, use cargo kernel run.
Build and run the kernel in QEMU
Options:
--release Build the kernel with optimizations
--wsl Use WSL to run QEMU
--gdb Listen and wait for a GDB connection in QEMU
--nographic Disable graphical output in QEMU
--kvm KVM acceleration (need root privileges)
Tested version: rustc 1.101.0-nightly (12433c307 2026-10-24).

