Logika systému postavenom na jadre linux. 1časť

Dnes | 01:17 | redhawk1975 | redhawk1975
Seriál: linux

Nedávno som prednášal a zistil som, že v podstate väčšina užívateľov linuxových OS aj Windows bola zarazená že som v termináli našiel všetko. 

Tento diel bude o súboroch a logickej štruktúre systému.

Štruktúra adresárov je v Linuxe odlišná od štruktúry vo Windows. 

Zatiaľ čo vo Windows má každý program svoj vlastný adresár v Program Files, v Linuxe sú pohromade všetky spustiteľné súbory, v inom adresári všetky konfiguračné súbory atď. Základnými adresármi, ktoré sa nachádzajú priamo v koreni (root) adresárového stromu, sú:

/bin /mnt
/boot /prec
/dev /root
/etc /sbin
/home /tmp
/lib /usr
/lost+found /var

V adresári /bin sú základné spustiteľné súbory (programy) v systéme.

Nájdete tu napr. príkazy cp, mv, bash (shell), kill, ls, ln a ďalšie – slúžia k základnej správe súborov, procesov a pod.

S mnohými z nich sa v tomto seriáli stretneme.

Podobný je adresár /sbin, v ktorom sú programy, ktoré môže spúšťať iba root (fdisk, iptables, reboot, ifconfig alebo init a pod.).

Adresár /boot obsahuje väčšinou jadro systému a ďalšie súbory potrebné na štart Linuxu.

V adresári /dev sú uložené súbory na ovládanie rôznych zariadení - o nich až inokedy. Ide o adresár, kde by ste nemali (pokiaľ presne neviete čo robíte) nič meniť alebo mazať.

Adresár /etc obsahuje konfiguračné súbory jednotlivých programov - ide o nastavenie kompletne pre celý systém, nie pre jedného užívateľa.

Drvivou väčšinou sa jedná o textové súbory, ktoré je možné ľahko modifikovať - ​​opäť ale platí, že modifikáciou týchto súborov môžete poškodiť celý systém.

Preto do všetkých koreňových adresárov (s výnimkou /tmp) má právo na zápis iba root. Adresár obsahuje veľké množstvo podadresárov: nájdete tu napr. adresár X11, obsahujúci konfiguračné súbory X Windows, adresár rc.d, obsahujúci spúšťacie skripty jednotlivých runlevelov, a ďalšie.

V konfiguračných súboroch nájdete zaznamenaných jednotlivých užívateľov, skupiny a heslá (passwd, group, shadow), nastavenie príkazového interpretu (bashrc), nastavenie pripájaných diskov (fstab) a ďalšie.

Viac o konfiguračných súboroch si povieme inokedy.

V adresári /home sú jednotlivé používateľské adresáre. Do nich si môže každý užívateľ ukladať svoje dáta a taktiež užívateľské nastavenia jednotlivých programov.

V adresári /lib sú zdieľané knižnice (obdoba knižníc DLL z Windows). 
Jedná sa o časti kódu, ktoré má mnoho programov rovnaké – napr. tlač na obrazovku, vykreslenie okna v X Window a pod. 
Preto je výhodné umiestniť tieto časti do samostatného bloku – knižnice – tá sa potom nahrá do pamäte iba raz a je využívaná viacerými procesmi. V adresári /lib/modules nájdete jednotlivé moduly (ovládače) jadra. 
Jednotlivé ovládače totiž môžu byť napevno zabudované v jadre, alebo v samostatnom súbore, ktorý jadro načíta, až keď ovládač potrebuje (niektorý z procesov chce pracovať s nejakým zariadením a pod.).

Adresár /lost+found nie je záležitosť operačného systému, ale skôr súborového systému: pri nejakej havárii, kedy dôjde k porušeniu konzistencie súborov na disku (napr. výpadok napájania, alebo poškodený disk), sa tu ukladajú nájdené stratené sektory.

