ext2 (second extended filesystem) は、
Linuxオペレーティングシステムにおいて広く利用されていた
ファイルシステムです。その名前は、初期のext
ファイルシステムを拡張したことに由来します。現在では、多くの
Linuxディストリビューションが標準でext4
ファイルシステムを採用していますが、ext2はかつて重要な役割を果たしていました。
ext2は、
パーティションの上限が当初2GiBでしたが、
Linuxカーネル2.4系では4TiBまで拡張されました。
ファイル名は最大255バイトまで対応し、可変長のディレクトリエントリをサポートしています。また、
ファイルシステムの一部領域はスーパーユーザー(root)用に予約されており、通常の領域を使い切った場合でもシステムのメンテナンスが可能です。
しかし、ext2にはジャーナリング機能が備わっていないため、システムがクラッシュした場合、
ファイルシステムの復旧に時間がかかるという欠点があります。このため、ext3や
ReiserFSといった
ジャーナリングファイルシステムの普及が進みました。
歴史
Linuxの初期開発は、
MINIX上でクロス開発されていました。そのため、初期のext
ファイルシステムが
Linuxに採用されました。しかし、システム内部構造は16ビットであり、ファイルサイズの制限(最大64MiB)や
ファイル名の長さ(最大14文字)といった制約が残っていました。
その後、
Linuxカーネルに新しい
ファイルシステムを追加するためのAPIが導入されました。このAPIを利用した最初の
ファイルシステムがextであり、1992年4月に公開され、
Linux 0.96cに組み込まれました。改訂版のextは
MINIXの
ファイルシステムの制約を解決しましたが、inodeとタイムスタンプのサポートはまだ不完全なままでした。
1993年1月、この問題を解決するためにxiafsとext2という2つの新しい
ファイルシステムが開発されました。ext2は、Berkeley Fast File Systemから多くのアイデアを取り入れ、それ以降、VFS APIの新規拡張を多く取り込み、テスト段階を経て改善されていきました。
最終的にext2は、4TiBの
パーティションサイズと255バイトまでの
ファイル名長、可変長ブロックサイズをサポートするようになりました。
構造
ext2の
ファイルシステムは、ディスクのフラグメントを減らし、ディスクシークを最小化するためにブロックで分割されています。これらのブロックは、ブロックグループとして組織化されます。スーパーブロックは、OSの起動に必要な重要な情報を含んでいます。
まとめ
ext2は、初期の
Linuxシステムで重要な役割を果たした
ファイルシステムであり、その後の
ファイルシステムの進化に大きな影響を与えました。ext2は、ext3やext4といった新しい
ファイルシステムの登場によってその利用は減少しましたが、
ファイルシステムの歴史を語る上で欠かせない存在です。