Amiga filesystemJiří 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 |
Vytlačiť článok
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
none
|