Preskočiť na obsah

Vývoj operačného systému/Súborové systémy FAT12 a FAT16

Mysli slobodne. Uč sa slobodne. — Zo slobodnej knižnice Wikibooks ~ Wikiknihy.

Súborový systém FAT bol po prvý krát uvedený v roku 1977. Publikovaná verzia príbehu o jeho vzniku hovorí, že vznikol ako výsledok konverzácie Billa Gatesa s jeho spolupracovníkom Marcom McDonaldom, ktorý ho napokon aj naprogramoval.

Prvá verzia súborového systému FAT bola 8-bitová (FAT alebo FAT8), to znamená, že na adresovanie klasterov (clusters) v súborovom systéme bol použitý jeden bajt. Tento systém bol uvedený v roku 1977 a znamenal začiatok série súborových systémov FAT, pričom každý ďalší mal základ v ňom.

V roku 1980 bol uvedený súborový systém FAT12. 12-bitové adresy nie sú v tabuľke uložené až tak jednoznačne. Z každej dvojice záznamov má prvý jeden a pol bajtu (v poradí), pričom ďalší záznam má už pol bajtu a jeden (teda záznam je v opačnom poradí). Maximálny počet súborov sa hýbe okolo 4096, čo logicky súvisí s výskytom tejto verzie prevažne na disketách.

Nový súborový systém podporujúci väčšie zariadenia vyšiel v roku 1984. FAT16 je z hľadiska štruktúry kópiou FAT12 (teda mimo veľkosti záznamu vo FAT tabuľke) a práca s ním je jednoduchšia.

Nie každé zariadenie alebo partícia môže používať ľubovoľnú z verzii (ľubovoľnú verziu môžeme označovať ako FATx), kedže minimálna veľkosť vyššej verzie sa začína tam, kde končí maximálna veľkosť nižšej verzie.

Princíp

[upraviť]

Dátová oblasť súborového systému je rozložená do klasterov. Platí, že jeden klaster na disku nikdy nie je väčší ako jeden sektor.

Základom každej verzie systému FAT je hlavička (FAT Header), alebo Bios Paramter Block (BPB). Hlavička obsahuje potrebné informácie, ako napríklad veľkosť jedného sektoru, klasteru alebo počet záznamov v koreňovom priečinku. Pre systémy FAT12/16 sú položky základnej hlavičky autentické. S príchodom súborového systému FAT32 vznikla rozšírená hlavička FAT (a to aj pre staršie verzie).

Za hlavičkou nasleduje samotná FAT tabuľka - základ celého systému. Každá tabuľka pozostáva zo záznamov o veľkosti zodpovedajúcej verzii. Prvé dva záznamy sú rezervované, podobne aj posledných 9 alebo 10. Nultý a prvý záznam štandardne obsahujú rôzne dodatočné informácie o zariadení/systéme. Každý záznam (okrem prvých dvoch) predstavuje klaster, pričom jeho hodnota nie je jeho pozícia na disku, ale číslo jeho pokračovania. Čítanie súboru z disku teda prebieha v schéme

  1. Vypočítaj pozíciu na disku
  2. Prečítaj sektory patriace jednému klasteru
  3. Získaj pokračovanie z FAT tabuľky
  4. Ak je pokračovanie neplatná hodnota -> chyba, ak hodnota posledného klasteru -> skonči. Ak hodnota nevyhovuje predošlým podmienkam, skoč na 1.

Zápis nového súboru na disk prebieha podobne

  1. Alokuj nový klaster (nájdi v tabuľke voľný záznam)
  2. Vypočítaj pozíciu na disku
  3. Zapíš dáta o veľkosti jedného klasteru na disk
  4. Ak sú všetky dáta zapísané, nastav hodnotu záznamu pre alokovaný klaster v tabuľke na hodnotu posledného záznamu. Inak alokuj nový klaster a zaznamenaj ho ako pokračovanie predošlého
  5. Skoč na 2.

Z pohľadu dát FAT nerozlišuje medzi súborom a priečinkom. Priečinky majú v súborovom systéme FAT špeciálnu štruktúru a presné pravidlá pre názvy súborov. Každý záznam v priečinku má 32 bajtov.

Pozri aj

[upraviť]