File Allocation Table: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
doplnenie
revision 1 / pracuje sa
Riadok 1:
{{pracuje sa}}
'''File Allocation Table''', skrátene '''FAT''', je čiastočne patentovaný [[súborový systém]], ktorý sa používal v prvých 16/32-bitových verziách operačného systému [[Microsoft Windows]] a v systéme [[MS-DOS]]. Existuje niekoľko verzií systému FAT, napríklad [[FAT12]], [[FAT16]] a [[FAT32]]. Systém FAT32 sa používal od Windows 95 OSR2 až po Windows ME.
[[Súborový systém]] FAT je relatívne jednoduchý a je podporovaný všetkými [[operačný systém|operačnými systémami]] pre [[PC]]. Táto vlastnosť ho činí vhodným pre použitie na [[disketa|disketách]], flash diskoch a pamäťových kartách, ako schodnú cestu na prenášanie dát medzi rôznymi [[operačný systém|operačnými systémami]]. <br>
 
[[Súborový systém]] FAT bol vytvorený [[Bill Gates|Billom Gatesom]] a [[Marc McDonald|Marcom McDonaldom]] v roku [[1977]]. V auguste [[1980]] [[Tim Paterson]] začlenil FAT do operačného systému 86-DOS. Prvá verzia FAT bola nazvaná ''FAT 12''. Mala množstvo obmedzení: adresy clusterov boli 12 bitové (to obmedzovalo počet clusterov na 4096) a počet sektorov disku bol daný ako 16 bitové číslo, čo obmedzovalo veľkosť disku na 32 MiB. Fat32 je obmedzeny v množstve dat s ktorymi môže pracova u staršich HDD je to 4GB
== História ==
 
[[Súborový systém]] FAT bol vytvorený [[Bill Gates|Billom Gatesom]] a [[Marc McDonald|Marcom McDonaldom]] v roku [[1977]]. V auguste [[1980]] [[Tim Paterson]] začlenil FAT do operačného systému 86-DOS.
 
=== FAT 12 ===
 
Prvá verzia FAT bola nazvaná ''FAT 12''. Mala množstvo obmedzení: adresy clusterov boli 12 bitové (to obmedzovalo počet clusterov na 4096) a počet sektorov disku bol daný ako 16 bitové číslo, čo obmedzovalo veľkosť disku na 32 MiB
Fat32 je obmedzeny v množstve dat s ktorymi môže pracova u staršich HDD je to 4GB
{{počítačový výhonok}}
 
[[Kategória:Súborové systémy]]
1 Zoznam skratiek
 
1 == Zoznam použitých skratiek ==
FAT – File Adress Table
BS - boot sector
Řádek 20 ⟶ 11:
OEM- Original Equipment Manufacture
DBCS- Double Byte Character Set
 
2 == Štruktúra disku celkovo ==
Pevný disk sa v skutočnosti skladá z niekoľkých diskov, každý z diskov má dva povrchy. Tieto povrchy sú číslované od 0. Na každom povrchu sú stopy (číslované od 0) a sektory (číslované od 1), stopy sú sústredné kružnice a sektory kruhové výseče. Prienikom jednej stopy a jedného sektoru vznikne oblasť, na ktorú sa dá zapísať obvykle 1/2 KB (teda 512 B).
Na pevnom disku sa používajú súborové systémy FAT16 nebo FAT32, pre diskety sa dá použiť FAT12.
Prienikom jednej stopy a jedného nebo viacerých sektorov vznikne tzv. alokovatelná jednotka alebo cluster. U FAT16 to sú dva sektory, do jedného clusteru môžeme zapísať 2*512 = 1024 B, u FAT32 obvykle štyri sektory (dá sa vybrať pri prevode na FAT32), môžeme tu zapísať napríklad 4*512 = 2048 B.
 
Pokiaľ chceme uložiť nejaký súbor, systém vezme prví voľný cluster, ak nestačí, pridá ďalší voľný. Znamená to teda:
* dochádza k fragmentaci priestoru na disku (nie je povedané, že ďalší voľný cluster sa nachádza za tím, ktorý bol použití pre predchádzajúcu časť súboru),
* aj keby bol súbor dlhý napr. len jeden B, vždy je zabraný celý cluster (teda 2 alebo 4 KB).
 
