Amiga filesystem

Jiří Brossmann a Michal Kára

To, jakým způsobem se budou data zapisovat na disk, a jak se z něj budou číst, rozhoduje file systém. Podívejme se teď alespoň zběžně na ty nejrozšířenější.

První věc, kterou systém udělá po startu a detekování pevného disku je, že načte tzv. Rigid Disk Block (RDB), který obsahuje nejdůležitější informace o disku. Jsou zde uloženy informace o typu disku a jeho fyzické struktuře (počet cylindrů, sektorů na stopu atd). Za ním jsou tzv. partition bloky, které definují rozdělení harddisku na partitiony. Těch je tolik, kolik partitionů na svém disku máte. Obsahují údaje o začátku a konci partitionu, jeho jménu, zda se z něj dá bootovat, počtu bufferů atd. Tyto údaje sedají z většiny měnit například pomocí programu HDToolBox.
Za nimi jsou bloky, obsahující filesystém. To umožňuje používat i filesystém, který není v ROM, například MUFS. Nemá-li Amiga příslušný filesystém disku ze kterého by měla bootovat ani v ROM ani na disku, chvíli s ním nevěřícně mrká a pak to přeci jenom vzdá.
Typ file systému se identifikuje podle prvních čtyř bajtů v nultém bloku disku. Toto jméno zadáváte v HDToolBoxu (nebo podobném programu) do položky "Identifier". Zde je to možná trochu neprůhledné, protože zadáváte hexadecimální číslici v Céčkovém formátu (znak 0x znamená v C hexadecimální číslo) které obsahuje čtyři znaky jména file systému.
První a následující blok tvoří dohromady tzv. bootblok. Na harddisku jsou všechny bajty kromě identifikace systému (prvních čtyř) ignorovány, ale na disketě se používají. Další čtyři bajty jsou kontrolní součet. Pokud není platný, zbytek údajů se ignoruje. Poté následuje další trochu záhadná položka. Opět zabírá čtyři bajty. Podle dokumentace by měla ukazovat na rootblok (ten obsahuje hlavní adresář na disku). Ve skutečnosti v ní sice číslo rootbloku uloženo je, ale nikdo jej nepoužívá. Za ním již může začínat program, který se provede vždy při bootování z diskety. Tohoto využívají jak některé hry (kde ale tento program neskončí, nýbrž načte zbytek dat a spustí hru), tak i viry. Již jsem uved, že zbytek bootbloku se u harddisku ignoruje. To také znamená, že na Amigový harddisk nelze nainstalovat bootvirus jako například na disketu nebo PC harddisk. Nyní ale zpět k identifikaci filesystému:
Pro standardní systémy, které máme v Kickstartu, se do nultého bloku zapisuje "DOSx", kde x znamená číslo filesystému. Na ty se podíváme trochu blíže. Než tak ale učiníme, rád bych objasnil několik termínů, které se správou disku souvisí.
Pokud jste někdy pracovali s PC (pod pojmem PC myslím počítač IBM kompatibilní s MS-DOSem) určitě jste ocenili, jak rychle se vám vypíše obsah adresáře. Je to tím, že PC si důležité informace o adresářové struktuře ukládá na jedno místo do tzv. FAT (File Allocation Tablet. Amiga o proti tomu nic jako FAT nemá a informace o adresářích a souborech jsou rozhozeny po celém disku. V praxi to vypadá asi tak že se nejprve načtou odkazy na podadresáře, disk se přestaví na pozici kde se má nacházet první podadresář, načte jeho údaje a přejde na další odkaz. To, jak jistě uznáte, poněkud zpožďuje načítání, zvlášť když mezi prvním a druhým podadresářem bude 500 stop které musí hlava disku "přeskočit". Pokud pracujete ve Wokrbenchi připočtěte tomu ještě natahování ikon, které mohou mít až několik kilobitů a jejich třídění a zjistíte, že se vám může stát, že si na načtení obsáhlého adresáře trochu počkáte.
Když se na disk zapisuje, potřebuje počítač vědět kde má volné bloky. O to se na Amize stará bitmapa. V té je každý blok disku reprezentován jedním bitem který určuje, zda je blok obsazen či nikoliv. Toto je asi nejslabší místo file systému Amigy, protože bitmapa se aktualizuje po každém zápisu, aby i ostatní tasky měly přehled o tom, kam mohou zapisovat a kam ne. Pokud však počítač vypnete uprostřed zápisu, nebude se bitmapa aktualizovat a disk bude po startu neplatný (nelze ho použít). Ve většině případů si s tím systém dokáže poradit, ale může nastat situace, kdy to nepůjde. Pak jsou dvě možnosti: buď z disku můžete číst, ale ne na něj zapisovat, nebo se vám přihlásí jako neformátovaný, či jinak postižený. To však ještě není takový problém, protože poměrně jednoduše můžete celý disk obnovit. Stačí, když ho zformátujete metodou "Quick" a pak na něj pošlete nějaký obnovovací program (např. DiskSalv, nebo QuarterBackTools). Toto je také jedna z výhod Amigy oproti PC. Pokud na PC z rušíte adresář, už ho normálními prostředky neobnovíte - je úplně ztracen i se svým obsahem (můžete samozřejmě celý disk projít po sektorech a zkusit ztracený soubor poskládat znovu dohromady, ale nemyslím, že se tohle je to pravé undelete...). Na Amize obnovíte prakticky cokoliv, co jste si ještě nestihli přepsat.
K bitmapě se váže jedna zajímavá vlastnost filesystému. Bitmapa totiž zabírá na disku určité místo - jeden blok (512 bajtů) na každých započatých 4064 bloků disku. Na disketě je to sice jen jeden blok, ale... Proto starý filesystém z verze 1.3 uměl naplnit disk až na poslední blok, takže se na něj již bitmapa nevešla a nešlo na něj zapisovat. To ale nevadí, protože na plný disk by se stejně nic dalšího nevešlo. Jakmile na něm opět vznikne místo, bude bitmapa obnovena. Avšak v systému 2.0 byla tato vlastnost odstraněna. A co více. Disketa dokonce nejde zcela zaplnit, vždy na ní zbývá jeden blok volná vyzkoušejte si to. To je snad jediná chyba filesystému Amigy, o které vím.
Nyní již ke slibovaným charakteristikám Amiga-file systémů.

DOS0 - Old File System (OFS)
Toto je file systém který je v Kickstartu každé Amigy. Je to nejstarší a nejpomalejší systém, který má u disků navíc jedno velmi nepříjemné omezení: dokáže bitmapu vytvořit len na 26 blocích. Co z toho plyne? Pokud bude váš disk používat bloky o velikostí 512 bytů, nemůže být jeho kapacita větší než 50 MB. Na druhou stranu je pravda, že v době kdy tento filesystém vznikal byly kapacity disků nad gigabyte v oblasti sci-fi.

DOS1 - Fast File System (FFS)
FFS je vylepšením OFS. Umožňuje už jakékoliv velikostí disků a je o něco rychlejší. Pokud budete používat FFS na disketách máte navíc k dispozici dalších asi 50 KB. Jako jediná "vada" FFS by se mohlo zdát, že ho řádně využijete až od Kickstartu 2.04 (Amiga 500+ a novější). Na starších systémech se totiž musí přihrávat z diskety (nebo disku) a neumožňuje tudíž bootování.

DOS2 (IntlOFS) a DOS3 (IntlFFS) International Mode
Oba předchozí systémy mají jednu pro nás, Čechy, nepříjemnou vlastnost. Pokud totiž použijete ve jméně souboru nějaké české písmeno, musíte ho stejně napsat i při zadávání např. z CLI. Myslím tím jména jako "Město.Obrázek" a "MĚSTO.OBRÁZEK". U normálního OFS i FFS budou tato jména vyhodnocena jakou různá, i když normálně na tom jakými písmeny je jméno napsáno nezáleží. Mohou za to právě ta česká písmena. Aby se tedy podobným nesrovnalostem předešlo, byla vytvořena další verze obou systémů, tzv. "international mode", kde je již vše v pořádku. Oba tyto systémy jsou implementovány v Kickstartu 2.04

DOS4 (DCOFS) a DOS5 (DCFFS) Directory Caching
Problém pomalého přístupu k adresářům, se snažili autoři systému vyřešit úpravou file systému, u které jsou informace o obsahu adresáře zapsány spolu s odkazy. Nevím jak u systému 3.1, ale na starších A1200 s Kickstartem 3.0 je tento file systém stále ještě chybový a má problémy s rušením informací o adresářích, takže se mu nemusí podařit disk smazat úplně. Navíc se tím zabírá další místo. Využití tohoto systému v současné době vidím zejména pro diskety, protože pokud máte rychlý disk je zrychlení načítání jen malé.

muFS - Multi-User File System
muFS není vlastně ani tak nový file systém jako spíš rozšíření předchozích file systému, které přidává souborům další flagy specifikující přístupové právo uživatele. Můžete tak zabránit tomu aby měl k vašim privátním souborům přístup někdo jiný. muFS získáte s MultiUser-packem.

ProFS
Jako další systém jsem pro vás otestoval novou verzi ProFileSystemu. Přesto, že tento systém není v Kickstartu a tudíž se musí přihrávat z disku, považuji ho za to nejlepší co v oblasti file systémů na Amigu existuje. Je mnohem rychlejší, a také bezpečnější než všechny předchozí file systémy. Pokud u ProFS přerušíte zápis nejen že bude váš disk vždy validovatelný (platný), ale pokud jste nějaký soubor přepisovali, budete mít na disku alespoň předchozí verzi tohoto souboru, protože při přepisování se nejprve ukládá do prázdných bloků a změna hlavičky se provede až na závěr. Zvýšení rychlosti a odolnost proti chybám je však vykoupena tím, že instalace zabere na disku mnohem více místa. Pokud máte nějaký čerstvě naformátovaný disk určitě si všimnete, že je na něm vždy obsazeno nějaké místo, do kterého se zapíše bitmapa a další informace. U FFS to není zase tak moc - pro 350 MB disku potřebujete asi 100 KB, ale ProFS mi z partition která byla naformátována s FFS na 20 MB udělal přibližně 18.5 MB (podle kusých informací které jsem získal prý na SyQuestu s kapacitou 270 MB zabere ProFS něco kolem 5 MB) Možná se vám to zdá být hodně, ale když budete používat partition o kapacitě 1 GB, asi vás nějakých deset-dvacet megabytů nezachrání. Co se týče "spotřeby" normální paměti RAM zabere samotný ProFS přibližně 30 KB, další paměť je potřeba na buffery Zde mi chyběl program podobný AddBuffers, protože počet bufferů se nastavuje jen pomocí HDToolBoxu.

Testy
Kromě muFS jsem otestoval všechny uvedené file systémy na A1200 se 2 MB CHIP, pomocí programu DiskSpeed 4.4. Workbench byl nastaven na rozlišeni HiRes, 4 barvy. Testy jsem prováděl s 20 MB partition (FFS) na disku Conner 420 CFS420A. U všech testů bylo nastaveno 30 bufferů.
Jak je vidět z tabulek, je ProFS bezpečně nejlepší a s přehledem ostatní systémy překonává. DCFF, který sice nabízí větší rychlost při načítání adresářů, se při ostatních testech propadl pod FFS a někdy i pod OFS. Z toho je vidět, že jeho instalace není zase tak výhodná, jak by se mohlo zdát.

ARTIC
ARTIC sice není file systém, ale je to zajímavá alternativa pro ty, kdo mají malý disk. Už jste určitě něco slyšeli o kompresi disku v reálném čase. Na PC se používá nejvíce STACKER, na Amize jsou nejrozšířenější různé druhy XPK komprese. Tyto programy mají jednu společnou nevýhodu: požadují instalaci na celou partition. Mě osobně toto nevyhovuje. Oproti tomu ARTIC vyhoří jen vlastní zařízení, které můžete spouštět při startu z DEVS:, nebo kdykoliv ho budete potřebovat. Důležité je, že můžete takovýchto zařízení "vyrobit" kolik chcete a každé používat k jinému účelu. Další výbornou vlastností je, že soubory zůstávají stále soubory, takže na jedné partition můžete mít spolu jak normální tak komprimované soubory. ARTIC nabízí tři druhy kompresí:
NORMAL - normální komprese. Doba komprimace je o něco delší, ale dává dobré výsledky a nezabírá moc paměti
TURBO - rychlá komprese. Vytváří si v paměti asi 65 KB bufferu a má o něco horší kompresní poměr (asi o 2-4%). Doba komprese je výrazně kratší.
XPK-komprese - pokud máte knihovny pro XPK kompresi, můžete si zvolit kteroukoliv z nich. Můžete tak ARTIC použít i k šifrování dat (máte-li odpovídající knihovnu). Zde si můžete nastavit jakýkoliv poměr rychlost/komprese který vám vyhovuje.
Otestoval jsem rovněž rychlost ARTICu. DiskSpeed dával trochu zvláštní výsledky, takže jsem použil metodu která sice není tak přesná, ale pro přibližné srovnání kompresních rychlostí stačí.
Vytvořil jsem adresář, který obsahoval několik archivů LHA, 5 obrázku GIF a přibližně 120 KB textů. Ten jsem pak "vhodil" do okna ARTIC-zařízení a měřil čas od puštění ikony do posledního "bliknutí" disku. Velikost nekomprimovaného adresáře byla 6111237 bytů, rozložených do 65 souborů v 17 adresářích. Výsledky vidíte v tabulce. Maximální a minimální efekt komprese udává který soubor byl komprimován nejvíce a který nejméně. Jako XPK kompresor jsem použil poměrně efektivní metodu NUKE.
Pokud máte pomalejší počítač doporučil bych metodu TURBO, ale je jasné, že ukládat do komprimovaného zařízení nějaké často používané soubory asi není nejrozumnější. Využití bych viděl pro nekomprimovanou grafiku a texty, ale můžete samozřejmě komprimovat cokoliv - záleží jen na tom jaký má vaše Amiga výkon.

Závěrem
Ať už používáte v Amize jakýkoliv disk doufám, že vám tento článek alespoň trochu přiblížil, co se s ním děje tak trochu za vašimi zády. Pokud se to podaří, měli bychom si příště povědět něco o systému cachování pevných disků a o tom co tím můžete získat.

Testy file-systémů při práci se soubory
CPU: 68020 Verze AmigaOS: 39.106
Normal Video DMA Bufferů: 30
WB: HiRes, 4 barvy

File System Vytváření Otevírání Prohledávání Mazání Hledání/Čtení  
OFS 42 69 255 93 65 souborů za sekundu
FFS 42 69 265 105 72 souborů za sekundu
DCFFS 18 70 627 85 56 souborů za sekundu
ProFS 61 1 17 745 140 57 souborů za sekundu

Testy file-systémů při práci s daty
Velikost bufferu: 512 bytů Buffer alokován v: CHIP RAM
Velikost: BYTE WB: HiRes, 4 barvy

File System Vytváření Zápis Čtení  
OFS 49249 10038 107813 bytů za sekundu
FFS 104549 30759 110628 bytů za sekundu
DCFFS 96950 28752 108311 bytů za sekundu
ProFS 109348 132126 110102 bytů za sekundu

Testy ARTICu

Typ Doba ukládání Efekt Max. efekt Min. efekt Ušetřeno
NORMAL 32 s 26% 55% 12% 158 KB
TURBO 19 s 24% 53% 11% 146 KB
NUKE 63 s 33% 62% 17% 201 KB


Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing