MMUKO Boot: un kernel mínimo arrancable en QEMU

Fuentes: MMUKO Boot: a freestanding QEMU-bootable kernel scaffold

MMUKO Boot es un proyecto de código abierto que convierte la idea de MMUKO en un pequeño kernel arrancable mediante QEMU. A diferencia del programa alojado descrito en el 'gist' original (que utiliza printf, malloc, calloc y el runtime del sistema operativo), esta versión está escrita como código 'freestanding', pensado para ejecutarse desde el arranque sin las librerías del sistema.

El proyecto ofrece dos rutas de arranque. La primera es de tipo directo BIOS: boot16.s actúa como sector de arranque de 512 bytes, carga kernel-flat.bin desde el disco en la dirección de memoria 0x10000, activa el modo protegido de 32 bits y salta a kernel-entry.s, que a su vez invoca kernel_main() en kernel.c. La segunda utiliza GRUB Multiboot como cargador; en este caso GRUB inicia el núcleo en modo protegido, inicializa la salida de pantalla y serie, y ejecuta mmuko_boot() seguido de mmuko_program_main().

La compilación se realiza con herramientas habituales en entornos MinGW, Linux Debian/Ubuntu o WSL/MSYS2: nasm, un compilador cruzado i686-elf-gcc, grub-mkrescue, xorriso y qemu-system-i386. Para experimentación rápida en Windows se incluye build-direct.ps1, que genera una imagen de disco crudo arrancable directamente en QEMU.

El programa MMUKO de ejemplo se define en la función mmuko_program_main() dentro de kernel.c y solo se ejecuta si mmuko_boot() devuelve BOOT_OK. Según la documentación, futuras iteraciones podrían sustituir esa función por un cargador que lea un payload independiente desde disco, aunque por ahora integrarla en el kernel es la forma más sencilla de experimentar con QEMU antes de añadir complejidad.