How to Read the Wikipedia FAT Article
The FAT file system is interesting for a number of reasons, but there
is no good scientific paper on the subject. For that reason, I prefer
to have you read the Wikipedia
article on the design of FAT32. However, that article contains a lot of
extraneous detail about historical and proprietary variations on FAT
that obscure its design elements. Thus this page, which will help you
wade through the mess.
When you are reading the FAT32 article, observe the following guidelines:
- In all cases, ignore details of hex numbers, especially when the
article discusses variants across FAT versions. Remember that
our goal is to understand the essence of the design, not to be
able to implement something that can precisely interact with
any FAT filesystem that is out there.
- As a general rule, skip any discussions of non-Microsoft variants.
If it doesn't say "MS-DOS" or "Windows", it's not important.
Even for MS operating systems, ignore low version numbers. We
care about today, not 1983.
- Read "Layout." Skip "Boot Sector" and all flavors of "BIOS
Parameter Block," including the very long table of disk layouts.
Skip "Exceptions".
- Read "FS Information Sector," "File Allocation Table," and
"Directory table" but don't pay a lot of attention to the character
sets.
- Skim through "Size limits" and "Fragmentation."
- Read "Directory Table" and "Directory Entry",
and pay attention to what is stored where.
In particular, give some thought to how the historical development
of the file system has led to the current layout. Pay careful
attention to offsets 0x0B, 0x0D, and ox0E. Note that for offsets
0x0E through 0x14, the last entry in the box is the one of interest
while for 0x16 and 0x18 it's the first bullet that matters.
- Also give good attention to "VFAT long file names".