2. részlet

Fájl struktúra

A lemezek nyomvonalakra és szektorokra vannak felosztva (track/sector), ahogy a második ábra mutatja. Egy bizonyos adat tömb eléréséhez, a program először a megfelelő nyomvonalhoz ugrik, majd megvárja amíg a forgó lemez a megfelelő szektort a fej alá mozgatja.

Ábra 2: A lemez szektorok elhelyezkedése az IBM Személyi Számítógép (egyoldalú) formátumában.

Egy kissé elvontabb lemez szemlélet lett megvalósítva az MS-DOS fejlesztése során. Az MS-DOS a lemezt nem a nyomvonalaknak és szektoroknak tekinti, hanem egy folytonos n elemű logikai szektorokat tartalmazó tömbnek, mely 0-tól n - 1 ig terjed. A 2. ábra mutatja a logikai szektorok számozásának a szokásos módszerét. A nulladik logikai szektor az első szektor, a legkülső nyomvonalon; a többi nyomvonal (és a következő stb.) folyamatosan növekszik. Az n - 1 logikai szektor az utolsó szektor a legbelső nyomvonalon.

A logikai szektorok, fizikai nyomvonalak és szektorokhoz való rendelését a hardware független I/O rendszer végzi, és szintén teljesen független az MS-DOS fájlrendszerétől. Bármely más módszer is használható, és az MS-DOS nem tudná az eltérést. Ugyanakkor, egy standard hozzárendelés létfontosságú, hogy a lemezek használhatóak legyenek a különböző számítógépes rendszerek eltérő hardware perifériáin.

Ahogy az első ábrán látszik, az MS-DOS fájl rendszere négy csoportra osztja fel a logikai szektorok lineáris tömbjét. Ezek közül az első a fenntartott terület, melynek rendeltetése hogy a bootstrap betöltőt tárolja. Mivel a betöltő általában nagyon egyszerű, csupán egy szektor van alapesetben fenntartva.

Logical Sector Numbers Use
0 Reserved for bootstrap loader
1-6 FAT 1  file allocation tables (FATs)
7-12 FAT 2 
13-29 Directory
30-2001 Data

Táblázat 1: Lemez területek térképe egy 8 inches egyoldalú, egyszeres sűrűségű floppy lemezen.

A FAT (fájl allokációs tábla), lesz a következő, ami annak a térképe, hogy hogyan van a hely elosztva a fájlok között a lemezen. Mivel ilyen nagyon fontos, általában két példány van belőle megőrizve egymás mellett. Ha az egyik nem olvasható, a közeg meghibásodása miatt, a második lesz felhasználva.

A könyvtár követi a FAT-ot. A lemezen minden fájlnak van egy 32 byte-os bejegyzése a könyvtárban, ami magában foglalja a nevét, méretét, az utolsó írás dátumát és idejét, valamint speciális tulajdonságait. Minden bejegyzésnek van még egy mutatója (pointer), ami megmondja, hogy hol található a fájlhoz tartozó adat. A 3. ábra bemutatja a könyvtár bejegyzés elrendezését.

Ábra 3: A byte-ok elrendezése a lemez könyvtár bejegyzésben.

A lemez többi része az adat terület. Fel van osztva sok kicsi, egyenlő méretű területre, amit allokációs egységeknek hívnak. Minden egységnek lehet 1, 2, 4, 8, 16, 32, 64 vagy 128 logikai szektora, de a szám rögzítve van egy adott lemez formátum esetében. Az allokációs egységek sorban vannak számozva. A számozás 2-vel kezdődik; az első két szám, 0 és 1, fenn vannak tartva. A 2. táblázat mutatja ezt a számozási rendszert, ami a 8-inches egyszeres-sűrűségű lemez formátumhoz tartozik.

Logical Sector Numbers Allocation Unit Number
30 - 33 2 (first allocation unit)
34 - 37 3
38 - 41 4
42 - 45 5
.
.
.
.
.
.
1998 - 2001 494

Táblázat 2: Allokációs egység számozás a 8-inches egyszeres-sűrűségű lemez formátumhoz. Egy adott allokációs egység első szektorának, logikai szektorának számát a következőképp lehet kiszámítani: szektor szám = 4 x allokációs egység szám + 22

Az allokációs egység a legkisebb területi egység amit az MS-DOS nyomon tud követni. Minden fájlhoz a használt lemez terület egy egész számnyi allokációs egységet emészt fel. Még ha egy fájl csak 1 byte hosszú, egy teljes egység fel lesz használva a tárolásához.

2. részlet vége


A cikksorozat előző része (1. részlet)