Skip to content

Kernel — Rumpk

v0.9 Complete

Rumpk is the Nexus sovereign unikernel. At 280KB, it is one of the smallest production kernels ever built. It runs in a single address space, uses event-driven cooperative scheduling, and enforces capability-based security at every level.

Design Philosophy

The QNX Axiom: A crashed driver must never crash the system. Rumpk achieves this through isolated fibers, ION Ring IPC, and automatic restart. A driver (NPL) that faults is killed and restarted within 2ms. The kernel never panics.

The Silence Doctrine: The kernel does not log by default. It does not print. It does not notify unless explicitly asked. Silence is the default state of a healthy system.

Key Numbers

MetricValue
Kernel size280KB (v0.9 unikernel)
Core target<2KB (12 syscalls + 1 meta-slot)
SysTable size240 bytes
Address spaceSingle (no userland/kernel split in unikernel mode)
SMP modelDragonflyBSD LWKT message-passing
Supported architecturesRISC-V 64, ARM64, x86_64

Core Components

Languages

The kernel is dual-language by design:

  • Nim handles kernel logic, metaprogramming, the scheduler, and all high-level control flow. Uses ARC for deterministic memory management.
  • Zig handles the hardware abstraction layer, VirtIO drivers, interrupt vectors, MMU setup, and all bare-metal interfaces.

The boundary is strict: Zig talks to hardware. Nim talks to everything else. They meet at the SysTable — a fixed ABI at a known physical address.

Driver Model — NPLs

Drivers run as NPL (Nip Library) fibers — isolated execution contexts with their own capability spaces. An NPL communicates with the kernel through ION Rings and 9P-style message passing.

If an NPL crashes:

  1. The kernel detects the fault
  2. The fiber is killed
  3. A new instance is spawned from the signed binary
  4. State is recovered from the ProvChain checkpoint
  5. The system continues — no reboot, no panic

This is the Blink Recovery model. The system blinks; it never dies.

Released under the CC0 License.