Amiga Fast File System

FFS (Fast File System)
FejlesztőCommodore
Bevezetve1988
Partícióazonosító'DOS\1','DOS\3','DOS\5','DOS\7'
Struktúra
Könyvtárszerkezethierarchikus
Fájlszerkezetbittérkép
Korlátok
Maximális fájlméret2 GiB
Fájlnév maximális hossza32 ('DOS\7': 107) karakter
Maximális kötetméret2 GiB
Tiltott karakterek a fájlnevekben':' és '/'
Képességek
Tárolt dátumokmódosítás (mtime)
Dátumhatárok1978. január 1. - 2157
Dátumfelbontás1/50s
Attribútumokrwedspah
Beépített tömörítésNincs
Beépített titkosításNincs
SISNincs
Támogatott operációs rendszerekAmigaOS

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, ugyanakkor az azzal való kompatibilitás megmaradt.

Jellemzők

Míg a korábbi OFS alapvetően floppy lemezes használatra lett adaptálva, addig az FFS már merevlemezes használatra lett optimalizálva. Hierarchikus felépítésű, fastruktúrát mutató könyvtárszerkezetű fájlrendszer, 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).

Az OFS lassabb és kevesebb adatot tárolni képes, ugyanakkor robusztusabb felépítésű, mint az újabb FFS. 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. Az FFS adatblokkonként a teljes 512 bájt lemezterületet adattárolásra használja.

Fájlrendszer módok

Az 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é.

DOS-típusFájlrendszer formátumMegjelenés
'DOS\0'OFSWorkbench 1.0
'DOS\1'FFSWorkbench 1.3
'DOS\2'OFS INTLWorkbench 2.0
'DOS\3'FFS INTLWorkbench 2.0
'DOS\4'OFS INTL-DCWorkbench 3.0
'DOS\5'FFS INTL-DCWorkbench 3.0
'DOS\6'OFS INTL-DC-LNFNAmigaOS 4.0
'DOS\7'FFS INTL-DC-LNFNAmigaOS 4.0

Lemezkezelés

Floppy lemezek

Az 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. A lemezek geometriája összefoglalva így írható le:

  • DD lemezek: 512 bájt/szektor, 11 szektor/sáv, 2 sáv/cilinder, 80 cilinder/lemez
  • HD lemezek: 512 bájt/szektor, 22 szektor/sáv, 2 sáv/cilinder, 80 cilinder/lemez

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.

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.

Merevlemezek

A 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.

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.

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. 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.

Dátumkezelés

A 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őalgoritmus

Az 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ás

Az 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. Ezek közül is a legújabb NetBSD, illetve az OpenBSD 3.2 támogatja az FFS-t, illetve létezik Amigára portja. A linuxon népszerű partícionáló szoftver, a GNU Parted képes kezelni az FFS fájlrendszerre formázott Amiga-partíciókat.

Lásd még

Jegyzetek

  1. ↑ Greg Donner. "Workbench Release 1.3, versions 34.20, 34.21 (Kickstart version 34.5)" (angol nyelven). Hozzáférés: 2024. április 6.
  2. 1 2 3 4 5 Thomas Rapp (2011. április 30.). "File System Limits" (angol nyelven). Hozzáférés: 2024. április 2.
  3. 1 2 3 "OFS" (angol nyelven). 2020. április 9. Hozzáférés: 2024. április 2.
  4. ↑ "AmigaOS Manual: AmigaDOS Command Reference / PROTECT" (angol nyelven). Hozzáférés: 2024. április 2.
  5. 1 2 3 "FFS" (angol nyelven). 2020. április 9. Hozzáférés: 2024. április 7.
  6. 1 2 3 4 5 "Amiga Fast File System (AFFS or FFS)" (angol nyelven). 2020. május 11. Hozzáférés: 2024. április 7.
  7. ↑ "Overview of Amiga Filesystems". kernel.org (angol nyelven). Hozzáférés: 2024. április 3.
  8. ↑ "AmigaOS Manual: AmigaDOS Working With AmigaDOS" (angol nyelven). Hozzáférés: 2024. április 7.
  9. 1 2 3 Laurent Clévy. "The .ADF (Amiga Disk File) format FAQ" (angol nyelven). Hozzáférés: 2024. április 7.
  10. ↑ "Amiga Floppy Boot Process and Physical Layout". AmigaOS Documentation Wiki (angol nyelven). Hozzáférés: 2024. április 3.
  11. 1 2 Regius Kornél (2009. május 19.). "Amiga AT-BUS Harddisk vezérlő - 3. rész" (magyar nyelven). Hozzáférés: 2024. április 2.
  12. ↑ "Filesystem Limits" (angol nyelven). Hozzáférés: 2024. április 8.
  13. 1 2 "Reading Amiga Harddisks with Linux". shred.zone (angol nyelven). 2021. január 16. Hozzáférés: 2024. április 8.
  14. ↑ "About NetBSD/amiga" (angol nyelven). Hozzáférés: 2024. április 8.
  15. ↑ "OpenBSD amiga" (angol nyelven). Hozzáférés: 2024. április 8.