Všechny systémy UNIXového typu mají stejný systém přístupu k souborům a zařízením.
- soubory
- adresáře
- linky
- soubory zařízení
První tři slouží k ukládání dat, poslední typ - soubory zařízení slouží k poskytnutí přístupu k zařízení (device). Soubory mimo uložení dat mohou sloužit ke komunikaci mezi procesy.
Použitím příkazu ls -l.
lrwxrwxrwx 1 root root 16 Mar 13 08:50 cron -> ../usr/sbin/cron drwxr-xr-x 2 root sys 512 Mar 13 12:19 cron.d -rw-r--r-- 1 root sys 2279 Mar 18 2004 dacf.conf
Písmenko l na začátku označuje link. Písmeno d je pro odlišení adresářů. Pomlčka - označuje soubor.
Všechny soubory mají své jméno a záznam, kterému se říká inode. Většina souborů pak používá také data bloky.
Jméno souboru je identifikátor, který používáme pro vnější prezentaci souboru směrem k uživateli a programům.
Inody jsou objekty, které používá systém pro záznam informací o souboru. Jméno souboru nesmí být tečka, dvě tečky, a lomítko.
Data bloky jsou jednotky diskového prostoru, které jsou použity pro ukládání obsahu souboru.
Inode se sestává ze dvou částí. První obsahuje informace o souboru jako je jméno, práva, velikost. Druhá část obsahuje ukazatele na datové bloky, které souboru patří. Inody jsou číslované a každý filesystem obsahuje vlastní seznam inodů. Při vytváření filesystemu se generuje kompletní list inodů.
Soubory jsou k ukládání dat. Kdo by to řekl :).
Adresář ukládá informace o uložených souborech. Vlastní soubory neobsahuje...
Jméno adresáře je spjato s inodem stejně jako u souboru, ale v data blocích pak není uložen obsah souboru, ale seznam jmen a inodů dalších objektů.
Symbolický link je soubor, který ukazuje na jiný soubor. Obsahem data bloku je tedy jméno cílového souboru. Velikost symbolického linku odpovídá počtu znaků cesty a názvy cílového souboru. Příklad - velikost je 11 byte.
ls -la lrwxrwxrwx 1 root root 11 2005-09-12 16:06 cdrom -> media/cdrom
Symbolické linky mohou ukazovat na soubor, adresář, jiný symbolický link nebo na speciální soubory. Cesta linku může být relativní i absolutní.
Vytvoření linku:
ln -s existující_cesta nově_vytvořený_soubor_linku
Oproti klasickým souborům, adresářům a symbolickým linkům, soubory zařízení poskytují přístup na nějaké systémové zařízení. V inodu souboru jsou uložena čísla, podle kterých jádro rozezná zařízení. Místo velikosti souboru ve výpisu se zde vypisují dvě čísla oddělená čárkou. Čísla jsou nazývaná major a minor.
..... brw-r----- 1 root sys 32, 72 Feb 23 2006 sd@a,0:a crw-r----- 1 root sys 32, 72 Feb 23 2006 sd@a,0:a,raw .....
Major číslo určuje driver, který obsluhuje přístup k zařízení. Minor číslo slouží k odlišení více zařízení stejného druhu. Soubory zařízení jsou v Solarisu vytvořeny po rekonfiguračním bootu (z ok promptu příkazem boot -r, ze Solarisu reboot -- -r). Pokud potřebujete vytvořit soubor zařízení pro nově připojený device, můžete použít příkaz mknod, devfsadm. Ten zkusí nahrát všechny ovladače zařízení a pokud najde nové, tak se vytvoří soubor zařízení.
Soubory zařízení můžeme rozdělit na dvě kategorie. Znakové (raw) a blokové (block). Podle toho do které kategorie soubor zařízení patří se mění i způsob jakým se k zařízení přistupuje.
Ve výpisu jsou značené jako c. Pro přístup k zařízení přes tento soubor se použije nejmenší adresovatelná jednotka zařízení. V případě pevného disku je to jeden sektor (512 bajtů).
crw-r----- 1 root sys 136, 0 Feb 23 15:31 dad@0,0:a,raw
Ve výpisu jsou značené jako b. Pro přístup k zařízení se použije definovaná velikost bloku, která je závislá na zařízení. U pevného disku a souborového systému ufs je to implicitně 8 Kbyte.
brw-r----- 1 root sys 136, 0 Feb 23 15:31 dad@0,0:a
Hard link je pevná asociace mezi inodem a datablokem. U každého inodu je uložena i informace o počtu hard linků. Z výpisu ls -l se počet hardlinků nalézá mezi výpisem práv a vlastníkem.
-rw-r--r-- 1 root other 0 Jan 2 04:20 file2
Soubor file2 používá jeden hard link. Nový hard link vytvoříme následovně:
ln file2 file3
A výsledek:
-rw-r--r-- 2 root other 0 Jan 2 04:22 file2 -rw-r--r-- 2 root other 0 Jan 2 04:22 file3
Pokud teď zkusíte například přes editor vi zapsat něco do souboru file2, tak zjistíte že je to samé i v souboru file3, protože oba inody ukazují na stejný datablok. To lze snadno ověřit pomocí ls -li. Číslo uvedené jako první ve výpisu je číslo inodu.
root@demo-141 # ls -li
......
107541 -------r--+ 1 root other 4 Feb 23 2006 file
107928 -rw-r--r-- 2 root other 6 Jan 2 04:25 file2
107928 -rw-r--r-- 2 root other 6 Jan 2 04:25 file3
107544 -rw-r--r-- 1 root other 28 Feb 23 2006 prava
......