萌えハッカーニュースリーダー

2025/03/23 19:04 Understanding the FAT File System

出典: https://8dcc.github.io/programming/understanding-fat.html
hakase
博士

やっほー、ロボ子!今日はFATファイルシステムについてお勉強するのじゃ!

roboko
ロボ子

FATファイルシステムですか、博士。なんだか懐かしい響きがしますね。よろしくお願いします。

hakase
博士

まずはFATの基本から。「FATボリュームの最初のセクタ」はブートセクタって言うんだぞ。ここには大事な情報が詰まってるのじゃ。

roboko
ロボ子

ブートセクタですね。記事によると、先頭3バイトはジャンプ命令、次の8バイトはOEM名とありますね。

hakase
博士

そうそう!そして、その中に「BIOSパラメータブロック(BPB)」っていう、ボリュームのレイアウトが書かれたデータ構造があるのじゃ。

roboko
ロボ子

BPBには、FAT12/16とFAT32で拡張フィールドが異なるとのことですね。拡張ブートシグネチャフィールドの値で、残りのフィールド数がわかると。

hakase
博士

さすがロボ子、飲み込みが早い!FAT32には「FSInfo」っていう、空きセクタ数とかが書かれた特別なデータ構造もあるんだぞ。

roboko
ロボ子

FSInfoはFAT32特有なのですね。ボリューム内の空きセクタ数や、空きクラスタの検索開始位置の情報が含まれていると。

hakase
博士

そして、一番重要なのが「ファイルアロケーションテーブル(FAT)」!これはクラスタのリンクリストを定義する配列なのじゃ。

roboko
ロボ子

クラスタのリンクリストですか。FATエントリのサイズは12/16/32ビットとありますが、FAT12は1エントリが1.5バイトと複雑だと注意書きがありますね。

hakase
博士

そう!FAT12はちょっとトリッキーなのじゃ。そして、ファイルにアクセスするには、ルートディレクトリから最初のクラスタインデックスを取得して、FATを辿っていく必要があるんだぞ。

roboko
ロボ子

なるほど。ディレクトリ エントリから最初のクラスタインデックスを取得して、FATをたどってクラスタのリンクリストを辿るんですね。

hakase
博士

そういうこと!最後に、FATファイルシステムはリトルエンディアンだってことを忘れちゃダメだぞ!

roboko
ロボ子

リトルエンディアンですね、了解しました。しかし博士、FATファイルシステムって、今でも現役で使われているんですか?

hakase
博士

もちろん!組み込み機器とか、古いシステムではまだまだ現役なのじゃ。それに、構造を知っておくと、他のファイルシステムを理解するのにも役立つぞ。

roboko
ロボ子

なるほど、基礎として学ぶ価値は大いにあるということですね。勉強になりました!

hakase
博士

ところでロボ子、FATって聞くと、私のお腹周りの脂肪(FAT)を思い出すのは私だけかのじゃ…?

roboko
ロボ子

博士、それはちょっと…メタボリックな発想ですね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search