Desktop File System

Z Wikipedie, otevřené encyklopedie

Desktop File System je souborový systém vyvinytý firmou Programmed Logic Corp. Hlavni cíl tohoto filesystému je co nejefektivnější využití diskové kapacity pro malé unixové systémy s využitím komprese. DTFS je klasický inode-based filesystém.

Struktura[editovat | editovat zdroj]

Souborový systém má následující strukturu:

  • Superblock
  • Block bitmap
  • Inode bitmap
  • Data/Inode blocks.

Chybí oblast s Inody, ty jsou alokovány automaticky v datové oblasti. Tato vlastnost sice trochu zpomaluje systém, ale šetří místo na disku a nejste omezováni počtem inode. Každá inode, pokud je menší než n bloků, obsahuje odkazy na datové bloky. Pokud je větší, odkaz vede na tzv. direct blok, který obsahuje adresy na datové bloky. Pokud se inode nevejde ani do tohoto prostoru, obsahuje odkazy na tzv. indirect bloky. Ty obsahují adresy direct bloku a ty adresy datových bloku. Schéma vypadá následujícím způsobem:


inode          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

Místo teček jsou další odkazy.

V tomto se jedná o téměř standardní unixový filesystém. Komprimovány jsou celé bloky, kvůli tomu není komprese tak účinná, ale random-access čtení je relativně rychlé. U každého data bloku je uvedeno, kolik obsahuje dekomprimovaných bajtů. Tato informace je uvedena i u příslušných direct/indirect bloků. Pokud chcete načíst pár bajtu z nějaké pozice, stačí projít strom a nalézt blok(y) obsahující čtená data a dekomprimovat je. Horší situace nastává, když doprostřed souboru chcete něco zapsat a data nelze zkomprimovat tak, aby se vešla do předchozích bloků. Potom je nutné jeden blok rozdělit na dva a přidat nový blok do stromu. Pokud již ve stromu není místo, je potřeba přidat další úroveň. Kvůli alokaci nových bloků „uprostřed“ souboru se často stává, že vznikají prázdné „díry“ neobsahující žádná data. Proto existuje daemon, který se stará o presypávání dat a ničení takovýchto děr.