Do adresára /mnt alebo /media , podľa spôsobu pripojenia, sa pripájajú ostatné disky a mechaniky (cd-rom, dvd-rw alebo br)

Adresár /proc vlastne nie je ani adresár: vytvára sa až za behu systému a obsahuje informácie o jednotlivých procesoch, o systémových zariadeniach a pod.

Adresár /root je domáci adresár pre užívateľov root.

Do adresára /tmp sa ukladajú dočasné (temporary) súbory jednotlivých programov.

Asi najrozsiahlejší adresár v systéme je /usr. Obsahuje adresáre /usr/bin, /usr/etc, /usr/lib a /usr/sbin, ktoré majú podobný význam ako adresáre s rovnakým menom v koreňovom adresári. Ďalej je tu adresár /usr/include, obsahujúci hlavičkové súbory knižníc, /usr/src, obsahujúci zdrojové súbory jadra a ďalších programov, /usr/share, ktorý obsahuje rôzne zdieľané dáta (menu, obrázky, témy, fonty a pod.). V adresároch /usr/doc, /usr/man a /usr/info je uložená dokumentácia. Dôležitý je adresár /usr/X11R6, ktorý obsahuje opäť známe adresáre bin, lib, etc, share, include - ale tentoraz sa týkajú systému X Windows. Rovnakú štruktúru má aj /usr/local.

Posledným adresárom je /var. Obsahuje rôzne dátové alebo dočasné súbory. Napr. /var/log obsahuje logy (žurnály) systému, /var/spool/mail obsahuje poštu jednotlivých užívateľov a /var/spool/lpd obsahuje tlačové fronty. Pokiaľ vám na počítači beží databáza PostgreSQL alebo mySQL, majú svoje súbory umiestnené v /var/lib/pgsql alebo /var/lib/mysql.

Samozrejme, že existujú nejaké výnimky: napr. jednotlivé distribúcie sa medzi sebou môžu líšiť v umiestnení niektorých konfiguračných súborov. Tiež pri preklade rôznych programov (napríklad práve databáz) si môžete určiť, kam chcete umiestniť ich dátové súbory a pod.

Iste sa pýtate, prečo sú tu adresáre /bin a /sbin dvakrát, v koreni av adresári /usr. Tiež vám možno nie je jasné, prečo /root nemá svoj adresár v /home rovnako ako ostatní používatelia.

RH: v súčasnosti niektoré distribúcie používajú linkovanie na adresáre, aby dodržali štruktúru.

Je to kvôli sieťam: dosť často totiž adresár /usr je na inom počítači (serveri) ak pracovnej stanici sa iba pripája - to uľahčuje správu celého systému.

Rovnako adresár /home je zdieľaný po celej sieti: užívateľ potrebuje mať svoje dáta tam, kde sa prihlási, a nie roztrúsené na rôznych počítačoch (nepredpokladá sa, že by niekto pracoval ako root).

Je ale potrebné mať niektoré základné programy na každom počítači, ktoré je možné spustiť aj bez pripojenia zväzku /home alebo /usr.

Hodí sa to najmä v prípade, že dôjde k havárii a sieť z nejakého dôvodu nie je prístupná.

Linux na rozdiel od MS Windows sa toľko neriadi príponami. 

Tie samozrejme v Linuxe existujú tiež - ale neplatia pre nich také prísne pravidlá a nie sú nutné. Prípona súboru nemusí byť vždy tvorená iba troma znakmi: niekedy je to iba jeden znak (.Z - komprimované súbory), niekedy dva (.ps - PostScript), alebo aj viac (.desktop - konfiguračné súbory desktopu pre DE (Gnome, KDE či xfce)). 
Súbor tiež môže mať prípon niekoľko, napr. súbor.ps.gz označuje PostSriptový súbor, ktorý je komprimovaný pomocou programu gzip.

V Ďaľšej časti sa pozrieme na Pomenovanie zariadení v linuxe.