File Allocation Table

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

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í[editovat | editovat zdroj]

FAT je jednoduchý souborový systém, proto je podporován prakticky všemi operačními systémy. Určitě ho podporují MS-DOS, FreeDOS, 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[editovat | editovat zdroj]

Souborový systém FAT byl vytvořen v srpnu 1980 s první verzí QDOSu, předchůdce MS-DOSu. První verze neuměla podadresáře a používala 12 bitů pro adresaci sektoru (což omezovalo velikost disku na 2 MiB).

FAT16[editovat | editovat zdroj]

V roce 1983 Microsoft vydal další verzi s podporou podadresářů a používající 16 bitů na adresaci clusteru. Cluster mohl být tvořen jedním nebo více sektory (pouze mocniny dvou), maximálně ovšem 64 (velikost 32 KB). Při jednosektorovém clusteru tak byla maximální možná velikost logického disku 32 MB, při maximálním 2 GB (Dodatečné rozšíření u Windows NT/2000/XP a EDR-DOSu: 64 KB velikost clusteru, logického disku až 4 GB). Tato verze se obvykle nazývá FAT16 s tím, že verzi s 12 bity (ovšem s doplněnou podporou podadresářů) se říká FAT12.

VFAT[editovat | editovat zdroj]

V roce 1995 vyšlo s Windows 95 další rozšíření pro FAT12 a FAT16, nazývané VFAT. Novinkou byla podpora dlouhých jmen souborů (delších než původních 8 znaků jména a 3 znaky přípony). Požadovaného efektu bylo dosaženo tak, že každý soubor s dlouhým názvem obsahuje v seznamu adresářových položek (v seznamu souborů v adresáři) více záznamů umístěných bezprostředně za sebou, přičemž až poslední záznam je standardním záznamem typu FAT. Předchozí záznamy mají příznaky souboru nastavené tak, aby byly staršími operačními systémy ignorovány (proto tyto zobrazují (většinou) pouze krátký název souboru 8+3 uložený v posledním záznamu).

FAT32[editovat | editovat zdroj]

V roce 1997 vyšla verze nazývaná FAT32. Přináší 32bitové adresy clusterů, kde číslo alokační jednotky využívá 28 bitů. Tím se zvyšuje limit velikosti diskového oddílu na 8 TiB pro 32 kiB cluster (228×32 kiB) a velikost souborů na 4 GB (přesně 232−1 bajtů), takže není vhodný pro ukládání velkých souborů, jako jsou obrazy DVD, velké soubory s videem a podobně.

Limitem jsou však i další omezení, která je nutno vzít v úvahu. Systém DOS využívá pro čtení disku BIOS, takže jejich limitem je adresace CHS s hranicí 32 GB (uplatňuje se v prostředí DOSu nebo při startu Windows 95 a 98). Omezení LBA adresace je až do specifikace ATA 66 omezeno hranicí 128 GB (tj. možností komunikace přes starší verzi IDE rozhraní s PATA kabelem). Vadný nástroj scandisk ve Windows 95 a 98 nepracuje s oddíly většími než 128 GB[1][2] a tyto verze Windows obsahují též vadný nástroj fdisk, který nepracuje správně s oddíly většími, než 64 GB.[3] Opravený nástroj fdisk je k dispozici, avšak neumožňuje vytvářet oddíly větší než 512 GB.[4]

Nativní podpora pro 32bitové systémy je obsažena ve Windows 2000 a novějších (včetně Windows XP), které tak umožňují číst a zapisovat na libovolně velký oddíl s FAT32. Záměrně však obsahují nástroj, který umožňuje naformátovat pouze oddíl s maximální velikostí 32 GB (stejný limit uplatňuje také instalační program), protože Microsoft považuje tak velké souborové systémy FAT za pomalé a neefektivní.[1][5] Větší existující oddíly však mohou být bez problému naformátovány jinými programy.[6]

FAT+[editovat | editovat zdroj]

V roce 2006 bylo nezávislými programátory publikováno kompatibilní rozšíření FAT+ (FATplus), zvyšující maximální velikost souboru ze 4 GB na 256 GB. Je implementováno v systému Enhanced-DR-DOS, plánuje se i pro FreeDOS.

