amoeba
A small x86-64 microkernel written in Rust, and the user-space programs that run on it.
The kernel supplies mechanism — the syscall gate, IPC, the service registry, memory mapping — and never policy: drivers and resource managers are ordinary user-space servers that the kernel loads as boot modules and starts.
Nothing here is inherited: the tree is one Cargo workspace of sixteen crates, and the boot path is Limine handing over to a kernel that brings up its own frames, pages, tasks and servers.
Build it
nix run .#run # build the ISO and boot it in QEMU
nix run .#iso # just write target/amoeba-amd64.iso
nix run .#check # format, clippy, tests, bare-metal builds
The flake at the root is the whole environment: toolchain, nu, QEMU, xorriso and
Limine. nix develop drops you into it interactively.
Inside
kernel/ is the microkernel as a library; amd64/ is its x86-64 backend and the
crate that builds the binary. Around them sit the servers that make the machine
usable — memory, clock, keyboard, display, serial, shell — each a normal program
linked against sdk/, each a workspace member.
Read it
- Timeline — every check-in, newest first
- Browse — the tree as it stands
- Tickets — what is planned, what is broken
- Wiki — notes that outlive a single check-in
Get a copy
fossil clone https://amoeba-kernel.org amoeba.fossil
fossil open amoeba.fossil
The same history is exported read-only to Git at codeberg.org/amoeba-kernel/amoeba.