3 == Master boot record ==
Tuto časť sa BIOS pokúša spúšťať po naštartovaní systému pokiaľ je na správnej partícii. Kód uložený v BOOT recordu má potom za následok načítanie operačného systému, alebo iba vypísanie hlásenia, že niečo takéto na disku nie je.
 
Offset: Popis:
00h-002h JMP - Inštrukcie:
CLI
JMP 03Eh
003h-00Ah Meno DOSu a jeho verzie
Tu je 8 znakov dlhý textový reťazec. Prázdne miesto je vyplnene medzerami (kód 32, 20h).
00Bh-00Ch Počet bytov na sektor - skoro vždy 512
Řádek 62 ⟶ 57:
Veľa ľudí sa mylne domnieva, že toto indikuje DOSovský BootRecord, ale to nie je pravda. Tato značka je používaná pokiaľ pmaster bootstraprecord??? rozdeleného harddisku zisťuje či je vybraný bootstraprecord vybraného oddielu správny.
 
4 == Štruktúra FAT filesystému ==
Filesystém v MSDOSe je organizovaný pomocou FAT. Rozoznávame FAT12 a FAT16 podľa toho, koľko bitov vyhradzuje na (logickú) adresáciu disku. FAT je jednorozmerná tabuľka (pole), ktorá obsahuje údaje o obsadenosti jednotlivých oblastí (clustrov--pozri ďalej) disku/diskety. Väčšinou existujú dve kópie—keby sa jedna (prvá) fyzicky porušila. FAT spolu s adresármi určuje fyzické uloženie súborov.
Disketa aj disk sú delené na clustre, ktoré sú z hľadiska file-systému MS DOSu najmenšou adresovateľnou jednotkou (sú to vlastne logické bloky). Priestor na diskete sa súborom prideľuje po clustroch. Ak napr. cluster pozostáva z 8 sektorov, t.j. ma 4KB, a v adresári máte 100 súborov po 100B, tak máte zhruba 10KB údajov, ale vo filesystéme zaberajú 100x4KB=400KB miesta, t.j. využívate priestor na 2,5%. Nanešťastie počet clustrov je zhora ohraničený typom FATu: 4096 pre FAT12 (reálne o niečo menej), 65536 pre FAT16 (reálne zase o niečo menej). To je najväčší problém filesystému typu FAT, hlavne pri veľkých diskoch: vynucuje veľké clustre a tým plytvanie priestorom.
 
5 == Štruktúra boot sektora ==
Prvá dôležitá dátová štruktúra na zväzku FAT sa nazýva BPB (Bios Parameter Block), ktorá je umiestená v prvom sektoru zväzku v Rezervované oblasti. Tento sektor sa taktiež někdy nazývá "boot sektor" nebo "reserved sektor" nebo "nultý sektor",podstatné je však to, že jde o první sektor svazku.
 
 
=== FATčasti 12BPB. ===
Tab. 5: Nasledujúca tabuľka ilustruje jednotlivé časti BPB.
Oblasť Začiatok (offset) Veľkosť Popis
Bytes Per Sector 11 2 Fyziká veľkosť sektoru v bytoch. Zvyčajne 512.
Řádek 92 ⟶ 88:
 
 
6 == Štruktúra FAT tabuľky ==
 
Fatka je pravdepodobne najdôležitejšia tabuľka na celom médiu. Definuje sa v nej, ktoré sektory sú voľne a ktoré sú použité a pre ktorý súbor, v akom poradí idú sektory súboru za sebou, definujú sa tam rezervované sektory pre špeciálne účely, a tiež sú v nej zakódované aj všetky dĺžky súborov. Najdôležitejšia informácia je práve informácia o tom, ako za sebou idú sektory jednotlivých súborov.
 
Řádek 109 ⟶ 104:
FAT tabuľka definuje spojový zoznam rozsahu súboru (clustery)
- FAT začína na logickom sektore prvého segmentu.
 
