Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

minix.rs

MINIX 3, in Rust, for the 64-bit era

A 64-bit-only reimplementation of MINIX 3 in Rust, preserving the original ABI.

minix.rs is a learning operating system built around a greenfield Rust microkernel. It keeps MINIX 3’s architecture — message-passing IPC, user-space servers, user-space drivers, and a fine-grained privilege model — while dropping 32-bit legacy and targeting modern 64-bit platforms under QEMU.

Highlights

  • Microkernel in Rust (no_std, no_main) — only IPC, scheduling, interrupt dispatch, and memory protection live in the kernel.
  • Message passing — six IPC primitives (SEND, RECEIVE, SENDREC, NOTIFY, SENDNB, SENDA).
  • User-space servers — PM, VFS, VM, RS, DS, SCHED run as separate processes.
  • User-space drivers — VirtIO (MMIO on aarch64, PCI on x86_64).
  • aarch64 first (Apple Silicon / QEMU virt), x86_64 secondary.
  • ABI-preserving — message layout, endpoints, and call numbers track MINIX 3.

About this book

This book is the canonical, source-derived documentation for minix.rs. It is being written page by page from the actual kernel and server code.

Note: The repository’s docs/ directory holds the original hand-written bootstrap notes used to plan the project. Those are historical reference material and will be retired as the corresponding source-driven pages land here.