Računalništvo, telefonija
29.09.2005 23:15
Posodobljeno 16 let nazaj.

Deli z drugimi:

Share

Tehnični pregled: FAT12 datotečni sistem


Skica zgradbe diskete

FAT12 datotečni sistem se dandanes ne uporablja več tako pogosto kot pred leti predvsem zaradi prihoda prenosnih naprav, ki potrebujejo zmogljivejše datotečne sisteme z večjo kapaciteto. Vendar pa se je FAT12 odlično obnesel kot datotečni sistem za manjše podatkovne nosilce katerih kapacitete lahko tehnično dosegajo tudi do 32 MB. Disketa je ena izmed teh nosilcev in jo bomo v tem tekstu vzeli kot testni primerek. Klasična 3,5-palčna disketa je standardno formatirana na kapaciteto 1,44 MB. Glede na to koliko sektorjev vpišemo na posamezno sled diskete pa jo lahko formatiramo tudi na 720 kB ali 2,88 MB. Na tem mestu smo že prišli do nekaterih strojnih omejitev (sledi). Na 3,5-palčni disketi se nahaja 80 sledi (tracks) na katere lahko zapisujemo sektorje. Odvisno od kapacitete diskete se na eni sledi nahaja 9 (720 kB), 18 (1,44 MB) ali 36 (2,88 MB) sektorjev. Prav tako pa ne smemo pozabiti da je disketa obojestranski medij in imamo torej na vsaki strani diskete zapisane podatke. V našem primeru bomo podrobneje pregledali format 1,44 MB, ki se izmed vseh najpogosteje pojavlja.

Zgradba
Na disketi ki je formatirana na 1,44 MB nam je na voljo 80 sledi, 18 sektorjev na vsaki strani vsake sledi, vsak sektor pa lahko hrani 512 Bytov informacije. Če to pomnožimo ugotovimo, da se na disketi nahaja (80*18*2) 2.880 sektorjev in ko jih pomnožimo še s samo velikostjo sektorjev (80*18*2*512) dobimo dejansko kapaciteto diskete ki znaša 1.474.560 Bytov. Vendar pa nam ni vsa kapaciteta na voljo prav tako ne vsi sektorji. Zato si do obisti poglejmo kaj se nahaja na disketi.

V osnovi je razdelitev sektorjev na disketi takšna:

Boot Sektor
Prvi sektor (0) na disketi je takoimenovani Boot sektor oziroma zagonski sektor. V njem se na vnaprej določenih mestih nahajajo informacije o samem nosilcu.

File Allocation Table – FAT
Po boot sektorju se na disketi nahajajo dve FAT tabeli od katerih vsaka zaseda 9 sektorjev. Druga FAT tabela je kopija in se redko uporablja. Zato pa je zelo pomembna prva FAT tabela v kateri se nahaja informacija o stanju gruč (clusters) na disketi. Ker je na tako formatirani disketi ena gruča enaka velikosti enega sektorja ju lahko v tem primeru enačimo. Poznamo pa naslednja stanja v katerih se lahko sektor nahaja:

Ker sta prvi sektor (boot sektor) in drugi sektor (začetek FAT tabele) rezervirana sta na začetku FAT tabele vedno dva standardna fiksna zapisa, ki označujeta njen začetek in sicer oznaki za [reserved] in [EOF]. V hexadecimalnem zapisu torej F0 FF FF.

Direktorijska struktura
V sektorjih 19 do 32 pa se nahajajo podatki o direktorijski strukturi, ki so organizirani v naslednjem zaporedju po 32 bytov:

Zaključek
Med samim raziskovanjem FAT12 sistema sem ob pomoči Roka Potočnika (alias NoName), ki se mu na tem mestu za pomoč in vložen trud najlepše zahvaljujem, v parih dneh sprogramiral tudi program v C-ju, ki z diskete na podlagi FAT tabele naredi kopijo zasedenih sektorjev in jo shrani v datoteko od koder lahko nato popolnoma restavriramo originalno disketo. Prav tako bi se s takšnim poznavanjem FAT tabele in zapisov v direktorijski tabeli brez težav lahko restavrirali podatki, ki smo jih z diskete pred tem izbrisali. Pa je to le “primitivni” FAT12 sistem…

Nauk tega članka naj bo:
Ni važno za kateri datotečni sistem gre, navadno brisanje datotek ni dovolj, vkolikor se želimo vsebine datotek popolnoma znebiti. Kajti s poznavanjem datotečnega sistema se da relativno enostavno zopet priti do njihove vsebine. Za popolno uničenje izbrisanih datotek pa je potrebno prepisati tudi sektorje na katerih se je datoteka nahajala. Več o tem pa kdaj drugič.


Prijavi napako v članku