Štruktúra:
Prvý byte FAT sa nazýva Deskriptor media alebo tiež identifikační byte FAT. Od ďalšieho 5 bytu (12b FAT) alebo 7 bytu (16b FAT) sú samé 0ffH. Zbytok FAT sa skladá z 12 alebo 16 bitových buniek, ktoré reprezentujú jeden cluster disku. Význam hodnôt položiek vo FAT:
Řádek 121 ⟶ 117:
Toto schéma ukazuje hlavní spôsob čítania FAT. Z obrázku vyplýva:
7 == Štruktúra dátovej časti ==
 
7 Štruktúra dátovej časti
Clustery dátovej časti sú očíslované. FAT obsahuje pre každý clustr 1 záznam ktorý zaberá 2 alebo 4byty(podľa typu FAT). Ak je v klastery súbor alebo adresár, záznam obsahuje odkaz na záznam klastrov na ktorom súbor pokračuje ak nejde o posledý claster súboru(0xFF). Adresárový alebo súborový kontajner vo FAT je bežný súbor 32 bajtový záznam FAT adresára. FAT mapuje oblasti dát vo zväzku podľa čísla clusteru. Prvý dátový cluster je chluster 2. Prvý sektor clusteru 2 je vypočítaný použitím BPB polí pre zväzok.
Datová oblast sa skládá z položiek, ktoré vyzerajú takto:
Řádek 149 ⟶ 144:
Atribút R znemená, že súbor sa dá iba čítať, ale nie do neho zapisovať.
 
8 == Štruktúra adresára ==
Adresár FAT nie je nič iné ako "súbor" zložený z lineárneho zoznamu 32 bajtových štruktúr. Jediný adresár, ktorý musí byť vždy prítomný je koreňový adresár. U médií s FAT12/16 je koreňový adresár umiestený hneď za poslední FAT a má pevnú veľkosť v sektoroch, spočítanú z hodnoty BPB_RootEntCnt (výpočet RootDirSectors vyššie). Pre tieto média je prví sektor koreňového adresáre daní číslom sektoru vzťahujúcim sa k prvému sektoru zväzku FAT:
 
8.1 === Složka rootu (Root directory) ===
Zložka rootu je umiestená za FAT. Jej dĺžka nie je jednoznačná a závisí na konkrétnom disku. Aby bola možnosť použiť stromovou štruktúru zložiek, pozerá sa systém na všetky zložky (až na root) ako na súbor. Každá položka zložky má dĺžku 32 B. Prvých 8 B sa tyká názvu súboru, kde prví B je rozhodujúcim. Pre bežný súbor alebo zložku je ním prví znak názvu. Môže však obsahovať iný znak, napr. ide o zmazaný súbor. O tom sa môžeme presvedčiť, pokiaľ sa snažíme obnoviť zmazaný súbor. Ďalšie 3 B zaujíma 3bytová prípona. Nasleduje 1bytová položka, u ktorej jednotlivé bity znamenajú atribúty súboru. V poradí od nultého sú to:
1. ReadOnly - súbor je chránený proti zápisu.
Řádek 169 ⟶ 165:
Dlhé mena prešli skrz súborový systém nie sú prevedené na veľké znaky a ich pôvodná hodnota je zachovaná. UNICODE rieši problém s mapovaním veľkých a malých písmen bežných u niektorých OEM kódových stránok automatickým prevodom malých znakov na jednotné veľké znaky.
 
10 == Krátky adresárový záznam ==
Krátke mená sú obmedzene na 8 znakov nasledovaných voliteľnou bodkou a až 3-písmennou príponou. Celková dĺžka cesty krátkeho mena nemôže prekročiť 80 znakov (64 znakov cesta + 3 písmeno jednotky + 12 pre meno 8.3 + NUL) vrátané ukončenia NUL. Znaky môžu byť ľubovoľnou kombináciou písmen, číslic alebo znakov s kódovou hodnotou vetšou ako 127. Nasledujúce znaky sú taktiež povolene :
$ % ' - _ @ ~ ` ! ( ) { } ^ # &
Řádek 175 ⟶ 171:
 
 
11 == Algoritmy ==
 
11.1 === Určenie začiatku dátovej oblasti ===
 
FirstDataSector = BPB_ResvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors;
Řádek 213 ⟶ 209:
4. ak je n > velkost clustera*1 goto 1
 
[[Kategória:Súborové systémy]]