Windows XP

iDevice icon Datotečni sistem FAT

MS-DOS in Windows uporabljata različico povezanega dodeljevanja (linked allocation), vsaka particija vsebuje File Allocation Table (FAT), ki ima po en vnos za vsak blok, FAT vnosi so indeksirani po številkah bloka, tako 5. vnos ustreza 5. bloku particije, vsak vnos vsebuje naslov naslednjega bloka: blok, kjer se datoteka konča namesto naslova naslednjega bloka vsebuje končno oznako End Of File (EOF).

št. bloka

1

2

3

4

5

6

7

8

9

10

št. naslednj. bloka

3

2

4

6

5

EOF

7

8

9

EOF

Zgornja FAT predstavlja particijo razdeljeno na 10 blokov, kjer so eni datoteki dodeljeni bloki 0, 3, 6, 7, 8, 9 in 10, drugi datoteki pa bloki 1, 2, 4 in 5.

Tak pristop je učinkovit, če je lahko celotna FAT hranjena v glavnem pomnilniku. MS-DOS je obšel ta problem tako, da nobena particija ni smela vsebovati več kot 64000 dodelitvenih enot. Ta rešitev je bila sprejemljiva dokler particije niso presegle 128 oziroma 256 MB. Pri današnjih velikostih diskov tak pristop vodi k nesprejemljivi notranji fragmentaciji.




iDevice icon Datotečni sistem NTFS

Načini dostopa: read, write, execute, append, delete, list

Nadzor dostopa: ACL

Zaradi pomankljivosti datotečnega sistema FAT so v podjetju Microsoft razvili sistem NTFS (New Technology File System).

Glavna entiteta datotečnega sistema NTFS je volumen (ang. Volume). Volumen lahko obsega del diska, cel disk ali pa se razteza čez več diskov. Najmanjša enota alokacije na disku je klaster (ang. cluster), ki predstavlja število sektorjev, ki je potenca števila 2. Velikost klastra je določena ob kreiranju datotečnega sistema in znaša 512 bytov za diske do velikosti 1GB, 1KB za diske velikost do 2GB in 4 KB za diske večjih velikosti. Veliko manjša velikost klastra v primerjavi s FAT tabelo ima za posledico veliko manjšo notranjo fragmentacijo.

Datoteka v datotečnem sistemu NTFS ni le tok podatkov temveč objekt sestavljen iz atributov. Vsak atribut je samostojen tok podatkov (ang. byte stream) nad katerim se lahko izvrši operacija branja, pisanja, brisanja ali kreiranja. Nekateri atributi kot so ime datoteke, MS-DOS alias imena, čas kreiranja, varnostni opisnik (ang. security descriptor) so standardni za vse datoteke drugi so specifični. Podatki se hranijo v podatkovnih atributih.

Vsaka datoteka je opisana v enem ali več zapisih v polju zapisov shranjenih v glavni tabeli datotek (MFT – master file table). Tabela lahko hrani podatke same ali pa, v primeru večje količine podatkov, kazalce na podatke. Vsaka datoteka je označena z 64 bitnim številom sestavljenim iz 48 bitne številke datoteke in 16 bitno sekvenčno številko. 48 bitna številka je v bistvu številka zapisa v glavni tabeli datotek, 16 bitna sekvenčna številka pa se poveča vsakokrat, ko se isti zapis v MFT uporabi za novo datoteko.

Metapodatki o volumnu se hranijo v datotekah. Prva datoteka vsebuje glavno tabelo datotek, sledi datoteka s kopijo prvih 16 zapisov MFT, dnevnik - datoteka, ki hrani informacije o spremembah na volumnu (log file), datoteka s podatki o volumnu samem (volume file), korenski direktorij, datoteka z opisi atributov uporabljenih v volumnu (attribute-definition file), datoteka z informacijami o prostih klastrih (bitmap file), datoteka z zagonskimi podatki operacijskega sistema (boot file), datoteka s podatki o slabih klastrih (bad-cluster file).

Vsi podatki se na disk zapisujejo v obliki transakcij. Vsako stanje transakcije se beleži v dnevnik. Ob nepravilni zaustavitvi sistema iz kakršnega koli vzroka se sistem s pomočjo dnevnika postavi v konsistentno stanje tako, da se opravi pregled dnevnika in evidentira transakcije, ki se niso izvršile do konca. Vse nezaključene transakcije se povrnejo v zadnje stabilno stanje pred zaustavitvijo sistema. Na ta način se sicer ne obnovi vseh podatkov, zagotovi pa se konsistentnost datotečnega sistema.

Pravice nad posamezno datoteko se beležijo v obliki seznama pravic (ACL acces list) v enem od atributov datoteke, poseben atribut hrani podatke o lastniku datoteke. Datoteke in mape se lahko tudi kriptira. Operacija kriptiranja je uporabniško prijazna, saj pred delom z datoteko ni potrebno izvesti ročne dekripcije podatkov. Ob uporabi se dekripcija opravi samodejno.