All projectsPROJECT/10
BEDROCK
A Bare-Metal OS Kernel in Rust
A no_std x86_64 operating system written from scratch in Rust: no Linux underneath, no libc, just a bootloader and hardware. Boots to a graphical desktop with a window manager, a preemptive scheduler, and its own filesystem.
View SourceJune 2026
BEDROCK · SchematicFIG/10
The Problem
Most 'OS' projects are Linux distros or userspace simulations. BEDROCK is the real thing: a kernel that talks to the hardware directly, with nothing between it and the CPU. It boots on QEMU (and bare metal) into a working GUI desktop you can click around.
How It Works
BIOS Bootloader→
Kernel Core (GDT/IDT/TSS + exceptions)→
Frame Allocator + Virtual Memory Manager→
Preemptive Scheduler (context switch)→
Framebuffer Compositor (dirty-rect)→
Window Manager (z-order + hit-test)→
PS/2 Drivers + ATA PIO Disk→
SimpleFS (LRU block cache)→
Terminal / File Editor / Stats apps
Key Features
- no_std, no libc, no host OS: a genuine bare-metal x86_64 kernel booted straight from a BIOS bootloader
- Two-stage physical frame allocator plus a virtual memory manager, benchmarked at ~1.34M allocations/sec
- Preemptive round-robin scheduler with hand-written context switching (~269 cycles per switch)
- Framebuffer compositor with dirty-rect redraws (~47x faster) feeding a window manager with z-order and hit-testing
- PS/2 keyboard and mouse via IRQ handlers, plus an ATA PIO driver for real disk access
- SimpleFS filesystem with LRU block caching (~2,400x read speedup), persistent across independent boots
- Ships with real apps: a terminal (ls, cat, write, rm, mv, df), a combined file browser + text editor, and a live performance-stats window
Technical Highlights
- Hand-written kernel from the ground up: custom GDT/IDT/TSS, a two-stage frame allocator and virtual memory manager, and a preemptive round-robin scheduler with hand-rolled context switching at ~269 cycles per switch.
- Framebuffer graphics stack with dirty-rect compositing (~47x faster than naive full redraws) driving a z-ordered window manager, PS/2 keyboard and mouse, and a SimpleFS filesystem with LRU block caching (~2,400x read speedup).