The plan is for the kernel to be just a scheduler, an IPC relay, a physical memory manager and a virtual memory manager.
The system design steals borrows ideas from:
- Zircon: the reference counted capability model
- seL4: synchronous IPC endpoints and asynchronous signals
- RedoxOS: optional filesystem schema (URI protocol here) to reference different services, like fs:///etc/hosts, initfs:///sbin/init, tcp://10.0.0.1:80 or https://archlinux.org
zig build run # thats it
# read 'Project-Specific Options' from `zig build --help` for more options
zig build run -Dtest=true # include custom unit test runner
# development cli
zig build run --prominent-compile-errors --summary none \
# one cpu makes debugging more consistent
-Dcpus=1 \
# run the GDB server silently, useful for debugging if the system freezes
-Dgdb=true \
# compile faster and with debug info
-Doptimize=Debug \
# compile root specifically with higher optimization to speed up initfs decompression
-Doptimize_root=ReleaseSafe \
# less initfs compression for faster builds
-Dzst_l=10zig build # generates zig-out/hiillos.img- kernel: src/kernel
- kernel/user interface: src/abi
- root process: src/userspace/root
Approximate synchronous IPC performance in a call + replyRecv loop:
// server
while (true) {
msg = try rx.replyRecv(msg);
}
// client
while (true) {
try tx.call(.{});
}Full RTT: ~4181 cycles
| Bare metal | QEMU+KVM | |
|---|---|---|
| Intel i7-8750H | ? | 481ns (2 078 811Hz) |
| Ryzen 9 5950X | ? | 342ns (2 915 712Hz) |



