5月4日、Phoronixが「Linux File-System Proliferation A Burden: Requirements Laid Out For Any Future File-Systems」と題した記事を公開した。
現在のLinuxカーネルには69種類ものファイルシステムが存在し、その維持管理が開発者にとって深刻な負担となっている。この状況を受けて、Linuxカーネル開発チームは新たなファイルシステムの受け入れに厳格な基準を導入し、放棄されたファイルシステムの削除も検討する方針を打ち出した。
なぜファイルシステム乱立が問題なのか
ファイルシステムは、OSがストレージデバイス上のデータを管理する仕組みだ。Linuxは多様なハードウェア環境で動作するため、さまざまなファイルシステムをサポートしてきた歴史がある。しかし、その結果として現在のLinuxカーネルのfs/ディレクトリには約69種類ものファイルシステムが混在している。
EXT4、Btrfs、XFSといった現役のものから、JFSやReiserFSのような古いもの、さらにはネットワークファイルシステムのNFSや疑似ファイルシステムのprocまで含まれる。
問題は、これらすべてがVFS(Virtual File System)という共通インターフェースを通じて動作するため、VFSに変更を加える際には全ファイルシステムとの互換性を検証する必要があることだ。特にアクティブなメンテナーを失ったファイルシステムは、テストも困難でありながら保守負担だけが残り続ける「技術的負債」となっている。
新しい受け入れ基準の詳細
今回策定されたガイドラインでは、新しいファイルシステムが満たすべき要件として以下を明文化している:
技術要件:
- モダンなVFSインターフェースの使用
- 非推奨APIへの依存の禁止
- 包括的なテストスイートの提供
- 適切な技術ドキュメンテーション
運用要件:
- ファイルシステム作成・チェック用のユーザー空間ツール提供
- アクティブなメンテナーの存在
- 明確なユーザーベースと採用計画
特筆すべきは、既存ファイルシステムの拡張を優先し、新規作成は最後の手段とする方針だ。また、ニッチな用途についてはFUSE(Filesystem in Userspace)での実装を推奨している。
放棄されたファイルシステムの整理も
新規受け入れ基準と並行して、既存の「死んだ」ファイルシステムの整理も進められる。メンテナーが応答しない、カーネルの変更に追従できない、テストが不可能になったファイルシステムは、廃止予定を経て最終的にカーネルから削除される可能性がある。
これは、Linuxカーネルの長期的な保守性向上のために避けられない措置と言える。実際、過去にもReiserFSなどのファイルシステムが非推奨化の道を辿っている。
実装スケジュール
この新しい要件ドキュメントは、現在VFS開発ツリーのvfs-6.11.misc ブランチで管理されており、次回のマージウィンドウでの統合を目指している。
今回の方針転換は、Linuxエコシステムの健全性を保つための重要な一歩だ。オープンソースプロジェクトにおいて「何でも受け入れる」姿勢から「持続可能な品質管理」へのシフトを象徴する動きとも言える。
詳細はLinux File-System Proliferation A Burden: Requirements Laid Out For Any Future File-Systemsを参照していただきたい。