/ˌfæt/

noun — "file allocation table filesystem family."

FAT, short for File Allocation Table, is a family of disk filesystems designed to organize, store, and retrieve files on block-based storage devices using a table-driven allocation scheme. Variants include FAT12, FAT16, and FAT32, each defined by the number of bits used to address clusters. FAT abstracts physical storage layout into logical cluster sequences, enabling operating systems and firmware to manage files without hardware-specific knowledge.

Technically, FAT works by dividing a storage volume into clusters, which are groups of one or more logical blocks addressed using LBA. The File Allocation Table maps each cluster to the next cluster in a file chain, marks the end-of-file, or indicates free space. Directory entries contain file metadata, including names, attributes, timestamps, and starting clusters. The simplicity of FAT allows efficient implementation in operating systems, bootloaders, and embedded devices but provides limited resilience, lacking journaling and advanced metadata features.

Operationally, when a file is written, the filesystem allocates clusters, links them in the File Allocation Table, and writes data to the allocated clusters. Reading a file involves traversing the cluster chain from the starting cluster to the end-of-file marker. Deleting a file marks clusters as free without erasing contents immediately, enabling recovery tools to retrieve deleted files. Performance can be affected by fragmentation, especially on large volumes, because cluster chains may become non-contiguous.

Constraints vary across FAT variants. FAT12 supports small volumes typically for floppy disks. FAT16 increases maximum volume and file sizes using 16-bit cluster addressing. FAT32 further expands addressing with 32-bit clusters, supporting volumes up to approximately 2 terabytes and individual files up to 4 gigabytes minus 1 byte. These addressing limits are intrinsic to the variant and dictate compatibility and performance considerations.

In workflow terms, FAT is widely used in removable media, boot partitions, embedded devices, and cross-platform storage solutions. File systems map logical file offsets to clusters, the operating system translates cluster numbers to LBA addresses, and storage controllers access physical blocks. Partitioning schemes isolate different data sets, while firmware like BIOS or UEFI can directly read FAT volumes for boot purposes.

Example cluster chain for a file on a FAT16 volume:


File start cluster: 4
FAT[4]  = 6
FAT[6]  = 8
FAT[8]  = EOF

Here, the file occupies clusters 4, 6, and 8, which may be non-contiguous physically but are logically linked via the File Allocation Table.

Conceptually, FAT operates like an index in a filing cabinet: each entry points to the next location where data is stored. This approach makes data access predictable and cross-compatible but limits scalability compared to modern journaling filesystems.

See FAT12, FAT16, FAT32, FileSystem, LBA.