Inody
Každý soubor v operačním systému Linux/Unix má přidružený inode s výjimkou Solaris ZFS, který inody nemá. Inody v podstatě fungují velmi podobně jako příloha knihy. Každý Inode bude mít níže uvedené informace o souboru.
1. majitel2. oprávnění
3. velikost
4. čas posledního přístupu
5. čas vytvoření
6. ID skupiny
7. Ukazatele na datové bloky spojené s obsahem souboru
Poznámka:Inode však neposkytuje název souboru.
Typy souborů
V každém unixovém operačním systému existuje v podstatě 5 typů souborů.
1. Běžné
2. Adresář
3. Symbolické odkazy (pevný odkaz a měkký odkaz)
4. Soubory zařízení (zvláštní znak a speciální zařízení bloku)
5. Pojmenované dýmky
Znak v prvním sloupci příkazu ls -l identifikuje typ souboru.
# cd / # ls -l bin lrwxrwxrwx 1 root root 9 Sep 19 15:41 bin -> ./usr/bin
- Regular files d Directories l Symbolic links b Block-special device files c Character-special device files p Named pipes
Soubory a adresáře
Běžné soubory mohou ukládat různé typy dat a lze je snadno vytvořit pomocí dotykového příkazu nebo editoru vi. Adresáře obsahují spojení mezi soubory a/nebo adresáři a čísly inodů.
Měkké odkazy
Jak je znázorněno na diagramu, měkké odkazy nebo symbolické odkazy jednoduše ukazují na jiný soubor. Obsahuje pouze cestu k souboru, na který ukazuje
1. Způsob vytvoření
# touch file1 # ln -s file1 link1 # ls -l -rw-r--r-- 1 root root 0 Sep 19 14:41 link1 lrwxrwxrwx 1 root root 5 Sep 19 15:41 link1 -> file1
2. Velikost měkkého odkazu vytvořeného ve výše uvedeném příkladu je počet znaků v názvu cesty (file1), což je 5 (může být absolutní nebo relativní).
3. Pokud smažete původní soubor (file1), soft link se vykreslí jako nepoužitelný.
4. Měkké odkazy mohou být umístěny v různých souborových systémech.
Pevné odkazy
Každý soubor používá alespoň jeden pevný odkaz. Když tedy vytvoříte nový soubor, vytvoří se nová položka adresáře, která se nazývá počet odkazů. Takže když vytvoříte nový pevný odkaz na tento soubor, počet odkazů se zvýší o 1.
1. metoda tvorby
# touch file1 # ls -l -rw-r--r-- 1 root root 0 Sep 23 13:19 file1 # ln file1 file2 # ls -l -rw-r--r-- 2 root root 0 Sep 23 13:19 file1 -rw-r--r-- 2 root root 0 Sep 23 13:19 file2 # ls -li 1282 -rw-r--r-- 2 root 0 root 0 Sep 23 13:19 file1 1282 -rw-r--r-- 2 root 0 root 0 Sep 23 13:19 file2 # find . -inum 1282 ./file1 ./file2
2. Počet odkazů se zvýší o jeden pokaždé, když vytvoříte nový pevný odkaz na soubor, jak je uvedeno výše.
3. I když odstraníte některý ze souboru, nebude to mít žádný vliv na druhý soubor. Snižuje se pouze počet odkazů
4. Pevné odkazy nemohou procházet systémem souborů.
Soubory zařízení
V operačním systému UNIX má každé fyzické zařízení k němu přidružen soubor, který se nazývá soubor zařízení . Je to rozhraní, které spolupracuje s ovladači zařízení. Na rozdíl od jiných typů souborů neuchovávají žádná data v datových blocích, místo toho používají inody k uložení hlavního a vedlejšího ne pro jakýkoli soubor zařízení.
# cd /dev/ # ls -l crw-r----- 1 root tty 4, 0 Sep 23 12:51 tty0 brw-rw----- 1 root disk 8, 1 Sep 23 12:51 sda0
Číslo hlavního zařízení – Pro přístup k zařízení je vyžadován konkrétní ovladač zařízení
číslo vedlejšího zařízení – konkrétní jednotka typu, kterou ovládá ovladač zařízení.
Pokud máte například 10 tiskáren HP, hlavní ne bude ovladač tiskových zařízení HP a vedlejší ne bude instance tiskárny (1,2 .. až 10).
Soubory zařízení jsou 2 typů
1. Speciální postava
2. Blokovat speciál
Znakové speciální soubory zařízení
1. Znak „c“ v prvním sloupci výstupu příkazu ls -l identifikuje soubor znakového speciálního zařízení
2. K datům se přistupuje jako k datovému toku (znak po znaku, vždy 1 bajt)
3. Příklad:tty, sériové, virtuální terminály
# ls -l crw-r----- 1 root tty 4, 0 Sep 23 12:51 tty0
Blokovat speciální soubor zařízení
1. Znak „b“ v prvním sloupci výstupu příkazu ls -l identifikuje soubor znakového speciálního zařízení
2. K datům se přistupuje podle definované velikosti bloku pro dané zařízení
3. Příklad:Pevný disk, CD/DVD
# ls -l brw-rw----- 1 root disk 8, 1 Sep 23 12:51 sda0
Pojmenované kanály
– Pojmenované kanály jsou speciální soubory, které se používají pro meziprocesorovou komunikaci. Na rozdíl od normálních rour můžete číst a zapisovat do pojmenovaných rour. Z tohoto důvodu jsou také nazývány jako FIFO (file in file out).
– mknod() nebo mkfifio() jsou běžné příklady, které využívají pojmenované roury k přístupu k rouře podle jména.
– Jak je ukázáno v příkladu níže, 2 procesy (gzip a cat) mohou současně přistupovat k pojmenovanému kanálu, do kterého zapisovat a číst data z něj.
# mkfifo test_pipe # gzip -9 -c > test_pipe < out.gz # cat file1 > test_pipe # ls -l test_pipe prw-rw----- 1 root root 0 Sep 23 12:51 test_pipe