Desktop File System
Z Wikipedie, otevřené encyklopedie
Tento článek potřebuje úpravy. Můžete Wikipedii pomoci tím, že ho vylepšíte, alespoň náhradou této výzvy za konkrétnější. Jak by měly články vypadat, popisuje stránka Vzhled a styl, konkrétní problémy tohoto mohou být specifikovány na diskusní stránce.
Tento filesystem vyvinula firma Programmed Logic Corp. v dobe, kdy 80MB disk byl naprosto beznou soucasti kazdeho PC. V teto dobe byl mimo vykonu hlavnim problemem prostor na disku. Pokud uživatelé chtěli pro svůj oblíbený Unix (UnixWare,SCO Unix) misto, museli koupit dalsi disk,a/nebo disk stavajici komprimovat. Za tímto účelem vznikl filesystém DTFS. Hlavni cil tohoto filesystemu je co nejvetsi vyuziti diskove kapacity pro male Unixove systemy. Jedna se samozrejme o inode-based fs, jak je v Unixu zvykem. Tento system se ovsem pouziva i dnes, ovsem minimalne. Naleznete jej napriklad v SCO OpenServeru 5, je jim naformatovana /stand partition.
DTFS je klasicky inode-based filesystem. Disk má následující strukturu: Superblock, Block bitmap, Inode bitmap, Data/Inode blocks. Chybi oblast s Inody, ty jsou alokovany automaticky v datove oblasti. Tato vlastnost sice trochu zpomaluje system, ale setri misto na disku a nejste omezovani poctem inod. Kazna inoda,pokud je mensi nez n bloku, obsahuje odkazy na datove bloky. Pokud je vetsi, odkaz vede na tzv. direct blok, ktery obsahuje adresy na datove bloky. Pokud se inoda nevejde ani do tohoto prostoru, obsahuje odkazy na tzv. indirect bloky. Ty obsahuji adresy direct bloku a ty adresy datovych bloku. Schema vypada nasledujicim zpusobem:
inoda 1 2 3 4 | . . | indirect 1 2 3 4 1 2 3 4 bloky | . . . . | . . | | | direct 1 2 3 4 1 2 3 4 1 2 3 4 bloky | | | | | | | | | | | | | | | | | | | | | | | | data 1 2 3 4 5 6 7 8 9 A B C bloky
Misto tecek jsou dalsi odkazy.
V tomto se jedna temer standardni Unixovy filesystem. Komprese musi byt samozrejme on-line a musi byt podporovan zapis / cteni z kterehokoliv mista. Komprimovany jsou cele bloky. Diky tomu neni komprese tak ucinna, ale random-access cteni je relativne rychle. U kazdeho data bloku je uvedeno, kolik obsahuje DEkomprimovanych bajtu. Tato informace je uvedena i u prislusnych direct/indirect bloku. Pokud chcete nacist par bajtu z nejake pozice, staci projit strom a nalezt blok(y) obsahujici ctena data a dekomprimovat je. Horsi situace nastava, kdyz do prostred souboru chcete neco zapsat a data nelze zkomprimovat tak, aby se vesla do predchozich bloku. Potom musite jeden blok rozdelit na dva a pridat novy blok do stromu. Pokud jiz ve stromu neni misto, je potreba pridat dalsi uroven. Toto se prilis casto nestava. Diky alokaci novych bloku „uprostred“ souboru se casto stava, ze vznikaji prazdne „diry“, neobsahujici zadna data. Proto existuje daemon, ktery se bude starat o presypavani dat a niceni takovychto der.