/ˌfæt ˈsɪksˌtiːn/
noun — "legacy File Allocation Table filesystem."
FAT16, short for File Allocation Table 16, is a legacy filesystem that organizes data on block-based storage devices using a 16-bit cluster addressing scheme. It was widely used in early personal computers and embedded devices due to its simplicity, low overhead, and compatibility across operating systems and firmware environments.
Technically, FAT16 divides a storage volume into fixed-size clusters, each representing a number of logical blocks. The core structure is the File Allocation Table, which tracks the allocation of clusters. Each 16-bit entry in the table either points to the next cluster in a file chain, marks the end-of-file, or indicates a free cluster. This linear mapping allows software to access files without knowledge of the physical layout of the disk.
The typical layout of a FAT16 volume includes a reserved area at the beginning containing boot and filesystem metadata, followed by one or more copies of the File Allocation Table, and then a data region containing directories and file contents. Directory entries store filenames, timestamps, attributes, and starting cluster references for files. The simplicity of this design ensures broad compatibility but lacks advanced features such as journaling, access control, or large file support.
Operationally, writing a file on FAT16 involves allocating free clusters, updating the File Allocation Table to form a chain, and writing data into the clusters. Reading a file requires following this chain sequentially. Deleting a file marks clusters as free but does not erase the content immediately, which allows recovery but introduces security considerations. Performance can degrade on large volumes due to linear table searches and fragmented cluster chains.
Constraints of FAT16 include a maximum file size of 2 gigabytes minus 1 byte and a volume size limit of approximately 4 gigabytes, depending on cluster size. These limits stem from the 16-bit addressing in the File Allocation Table, restricting the number of addressable clusters. Partitioning schemes and operating systems must account for these limitations when using FAT16.
In practice, FAT16 was commonly used for floppy disks, early hard drives, and memory cards. It allowed multiple operating systems to access the same volume, making it ideal for cross-platform file sharing and boot media. File system drivers map logical file offsets to cluster chains, which then translate to physical addresses using LBA. Partitioning defines which clusters belong to which volume, isolating different datasets.
Example of cluster chaining in FAT16:
File start cluster: 3
FAT[3] = 7
FAT[7] = 9
FAT[9] = EOF
This indicates the file occupies clusters 3, 7, and 9, which may not be physically contiguous but are logically linked via the File Allocation Table.
Conceptually, FAT16 works like a simple ledger recording which storage boxes belong to which item. Its simplicity allows widespread use, but as storage capacity increases, the ledger becomes inadequate for modern needs.
See FAT32, FileSystem, LBA, Disk Partitioning.