Floppinux – Embedded Linux auf einer einzigen Diskette: Ausgabe 2025 veröffentlicht
(krzysztofjankowski.com)- Die leichtgewichtige Linux-Distribution Floppinux, die von einer einzelnen Diskette (1,44 MB) booten kann, wurde auf die Ausgabe 2025 (v0.3.1) aktualisiert
- Die neue Version basiert auf Linux-Kernel 6.14.11 und BusyBox 1.36.1 und bringt persistenten Speicher (264 KB) sowie Kompatibilität mit aktueller Hardware mit
- Sie läuft mit nichts weiter als einer Intel 486DX (33 MHz) oder besseren CPU und 20 MB RAM und unterstützt einen Texteditor (vi) sowie grundlegende Befehle zur Dateiverwaltung
- Sie funktioniert sowohl auf echter Hardware als auch in Emulatoren (qemu, Bochs, 86Box) und ist so aufgebaut, dass Nutzer Kernel und Toolchain selbst bauen
- Seit der ersten Veröffentlichung vor 4 Jahren wird sie für Ausbildung und Experimente genutzt; diese Ausgabe legt den Schwerpunkt auf die Pflege eines aktuellen Kernels und die Aktualisierung von Lern-Tutorials
Projektüberblick
- Floppinux verfolgt das Ziel, ein minimales Linux-System zu bauen, das von einer einzelnen Diskette booten kann
- Es ist als Workshop zum Lernen ähnlich wie „Linux From Scratch“ konzipiert, sodass Nutzer es direkt anpassen und erweitern können
- Die fertige Distribution bietet eine textbasierte Terminalumgebung, in der Dateien bearbeitet und einfache Skripte geschrieben werden können
- Der verbleibende Speicherplatz beträgt 264 KB, sodass Nutzer erstellte Dateien direkt auf der Diskette speichern können
Kernfunktionen und Systemanforderungen
- Unterstützung für Boot von einer einzelnen Diskette, aktuellen Kernel (6.14) und 32-Bit-x86-CPUs (ab 486DX)
- Enthält Texteditor (vi), grundlegende Befehle zur Dateiverwaltung (
cat,cp,mv,rmusw.) und Funktionen für einfaches Skripting - Dateien können über persistent storage direkt auf der Diskette gespeichert werden
- Minimale Hardwareanforderungen: Intel 486DX 33 MHz, 20 MB RAM, internes Diskettenlaufwerk
Kernel-Konfiguration
- Verwendet wird Linux 6.14.11, der letzte Kernel, der i486-CPUs vollständig unterstützt
- Die Kernel-Konfiguration ist auf minimale Boot-Funktionalität ausgerichtet und umfasst XZ-komprimiertes initramfs, Unterstützung für ELF-Ausführung und das FAT-Dateisystem
- Unterstützung für TTY, Blockgeräte sowie die Dateisysteme /proc und sysfs ist aktiviert
- Das Ergebnis des Kernel-Builds wird als bzImage (881 KiB) erzeugt
Build-Umgebung und Toolchain
- Der Build erfolgt unter Omarchy Linux (Arch-basiertes 64-Bit-OS); auf POSIX-kompatiblen Systemen ist dasselbe Verfahren ebenfalls anwendbar
- Mit dem Cross-Compiler i486-linux-musl-cross werden Builds für ein 32-Bit-Ziel unterstützt
- Als Emulationsumgebung wird qemu verwendet, Bochs dient zum Debugging, und 86Box ist langsam, aber als Alternative nutzbar
Auf BusyBox basierendes Toolset
- Verwendet wird BusyBox 1.36.1, das eine leichtgewichtige Sammlung von Befehlen als Ersatz für GNU-Utilities bereitstellt
- Ausgewählte wichtige Befehle: cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
- Es wird als statisches Binary (static binary) gebaut, wodurch Abhängigkeiten von Shared Libraries entfallen
- Das nach dem BusyBox-Build erzeugte Root-Dateisystem (
rootfs.cpio.xz) ist 137 KiB groß
Dateisystem- und Initialisierungskonfiguration
- Enthält eine minimale Verzeichnisstruktur sowie Willkommensmeldung (
welcome),inittabundrc-Initialisierungsskript- Das
rc-Skript mountet/procund/sys, erstellt anschließend das Verzeichnis/homeund mountet die Diskette unter/mnt - Beim Booten wird nach Ausgabe des Willkommensbanners die Shell (
/bin/sh) gestartet
- Das
- Über die Konfiguration von
syslinux.cfgwerden Boot-Meldungen und Kernel-Parameter festgelegtAPPEND root=/dev/ram rdinit=/etc/init.d/rc console=tty0 tsc=unstable
Erzeugung des Boot-Images
- Nach dem Erstellen des 1,44-MB-Disketten-Images (
floppinux.img) wird es formatiert und der Bootloader (syslinux) installiert - Kernel, Root-Dateisystem und Konfigurationsdateien werden in das Image kopiert
- Nach dem Boot-Test mit qemu kann das Image auf eine echte Diskette geschrieben werden
- Es wird vor dem Risiko von Datenverlust bei Auswahl des falschen Laufwerks gewarnt
Abschließende Zusammenfassung
- Version: 0.3.1 (Dezember 2025)
- Kernel: 6.14.11
- BusyBox: 1.36.1
- Image-Größe: 1.44MiB
- Verbleibender Speicherplatz: ca. 253 KiB
- Unterstützte Befehle: Dateiverwaltung (
cat,cp,mv,rm,ls,mkdir), Systemverwaltung (df,sync,mount,umount), Textverarbeitung (echo,more), Editor (vi)
Bedeutung
- Floppinux ist eine ultraleichte Distribution, die für das Lernen des Linux-Kernel-Aufbaus und des Boot-Prozesses optimiert ist
- Sie realisiert eine vollständige Linux-Umgebung, die auch auf echter Hardware lauffähig ist, auf einer einzigen Diskette
- Sie eignet sich als Beispielplattform für Ausbildung, Experimente mit Retro-Systemen und den Einstieg in die Embedded-Entwicklung
1 Kommentare
Hacker-News-Kommentare
Zu Weihnachten habe ich versucht, einen Computer aus der 32-Bit-Ära in einen tatsächlich nutzbaren Zustand zu bringen.
Das Problem war nicht die Leistung, sondern die Software-Unterstützung und die Videotreiber.
Heute werden kaum noch Pakete für 32 Bit gebaut, sodass selbst die CLI wegen 64-Bit-Abhängigkeiten nur eingeschränkt nutzbar ist.
Auch im Kernel sind alte GPU-Treiber verschwunden, sodass nur noch der grundlegende VGA-Modus bleibt und selbst MPEG2-Wiedergabe mühsam ist.
Am Ende wollte ich Debian 5 passend zur Hardware installieren, habe aber aufgegeben, weil die damalige ISO nicht von USB booten konnte.
Mein Fazit: Solche Projekte machen Spaß, sind aber für den praktischen Einsatz schwierig.
Mir gefällt die ältere Oberfläche besser als das Ribbon-UI, und Funktionen wie WordArt wecken Nostalgie.
Die Funktionen aktueller Versionen sind zwar gut, aber es ist erstaunlich, wie ausgereift fast 30 Jahre alte Software noch ist.
NetBSD bietet weiterhin Pakete und pkgsrc für i386 an.
Link zum pkgsrc-Repository
Ich bevorzuge ohnehin den VGA-Textmodus gegenüber Grafik.
Es gibt zu viele browserbasierte Apps und zu viele langsame Programme, die in JS geschrieben sind.
Dass LLMs auf solchem Code trainiert werden, ist interessant.
Selbst zusammen mit NAT-Gateway und Webserver lief das problemlos.
Dass sich heute selbst 16GB nicht genug anfühlen, ist eine ironische Realität.
Er bootet von Diskette oder CD und ermöglicht so auch auf alten PCs das Chainloading von USB.
Ich habe ihn auf einem Pentium MMX verwendet; langsam, aber funktionierte gut.
Meine erste Linux-Distribution war früher Damn Small Linux (DSL).
Ursprünglich wurde sie bei einem GameCube-Portierungsversuch verwendet, aber das Hauptentwicklerteam wechselte später zu Gentoo.
Das aktuelle DSL 2024 basiert auf antiX 23 i386 und hat Sprachpakete und Dokumentation reduziert, um eine Desktop-Umgebung innerhalb der 700MB-Grenze unterzubringen.
Mit einem Restore-Skript lassen sich die benötigten Dateien wieder herunterladen.
Offizielle Website
In Reviews wurde Alpine als empfohlene Distribution genannt, aber bei der Verlässlichkeit bin ich mir nicht sicher.
Ich habe es auf einem echten 486 getestet, aber der Bootvorgang schlug fehl.
Mit 32MB RAM erschien der Fehler „Booting kernel failed: Invalid Argument“.
Vermutlich liegt es daran, dass das BIOS die E820h-Speichermap-Routine nicht unterstützt.
Dazu gibt es einen Screenshot und eine
Galerie mit echter Hardware.
Die im Artikel vorgestellte FAT12-basierte Persistenzstrategie ist ein cleverer Ansatz, um Platz zu sparen.
Allerdings haben Disketten kein Journaling, daher ist das Risiko von Datenbeschädigung bei Stromausfall hoch.
Stattdessen könnte ein Log-structured Filesystem wie JFFS2 oder eine Serialisierung per
tarnur beim Herunterfahren sicherer sein.Ich habe jahrzehntelang FAT verwendet und kaum je Datenbeschädigungen erlebt.
Auch heute nutzen die meisten Embedded-Geräte noch FAT.
Wenn man die Reihenfolge von FAT1/FAT2-Kopien und Dateigrößen-Updates anpasst, ist Wiederherstellung nach Abstürzen möglich.
Slackware 8 oder auch aktuelles NetBSD behalten diese Struktur bis heute bei.
Ich erinnere mich an die QNX-Demo-Diskette von 1999.
Von einer 1.44MB-Disk starteten direkt GUI und Webbrowser.
Seitdem habe ich so etwas nicht mehr gesehen.
Solche Systeme existieren inzwischen wieder.
Um die verbleibenden 264KB zu vergrößern, kann man ein erweitertes Diskettenformat verwenden.
Mit einem Format von 21 Sektoren pro Spur wie bei Windows-95-Installationsdisketten sind bis zu 1680KB möglich.
Auch mit den Standard-Formatierungswerkzeugen unter Linux lässt sich ein solches Layout erzeugen.
Mir fehlen das Geräusch von Disketten und die Spannung beim Laden.
Es wäre schön, wenn man diesen Klang per Einstellung regeln könnte.
Über den Satz „eine Diskette in 5 Minuten brennen“ musste ich lachen.
Ich frage mich, ob man die Diskette überhaupt formatieren muss.
Wenn
syslinuxoderliloden Kernel direkt aus den Diskettensektoren laden könnten, wäre das vielleicht einfacher.ext2könnte sogar kleiner sein als FAT.Ich erinnere mich daran, 1997 Slackware als 12-Disketten-Set bekommen zu haben.
Die Qualität war allerdings nicht besonders gut, was die Installation schwierig machte.
Ich habe sie per FTP auf einer VAX heruntergeladen, dann mit Kermit auf einen DOS-PC übertragen und installiert; wegen defekter Disketten musste ich den Vorgang mehrfach wiederholen.
Die X-Serie war für X11, die A/B/C-Serien für das Basissystem.
Ich habe es auf einem 933MHz-Coppermine-System verwendet und erinnere mich daran, später nach einem HDD-Tausch erfolglos versucht zu haben, X11 zu bauen.