11 puntos por GN⁺ 2026-02-04 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2026-02-04
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

    • Probé Office 97 en una VM y sigue siendo rápido y muy completo
      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
    • Esto parece ser algo limitado a Linux
      NetBSD todavía ofrece paquetes y pkgsrc para i386
      Enlace al repositorio pkgsrc
      Yo prefiero el modo texto VGA antes que los gráficos
    • El problema no es el rendimiento, sino lo inflado que se ha vuelto el software moderno
      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
    • Recuerdo haber corrido un servidor de CS 1.6 a principios de los 2000 con un AMD de 800MHz y 256MB de RAM
      Incluso con gateway NAT y servidor web funcionando al mismo tiempo iba bien
      Por eso resulta irónico que hoy 16GB parezcan insuficientes
    • Recomiendo Plop Boot Manager
      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

    • Hace poco volví a revisar Puppy Linux, DSL y TinyCoreLinux, y armé una VM para sandbox de agentes LLM
      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

    • El journaling en realidad no es una ventaja tan grande
      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
    • Incluso con FAT se puede lograr una estabilidad comparable al journaling mediante el diseño del driver
      Ajustando el orden de las copias FAT1/FAT2 y la actualización del tamaño del archivo, es posible recuperarse de fallos
    • Antes no existía algo como initrd, y todo el sistema se leía directamente desde el disco
      Slackware 8 o incluso NetBSD actual todavía mantienen esa estructura
    • También se puede usar un esquema de raíz de solo lectura con overlay escribible, como la estructura squashfs + jffs2 overlay de OpenWrt
    • Para reducir el riesgo ante cortes de energía, creo que sería mejor usar una segunda disquetera
  • 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

    • MenuetOS/KolibriOS es un caso parecido
      Ahora ese tipo de sistemas vuelve a existir
    • xwoaf-rebuild también va por esa línea
    • La primera vez que lo vi, meter una GUI y drivers en 1.44MB me pareció increíble
    • Hoy en día probablemente se llenaría el espacio solo con meter las tablas Unicode
  • 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

    • El coil whine de las laptops actuales es lo único que más o menos me recuerda a ese “sonido de la computadora trabajando”
      Ojalá se pudiera ajustar ese sonido con una configuración
  • La frase “grabar un disquete en 5 minutos” me hizo reír

    • Definitivamente suena a una sensibilidad muy propia de la generación del CD-R/RW
  • 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

    • En esa época en las tiendas vendían disquetes con Slackware a “precio de locura”
      Aunque la calidad no era muy buena y la instalación se complicaba bastante
    • MuLinux también era una distro live basada en disquetes, y se podía ampliar con X11 o paquetes de idioma en disquetes adicionales
    • En realidad creo que eran más de 30 discos
      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
    • Quizá la que funcionaba en solo dos discos era Puppy Linux
      La corrí en un sistema Coppermine de 933MHz, y después de cambiar el HDD recuerdo haber intentado compilar X11 sin éxito