FAT(エフエーティー)とは | 意味や読み方など丁寧でわかりやすい用語解説
FAT(エフエーティー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ファイル割り当てテーブル (ファイルワリ アテ テーブル)
英語表記
FAT (エフエイティー)
用語解説
FAT(ファット)とは、コンピュータのストレージデバイスにおいて、ファイルやディレクトリを管理するための仕組みであるファイルシステムの一種である。File Allocation Table(ファイルアロケーションテーブル)の頭文字を取ったもので、日本語では「ファイル配置テーブル」と訳されることがある。主にUSBメモリやSDカード、外付けHDDなど、さまざまなストレージデバイスで広く利用されている。
このファイルシステムは、マイクロソフトが開発し、MS-DOS時代から長く使われてきた非常に歴史のある技術だ。コンピュータがストレージにデータを保存したり、保存されているデータを読み出したりする際には、そのデータがストレージのどこに、どのような形式で配置されているかを正確に知る必要がある。FATはまさにその「どこに、どのような形式で」を管理するための設計図や目次のような役割を担っている。
詳細に説明すると、ストレージデバイスはデータを保存する際に、物理的な領域を「セクタ」という小さな区画に分割している。しかし、ファイルシステムがセクタ単位でデータを管理すると非常に非効率になるため、複数のセクタをまとめた「クラスタ」という単位でデータを管理する。このクラスタがFATファイルシステムにおける最小のデータ管理単位となる。
FATの「File Allocation Table」とは、まさにこのクラスタの利用状況を記録したテーブル(表)のことである。各クラスタがどのファイルのどの部分を構成しているか、次に続くクラスタはどれか、あるいは空いているクラスタはどれか、といった情報がこのテーブルに記録されている。ファイルがストレージに書き込まれると、OSはFATを参照して空いているクラスタを見つけ、データを書き込み、その情報をFATに記録する。ファイルを読み出す際には、ファイルの最初のクラスタからFATに記録されたリンク情報を辿っていくことで、ファイル全体を読み出すことができる。
FATファイルシステムには、その歴史の中でいくつかのバージョンが存在する。 まず、最も初期のバージョンがFAT12である。これは主にフロッピーディスクなどの小容量ストレージで使われた。クラスタアドレスを12ビットで管理するため、最大4096個のクラスタしか扱えず、対応できるディスク容量やファイルサイズは非常に小さかった。
次に登場したのがFAT16である。これはMS-DOSやWindows 95の初期バージョンで広く利用された。クラスタアドレスを16ビットで管理することで、FAT12よりも大きなディスク容量(最大2GB、Windows NT系では4GB)をサポートできるようになったが、ルートディレクトリ(最上位のディレクトリ)に格納できるファイルやディレクトリの数に制限があった。また、1ファイルあたりの最大サイズも2GBに制限されていた。FAT12とFAT16は、ファイル名に「8.3形式」(ファイル名8文字、拡張子3文字)という制限があり、長いファイル名に対応するためには「VFAT」(Virtual FAT)と呼ばれる拡張機能が必要だった。
Windows 95 OSR2で導入されたFAT32は、これらの制限を大幅に緩和した画期的なバージョンである。クラスタアドレスを32ビットで管理することで、最大2TB(理論上は8TB)までのパーティションをサポートし、ルートディレクトリのエントリ数制限もなくなった。1ファイルあたりの最大サイズは4GBまで拡張され、現代の多くのUSBメモリやSDカードでも引き続き広く利用されている。しかし、4GBを超える単一のファイルを保存できないという制約は残っていた。
そして、Windows Vista SP1以降で導入されたのが**exFAT(Extended File Allocation Table)**である。これは、FAT32の4GBファイルサイズ制限を克服するために開発されたもので、特に大容量のフラッシュメモリ(SDXCカードなど)向けに最適化されている。exFATは、数テラバイトのパーティションと、4GBを超える巨大なファイルを扱えるようになり、実質的にファイルサイズやパーティションサイズの制限はない。また、FAT32に比べて管理領域のオーバーヘッドが少なく、パフォーマンスも向上しているため、現代の多くのポータブルストレージデバイスで採用されている。
FATファイルシステムの長所は、そのシンプルさと高い互換性にある。多くのOS(Windows、macOS、Linuxなど)や家電製品、デジタルカメラなどで特別なドライバなしに読み書きできるため、異なるシステム間でデータをやり取りする際の標準的なファイルシステムとして重宝される。管理構造が単純であるため、小さなストレージデバイスや組み込みシステムにおいても実装が容易で、オーバーヘッドが少ないという利点もある。
一方で短所も存在する。最大のデメリットの一つは、ファイルシステムの構造上、ファイルの断片化(フラグメンテーション)が発生しやすいことである。これは、ファイルがストレージ上の連続しない複数のクラスタにばらばらに保存される現象で、ファイルの読み書き速度の低下につながる。また、FATはセキュリティ機能が貧弱である。NTFSのようなアクセス権限(ファイルの読み書きや実行を特定のユーザーに制限する機能)を管理する機能を持たないため、多人数で共有するシステムや機密性の高いデータを扱うには不向きである。さらに、ジャーナリング機能(ファイルシステムの変更を事前にログに記録し、システムクラッシュ時のデータ整合性を保つ機能)を持たないため、突然の電源断などが発生した場合に、ファイルシステムの破損やデータ損失のリスクが高いという信頼性の問題もある。
現代において、WindowsのメインのファイルシステムはNTFSが主流であるが、FAT、特にFAT32やexFATは、その高い互換性とポータビリティ(持ち運びやすさ)から、USBメモリ、SDカード、外付けHDD、デジタルカメラ、スマートフォンなどのリムーバブルメディアや、異なるOS間でのデータ交換用途において、依然として重要な役割を果たしている。システムエンジニアを目指す上で、これらのファイルシステムの特徴を理解することは、ストレージ管理やデータ復旧、さらにはデバイス開発といった多様な場面で役立つ基礎知識となるだろう。