- Floppinux, una distribución ligera de Linux capaz de arrancar desde un único disquete (1.44MB), se actualizó a la edición 2025 (v0.3.1)
- La nueva versión se basa en Linux kernel 6.14.11 y BusyBox 1.36.1, e incluye almacenamiento persistente (264KB) y compatibilidad con hardware más reciente
- Puede ejecutarse con apenas una CPU Intel 486DX (33MHz) y 20MB de RAM, y ofrece editor de texto (vi) y comandos básicos de manejo de archivos
- Funciona tanto en hardware real como en emuladores (qemu, Bochs, 86Box), y está preparado para que el usuario compile por sí mismo el kernel y la toolchain
- Desde su primera publicación hace 4 años se ha usado con fines educativos y experimentales, y esta edición pone el foco en mantener actualizado el kernel y renovar los tutoriales de aprendizaje
Resumen del proyecto
- Floppinux busca construir un sistema Linux mínimo capaz de arrancar desde un solo disquete
- Está diseñado como un taller de aprendizaje similar a “Linux From Scratch”, para que el usuario pueda modificarlo y ampliarlo directamente
- La distribución terminada ofrece un entorno de terminal basado en texto, con posibilidad de editar archivos y escribir scripts sencillos
- El espacio de almacenamiento restante es de 264KB, por lo que el usuario puede guardar directamente en el disquete los archivos que cree
Funciones principales y requisitos
- Soporte para arranque desde un solo disquete, kernel reciente (6.14) y CPU x86 de 32 bits (486DX o superior)
- Incluye editor de texto (vi), comandos básicos de manejo de archivos (
cat, cp, mv, rm, etc.) y funciones de scripting simple
- Permite guardar archivos en el disquete mediante almacenamiento persistente (persistent storage)
- Requisitos mínimos de hardware: Intel 486DX 33MHz, 20MB de RAM, unidad interna de disquete
Configuración del kernel
- Se usa la versión Linux 6.14.11 como el último kernel con soporte completo para CPU i486
- La configuración del kernel está centrada en las funciones mínimas de arranque, e incluye initramfs comprimido con XZ, soporte de ejecución ELF y sistema de archivos FAT
- Está activado el soporte para TTY, dispositivos de bloque y los sistemas de archivos /proc y sysfs
- El resultado de la compilación del kernel se genera como bzImage (881KiB)
Entorno de compilación y toolchain
- La compilación se realizó en Omarchy Linux (SO de 64 bits basado en Arch), pero el mismo procedimiento puede aplicarse en sistemas compatibles con POSIX
- Se usa el compilador cruzado i486-linux-musl-cross para compilar para un objetivo de 32 bits
- Como entorno de emulación se utiliza qemu; Bochs se usa para depuración y 86Box puede servir como alternativa, aunque es más lento
Conjunto de herramientas basado en BusyBox
- Se usa BusyBox 1.36.1, que ofrece un conjunto ligero de comandos para reemplazar utilidades GNU
- Principales comandos seleccionados: cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
- Se compila como binario estático (static binary) para eliminar dependencias de bibliotecas compartidas
- Tras compilar BusyBox, el sistema de archivos raíz generado (rootfs.cpio.xz) tiene un tamaño de 137KiB
Configuración del sistema de archivos e inicialización
- Incluye una estructura mínima de directorios, además de mensaje de bienvenida (welcome), inittab y script de inicialización rc
- El script rc monta
/proc y /sys, luego crea el directorio /home y monta el disquete en /mnt
- Al arrancar, muestra un banner de bienvenida y luego entra al shell (
/bin/sh)
- La configuración de syslinux.cfg define mensajes de arranque y parámetros del kernel
APPEND root=/dev/ram rdinit=/etc/init.d/rc console=tty0 tsc=unstable
Creación de la imagen de arranque
- Tras crear la imagen de disquete de 1.44MB (floppinux.img), se formatea y se instala el bootloader (syslinux)
- Se copian a la imagen el kernel, el sistema de archivos raíz y los archivos de configuración
- Después de probar el arranque con qemu, puede escribirse en un disquete real
- Se incluye una advertencia sobre el riesgo de pérdida de datos si se elige la unidad equivocada
Resumen final
- Versión: 0.3.1 (diciembre de 2025)
- Kernel: 6.14.11
- BusyBox: 1.36.1
- Tamaño de la imagen: 1.44MiB
- Espacio restante: aproximadamente 253KiB
- Comandos compatibles: manejo de archivos (
cat, cp, mv, rm, ls, mkdir), administración del sistema (df, sync, mount, umount), procesamiento de texto (echo, more), editor (vi)
Importancia
- Floppinux es una distribución ultraligera optimizada para aprender la estructura del kernel de Linux y el proceso de arranque
- Implementa en un solo disquete un entorno Linux completo que también puede funcionar en hardware real
- Puede usarse como plataforma de ejemplo útil para educación, experimentos con sistemas retro e introducción al desarrollo embebido
1 comentarios
Opiniones en Hacker News
En Navidad intenté hacer que una computadora de la era de 32 bits fuera realmente utilizable
El problema no era el rendimiento, sino el soporte de software y los drivers de video
Hoy en día casi no se compilan paquetes para 32 bits, así que incluso la CLI está limitada por dependencias de 64 bits
En el kernel también desaparecieron drivers de GPU antiguas, así que solo queda el modo VGA básico y hasta reproducir MPEG2 se vuelve pesado
Al final intenté instalar Debian 5 adecuado para ese hardware, pero como la ISO de esa época no arrancaba por USB, terminé abandonándolo
La conclusión es que este tipo de proyectos son divertidos, pero difíciles de usar en la práctica
Me gusta más la interfaz antigua que la UI de cinta, y funciones como WordArt despiertan nostalgia
Las funciones de las versiones modernas también están bien, pero sorprende que un software de hace casi 30 años esté tan bien terminado
NetBSD todavía ofrece paquetes y pkgsrc para i386
Enlace al repositorio pkgsrc
Yo prefiero el modo texto VGA antes que los gráficos
Hay demasiadas apps basadas en navegador y demasiados programas lentos hechos en JS
Es interesante pensar que los LLM se entrenan con código como ese
Incluso con gateway NAT y servidor web funcionando al mismo tiempo iba bien
Por eso resulta irónico que hoy 16GB parezcan insuficientes
Arranca desde disquete o CD y permite hacer chainloading por USB incluso en PCs antiguas
Lo usé en un Pentium MMX y, aunque era lento, funcionó bien
La primera distribución de Linux que usé fue Damn Small Linux (DSL)
Originalmente se usó en un intento de port para GameCube, pero el equipo principal de desarrollo luego se pasó a Gentoo
Actualmente DSL 2024 está basado en antiX 23 i386 y recortó paquetes de idioma y documentación para meter un entorno de escritorio dentro del límite de 700MB
Con scripts de restauración se pueden volver a descargar los archivos necesarios
Sitio oficial
En las reseñas recomendaban Alpine como la distro ideal, aunque no sé qué tan confiable sea esa opinión
Lo probé en un 486 real, pero no arrancó
Le puse 32MB de RAM, pero apareció el error “Booting kernel failed: Invalid Argument”
Sospecho que se debe a que el BIOS no soporta la rutina de mapa de memoria E820h
Se pueden ver la captura de pantalla y la galería de hardware real
La estrategia de persistencia basada en FAT12 que plantea el artículo es un enfoque inteligente para ahorrar espacio
Pero como el disquete no tiene journaling, hay mucho riesgo de corrupción de datos si se corta la energía
En su lugar, podría ser más seguro usar un sistema de archivos log-structured como JFFS2, o serializar con tar solo al momento del apagado
Llevo décadas usando FAT y casi nunca tuve corrupción de datos
Incluso hoy, la mayoría de los dispositivos embebidos siguen usando FAT
Ajustando el orden de las copias FAT1/FAT2 y la actualización del tamaño del archivo, es posible recuperarse de fallos
Slackware 8 o incluso NetBSD actual todavía mantienen esa estructura
Recuerdo el disquete demo de QNX de 1999
Desde un disco de 1.44MB arrancaban directamente una GUI y un navegador web
No he vuelto a ver algo así desde entonces
Ahora ese tipo de sistemas vuelve a existir
Para ampliar los 264KB que quedan libres, basta con usar un formato de disquete extendido
Igual que en los discos de instalación de Windows 95, con un formato de pista de 21 sectores se puede llegar a 1680KB
Las herramientas estándar de formato de Linux también pueden crear este tipo de layout
Extraño el sonido de los disquetes y la emoción de la carga
Ojalá se pudiera ajustar ese sonido con una configuración
La frase “grabar un disquete en 5 minutos” me hizo reír
Me pregunto si realmente hace falta formatear el disquete
Si syslinux o lilo pudieran cargar el kernel directamente desde los sectores del disquete, parecería más simple
ext2 podría incluso ocupar menos que FAT
Recuerdo haber recibido Slackware en 1997 en un set de 12 disquetes
Aunque la calidad no era muy buena y la instalación se complicaba bastante
Lo descargué por FTP desde una VAX, lo transferí a una PC DOS con Kermit y lo instalé, pero tuve que repetir varias veces por disquetes defectuosos
La serie X era para X11, y las series A/B/C para el sistema base
La corrí en un sistema Coppermine de 933MHz, y después de cambiar el HDD recuerdo haber intentado compilar X11 sin éxito