zuzu
zuzu is a lightweight microkernel written from scratch in C and ARM assembly. It is named after zuzu, the Scottish Fold cat.
As a microkernel, zuzu provides only the most essential services such as memory management, inter-process communication, and scheduling. Higher-level services such as device drivers, filesystems, and network stacks are implemented in userspace. This design allows for better modularity, security, and reliability. zuzu prioritizes use in embedded systems, IoT devices, and other resource-constrained environments.
Components
zuzu ships as two independently versioned parts. The kernel defines and enforces the syscall ABI; the system is a consumer of it and floats on any kernel of a compatible major.
| Component | Scope | Version |
|---|---|---|
| zuzu | Kernel: memory, scheduling, IPC, IRQ forwarding, ABI | Loaf (1.0) |
| zuzuOS | Kernel + userspace: drivers, servers, runtime, shell | 0.5.0-beta |
Status
zuzu (kernel)
| Stage | Status |
|---|---|
| Build, boot, UART, PMM, DTB, heap, MMU/VMM, GIC, scheduling | done |
| Process lifecycle, user mode, syscalls, synchronous IPC, notification objects | done |
| IRQ forwarding, userspace MMIO mapping, ELF loader, shared memory | done |
| HAL solidification, DMA pinning, kernel sync primitives | planned |
| Shared libraries (.zxf/.zcl), multicore primitives | planned |
| Ports to new architectures, full SMP | planned |
zuzuOS (userspace)
| Stage | Status |
|---|---|
| Core servers: sysd, devmgr, pl011drv | done |
| Read-only storage stack (fat32d, zusd, fbox) | done |
| NIC driver (LAN9118, userspace) | done |
| Network stack (ARP, IPv4, ICMP, UDP, TCP) | next |
| Sherbet release: POSIX shim, thesis demos | planned |
| Raspberry Pi 4 support, cellular connectivity | planned |
| Audio, graphics, optimizations | planned |
Quick start
git clone https://github.com/kagantmr/zuzu cd zuzu make make run
Requires arm-none-eabi-gcc, qemu-system-arm, and cpio. Tested on QEMU
10.1.2.
Where to start reading
New here? Architecture gives the whole picture in one page. For the kernel interface, read the Syscall ABI and its table. The roadmap tracks what is landing next.
zuzu is a solo thesis project, and reviewers and contributors are welcome. The kernel ABI is frozen at Loaf, so userspace work has a stable surface to build against. Start with an issue on GitHub.