11 points par GN⁺ 2026-02-04 | 1 commentaires | Partager sur WhatsApp
  • Floppinux, une distribution Linux légère capable de démarrer depuis une seule disquette (1.44MB), a été mise à jour avec l’édition 2025 (v0.3.1)
  • La nouvelle version repose sur le noyau Linux 6.14.11 et BusyBox 1.36.1, et inclut un stockage persistant (264KB) ainsi qu’une compatibilité avec du matériel plus récent
  • Elle peut fonctionner avec un processeur Intel 486DX (33MHz) ou supérieur et seulement 20MB de RAM, et prend en charge un éditeur de texte (vi) ainsi que les commandes de base de manipulation de fichiers
  • Elle fonctionne à la fois sur du matériel réel et dans des émulateurs (qemu, Bochs, 86Box), et est conçue pour que l’utilisateur construise lui-même le noyau et la toolchain
  • Depuis sa première publication il y a 4 ans, elle est utilisée à des fins pédagogiques et expérimentales ; cette édition met l’accent sur le maintien d’un noyau récent et la mise à jour du tutoriel d’apprentissage

Présentation du projet

  • Floppinux vise à construire un système Linux minimal capable de démarrer depuis une seule disquette
    • Il est conçu sous la forme d’un atelier pédagogique similaire à “Linux From Scratch”, afin que l’utilisateur puisse le modifier et l’étendre lui-même
  • La distribution obtenue fournit un environnement terminal en mode texte, permettant l’édition de fichiers et l’écriture de scripts simples
  • L’espace de stockage restant est de 264KB, ce qui permet d’enregistrer directement sur la disquette les fichiers créés par l’utilisateur

Fonctions principales et configuration requise

  • Prise en charge du démarrage sur une seule disquette, du noyau récent (6.14) et des CPU x86 32 bits (486DX ou plus)
  • Comprend un éditeur de texte (vi), les commandes de base de manipulation de fichiers (cat, cp, mv, rm, etc.) et des fonctions de scripting simple
  • Les fichiers peuvent être enregistrés sur la disquette grâce au stockage persistant (persistent storage)
  • Configuration matérielle minimale : Intel 486DX 33MHz, 20MB de RAM, lecteur de disquette interne

Configuration du noyau

  • La version Linux 6.14.11 est utilisée comme dernier noyau prenant entièrement en charge les CPU i486
  • La configuration du noyau est centrée sur les fonctions minimales nécessaires au démarrage, avec notamment initramfs compressé en XZ, prise en charge de l’exécution ELF et système de fichiers FAT
  • La prise en charge de TTY, des périphériques bloc, de /proc et du système de fichiers sysfs est activée
  • Le résultat de la compilation du noyau est généré sous la forme d’une bzImage (881KiB)

Environnement de build et toolchain

  • Le build a été réalisé sur Omarchy Linux (OS 64 bits basé sur Arch), mais la même procédure peut être appliquée sur tout système compatible POSIX
  • Le compilateur croisé i486-linux-musl-cross est utilisé pour construire la cible 32 bits
  • qemu est utilisé comme environnement d’émulation, Bochs pour le débogage, et 86Box constitue une alternative plus lente

Ensemble d’outils basé sur BusyBox

  • La version BusyBox 1.36.1 est utilisée et fournit un ensemble léger de commandes remplaçant les utilitaires GNU
  • Principales commandes sélectionnées : cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
  • La compilation en binaire statique (static binary) supprime les dépendances aux bibliothèques partagées
  • Après la compilation de BusyBox, le système de fichiers racine généré (rootfs.cpio.xz) a une taille de 137KiB

Système de fichiers et configuration d’initialisation

  • Comprend une structure minimale de répertoires, un message de bienvenue (welcome), inittab et un script d’initialisation rc
    • Le script rc monte /proc et /sys, crée ensuite le répertoire /home, puis monte la disquette sur /mnt
    • Au démarrage, après l’affichage d’une bannière de bienvenue, le système entre dans le shell (/bin/sh)
  • Les messages de démarrage et les paramètres du noyau sont définis via la configuration syslinux.cfg
    • APPEND root=/dev/ram rdinit=/etc/init.d/rc console=tty0 tsc=unstable

