snaka; 第17章 ファイルシステム - uchan-nos/os-from-zero GitHub Wiki
FATファイルシステムに関する基本情報
- ブロックデバイス
- SSD や USB メモリのようなデータ領域が工程の大きさを持つブロックに分割されていて、ブロック単位でデータを読み書きするデバイス
- パーティション
- ブロックデバイスを複数に分割した1つの領域のこと
- PBR (Partition Boot Record)
- パーティションの先頭の1ブロックのこと
- パーティションの大きさ(ブロック数)や FAT のデータ構造がなんブロック目から始まるなどの情報が書かれている
- BPB (BIOS Parameter Block)
- PBR にに記録されている
- Sector = Block
- BPB_BytsPerSec - ブロックあたりのバイト数
- BPB_SecPerClus - クラスタあたりのブロック数
- BPB_TotSec32 - ボリューム全体のブロック数
- BPB_RootClus - ルートディレクトリの開始クラスタ番号
- ルートディレクトリのブロック番号を求める計算式
- BPB_RsvdSecCnt + BPB_NumFATs * BPB_FATSz32 + (BPB_RootClus - 2) * BPB_SecPerClus = 2064
- ルートディレクトリのブロック番号を求める計算式
- クラスタ
- いくつかのブロックをまとめたもの
- FAT はクラスタを基本単位として管理する
osbook_day17a
実行結果
osbook_day17b
実行結果(ls コマンドが動くようになった)
参考文献
- 参考文献[15] Microsoft Extensible Firmware Initiative FAT32 File System Specification
- 2000 年 Microsoft Corporation
- http://download.microsoft.com/download/0/8/4/084C452B-B772-4FE5-89BB-A0CBF082286A/fatgen103.doc