FAT file system
FAT (File Allocation Table) is one of the first file system invented at 1977 for floppy disks at the beginning of the mass computing era. It is simple in implementation, robust in everyday use, has backward compatibility and good performance, especially for empty or unfragmented disks. All these factors made FAT a world standard for HDDs throughout 2 decades of DOS and Windows 9x families and now it's success transferred to mobile devices, digital cameras, embedded systems, memory cards, USB flash memory sticks, etc. It is used at the boot stage of the EFI compliant PCs. Almost every modern OS supports FAT file systems from the box.
master boot record | |
sectors 1 - 62 | |
boot record | |
fat 1 | |
fat 2 | |
root directory | |
sub directory | |
data |
*Note: 1 block = 512 bytes
However there are limitations too. FAT has poor scalability, reliability, security and performance (especially for highly loaded systems). Therefore it's no longer used as FS for HDDs and SSDs. Well you can map disk as FAT logic disk, but now it makes very little sense.
FAT Structure
As you can consider from it's name, FAT stores two tables (one of them is for back up reason) with all the files and their positions on the disk. Both are stored at the beginning of the disk volume to speed up seek operation. Each disk request is processed through these tables. File search to read or write, empty space which fits new lump of data or deletion, which is simply marks file at the file system table as "deleted".
Generations
There are 3 basic generations of FAT:
- FAT12 – used for floppy disks and first MS DOS systems
- Max. volume size: 16/32 MB
- Max. number of files: 4,068
- FAT16 – MS DOS 3+ generation, Windows 3.11
- Max. volume size: 2-16 GB
- Max. number of files: 65,536
- FAT32 – Windows 95, 98, ME, modern flash memory cards, digital cameras, etc.
- Max. volume size: 2-16 TB
- Max. number of files: 268,173,300
Like it's said above, FAT is now actively used in digital cameras memory cards and other media storage’s up to 32 GB. Mapping FAT volume more then 32GB makes little sense as it degrades it's performance, storage space is not optimally distributed, such a large FAT volume can also cause compatibility problems with different devices.