Souborové systémy Amigy

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. Zde jsou 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í pevného disku na jednotlivé oddíly. Těch je tolik, kolik oddílů na svém disku máte. Obsahují údaje o začátku a konci oddílu, jeho jménu, zda se z něj dá bootovat, počtu bufferů atd. Tyto údaje se dají ve většině případů 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 souborového 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 nepřehledné, 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 souborového systému.

První a následující blok tvoří dohromady tzv. bootblok. Na pevném disku 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 uvedl, zbytek bootbloku se u pevného disku ignoruje. To také znamená, že na Amigový pevný disk 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 souborového systé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, 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 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 souborového systému Amigy, protože bitmapa se aktualizuje po každém zápisu, aby i ostatní úkoly 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ý. 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 zruší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 souborový systém, který je v Kickstartu každé Amigy. Je to nejstarší a nejpomalejší souborový systém, který má u disků navíc jedno velmi nepříjemné omezení: dokáže vytvořit bitmapu jen 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ž 50MB. 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 souborového 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 Amigách 1200 s Kickstartem 3.0 je tento souborový 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ý souborový systém jako spíš rozšíření předchozích souborových systémů, 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 souborových systémů na Amigu existuje. Je mnohem rychlejší, a také bezpečnější než všechny předchozí souborové 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é souborové 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

Systém 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

Systém 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

Jiří Brossmann a Michal Kára

Přidat komentář

Rozšíření Amig podle typu

Chart

  • 01 Running
  • 02 Strength Training
  • 03 Cycling
  • 04 Skating
  • 05 Swimming