Amiga Fast File System
Az Amiga számítógépek szabványos fájlrendszere a Fast File System (röviden: FFS vagy AFFS) az AmigaOS operációs rendszer 1.3-as verziójától kezdve. A korábbi OFS fájlrendszert váltotta,[5] ugyanakkor az azzal való kompatibilitás megmaradt.[6] JellemzőkMíg a korábbi OFS alapvetően floppy lemezes használatra lett adaptálva,[3] addig az FFS már merevlemezes használatra lett optimalizálva.[7] Hierarchikus felépítésű, fastruktúrát mutató könyvtárszerkezetű fájlrendszer,[8] mint elődje, azonban új elemként megjelent a fájlrendszerben a link, illetve a nemzetközi karakterek támogatása és a könyvtár gyorsítótár (directory cache).[9] Az OFS lassabb és kevesebb adatot tárolni képes, ugyanakkor robusztusabb felépítésű, mint az újabb FFS.[9] Ennek fő oka az volt, hogy az OFS fájlrendszerben minden 512 bájt méretű blokk/szektor első 24 bájtja metaadatokat tartalmazott, akkor is, ha ugyanazon allomány helyezkedett el rajtuk. A gyakorlatban ez 512 bájt helyett 488 bájt valós használható blokk-kapacitást jelentett, mely egy kis kapacitású floppy lemezen elfogadható volt, de egy nagyméretű merevlemezen, nagyméretű fájloknál már jelentős kapacitásveszteséget jelent.[3] Az FFS adatblokkonként a teljes 512 bájt lemezterületet adattárolásra használja.[9] Fájlrendszer módokAz FFS fájlrendszernek összesen nyolc különféle módja, más néven dos-típusa (dostype) van, mely a Rigid Disk Block-ban (RDB) tárolódik, hasonlóan a PC-k Master Boot Record-jához (MBR). A nemzetközi támogatás (INTL) idegennyelvi karakterek megjelenítését és kezelését jelenti, a könyvtár-gyorsítótár (DC) a könyvtárbeolvasást gyorsítja egy elkülönített könyvtárstruktúra lista használatával, a hosszúfájlnév támogatás (LNFN) pedig 32 helyett 107 karakteres fájlnevek használatát teszi lehetővé.[6]
LemezkezelésFloppy lemezekAz amigák MFM kódolást használnak hajlékonylemezek kezelésére. Összesen 80 cilinder található egy floppy lemezen és minden cilinder 2 MFM-sávot (track) tartalmaz, egyet-egyet a lemez két oldalán. Az amigák többsége duplasűrűségű (DD) lemezeket alkalmaz, melyeknél 11 szektor van MFM-trackenként. Az Amiga 4000 által használt nagysűrűségű (HD) lemezeknél ugyanez 22 szektor.[10] A lemezek geometriája összefoglalva így írható le:
A DD-s lemezeken összesen 11 * 2 * 80 = 1760 (0 to 1759) szektor vagy blokk található, míg HD-s lemezek 22 * 2 * 80 = 3520 szektort tartalmaznak. Egy Amiga végül 1760 * 512 / 1024 = 880 KiB adatot tárol DD-s, míg 1760 KiB-ot HD-s floppy lemezeken.[11] Az FFS fájlrendszer kiindulópontja, az első vagy gyökérblokk (DD esetén a 880. HD esetén az 1760. blokk) a lemez fizikai értelemben vett közepén található, mely így minimalizálja a pozícionálási időt. A pontos pozíció kiszámítása a következő: numCyls = highCyl - lowCyl + 1 highKey = numCyls * numSurfaces * numBlocksPerTrack - 1 rootKey = INT (numReserved + highKey) / 2 A gyökérblokk alapvető információkat tartalmaz a lemezről, mint például: lemez/kötetnév, formázás dátuma stb, de itt tárolódik a gyökérkönyvtár (root) pozíciója, azaz elérhetősége is. A '/' és ':' karakterek tiltottak mind fájl-, mind kötetnevek esetén, de ékezetes betűk és a következő karakterek használhatók: *!@#$%|^+&_()=\-[]{}';",<>.? A karakterek lehetnek kis- és nagybetűsek is, de ennek valós jelentősége nincs, mert a fájlrendszer nem különbözteti meg őket egymástól, így például a "MyFile" és a "myfile" egyazon könyvtár azonos fájljára utal. MerevlemezekA Workbench (a későbbiekben: AmigaOS) 1.3 megjelenésével vált lehetővé az automatikus rendszerbetöltés (bootolás) merevlemezekről. Ehhez a Kickstart felkészítésén túl arra is szükség volt, hogy a merevlemez partíciós tábláját tartalmazó RDB magában foglaljon a fájlrendszer kezelésére vonatkozó alapvető információkat.[5] Az FFS bittérkép (bitmap) útján kezeli a fájlrendszer foglalt vagy szabad blokkjait, mely nem képfájl a szó elterjedt értelmében, hanem valóban egy bitsorozat, melyben minden bit egy címezhető blokkot reprezentál. Az FFS esetében a bit 0 értéke jelenti azt, hogy az adott blokk használt, az 1-es érték pedig azt, hogy üres, azaz szabadon írható. Ha a bittérképet tartalmazó szektor meghibásodik, akkor az egész bittérképet újra kell építeni, addig pedig az egész fájlrendszer használhatatlan. Az újraépítést az Amiga Validator végzi és annál lassabb a folyamat, minél nagyobb a merevlemez kapacitása.[6] Az FFS-nek is van tárolókapacitás korlátja, mely abból fakad, hogy a fájlrendszer alapból 32-biten képezi le a címteret. A 32-bit címmé alakítása egy elméleti 4,194 GiB-os legnagyobb lemezméretet ad, mely egyben a legnagyobb lehetséges fájlméret korlát is.[6] A későbbiekben a fájlrendszer ezt kiterjesztő javításokat kapott, így az NSD64, a TD64 parancskészletek segítségével a felső korlát 2 EiB-ra tolódott ki.[12] DátumkezelésA blokkok dátummezői a következő struktúrát követik: DAYS, MINS, TICKS, ahol:
A DAYS nulla értéke általában nem megengedett a legtöbb programban és mivel az érték 32-biten tárolódik, ezért az amigák mentesek mind a 2000. év problémájától, mind pedig a 2038. év problémájától. KeresőalgoritmusAz AmigaDOS a fájlok, könyvtárak, linkek elérésére az ún. hasításos keresés módszerét alkalmazza. A függvény kiszámolja, hogy a blokkban mely 32-bites szót használja mutatóként a hash-táblára, mely megadja a konkrét fájl-, link-, vagy könyvtárbejegyzést. KompatibilitásAz FFS partíciós táblájának felépítése teljesen eltér más fájlrendszerek megoldásaitól (pl. MBR). A Linux alapú operációs rendszerek tehetők alkalmassá RDB formátumú Amiga-partíciók beolvasására és kezelésére.[13] Ezek közül is a legújabb NetBSD,[14] illetve az OpenBSD 3.2 támogatja az FFS-t, illetve létezik Amigára portja.[15] A linuxon népszerű partícionáló szoftver, a GNU Parted képes kezelni az FFS fájlrendszerre formázott Amiga-partíciókat.[13] Lásd mégJegyzetek
|
Portal di Ensiklopedia Dunia