exFAT[editovat | editovat zdroj]

V roce 2007 Microsoft uvedl patentovanou exFAT. Nový souborový systém jednodušší než NTFS a podobný FAT, ale nebyl zcela kompatibilní. Podpora nastoupila s Windows 7 v roce 2009. Systém exFAT se využívá u SDXC karet.

Struktura[editovat | editovat zdroj]

Boot sektor (VBR, spouštěcí záznam svazku)[editovat | editovat zdroj]

První sektor logické oblasti disku (označované také jako diskový oddíl, logický oddíl, svazek nebo partition) obsahující souborový systém FAT se skládá ze dvou částí: blok parametrů disku a spouštěcí kód svazku.

Drobné upozornění: Boot sektor není totéž co Master boot record (hlavní spouštěcí záznam), který je úplně prvním sektorem na fyzickém disku a obsahuje tabulku rozdělení disku (Partition table) a hlavní spouštěcí kód. Nicméně boot sektor i master boot record jsou oblíbeným místem počítačových virů, neboť kód uložený v těchto sektorech bývá vykonán dříve než samotný operační systém.

Blok parametrů disku[editovat | editovat zdroj]

Obsahuje specifické informace o svazku jako např. verze, počet sektorů na cluster, počet rezervovaných sektorů před první FAT, počet FAT, počet sektorů kořenového adresáře, celkový počet sektorů na disku, počet sektorů v jedné FAT, název svazku (volume label).

Alokační tabulka souborů (FAT)[editovat | editovat zdroj]

Tato tabulka popisuje přiřazení každého clusteru v oddílu (1 záznam odpovídá 1 clusteru). Obvykle existují 2 kopie (obě jsou uloženy bezprostředně za sebou) – ta druhá je použita v momentě, kdy se první stane nečitelnou.

Přiřazení clusteru může nabývat různých specifických hodnot jako např. volný (0x0000), vadný (0xFFFE), cluster indikující konec souboru (0xFFFF), nebo obsahuje číslo následujícího clusteru souboru.

Kořenový adresář[editovat | editovat zdroj]

V původní verzi obsahoval jednoduchou databázi obsahující veškeré informace o všech souborech, které jsou známé operačnímu systému, v příslušném oddílu. Se zavedením podadresářů (tedy dalších adresářů kromě tohoto) se stal kořenem stromové hierarchie adresářů: záznam o podadresáři v něm uložený neobsahuje žádné informace o souborech uložených v tomto podadresáři (ani součet velikostí), pouze informace o podadresáři. Pokud bychom tedy chtěli pracovat s databází souborů, museli bychom přečíst všechny adresáře (pro běžnou práci se svazkem to ovšem není nutné).

U FAT12 a FAT16 byla jeho velikost stanovena napevno při vytváření souborového systému, od verze FAT32 může být uložen kdekoliv a jeho velikost může libovolně narůstat.

Problémy[editovat | editovat zdroj]

  • Fragmentace
  • Ztracené clustery (pokud jsou ve FAT tabulce clustery označené jako používané avšak k žádnému souboru nejsou přiřazeny)
  • Překřížené soubory (pokud ve FAT tabulce jsou pro 2 nebo více souborů vyhrazeny clustery se stejným číslem)
  • Poškozená FAT (pokud je souboru přiřazen blok několika clusterů, avšak ukazatel v některém z těchto clusterů ukazuje za konec disku nebo oddílu)

Reference[editovat | editovat zdroj]

  1. a b Limitations of FAT32 File System [online]. Microsoft Help and Support, 2004-12-16, [cit. 2006-10-14]. Dostupné online.  
  2. http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q184006&
  3. Fdisk Does Not Recognize Full Size of Hard Disks Larger than 64 GB [online]. Microsoft Help and Support, 2007-01-27, [cit. 2007-03-08]. Dostupné online.  
  4. Fdisk.exe Unable to Partition Drives Larger Than 512 Gigabytes
  5. Chen, Raymond (2006). Microsoft TechNet: A Brief and Incomplete History of FAT32. TechNet Magazine July 2006.
  6. Fat32Format – program pro formátování disků s FAT32 za hranici 32 GB limitu

Související články[editovat | editovat zdroj]

Externi odkazy[editovat | editovat zdroj]