It handles interrupts/traps and targets the aarch64 QEMU virt platform. It also features a HAL.
In order to be run on bare metal it's needing another bootloader which the documentation only barely mentions.
More on the naming: why to call it kernel?
Even saying it "runs" on QEMU is a far stretch: it "halts", that's all it does. :)
(it does run on hardware as per other commenters in this HN convo)
As it's multiboot, it should likely run on v86 too. It's always fun to have an in browser demo of a little OS like this.
https://wiki.osdev.org/Zig_Bare_Bones
Yes, just tried it.
> It boots on an x86 (i386) machine via the Multiboot 1 protocol
Yes, it does need a compliant bootloader on virtual or physical hardware.
Zig is supposed to be an improvement upon C, so doing C things with it seems reasonable.
Kind of neat that there's no need for a separate assembly file although there is inline assembly. Might get better (or worse) syntax support for separate assembly files? But it doesn't make a big difference until there's more features that need it (interrupts, threads/processes and maintaining their stacks, syscalls, starting other processors, etc)
But also, I can see some amount of weird hooray optimism in this project, like: totally confusing claim that the thing is bare metal when it's still being run under an emulator; also, calling it a kernel is a huge overstatement
Also baremetal where the metal is virtual. LLVM uses this term for when an OS isn't available https://github.com/llvm/llvm-project/tree/main/libc/src/stdl...