xor-bits/hiillos
operating system and its own microkernel in pure Zig
refsef6a688fbeb294e36c9088286ebefc1b27d7ab71.tar.gzhiillos is an operating system with its own microkernel all written in pure Zig
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:
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=10
zig build # generates the os.iso in zig-out/os.iso
Approximate synchronous IPC performance in a call + replyRecv loop:
// server
while (true) {
msg = try rx.replyRecv(msg);
}
// client
while (true) {
try tx.call(.{});
}
| Bare metal | QEMU+KVM | |
|---|---|---|
| Intel i7-8750H | ? | 481ns (2 078 811Hz) |
| Ryzen 9 5950X | ? | 342ns (2 915 712Hz) |