What is Lych?
Lych is a hobby operating system for ARM64, written in Rust. It started as a learning project to understand how operating systems work at the lowest level — from the first instruction after reset to a functioning kernel with memory management, exception handling, and eventually scheduling and userspace.
The name "Lych" comes from the Old English līc, meaning "body" or "corpse" — a reference to the bare metal nature of kernel development, where you build the body of the system from nothing.
Philosophy
- Learn by building. Every component is written from scratch to understand the underlying mechanics.
- Small, documented steps. Development proceeds in phases. Each phase is implemented, tested, and documented before the next begins.
- Rust for safety. Using Rust's type system and ownership model to catch memory and concurrency bugs at compile time, even in kernel code.
- ARM64 first. Targeting the ARMv8-A architecture (AArch64) on QEMU's
virt machine, with real hardware as a future goal.
- No false claims. This website reflects only what exists in the repository.
Current State
The kernel boots on QEMU virt with the EL1 MMU enabled and an identity mapping of RAM. It includes a PL011 UART driver, exception vector handling with diagnostics, a bitmap-backed physical frame allocator, a four-level page table hierarchy, and a reserved heap region. The ARM Generic Timer counter and frequency registers are readable.
Work is currently focused on Phase 3: timer interrupts, the GICv3 interrupt controller, and basic scheduling primitives. See the roadmap for the full picture.
Resources
License
Lych is released under the MIT License. You are free to use, modify, and distribute the code with attribution.