nek: un pequeño kernel x86 que ejecuta un emulador de NES sin sistema operativo

Fuentes: nek: a minimal x86 kernel that runs a NES emulator without an OS

nek, siglas de Nintendo Entertainment Kernel, es un kernel x86 extremadamente minimalista cuyo único propósito es ejecutar un emulador de la consola Nintendo Entertainment System (NES). A diferencia de un sistema operativo convencional, carece de paginación, espacio de usuario y cualquier mecanismo de protección: un único programa se compila junto al kernel y se ejecuta de forma embebida. El proyecto se construye con make y precisa un compilador cruzado i686 (GCC y nasm) capaz de generar código en C y ensamblador. La compilación se invoca con PATH=/path/to/crosscompiler/bin:$PATH make kernel program=emulador y produce el binario kernel.elf en la carpeta bin. Adicionalmente, el repositorio incluye tres programas funcionales que comparten la misma arquitectura: mandelbrot, que renderiza un fractal explorable; paleta, que muestra la paleta de colores disponible en la NES; y corazon, una animación de un corazón generada con funciones matemáticas. Todos se compilan indicando su ruta, por ejemplo make program=examples/mandelbrot. Entre los componentes opcionales se encuentran GRUB2 para generar imágenes de CD arrancables, QEMU para emular el entorno, Doxygen y Graphviz para producir documentación, y grub-mkrescue para crear ficheros .iso. El arranque puede configurarse copiando kernel.elf a /boot y añadiendo una entrada multiboot en /etc/grub.d/40_custom. La estructura del código separa el núcleo genérico (kernel/), la capa dependiente de la arquitectura (kernel/arch/x86), el sistema de archivos, que actualmente solo implementa una capa VFS, y la carpeta program/, donde reside el programa principal. Incluye también la biblioteca matemática fdlibm, herramientas para generar el initrd y la fuente de la consola, y un informe universitario en español que documenta el desarrollo.