Operační systém UNIX
Systém souborů
Systém souborů (File System) Základní pojmy
Běžný uživatel vidí logický systém souborů jako jeden strom.
Kořen stromu je kořenový adresář ( / = Root Directory ).
Uzly stromu jsou adresáře (d = Directory). Listy stromu jsou: obyčejné soubory (- = File) speciální soubory znakové (c = Character Device) a blokové (b = Block Device) symbolické linky (l = Symbolic Link) roury (p = Pipe)
Logický systém souborů je (obvykle) tvořen více fyzickými systémy souborů.
predn_03.doc
18.11.01 23:22
1
Operační systém UNIX
Příklad:
Systém souborů
mount /dev/dsk/c0t0d0d3 /home
Fyzické systémy souborů
Logický systém souborů /
/ lost+found
home
lost+found
etc passwd
home
etc passwd
group
group
mount / lost+found
predn_03.doc
user1
lost+found
user1
user2
user2
18.11.01 23:22
2
Operační systém UNIX
Systém souborů
Typy fyzických systémů souborů:
diskové ( s5, ufs, vxfs, pcfs, hsfs, ... ) síťové ( nfs, smb, ... ) paměťové ( tmpfs ) virtuální ( procfs, fdfs, ... )
Výhody unixové koncepce:
za pokrytí logického FS fyzickými FS je odpovědný administrátor pokrytí lze měnit bez vlivu na logický FS možnost zvětšování kapacity logického FS bez změny jeho struktury ohraničení chyby v rámci fyzického FS
predn_03.doc
18.11.01 23:22
3
Operační systém UNIX
Systém souborů
Jména souborů (adresářů)
Maximální délka jména závisí na implementaci ( obvykle 255, s5 - 14 ) Jsou povoleny všechny znaky kromě lomítka (/)
Nedoporučené znaky jsou: nezobrazitelné (
A) znaky interpretované shellem ( *, #, $ )
Poznámky:
Malá a velká písmena se rozlišují. Tečka je platný znak. Jména souborů začínající tečkou se: nenahrazují na příkazové řádce při použití znaků * a ? nevypisují příkazem ls (jen s přepínačem -a)
proto jména konfiguračních souborů obvykle začínají tečkou: .profile, .kshrc, ... Jména tečka (.) a dvě tečky (..) jsou rezervována pro: . - aktuální adresář .. - nadřazený adresář
predn_03.doc
18.11.01 23:22
4
Operační systém UNIX
Systém souborů
Adresářová struktura Absolutní (úplná) cesta (Absolute/Full Path) určení cesty k souboru úplným zápisem všech adresářů ( oddělených znaky / ) počínaje kořenovým adresářem (/)
Aktuální (pracovní) adresář (Current/Working Directory)
zobrazen příkazem pwd
hodnota proměnné PWD
mění se příkazem cd <nový pracovní adresář>
je určen absolutní cestou v každém procesu může být jiný má synonymum (link) tečka (.) synonymum nadřazeného adresáře jsou dvě tečky (..)
predn_03.doc
18.11.01 23:22
5
Operační systém UNIX
Systém souborů
Relativní cesta (Relative Path)
nezačíná /
určuje cestu k souboru spolu s pracovním adresářem
Cesta k adresáři (Path) + jméno souboru (Name) = cesta k souboru (Pathname)
Domovský adresář (Home Directory)
definován pro každého uživatele po přihlášení je pracovním adresářem jméno uloženo v eviroment proměnné HOME
nastaví se jako pracovní příkazem cd bez parametrů
obvykle /home/<username> nebo /home//<username>
obvykle umožňuje uživateli zápis (vytváření souborů a podadresářů)
predn_03.doc
18.11.01 23:22
6
Operační systém UNIX
Systém souborů
Důležité adresáře (verze SVR4) spustitelné programy (nyní link na /usr/bin)
/bin
/sbin programy pro start a administraci systému
/dev
speciální soubory
/etc
konfigurační soubory (původně i programy) pro administraci systému
/home /tmp
domovské adresáře uživatelů dočasné soubory
/lib
knihovny (nyní link na /usr/lib)
/kernel
/opt
doplňkové programy které nejsou součástí instalace
/usr
systémové soubory které nemění svou velikost
/var
systémové soubory které mění svou velikost
predn_03.doc
jádro systému
18.11.01 23:22
7
Operační systém UNIX
Systém souborů
/usr/ bin spustitelné programy sbin další programy pro start a administraci systému ccs překladač jazyka C include vkládané soubory (.h) lib knihovny share
soubory nezávislé na implementaci (např./usr/share/man)
ucb programy kompatibility s BSD
/var adm logovací soubory log logovací soubory mail poštovní schránky uživatelů spool
predn_03.doc
fronty úloh (lp, cron)
18.11.01 23:22
8
Operační systém UNIX
Systém souborů
Práce s adresáři Příkazy:
cd [adresář]
přepnutí aktuálního adresáře do domovského resp. zadaného pwd
výpis cesty k aktuálnímu adresáři mkdir [-p] seznam_adresářů
vytvoření adresáře/adresářů rmdir
zrušení prázdného adresáře/adresářů ls [přepínače] [seznam_souborů_nebo_adresářů] výpis jmen souborů (adresářů) resp. obsahu adresářů (aktuálního adresáře) u adresářů se nevypisuje obsah, ale jméno -d -a
v adresářích se vypisují i soubory začínající tečkou
-l
dlouhý výpis
predn_03.doc
18.11.01 23:22
9
Operační systém UNIX
Systém souborů
Příklady: $ pwd /home/honza $ echo $HOME /home/honza $ cd / ; pwd / $ cd ; pwd /home/honza $ ls konec t1 $ mkdir d1 $ ls * konec t1 d1: $ ls -d * d1 konec $
predn_03.doc
testik
text
testik
t1
vypis
text
testik
vypis
text
18.11.01 23:22
vypis
10
Operační systém UNIX
Systém souborů
Princip implementace systému souborů Každý soubor je popsán jedním informačním uzlem (i-node) i-uzel je v rámci fyzického FS jednoznačně určen číslem (i-uzel číslo 2 popisuje kořenový adresář) i-uzel obsahuje vše o souboru kromě jména a dat Na data jsou v i-uzlu odkazy. Vlastní data jsou jinde v rámci fyzického FS. Číslo i-uzlu je spojeno se jménem souboru v souboru typu adresář.
predn_03.doc
18.11.01 23:22
11
Operační systém UNIX
Systém souborů
Příklad: Vyhledání souboru /etc/passwd / i-uzel 2:
i-uzel 123:
typ:d data:
... 123 etc
typ:d data:
...
... 555 passwd
i-uzel 555 typ:- data:
root:x:0:1:...
Důsledky:
Soubor může mít více jmen Soubor lze přejmenovat
predn_03.doc
18.11.01 23:22
12
Operační systém UNIX
Systém souborů
Informace o souborech (adresářích) Příkaz ls -l vypíše na každé řádce o jednom souboru/adresáři tyto informace: $ ls -ld ?? drwxr-xr-x 2 honza staff 512 Oct 14 22:32 d1 -rwxr-xr-x 1 honza staff 21 Mar 4 2001 t1 $ $ ^ a)
^ b)
^ c)
^ d)
^ e)
^ f)
^ g)
^ h)
a) typ - viz výše b) práva - přístupová práva čtení (r), zápisu (w) a provádění (x) pro vlastníka skupinu a ostatní (viz příští přednáška) c) počet odkazů - počet synonym (pevných linků) d) vlastník - jméno vlastníka nebo uid e) skupina - jméno skupiny nebo gid f) délka - délka souboru v bytech nebo velké a malé číslo pro speciální soubory g) datum a čas - datum a čas vytvoření resp. změny souboru h) jméno- jméno souboru predn_03.doc
18.11.01 23:22
13
Operační systém UNIX
Systém souborů
Rušení, přesun a kopírování souborů a adresářů
predn_03.doc
18.11.01 23:22
14
Operační systém UNIX
Systém souborů
Pevný link
Více jmen jednoho souboru tzv. pevný link lze vytvořit příkazem ln
Volání:
ln puvodní_jméno_souboru nové_jméno_souboru Příkaz vytvoří nový odkaz a inkrementuje čítač počtu odkazů v i-uzlu.
Pevné linky lze vytvářet pouze v rámci jednoho fyzického FS (proč?) Nelze vytvářet pevné linky na adresáře (s výjimkou . a ..) Nelze vytvářet pevné linky na neexistující soubory. Soubor (data a i-uzel) je jen jeden. Jména jsou rovnocenná (nedá se zjistit, které bylo první) Zrušení souboru s více odkazy ruší odkaz a dekrementuje čítač. Data se uvolní při zrušení posledního odkazu.
predn_03.doc
18.11.01 23:22
15
Operační systém UNIX
Systém souborů
Příklady: $ mkdir a; ls -ld a drwxr-xr-x 2 honza $ mkdir a/b; ls -ld a drwxr-xr-x 3 honza $ touch c; ls -li c 21262 -rw-r--r-1 $ ln c d; ls -li [cd] 21262 -rw-r--r-2 21262 -rw-r--r-2 $ rm c; ls -li d 21262 -rw-r--r-1 $
... 21262 c
...
staff
512 Oct 21 21:28 a
staff
512 Oct 21 21:28 a
honza
staff
0 Oct 21 21:28 c
honza honza
staff staff
0 Oct 21 21:28 c 0 Oct 21 21:28 d
honza
staff
0 Oct 21 21:28 d
i-uzel 21262 typ:- data:
... 21262 d
predn_03.doc
...
18.11.01 23:22
16
Operační systém UNIX
Systém souborů
Symbolický link Soubor typu symbolický link (l) obsahuje jméno jiného souboru (v datech nebo přímo v i-uzlu. Při použití symbolického linku se některé operace provádějí s linkem (rm), některé se souborem, na který link ukazuje (vi). Symbolickým linkem lze odkazovat libovolně, tedy i mezi fyzickými syst.souborů. Symbolický link lze vytvořit i na neexistující soubor, chyba se zjistí až při použití linku. Symbolický link může odkazovat na adresář. Lze pomocí něj vytvořit cyklickou cestu (proto je mnoho symb. linků v cestě k souboru hlášeno jako chyba).
predn_03.doc
18.11.01 23:22
17
Operační systém UNIX
Systém souborů
Příklad: $ ln -s d c; ls -li [cd] 21263 lrwxrwxrwx 1 honza 21262 -rw-r--r-1 honza $
... 21263 c
...
i-uzel 21263 typ:l data:
staff staff
... 21262 d
1 Oct 21 22:02 c -> d 0 Oct 21 21:28 d
...
i-uzel 21262 typ:- data:
d
predn_03.doc
18.11.01 23:22
18
Operační systém UNIX
Systém souborů
Určení typu souboru podle obsahu
file <seznam_jmen_souborů> vypíše typy souborů podle obsahu:
Příklad: $ file ?? d1: t1: t2: $
directory executable /bin/awk script empty file
Rozdělení obyčejných souborů:
Tištitelné: textové (ascii text) skripty Netištitelné binární proveditelný (executable)
predn_03.doc
18.11.01 23:22
19
Operační systém UNIX
Systém souborů
datové (data)
Zobrazení obsahu textových souborů nebo jejich částí
filtry a editory (viz minulá přednáška)
Zobrazení obsahu binárního souboru
od [-odxc]
(Octal Dump) - výpis obsahu binárního souboru v různých formátech strings výpis textových řetězců z binárního souboru
predn_03.doc
18.11.01 23:22
20
Operační systém UNIX
Systém souborů
Speciální soubory, soubory zařízení (special/device files)
Soubory pro práci s periferními zařízeními. Stejné použití jako soubory - jiné vlastnosti. Obvykle umístěny v adresáři /dev, pojmenování často systémově závislé /dev/null - prázdný soubor /dev/console - systémová konzole /dev/tty - aktuální terminál /dev/rdsk/c0t0d0s3 - disk, znakové zařízení /dev/dsk/c0t0d0s3 - disk, blokové zařízení
Budou probírány podrobněji později v jiné přednášce.
predn_03.doc
18.11.01 23:22
21