Un equipo de Fable 5 ha construido nanokrnl, un núcleo NT escrito en Rust con forma de Windows real, y nanox, un emulador x86-64 a medida en Rust compilado a un único módulo WebAssembly de 65 KB, capaz de ejecutar ese núcleo directamente en el navegador y llegar a un símbolo C:. ¿Por qué importa? Porque demuestra que un sistema operativo de 64 bits completo —con paginación de 4 niveles, syscall/sysret, IDT, APIC y controladores PE reales— puede cargarse en una pestaña estática, sin hilos, sin SharedArrayBuffer y sin cabeceras de aislamiento cross-origin. Para quien lo usaría: desarrolladores que quieran experimentar con núcleos, enseñar arquitectura x86-64 en un aula o crear demos embebibles en cualquier alojamiento estático.
¿Cómo funciona? El emulador no arranca un PC desde el vector de reset: prescinde de BIOS, modo real y trampolines, y entra directamente en long mode con tablas de páginas, GDT, TSS, IDT y registros de control ya configurados, entregando la estructura bootloader_api y saltando a _start. Implementa solo lo necesario: paginación con páginas grandes de 2 MiB y 1 GiB, instrucciones BSWAP, UART 16550, PS/2 y un transporte 9P para servir ficheros. Su corrección se valida con pruebas diferenciales contra iced-x86 (decodificación) y Unicorn (semántica), un arnés lockstep que ya ha cazado bugs reales, como la ausencia de BSWAP.
El arranque en frío interpreta unos cien millones de instrucciones y ejecuta la suite de 67 autocomprobaciones del núcleo, carga un controlador PE y lanza cmd.exe. El arranque rápido, en cambio, serializa el estado completo de CPU y dispositivos (624 bytes) más solo las páginas de RAM tocadas: de 32 768 páginas posibles, solo 1 052 son no nulas (3,2 %), lo que reduce la imagen a 4,11 MiB en disco y 901 KB comprimidos con gzip. Limitaciones: nanox emula «lo justo» para este núcleo, no un PC genérico; y la instantánea es específica de una versión concreta del binario.
