/ˌfæt ˈtwɛlv/

noun — "early File Allocation Table filesystem."

FAT12, short for File Allocation Table 12, is the original variant of the FAT filesystem family, using 12-bit cluster addressing to manage storage on floppy disks and small-volume drives. It organizes data into clusters and tracks their allocation in a linear table, providing a simple yet effective method for file storage and retrieval.

Technically, FAT12 divides a storage medium into fixed-size clusters, each consisting of one or more logical blocks addressed via LBA. The File Allocation Table maintains 12-bit entries for each cluster, specifying the next cluster in a file chain, marking end-of-file, or indicating available clusters. Directory entries store metadata such as filenames, attributes, timestamps, and the starting cluster of each file. This design allows the filesystem to track files efficiently without requiring knowledge of the physical layout of the storage device.

Operationally, writing a file in FAT12 involves allocating free clusters, updating the File Allocation Table to form a cluster chain, and writing the file data into these clusters. Reading a file requires traversing this chain sequentially from the starting cluster to the end-of-file marker. Deletion marks clusters as free, leaving data intact until overwritten, which allows data recovery but can create security considerations. Performance is limited by the linear nature of cluster allocation and by fragmentation, which may slow access as clusters become non-contiguous.

Constraints of FAT12 include a maximum volume size typically around 32 megabytes and file sizes limited by cluster addressing, making it unsuitable for larger storage devices. Its simplicity, however, made it highly compatible across early personal computers, embedded systems, and bootable floppy media. Unlike modern filesystems, FAT12 does not support journaling or advanced metadata.

In practical workflows, FAT12 is mainly encountered in legacy or embedded environments. File systems translate logical file offsets into cluster chains, which are then converted into physical addresses via LBA. Bootloaders and firmware often include routines to read FAT12 volumes directly, providing cross-platform access and enabling early bootstrapping operations on floppy or small drives.

Example of a file cluster chain in FAT12:


File start cluster: 2
FAT[2]  = 5
FAT[5]  = 9
FAT[9]  = EOF

This sequence shows the file occupies clusters 2, 5, and 9, which may be physically non-contiguous but are logically linked via the File Allocation Table.

Conceptually, FAT12 functions like a simple index card system in a small filing cabinet: each card points to the next data location, allowing easy tracking and retrieval, though limited in scale.

See FAT16, FAT32, FileSystem, LBA.