Création de l’image de démarrage

  • Création d’une image de disquette de 1.44MB (floppinux.img), puis formatage et installation du bootloader (syslinux)
  • Le noyau, le système de fichiers racine et les fichiers de configuration sont copiés dans l’image
  • Après des tests de démarrage avec qemu, l’image peut être écrite sur une vraie disquette
  • Un avertissement signale le risque de perte de données en cas de sélection du mauvais lecteur

Résumé final

  • Version : 0.3.1 (décembre 2025)
  • Noyau : 6.14.11
  • BusyBox : 1.36.1
  • Taille de l’image : 1.44MiB
  • Espace restant : environ 253KiB
  • Commandes prises en charge : manipulation de fichiers (cat, cp, mv, rm, ls, mkdir), administration système (df, sync, mount, umount), traitement de texte (echo, more), éditeur (vi)

Intérêt

  • Floppinux est une distribution ultra-légère optimisée pour apprendre la structure du noyau Linux et le processus de démarrage
  • Elle parvient à faire tenir sur une seule disquette un environnement Linux complet capable de fonctionner sur du matériel réel
  • Elle peut servir de plateforme d’exemple utile pour l’éducation, les expérimentations sur systèmes rétro et l’initiation au développement embarqué

1 commentaires

 
GN⁺ 2026-02-04
Réactions sur Hacker News
  • À Noël, quelqu’un a essayé de rendre un ordinateur de l’ère 32 bits réellement utilisable
    Le problème n’était pas les performances, mais le support logiciel et les pilotes vidéo
    Aujourd’hui, presque plus aucun paquet n’est compilé pour le 32 bits, donc même l’usage en CLI est limité par des dépendances 64 bits
    Le noyau a aussi supprimé les anciens pilotes GPU, ne laissant que le mode VGA de base, où même la lecture MPEG2 peine
    Il a fini par vouloir installer Debian 5 adaptée au matériel, mais les ISO de l’époque ne démarraient pas en USB, donc il a abandonné
    Conclusion : ce genre de projet est amusant, mais difficile à utiliser au quotidien

    • J’ai lancé Office 97 dans une VM, et c’est toujours riche en fonctionnalités et rapide
      L’ancienne interface est meilleure que le ruban, et des fonctions comme WordArt réveillent la nostalgie
      Les fonctionnalités des versions modernes sont bien aussi, mais il est impressionnant qu’un logiciel vieux de presque 30 ans soit aussi abouti
    • Cela semble être surtout vrai pour Linux
      NetBSD fournit toujours des paquets et pkgsrc pour i386
      Lien vers le dépôt pkgsrc
      Personnellement, je préfère le mode texte VGA au graphique
    • Le problème, ce n’est pas la performance, c’est l’obésité des logiciels modernes
      Il y a trop d’apps basées sur le navigateur et trop de programmes lents écrits en JS
      C’est intéressant de penser que les LLM sont entraînés sur ce type de code
    • Je me souviens avoir fait tourner un serveur CS 1.6 au début des années 2000 sur un AMD à 800 MHz avec 256 Mo de RAM
      Il faisait aussi passerelle NAT et serveur web, et ça marchait très bien
      Pourtant aujourd’hui, avoir l’impression que 16 Go ne suffisent pas a quelque chose d’ironique
    • Je recommande Plop Boot Manager
      Il permet de démarrer depuis une disquette ou un CD puis de chaîner le chargement vers l’USB, même sur de vieux PC
      Je l’ai utilisé sur un Pentium MMX ; c’était lent, mais ça fonctionnait bien
  • La première distribution Linux que j’ai utilisée, c’était Damn Small Linux (DSL)
    Elle avait d’abord servi pour tenter un portage sur GameCube, mais l’équipe principale de développement est ensuite passée à Gentoo
    L’actuelle DSL 2024 est basée sur antiX 23 i386 et réduit les packs de langues et la documentation pour faire tenir un environnement de bureau dans la limite de 700 Mo
    Un script de restauration permet de retélécharger les fichiers nécessaires
    Site officiel

    • J’ai récemment réexaminé Puppy Linux, DSL et TinyCoreLinux pour créer une VM de sandbox pour agents LLM
      D’après les tests, Alpine était la distribution recommandée, mais je ne sais pas trop quoi penser de cette fiabilité
  • Testé sur un vrai 486, mais échec du démarrage
    Avec 32 Mo de RAM installés, l’erreur « Booting kernel failed: Invalid Argument » apparaît
    On suppose que cela vient du fait que le BIOS ne prend pas en charge la routine de carte mémoire E820h
    On peut consulter la capture d’écran et la galerie sur matériel réel

  • La stratégie de persistance basée sur FAT12 proposée dans l’article est une approche intelligente pour économiser de l’espace
    Mais la disquette n’ayant pas de journalisation, le risque de corruption en cas de coupure d’alimentation est élevé
    À la place, utiliser un système de fichiers log-structuré comme JFFS2, ou sérialiser en tar seulement à l’arrêt, pourrait être plus sûr

    • La journalisation n’est pas un avantage si important qu’on pourrait le croire
      J’utilise FAT depuis des décennies et j’ai presque jamais eu de corruption de données
      Encore aujourd’hui, la plupart des appareils embarqués utilisent FAT
    • Même avec FAT, on peut obtenir une stabilité de niveau journalisation par la conception du pilote
      En ajustant l’ordre des copies FAT1/FAT2 et des mises à jour de taille de fichier, on peut récupérer après un crash
    • À l’époque, il n’y avait pas d’initrd et tout le système était lu directement depuis le disque
      Slackware 8 ou même les versions récentes de NetBSD gardent encore cette structure
    • On peut aussi utiliser une racine en lecture seule avec un overlay inscriptible, comme la structure squashfs + overlay jffs2 d’OpenWrt
    • Pour réduire le risque lié aux coupures de courant, je pense qu’il vaut mieux utiliser un deuxième lecteur de disquette
  • Je me souviens de la disquette de démo QNX de 1999
    Une interface graphique et un navigateur web se lançaient directement depuis un disque de 1,44 Mo
    Je n’ai plus jamais revu ça ensuite

    • MenuetOS/KolibriOS en est un exemple similaire
      Ce genre de système existe donc encore aujourd’hui
    • xwoaf-rebuild fait aussi partie de cette lignée
    • La première fois que j’ai vu ça, mettre une GUI et des pilotes dans 1,44 Mo me paraissait incroyable
    • Aujourd’hui, rien que les tables Unicode feraient sans doute exploser la taille
  • Pour augmenter les 264 Ko restants, il suffit d’utiliser un format de disquette étendu
    Comme les disques d’installation de Windows 95, un format en pistes de 21 secteurs permet de monter jusqu’à 1680 Ko
    Les outils de formatage standard de Linux permettent aussi de créer ce type de disposition

  • Le bruit des disquettes et l’excitation du chargement me manquent

    • Le coil whine des laptops actuels est ce qui me rappelle le plus cette époque, ce « bruit d’un ordinateur qui travaille »
      J’aimerais pouvoir régler ce son dans les paramètres
  • La phrase « graver une disquette en 5 minutes » m’a fait rire

    • C’est clairement une tournure qui sent bon l’époque des CD-R/RW
  • Je me demande s’il faut vraiment formater la disquette
    Si syslinux ou lilo peuvent charger directement le noyau depuis les secteurs de la disquette, ce serait plus simple
    ext2 pourrait même être plus compact que FAT

  • Je me souviens avoir reçu Slackware en lot de 12 disquettes en 1997

    • À l’époque, des magasins vendaient des disquettes Slackware à un « prix de fou »
      Mais la qualité n’était pas terrible, donc l’installation était pénible
    • MuLinux était aussi une distribution live sur disquette, extensible avec des disquettes supplémentaires pour X11 ou les packs de langues
    • En réalité, il me semble qu’il y en avait plus de 30
      Je les téléchargeais par FTP depuis un VAX, puis je les transférais vers un PC DOS avec Kermit pour installer ; il fallait recommencer à cause de disquettes défectueuses
      La série X servait à X11, et les séries A/B/C au système de base
    • Ce qui tenait probablement sur deux disquettes, c’était Puppy Linux
      Je l’avais fait tourner sur un système Coppermine à 933 MHz, puis plus tard j’avais essayé sans succès de compiler X11 après avoir remplacé le disque dur