mmuko-boot.c from the gist is a normal hosted C program. It uses printf, malloc, calloc, and the host OS C runtime. QEMU boots firmware, boot sectors, kernels, or disk images. At boot time there is no hosted C runtime, so MMUKO needs to run as freestanding code. The kernel deliberately halts at the end, so QEMU will keep running until you stop it with Ctrl+C. You still need an i686-elf-gcc ...