Amiga Old File System
OFS (Old File System) | |
Fejlesztő | MetaComCo |
Bevezetve | 1985 |
Partícióazonosító | 'DOS\0'[1] |
Struktúra | |
Könyvtárszerkezet | hierarchikus |
Korlátok | |
Fájlnév maximális hossza | 32 karakter[1] |
Maximális kötetméret | 8 MiB[1] |
Tiltott karakterek a fájlnevekben | ':' és '/'[2] |
Képességek | |
Tárolt dátumok | módosítás (mtime) |
Dátumhatárok | 1978. január 1. - 2157 |
Dátumfelbontás | 1/50s |
Attribútumok | rwedspah[3] |
Beépített tömörítés | Nincs |
Beépített titkosítás | Nincs |
SIS | Nincs |
Támogatott operációs rendszerek | AmigaOS |
Az Amiga számítógépek eredeti, vagy régi fájlrendszere az Original File System, illetve Old File System (röviden: OFS) volt[4] az AmigaOS operációs rendszer 1.0 és 1.2 verziói között.[2]
Elnevezés
[szerkesztés]Eredeti elnevezése csak egyszerűen Amiga File System volt és az AmigaDOS részeként alapvetően nagyon hasonló az alapul szolgáló TRIPOS fájlrendszeréhez.[2] A "régi", illetve "eredeti" jelzőt az AmigaOS 1.3-ban debütált Fast File System megjelenése után kapta.[5]
Jellemzők
[szerkesztés]Az OFS alapvetően a floppy lemezes használatra adaptált hierarchikus felépítésű, fastruktúrát mutató könyvtárszerkezetű fájlrendszer, merevlemezeken jellemzően nem alkalmazták.[6] Ennek fő oka az volt, hogy 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ó, de egy nagyméretű merevlemezen, nagyméretű fájloknál már jelentős kapacitásveszteséget jelent.[2] Másik szintén lényeges ok pedig az, hogy az OFS-sel párhuzamosan használt Kickstart 1.0-1.2 nem tud merevlemezről bootolni.[7]
Adatblokk metaadatok
[szerkesztés]Méret | Tartalom |
---|---|
4 bájt | "Ez a blokk egy adatblokk" azonosító |
4 bájt | A fájl fejlécére visszamutató pointer |
4 bájt | A fájlon belüli blokk sorszám |
4 bájt | Blokkméret |
4 bájt | A következő blokkra mutató pointer |
4 bájt | Ellenőrző összeg (Checksum) |
Lemezkezelés
[szerkesztés]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.[8] 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[9]
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.[9]
Az OFS 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.
Hibajavító képesség
[szerkesztés]A fájlrendszer elméletben jó hibajavító képességekkel rendelkezett, azonban a Commodore által erre a célra szállított "DiskDoctor" nevű alkalmazás nem tudta betölteni rendelt feladatát és hamar elnyerte a rosszízű "DiskDestroyer" gúnynevet. A tapasztalatok alapján elmondható, hogy a legtöbb esetben rosszabb állapotba hozta a lemezt, mint a használata előtt volt.[10]
Az alapvető cél az lett volna, hogy a lemez sérült adatait helyreállítsa, újra olvashatóvá téve azt. Ehhez képest, amikor talált egy hibás szektort (blokkot), akkor nem csak azt írta felül, hanem az egész sávot (track), azaz 11 szektort egy helyett. Ez különösen a legelső szektor (root block) hibájának "javítása" esetén volt igen kellemetlen. A DiskDoctor ezen kívül nem volt képes 72 blokknál, azaz 36865 bájtnál nagyobb méretű fájlok javítására és hibásan javított fájlstruktúrát olyan esetekben, amikor a szülőkönyvtár nélkül maradt több "árva" könyvtárban ugyanolyan nevű állományok voltak. A szoftver továbbá teljesen alkalmatlan volt a videójáték-gyártók által - másolásvédelmi célokból - előszeretettel alkalmazott Non-DOS lemezek javítására, mert azonnal felülírta a gyártói egyedi boot blokkot egy szabványossal, ami után használhatatlanná vált a lemezen lévő, jellemzően játékszoftver.[10]
Dátumkezelés
[szerkesztés]A blokkok dátummezői a következő struktúrát követik: DAYS, MINS, TICKS, ahol:
- DAYS jelenti az 1978. január 1-jétől eltelt napok számát,
- MINS tartalmazza az éjféltől eltelt percek számát és
- TICKS fejezi ki a másodpercet 1/50-edes egységekben.
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
[szerkesztés]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.
Lásd még
[szerkesztés]Jegyzetek
[szerkesztés]- ↑ a b c Thomas Rapp: File System Limits (angol nyelven), 2011. április 30. (Hozzáférés: 2024. április 2.)
- ↑ a b c d OFS (angol nyelven), 2020. április 9. (Hozzáférés: 2024. április 2.)
- ↑ AmigaOS Manual: AmigaDOS Command Reference / PROTECT (angol nyelven). (Hozzáférés: 2024. április 2.)
- ↑ Michael Steil: Reconstructing the Leftovers on the Amiga Kickstart 1.0 Disk (angol nyelven), 2008. november 4. (Hozzáférés: 2024. április 2.)
- ↑ Michael Steil: Tripos, the Roots of AmigaDOS (angol nyelven), 2009. május 19. (Hozzáférés: 2024. április 2.)
- ↑ Overview of Amiga Filesystems (angol nyelven). kernel.org . (Hozzáférés: 2024. április 3.)
- ↑ 4. Workbench 1.3, AmigaDOS Inside & Out (angol nyelven). Abacus / Data Becker, 111. o. (1988)
- ↑ Amiga Floppy Boot Process and Physical Layout (angol nyelven). AmigaOS Documentation Wiki . (Hozzáférés: 2024. április 3.)
- ↑ a b Regius Kornél: Amiga AT-BUS Harddisk vezérlő - 3. rész (magyar nyelven), 2009. május 19. (Hozzáférés: 2024. április 2.)
- ↑ a b Amiga history: Why was "Disk doctor" so spectacularly bad at its job? Here is why... (angol nyelven). Amiga.org . (Hozzáférés: 2024. április 3.)