ARM64 Rust Early Development

Lych — A Rust OS for ARM64

Building an operating system from the ground up with Rust and ARM64. Exploring the fundamentals of memory management, interrupts, and kernel design.

qemu-system-aarch64 -M virt -cpu cortex-a72 -kernel kernel

Project Overview

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.

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.