Where Does FAT Fail?

The FAT (File Allocation Table) file system was originally designed for the BASIC interpreter, and was later incorporated into QDOS, which evolved into PC-DOS and MS-DOS. The target environment for this software was a desktop computer, and robust handling of power interruption was not a consideration as those machines were in their infancy (though it did create a large market for Uninterruptible Power Supplies).

Many embedded designs depend on battery power, often using a removable battery, and power loss occurs far more frequently than in a desktop situation. To properly handle unexpected power loss, operations must be planned for and contingencies made to clean up the mess afterwards.

As an early option for data organization, the FAT file system attained a certain ubiquity. This paper examines underlying mechanisms used by the FAT file system, characteristics that leave it vulnerable to corruption, and some ways vendors (including Microsoft) are trying to make it more reliable. Are they successful? Can reliability be achieved without sacrificing interoperability? Is the performance cost worth the benefit?