Skip to content

xor-bits/hiillos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

977 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

test License: AGPL v3

hiillos

hiillos 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:

  • 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

Running in QEMU

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 \
    # disable initfs compression for faster builds
    -Draw_initfs

Building an IMG

zig build # generates zig-out/hiillos.img

Stuff included here

Stuff not included here

IPC performance

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)

Gallery

image image image image

About

operating system and its own microkernel in pure Zig

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages