File Allocation Table
FAT je zkratka anglického názvu File Allocation Table. Jedná se o tabulku obsahující informace o obsazení disku v souborovém systému vytvořeným pro DOS. Zároveň se tak označuje zmíněný souborový systém.
Rozšíření
FAT je velmi jednoduchý souborový systém, proto je podporován prakticky všemi operačními systémy. Určitě ho podporují MS-DOS, OS/2, Linux, FreeBSD a BeOS. Kvůli jednoduchosti a rozšíření je velmi často používán na výměnných médiích, jako je disketa (zde se používá verze FAT12), USB flash disk nebo IOMEGA ZIP disk (pozor, na CD se nepoužívá).
Historie
Souborový systém FAT byl vytvořen v srpnu 1980 s první verzí QDOSu, předchůdce MS-DOSu. První verze neuměla direktoráře a používala 12 bitů pro adresaci sektoru (což omezovalo velikost disku na 2MB).
V roce 1983 Microsoft vydal další verzi s podporou poddirektorářů a používající 16 bitů na adresaci clusteru. Cluster mohl být sektor nebo více sektorů (pouze mocniny dvou), maximálně ovšem 64. Při jednosektorovém clusteru to znamená 32MB, při maximálním 2GB. Tato verze se obvykle nazývá FAT16 s tím, že verzi s 12 bity (ovšem s doplněnou podporou poddirektorářů) se říká FAT12).
V roce 1995 vyšla s Windows 95 další verze, nazývaná VFAT. Novinkou byla podpora dlouhých jmen souborů (delších než 8 znaků jména a 3 znaky přípony).
V roce 1997 vyšla verze nazývaná FAT32. Novinkou bylo použití 32 bitové adresy clusteru. To zvyšuje limit na 128 terabajtů. Praktický limit okolo 128GB je způsoben chybou ve scandisku [1].
Design a implementatace
Souborový systém FAT se skládá ze čtyř oblastí:
- Boot sektor. Ten obsahuje základní údaje o souborovém systému, jako je verze, počet sektorů na cluster, počet sektorů FAT, počet sektorů kořenového adresáře, jméno disku (label) a další.
- Oblast tabulek FAT (obvykle jsou na disku dvě, druhá jako záloha)
- Kořenový adresář (ve FAT32 už může být v datech)
- Datová oblast. Obsahuje soubory a další direktoráře.
Tabulka FAT
Tabulka FAT je seznam (pole) záznamů o clusterech. Cluster může být volný (0), špatný, může být posledním clusterem souboru (FFFF) nebo je u něj v této tabulce číslo následujícího sektoru.