The FAT (File Allocation Table) file system has its origins in the late 1970s and early1980s
and was the file system supported by the Microsoft MS-DOS operating system. It was
originally developed as a simple file system suitable for floppy disk drives less than 500K in
size. Over time it has been enhanced to support larger and larger media. Currently there are
three FAT file system types: FAT12, FAT16 and FAT32. The basic difference in these FAT
sub types, and the reason for the names, is the size, in bits, of the entries in the actual FAT
structure on the disk. There are 12 bits in a FAT12 FAT entry, 16 bits in a FAT16 FAT entry
and 32 bits in a FAT32 FAT entry.
The first important data structure on a FAT volume is called the BPB (BIOS Parameter Block), which is located in the first sector of the volume in the Reserved Region.
This sector is sometimes called the "boot sector" or the "reserved sector" or the "0th sector," but the important fact is simply that it is the first sector of the volume. The BPB in the boot sector defined for MS-DOS 2.x only allowed for a FAT volume with strictly less than 65,536 sectors (32 MB worth of 512-byte sectors). This limitation was due to the fact that the "total sectors" field was only a 16-bit field. This limitation was addressed by MS-DOS 3.x, where the BPB was modified to include a new 32-bit field for the total sectors value. The next BPB change occurred with the Microsoft Windows 95 operating system, where the FAT32 type was introduced. FAT16 was limited by the maximum size of the FAT and the maximum valid cluster size to no more than a 2 GB...