Neonatox

Cómo se construyó Neonatox

No es un tutorial. Es la historia de cómo un sistema operativo pasó de cero a funcional.

Neonatox no nació de una descarga. Nació de compilar cada paquete, una vez, a mano, entendiendo qué hacía falta para que el siguiente funcionara. Esta es esa historia.

El punto cero

Todo comenzó con una pregunta: ¿qué hay dentro de Linux?

No había NeonatOx. No había paquetes. Solo había un Linux From Scratch (LFS) como base y la decisión de que systemd sería el init. Nada de chroot, nada de abstracciones. Solo el libro de LFS y horas de compilación.

Toolchain: el compilador que se compila a sí mismo

Lo primero que se construye en LFS es lo que construye todo lo demás.

La cadena quedó así:

  • Binutils - ensamblador y linker
  • GCC (solo C) - compilador mínimo
  • Linux API Headers - interfaz del kernel
  • Glibc - la biblioteca estándar de C
  • GCC completo - ahora puede compilarse a sí mismo

Al final de esta fase, en /tools vivía un compilador capaz de construir cualquier cosa para Linux. Era el seed de todo.

Sistema base: las herramientas esenciales

Con el toolchain listo, se compiló todo lo que hace falta para un sistema usable.

  • M4, Ncurses, Bash, Coreutils, Diffutils...
  • GMP, MPFR, MPC (matemáticas para GCC)
  • Perl, Python3, Findutils, Gawk
  • Gettext, Bison, Flex (herramientas de desarrollo)
  • file, grep, sed, gzip, tar

Cada paquete se configuró, compiló e instaló a mano. Cada flag, cada opción, fue una decisión consciente.

Init, red y bootloader

El sistema que arranca. systemd, el kernel, GRUB.

  • Systemd - el init, servicios, logging
  • Linux Kernel 6.x - compilado a medida
  • GRUB2 - bootloader BIOS/UEFI
  • dhcpcd o systemd-networkd

En este punto, el sistema hacía boot. Podías iniciar sesión, tenían red. Tenía un nombre: LFS. Ahora faltaba hacerlo Neonatox.

nhopkg: el gestor de paquetes propio

De LFS a Neonatox: se necesitaba un gestor que enseñara.

nhopkg no solo instala paquetes. Cada paquete es un documento. El archivo nhoid contiene metadatos, dependencias, scripts de build.

Se configuró el primer repositorio: /var/lib/nhopkg/extra con los paquetes base del sistema. La cadena se cerró: ahora el sistema podía instalar más software usando sí mismo.

El ecosistema: Live Boot + Installer

Un sistema que no se puede distribuir no sirve.

  • neonatox-live-boot - genera ISOs con SquashFS
  • neonatox-installer - instala el sistema en disco

Con el ISO generado y el instalador funcionando, Neonatox podía vivir en un USB y replicarse a otros equipos.

¿Y los paquetes?

Cada paquete de Neonatox tiene dos partes:

*.srcnho (nhoid)

Metadatos del paquete fuente. Contiene script de compilación (nbuild), instalación (ninstall), dependencias y versionado. Es un archivo de texto que documenta cómo construir el paquete.

.nho

Paquete binario listo para instalar. Archivo comprimido con archivos + metadatos + scripts post-install. Lo que realmente se instala en el sistema.

El resultado: Un sistema construído desde cero, donde cada paquete fue decisión consciente, donde el gestor no oculta sino que enseña, donde el boot no es magia sino código visible.

No es el único camino. Pero es el nuestro.