ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
Microsoftが開発し、MS-DOSで普及し、後にMicrosoft Windowsで拡張を重ねて使用されているファイルシステム(ディスク管理方法)の一つ。
FATは、ビル・ゲイツと、Microsoft初の給与従業員だったMarc B. McDonaldによって発案、開発されたファイルシステムである。
初期のものはクラスター番号を8ビットで表現しており、このためFAT8とも呼べるものだったが、当時も今も、そのような呼び方はしていなかったようである。
このシステムはMicrosoftのDisk BASICで採用され、日本でも、PC-8000シリーズやPC-8800シリーズなどのDISK BAISCで採用されていた。
その後、クラスター番号長が10ビットや12ビットに拡張されたが、MS-DOS用として最初に導入されたものが12ビット長であり、これがFAT12として広く普及することになった。
まだFATとは一般に呼ばれていなかった頃、PC-8000シリーズやPC-8800シリーズのDISK BAISCでこのファイルシステムは使われていた。
ファイルシステムとは直接関係がない話ではあるが、中でもPC-8001のN-BASICの実装は、FAT情報をメモリーに置いており逐一ディスクに書き込まないことを特徴とした。ディスクを取り出す前にremoveをしてフラッシュする必要があり、これを忘れるとファイルシステムを破損した。不便だったため、88以降では不要になった。
Tim Patersonが開発した86-DOS(QDOS)、これを買収して開発されたMS-DOSは、共にファイルシステムとしてFATを採用している。
86-DOS(QDOS)はCP/Mを参考に開発されていたが、コード自体は完全なオリジナルでCP/Mからの流用はなかった。そしてファイルシステムは、CP/M互換ではなく、当時彼が使用していたBASIC-86との互換性のため、8ビットのFATを採用した。
そしてMS-DOS 1となったとき、12ビットのFATとして出荷されたのである。
FAT12/FAT16の二種類は、ECMA-107およびISO/IEC 9293として国際標準となっている。日本語規格はJIS X 0605が相当する。
FATの特許等は当然Microsoftにある(あった)と思われるが、FAT12/FAT16については、広く普及はしたが特に特許料などは要求してこなかった。
2003(平成15)年頃には、FAT32やVFATなど、まだ特許件が残存していそうなものを根拠にしてか、ライセンス料を要求しようという話が出たこともある。その後どうなったかは不明。
ディスクは、次の領域に分けられる。
ディスク上の領域は、クラスターと呼ばれる単位で管理される。このクラスターのつながり状態(リンク情報)をFAT領域に記録することで、データ領域にある実際のデータがディスク上にどのように存在するのかを管理することができる。
ファイルの名称等の情報は全て「ディレクトリエントリ」に格納される。
サブディレクトリのディレクトリエントリはファイルと同様の管理が内部でされているが、ディレクトリエントリに「ディレクトリである」というフラグが付けられている。
FATにおける基本的な仕様は次の通り。
FATには、2108年問題が存在する。
Windows NT以降では、従来未使用だった領域に情報が書き込まれるようになった。
以下は、Microsoft Extensible Firmware Initiative FAT32 File System Specificationによる。
日時関係は、次の仕様となる。
最終アクセス日はDIR_LstAccDateに記録されるが、時刻は保存されない。但し書き込みをした場合、DIR_WrtTimeに時刻が書き込まれる。
なお、最終更新日時とされる情報は、旧来のシステム(MS-DOSの時代)にはファイル作成日として使われていた。
Windows 95以降で対応したロングファイル名も、同様に1つ以上のディレクトリエントリを用いて情報を記録する。
この旧来に対する拡張情報は、ファイル属性(R+H+S+V)とした特殊な領域に格納される。これは互換性を考慮した結果と思われる。
OSからはVFATという仮想レイヤーを経由してアクセスされる。結果としてディスクがFATであれば、従来と互換性を保つために特殊な隠しファイルとしてファイル属性(R+H+S+V)としたものをディレクトリエントリに書き込む。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます