finds.dev← search

// the find

andrewrk/HellOS

★ 339 · Zig · updated Jan 2023

"hello world" x86 kernel example

A minimal i386 'hello world' kernel written in Zig, built by Andrew Kelley (Zig's creator) as a freestanding-target demo. It's for people curious about bare-metal Zig or how to get a Zig program running without an OS underneath it, not for anyone building an actual kernel.

It's a clean, minimal reference for Zig's freestanding target and linker script usage — you can read the whole thing (one .zig file, one linker.ld) in a few minutes and understand exactly what's happening. Coming from the language's own creator, the target flags and linker setup are a reliable example of how Zig expects you to configure a bare-metal build. The qemu testing instructions mean you can verify it boots in under a minute with no real hardware.

It stops at printing to the VGA buffer — no interrupts, no memory management, no multiboot header beyond the bare minimum, so it's not a skeleton you build a kernel on top of, just a proof it compiles and boots. There's no build.zig; the README tells you to invoke zig build-exe directly, which will likely break as Zig's build system and target triples evolve. No CI, no tests, and no commits since January 2023, so there's no guarantee it still builds against current Zig without patching flags yourself.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →