Ext2: i-node
Z MiS
Obsah |
Co je to i-node?
- i-node je datová struktura uchovávající informace o souboru.
- ke každému souboru existuje právě jeden i-node.
- každý i-node má své číslo.
- i-node obsahuje:
- informace o souboru (metadata)
- odkazy na datové bloky (ve kterých jsou uložena samotná data souboru)
Informace o souboru
i-node neobsahuje jméno souboru!
Jméno je v adresáři a pro jeden soubor může být jmen více! (Viz hardlink.)
Jméno je v adresáři a pro jeden soubor může být jmen více! (Viz hardlink.)
- Typ souboru (file type: executable, block special etc)
- Oprávnění pro přístup (permissions: read, write etc)
- Vlastník (Owner)
- Skupina (Group)
- Velikost souboru (File Size)
- Čas posledního přístupu a změny (File access, change and modification time)
Unix ani Linux neukládají čas vytvoření souboru.
- Čas smazání souboru (File deletion time)
- Počet odkaz (Number of links—soft/hard)
- Další atributy
- „append only“
- nesmazatelný soubor (immutability)
- Access Control List (ACL)
Odkaz na data
- přímé a nepřímé odkazy na datové bloky
Nepřímé odkazy na datové bloky
- jsou to odkazy na datové bloky, které neobsahují data, ale odkazy na další datové bloky.
- nepřímé odkazy 1. řádu: data jsou ve druhé úrovni
- nepřímé odkazy 2. řádu: data jsou až ve třetí úrovni
- zmenšují velikost i-nodu
- jedním odkazem můžeme adresovat řádově větší množství dat
- zpomalují přístup k datům:
- pro přečtení dat potřebujeme přečíst více datových bloků
Obvyklé použití
- i-node obvykle obsahuje několik přímých odkazů (malé soubory se tedy načítají rychle, vlezou do přímo odkazovaných bloků)
- dále obsahuje několik odkazů 1. řádu (středně velké soubory)
- dále obsahuje odkaz či odkazy 2. a 3. řádu (u velikých souborů tolik nevadí, že musíme přistupovat přes nepřímé odkazy.
- Úkol — Maximální velikost souboru
Víte, že:
- velikost datového bloku = 4 KiB
- odkaz na datový blok = 4 B
Jaký je maximální velikost souboru, pokud i-node obsahuje:
- 12 přímých odkazů
- 8 nepřímých 1. řádu
- 4 nepřímé 2. řádu
Jak strop maximální velikosti zvýšíme?