A simple hobby operating system. It can run as i386 or x86_64.

gccldnasmobjcopyarranlibmakefor the vendored musl build- ImageMagick
magick genisoimagefor ISO targetsmesonninjaqemu-system-i386qemu-system-x86_64
Configure once:
meson setup buildninja -C build run-i386Run with networking:
ninja -C build run-net-i386Build and boot the 32-bit ISO:
ninja -C build iso-i386
ninja -C build run-iso-i386Test the same ISO as a Rufus/DD USB image in QEMU:
ninja -C build run-iso-usb-i386Build a 32-bit raw disk image explicitly:
ninja -C build usb-i386ninja -C build run-x86_64Run with networking:
ninja -C build run-x86_64-netBuild and boot the 64-bit ISO:
ninja -C build iso-x86_64
ninja -C build run-iso-x86_64Test the same ISO as a Rufus/DD USB image in QEMU:
ninja -C build run-iso-usb-x86_64Build a 64-bit raw disk image explicitly:
ninja -C build usb-x86_64The ISO targets are hybrid images. They still boot as CD-ROM images in a VM,
but the same .iso can also be written directly to a USB drive with Rufus or
dd. If Rufus asks for write mode, choose DD Image mode. CD-ROM boot is
read-only and uses a volatile RAM filesystem overlay;
USB boot through Rufus/DD exposes the embedded NarcOs disk image as a writable
partition, so filesystem writes persist on the USB drive.
Current boot support is BIOS/legacy or UEFI-CSM. UEFI-only boot requires an EFI bootloader and is not supported by this image yet.
ninja -C build clean-generated
ninja -C build clean