inode

inode, i-node, česky i-uzel je v informatice datová struktura uchovávající metadata o souborech a adresářích používaná v unixových souborových systémech, které vycházejí z tradičního UFS (například linuxová řada ext2, ext3, ext4). Z důvodu zachování zpětné kompatibility ostatní souborové systémy i-uzly emulují (např. NFS).

Popis

Příkazy související s i-uzly
PříkazPopis
dfObsazený datový prostor
df -iObsazené i-uzly
ls -iObsah adresáře a čísla i-uzlů

i-uzel obsahuje metadata pro každý libovolně velký soubor i adresář, například čas poslední změny, přístupová práva, seznam datových bloků a podobně. V adresářích jsou pak dvojice název souboru a k němu příslušné číslo i-uzlu, které pomocí metadat popisuje vlastní uloženou datovou část souboru nebo adresáře. Vzhledem k tomu, že (téměř) vše je v unixových systémech soubor (vlastně i adresář je speciální soubor), je i-uzel univerzální datovou strukturou pro metadata.

Počet i-uzlů je u klasických souborových systémů (ext2, ext3) určen při formátování systému souborů a později již nemůže být změněn. Jejich množství určuje maximální počet adresářů a souborů, které lze v souborovém systému vytvořit. I když může být na disku volné místo pro data (tj. volné datové bloky), nemusí být možné z důvodu nedostatku volných i-uzlů vytvořit další soubory a adresáře.

Struktura i-uzlu

Struktura i-uzlu je popsána standardem POSIX.

Náčrt struktury i-uzlu
  • MODE – typ souboru a přístupová práva (vlastník, skupina, ostatní)
  • REFERENCE COUNT – počet odkazů na tento objekt (viz pevný odkaz)
  • OWNER – vlastník (ID vlastníka)
  • GROUP – skupina (ID skupiny)
  • SIZE – velikost objektu
  • TIME STAMPS – časové informace
    • atime: čas posledního přístupu (čtení ze souboru, výpis adresáře)
    • mtime: čas poslední změny datové části (souboru, adresáře)
    • ctime: čas poslední změny I-uzlu (metadat)
  • DIRECT BLOCKS – 12 přímých odkazů na datové bloky obsahující data uložená v souboru[1][2]
  • SINGLE INDIRECT – 1 odkaz na datový blok, který obsahuje místo dat seznam přímých odkazů na datové bloky obsahující vlastní data uložená v souboru (první nepřímá úroveň)
  • DOUBLE INDIRECT – 1 odkaz druhé nepřímé úrovně (viz obrázek vpravo)
  • TRIPLE INDIRECT – 1 odkaz třetí nepřímé úrovně

V souborových systémech ext (Linux) následují ještě příznaky (FLAGS), počet aktuálně použitých datových bloků a rezervovaná část, která může obsahovat doplňující informace (odkaz na rodičovský adresář, ACL, rozšířené atributy a podobně).[3]

Odkazy

Literatura

  • BRANDEJS, Michal. UNIX – Linux: praktický průvodce. Praha: Grada Publishing, 1996. ISBN 80-7169-170-4. Kapitola 3. Systém souborů, s. 29–32. 

Reference

  1. viz soubor ext3_fs.h ve zdrojových kódech linuxového jádra, makro EXT3_NDIR_BLOCKS
  2. soubor ext3_fs.h[nedostupný zdroj] pro jádro 2.6.39.1 na http://kernel.org
  3. – Unix inode structure. www.tux4u.nl [online]. [cit. 2010-04-23]. Dostupné v archivu pořízeném dne 2007-01-29. 

Související články

Externí odkazy

Média použitá na této stránce

Soubor Inode (czech description).png
Datová struktura i-node používaná v unixových souborových systémech.