Systém souborů v Unixu
Systém souborů v Unixu je tvořen hierarchickým uspořádáním souborů a adresářů (stromová struktura), jejímž kořenem je adresář root, který se označuje „/
“.
Charakteristika
V Unixu je, oproti některým jiným systémům (např. MS Windows), jeden strom adresářů (na jehož vrcholu leží právě root - kořen). Kořen se připojuje při startu operačního systému (jádra). Další systémy souborů (filesystem) jsou připojeny do nějakého adresáře.
Vlastnosti systému souborů v UNIXu :
- možnost vytvářet a mazat soubory
- konzistentní přístup k datům v souboru
- ochrana dat v souborech
- kořenový systém souborů nelze odpojit
Rozdělení
Skoro vše v Unixu je soubor. V Unixu rozlišujeme tři základní skupiny souborů:
- adresáře
- soubory
- speciální soubory
Adresáře
- Domovský adresář (též domácí, angl. home directory) – uživatel by měl mít vlastní domovský adresář. Po přihlášení do operačního systému je domovský adresář nastaven jako pracovní.
- Pracovní adresář (angl. working directory) je ten, ve kterém momentálně uživatel pracuje.
- Rodičovský adresář (angl. parent directory) je o úroveň výše ve vztahu s kterýmkoliv adresářem
Soubory
Obsahují vlastní data a programy, se kterými uživatel pracuje. Každému souboru přísluší tyto atributy:
- jméno
- velikost v bytech
- číslo I-uzlu (angl. I-node number)
- přístupová práva
- majitel a skupina
- datum poslední změny, datum posledního přístupu
Speciální soubory
- reprezentují I/O zařízení
- jsou soustředěny v adresáři /dev
- soubory znakových zařízení – čtou a zapisují po jednom znaku (sériový a paralelní port, USB, terminál)
- soubory blokových zařízení – čtou a zapisují celý blok dat najednou (disk, disketa, CD, DVD)
- další speciální soubory: socket (přímá dvousměrná komunikace mezi programy) a roura (trubka, angl. pipe, jednosměrná komunikace)
Názvy souborů a adresářů
Při tvorbě názvů souborů a adresářů v Unixu je jediný zakázaný znak „/“ (které odděluje adresáře). Odlišují se zde velká a malá písmena. Názvy nemají strukturu – znak . (tečka) je stejný jako ostatní. Přípony se používají dle dohody, vůbec nebo násobné. Název „.“ označuje aktuální, „..“ nadřazený adresář a „~“ domovský adresář přihlášeného uživatele. Názvy začínající tečkou označují skrytý soubor nebo adresář.
.c | zdrojový kód Jazyce C |
.txt | (ASCII) text |
.ps | Postskript (formát pro text i obrázky) |
Žurnálování
V žurnálovém souborovém systému je přítomna speciální datová struktura (žurnál), do kterého se zapisují změny se soubory. Žurnálují se – metadata nebo metadata + data. Při změnách ve Filesystému je změna nejprve zapsána do žurnálu. Po provedení změny (data, metadata) je úspěch zapsán do žurnálu, poté je žurnál operace zrušen. Pokud dojde k neočekávané havárii je Filesystém opraven dle žurnálu.
Ext3
Operační systém Linux má soubor s názvem EXT (Extended file systém).
- ext, ext2, ext3 (v současnosti), ext4 (stabilní verze od r.2008)
boot | SUPERBLOK | i-uzly | datové bloky | SUPERBLOK | … |
Superblok
- služební informace o svazku
- velikost (skupiny)
- příznak „čistoty“ (zda je odpojen korektně)
- verze
- počet i-nodu
- velikost alokační jednotky
i-uzel (i-node)
Základní jednotka, která nese metadata o souboru (přístupová práva, počet odkazů – hard links, vlastník + skupina, délka)