A pure Rust, from-scratch bare-metal operating system kernel for x86_64 (UEFI)
Kernel built completely from scratch with zero external crates.
Made by a 15-year-old developer learning low-level systems programming.
- Custom UEFI bootloader
- Framebuffer graphics rendering
- Global Descriptor Table (GDT)
- Interrupt Descriptor Table (IDT)
- PS/2 Keyboard driver
- Basic interrupt handling
- Custom print system
- Screen color manipulation
- Early multiprocessor experiments (APIC / IOAPIC)
AetherOS is a hobby operating system kernel written entirely in Rust without using any external crates.
The goal is to understand how operating systems work at the lowest level by implementing everything from scratch.
This project is still in early development. Currently focusing on:
- Improving interrupt handling
- Multiprocessor support
- Better memory management
- Rust (nightly recommended)
x86_64-unknown-nonetargetx86_64-unknown-uefitarget- QEMU
objcopy(from binutils)
# 1. Build the kernel
rustc --target x86_64-unknown-none \
-C opt-level=3 \
-C panic=abort \
-C code-model=kernel \
-C relocation-model=static \
-C target-feature=-sse,-sse2,-avx \
-C link-arg=-Tlinker.ld \
kernel.rs -o kernel.elf
objcopy -O binary kernel.elf kernel.bin
# 2. Build the UEFI bootloader
cargo build --target x86_64-unknown-uefi
# 3. Create ESP structure
mkdir -p esp/EFI/BOOT
cp target/x86_64-unknown-uefi/debug/AetherOS.efi esp/EFI/BOOT/BOOTX64.EFI