- 単一の フロッピーディスク(1.44MB) から起動可能な 軽量Linuxディストリビューション Floppinux が、2025年版(v0.3.1)に更新された
- 新バージョンは Linuxカーネル 6.14.11 と BusyBox 1.36.1 をベースにし、永続ストレージ(264KB) と最新ハードウェア互換性を含む
- Intel 486DX(33MHz) 以上のCPUと 20MB RAM だけで動作し、テキストエディタ(vi) と基本的なファイル操作コマンドをサポート
- 実機およびエミュレータ(qemu, Bochs, 86Box) の両方で動作し、ユーザーが直接カーネルとツールチェーンをビルドする構成
- 4年前の初公開以降、教育用・実験用として活用されてきており、今回の版は 最新カーネルの維持と学習用チュートリアルの更新 に重点を置く
プロジェクト概要
- Floppinux は 単一のフロッピーディスクから起動可能な最小Linuxシステム の構築を目指している
- 「Linux From Scratch」に似た 学習用ワークショップ形式 で設計されており、ユーザーが自分で修正・拡張できる
- 完成したディストリビューションは テキストベースのターミナル環境 を提供し、ファイル編集や簡単なスクリプト作成が可能
- 残りの保存領域は 264KB で、ユーザーが作成したファイルをフロッピーに直接保存できる
主要機能と要件仕様
- 単一フロッピー起動、最新カーネル(6.14)、32ビット x86 CPU(486DX以上) をサポート
- テキストエディタ(vi)、基本的なファイル操作コマンド(cat, cp, mv, rm など)、簡単なスクリプティング 機能を含む
- 永続ストレージ(persistent storage) により、フロッピーへファイルを保存可能
- 最小ハードウェア要件: Intel 486DX 33MHz、20MB RAM、内蔵フロッピードライブ
カーネル構成
- Linux 6.14.11 は、i486 CPUを完全サポートする最後のカーネルとして使用されている
- カーネル設定は 最小限の起動機能重視 で構成されており、XZ圧縮 initramfs、ELF実行サポート、FATファイルシステム を含む
- TTY、ブロックデバイス、/proc および sysfs ファイルシステム のサポートを有効化
- カーネルのビルド成果物は bzImage(881KiB) として生成
ビルド環境とツールチェーン
- Omarchy Linux(Archベースの64ビットOS) でビルドを実施、POSIX互換システムでも同じ手順を適用可能
- i486-linux-musl-cross クロスコンパイラを使用し、32ビットターゲットのビルドをサポート
- エミュレーション環境 として qemu を使用し、Bochs はデバッグ用、86Box は遅いが代替として利用可能
BusyBoxベースのツールセット
- BusyBox 1.36.1 を使用し、GNUユーティリティを置き換える軽量コマンド群を提供
- 選択された主なコマンド: cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
- 静的バイナリ(static binary) としてビルドされ、共有ライブラリ依存を排除
- BusyBox ビルド後に生成されたルートファイルシステム(rootfs.cpio.xz)は 137KiB サイズ
ファイルシステムと初期化構成
- 最小ディレクトリ構造と ウェルカムメッセージ(welcome)、inittab、rc初期化スクリプト を含む
- rc スクリプトは
/proc、/sys をマウントした後、/home ディレクトリを作成し、フロッピーを /mnt にマウントする
- 起動時に ウェルカムバナーを表示した後、シェル(/bin/sh) に入る
- syslinux.cfg 設定を通じて起動メッセージとカーネルパラメータを指定
APPEND root=/dev/ram rdinit=/etc/init.d/rc console=tty0 tsc=unstable
起動イメージの作成
- 1.44MB フロッピーイメージ(floppinux.img) を作成後、フォーマットしてブートローダー(syslinux)をインストール
- カーネル、ルートファイルシステム、設定ファイルをイメージへコピー
- qemu で起動テスト後、実際のフロッピーへ書き込み可能
- 誤ったドライブを選択した場合のデータ損失リスクに関する警告を含む
最終まとめ
- バージョン: 0.3.1(2025年12月)
- カーネル: 6.14.11
- BusyBox: 1.36.1
- イメージサイズ: 1.44MiB
- 空き容量: 約253KiB
- 対応コマンド: ファイル操作(cat, cp, mv, rm, ls, mkdir)、システム管理(df, sync, mount, umount)、テキスト処理(echo, more)、エディタ(vi)
意義
- Floppinux は Linuxカーネル構造と起動プロセスの学習用に最適化された超軽量ディストリビューション
- 実機でも動作可能な完全なLinux環境 をフロッピーディスク1枚に実装
- 教育、レトロシステム実験、組み込み開発入門 に有用なサンプルプラットフォームとして活用できる
1件のコメント
Hacker Newsのコメント
クリスマスの時期に、32ビット時代のコンピューターを実際に使えるレベルにしようとしたことがあった。
問題は性能ではなく、ソフトウェア対応とビデオドライバーだった。
最近は32ビット向けパッケージがほとんどビルドされておらず、CLIでさえ64ビット依存のせいで制約が大きい。
カーネルでも古いGPUドライバーが削除され、基本的なVGAモードしか残っていないため、MPEG2の再生すら厳しい。
結局、ハードウェアに合うDebian 5を入れようとしたが、当時のISOはUSBブートに対応しておらず断念した。
こういうプロジェクトは楽しいが、実用は難しいという結論だった。
リボンUIより昔のインターフェースのほうが好みで、WordArtのような機能には懐かしさを感じる。
最新版の機能も良いが、30年近く前のソフトウェアがここまで完成度が高いのは驚きだ。
NetBSDは今でもi386向けのパッケージとpkgsrcを提供している。
pkgsrcリポジトリへのリンク
私はグラフィックスよりVGAテキストモードのほうが好きだ。
ブラウザベースのアプリが多すぎて、JSで作られた遅いプログラムもあふれている。
LLMがこうしたコードで学習されているのは興味深い。
NATゲートウェイやWebサーバーまで一緒に動かしていたのに、問題なく使えていた。
それなのに今では16GBでも足りないと感じるのは皮肉だ。
フロッピーやCDから起動して、古いPCでもUSBへチェーンロードできる。
Pentium MMXで使ったことがあるが、遅くてもちゃんと動いた。
昔、最初に使ったLinuxディストリビューションはDamn Small Linux (DSL) だった。
もともとはGameCube移植の試みに使われていたが、主要開発チームはGentooへ移行した。
現在のDSL 2024はantiX 23 i386ベースで、700MB制限の中にデスクトップ環境を収めるため、言語パックや文書を削減している。
復元スクリプトで必要なファイルを再取得できる。
公式サイト
レビューではAlpineが推奨ディストリビューションだったが、どこまで信頼できるかは分からない。
実機の486で試してみたが、起動に失敗した。
32MB RAMを挿したものの、「Booting kernel failed: Invalid Argument」というエラーが出た。
BIOSがE820hメモリマップルーチンをサポートしていないために起きた問題だと推測している。
スクリーンショット と
実機ギャラリー を参照できる。
記事で示されていたFAT12ベースの永続化戦略は、容量節約という点では賢いやり方だ。
ただしフロッピーにはジャーナリングがないため、電源断でデータ破損の危険が大きい。
代わりにログ構造ファイルシステム(JFFS2など)を使うか、終了時だけtarで直列化する方法のほうが安全かもしれない。
何十年もFATを使ってきたが、データ破損はほとんどなかった。
今でも組み込み機器の大半はFATを使っている。
FAT1/FAT2のコピーやファイルサイズ更新の順序を調整すれば、クラッシュ時の復旧が可能だ。
Slackware 8や最新のNetBSDも今なおその構造を維持している。
1999年のQNXデモフロッピーを覚えている。
1.44MBディスクから直接GUIとWebブラウザーが起動した。
あれ以来、そんなものは見たことがない。
今ではそうしたシステムが再び存在している。
残り264KBの空きを増やしたいなら、拡張フロッピーフォーマットを使えばよい。
Windows 95のインストールディスクのように21セクタートラック形式を使えば、1680KBまで可能だ。
Linuxの標準フォーマットツールでもこのレイアウトを作れる。
フロッピーディスクの音と読み込みのときめきが恋しい。
この音を設定で調整できたらいいのにと思う。
「5分でフロッピーを焼く」という一文を見て笑ってしまった。
フロッピーを本当にフォーマットする必要があるのか気になる。
syslinuxやliloがカーネルをフロッピーセクターから直接ロードできるなら、そのほうがより単純なはずだ。
ext2のほうがFATより小さいかもしれない。
1997年にSlackwareを12枚組のフロッピーセットで受け取った記憶がある。
ただし品質が良くなく、インストールは大変だった。
VAXでFTP受信し、KermitでDOS PCへ転送してインストールしたが、途中でディスク不良があって何度もやり直した。
XシリーズはX11用、A/B/Cシリーズは基本システム用だった。
933MHzのCoppermineシステムで動かしていて、あとでHDDを交換した後にX11をビルドしようとして失敗した記憶がある。