Hierarchia súborového systému v CentOS Linux

V systéme Linux, tak ako v každom inom, je dôležité vedieť ako svoje dáta odkladať a uchovávať. Ako s nimi narábať a ako k nim pristupovať. Na odkladanie dát slúžia súbory a adresáre. Adresár [folder], si môžeme predstaviť ako kartotékový zoraďovač, ktorý miesto papierov obsahuje súbory. Adresár môže okrem súborov obsahovať ďalšie podadresáre a tie ďalšie. V operačnom systéme Unix sa systém adresárov a súborov nazýva súborový systém. Na začiatku je každý súborový systém tvorený jediným adresárom, ktorý sa nazýva koreňový alebo tiež aj hlavný adresár.

Každý súbor a každý adresár má svoje meno a to krátke, alebo dlhé. Krátke meno súboru alebo adresára môže byť rovnaké ako meno iného súboru i adresára, ktorý je však uložený na inom mieste. Napríklad zoznam.txt. Dlhé meno je vždy jedinečné a obsahuje celú cestu k danému podadresáru i súboru. Dlhé meno (teda meno obsahujúce cestu) vyzerá nasledovne: /home/user/zoznam.txt. Cesta môže byť dekódovaná postupnosťou adresárov.
Napríklad:

/home/user/zoznam.txt

/ reprezentuje koreňový adresár, home reprezentuje podadresár nachádzajúci sa v koreňovom adresári, ďalším podadresárom je user, ktorý je podadresárom adresára home, súbor zoznam.txt sa nachádza v podadresári user. Názvy súborov/adresárov môžu mať maximálne 255 znakov a sú case-sensitive, t.j. že sú citlivé na veľké/malé písmená – napríklad test.txt a test.TXT sú dva rôzne súbory.

Cesta sa v danej adresárovej štruktúre môže odkazovať tak na súbor, ako na podadresár. Ak sa však jedná o súbor, jeho meno je na konci tohoto dlhého zápisu – všetky predošlé názvy sú názvy adresárov a podadresárov. Pre lepšiu predstavu adresárovej štruktúry je možné zobraziť si ju v stromovom zozname. Toto je možné pomocou príkazu tree, prípadne prostredníctvom programu midnight commander (príkaz mc – nie všetky inštalácie operačného systému však majú tento program predinštalovaný, CentOS je práve tento prípad) obdoba dosovského Norton Commandera.

Adresárová štruktúra OS Linux je veľmi podobná adresárovej štruktúre iných U*ixov. Súbory sú na disku zvyčajne usporiadané rozdielnym spôsobom ako v operačných systémoch firmy Microsoft, preto orientácia na disku môže spôsobovať začiatočníkovi mierne problémy a môže sa mu zdať chaotická. Hlavný rozdiel medzi usporiadaním súborov v Linuxe a vo Windows je v tom, že zatiaľ čo vo Windows sa programy obyčajne celé inštalujú do svojho vlastného adresára (t.j. spustiteľné súbory spolu s konfiguračnými, dátovými, knižnicami, …), v Linuxe sa zvyčajne inštalovaný program „rozlezie“ po celom disku – jeho súbory sa nakopírujú do rôznych pripravených adresárov. Nevýhodou linuxového usporiadania je zdanlivý neporiadok na disku – na prvý pohľad je ťažko zistiť, ktorý súbor patrí ku ktorému programu. Ešte z čias MS DOSu boli používatelia zvyknutý na „inštalovanie“ programov do vlastných adresárov – potom „odinštalovanie“ programu pozostávalo jednoducho z vymazania jeho adresára. Takto postupovať však už nie je korektné ani vo Windows – síce by sa nám možno podarilo vymazať všetky súbory patriace programu, s veľkou pravdepodobnosťou by to však nezmazalo všetky záznamy o programe v systéme (napr. z windows registry). Práve linuxové usporiadanie však udržiava disk upratanejší, ako by sa na prvý pohľad zdalo. Súbory inštalovaného programu sú nakopírované do adresárov práve podľa toho, akého sú typu: spustiteľné (bin), konfiguračné (etc), knižnice (lib)…

Okrem usporiadania súborov a adresárov je však ešte oproti systémom Windows jeden veľký rozdiel. Zatiaľ čo vo Windows je používateľ zvyknutý že najvyšší bod adresárovej štruktúry je disk C:, D:, a pod. (resp. položka „Môj počítač“), v Linuxe je na vrchu adresárovej štruktúry tzv. root (označovaný /). Všetko ostatné sa odvíja od tohto bodu („koreňa“ celého systému).

Opis najdôležitejších častí adresárovej štruktúry

Tu si všimnite, že vždy je na začiatku uvedené lomítko aby bolo hneď zrejmé, že sa jedná o adresár, ktorý sa nachádza v roote – v hlavnom adresári systému):

  • /bin – adresár obsahuje spustiteľné súbory rôznych programov. Ako uvidíme neskôr, v systéme sa nachádza viac adresárov s názvom bin. Je to kôli prehľadnosti – jednotlivé bin adresáre obsahujú spustiteľné súbory k rôznym typom programov. Adresár /bin obsahuje práve najzákladnejšie spustiteľné súbory, môžete tu nájsť napr. programy ls, cat, chown, chmod atď.
  • /boot – adresár boot obsahuje súbory používané pri bootovaní systému. Najdôležitejší (aj keď nie jediný nevyhnutný pre správne nabootovanie systému) je súbor vmlinuz, ktorý obsahuje jadro systému (kernel). Samotný kernel je srdcom celého systému; je to niečo ako hlavná časť Linuxu. Má za úlohu základné veci potrebné pre beh systému správu pamäte, riadenie procesov; môže však už obsahovať aj ovládače pre zariadenia. Bez kernelu by žiaden program nemohol byť ani spustený. Okrem jadra je dôležité poznať programy grub a lilo. Tieto programy majú za úlohu pri bootovaní počítača nahrať do pamäte kernel. Hlavnou funkcionalitou sú si veľmi podobné; buď je použitý jeden, alebo druhý. V CentOS Linux sa defaultne používa grub
  • /dev – device (zariadenie). Ako už z názvu vyplýva, adresár bude obsahovať zariadenia systému. Vec možno na prvý pohľad nezaujímavá má však pre linux mimoriadny význam a je jeho dôležitou vlastnosťou. V Linuxe okrem už dobre známej reprezentácie dát (texty, obrázky, programy, knižnice, …) existujú ešte špeciálne druhy súborov. Práve jedným typom špeciálneho súboru je súbor, ktorý reprezentuje určité (napr. hardwérové) zariadenie. V adresári dev teda môžete nájsť súbory, ktoré reprezentujú napr. myš – /dev/mouse, IDE harddisk – /dev/hda, /dev/hdb, SCSI zariadenie – /dev/sda, /dev/sdb, floppy disk – /dev/fd0, streamer – /dev/st0, zvukovú kartu – /dev/dsp, atď… Ak tam však niektorý z uvedených súborov nenájdete, neprepadajte panike – môže byť prítomný pod iným názvom (napr. /dev/mouse môže byť len linka na sériové rozhranie, atď…) Spomenutý systém súborov reprezentujúcich zariadenia systému umožňuje jednotnú prácu takmer so všetkým, čo sa v systéme nachádza. Programátor si stále vystačí s niekoľkými štandardnými príkazmi na otvorenie súboru, čítanie, zapisovanie, zatvorenie súboru a ešte určitými špeciálnymi nastaveniami.
  • /etc – adresár s konfiguračnými súbormi k jednotlivým programom
  • /home – adresár obsahuje domovské adresáre všetkých používateľov, až na používateľa root (ktorý má domovský adresár /root).
  • /lib – hlavné knižnice systému; obzvlášť dôležitý je adresár /lib/modules. Čím má mať operačný systém viac rôznych funkcií a podporovať viac hardwéru, tým musí obsahovať viac rôznych programov s danou funkcionalitou. Takýchto programov je ale obrovské množstvo – od základnej sieťovej podpory až po špeciálny hardwér na veľmi špecifické použitie. Je zrejmé, že bežnému používateľovi budú ovládače na takýto typ hardwéru zbytočné. Aby nebolo jadro systému (vyššie spomínaný kernel) prepchaté možno práve zbytočnými programami, je možné ho nejakým spôsobom poskladať práve len z tých častí, ktoré sú pre nás potrebné. Práve tieto súčiastky, ktoré sa dajú podľa potreby obmieňať, sa nazývajú moduly (modules). Ako príklad modulu môžem uviesť ovládač na sieťovú kartu; takisto to však môže byť podpora určitého sieťového protokolu.
  • /media – pozri adresár /mnt. Adresár media je vytvorený na mountovanie prenosných médií (cdrom, floppy). Veľa systémov má len adresár /mnt. Tu je to rozdelené len kôli prehľadnosti.
  • /mnt – budeme najčastejšie používať v spolupráci so zariadeniami z adresára /dev. Na rozdiel od adresára /dev adresár /mnt neobsahuje žiadne špeciálne súbory. Čo sa týka špeciálnych zariadení adresára /dev z pohľadu používateľa, je dôležité poznať príkaz mount ktorý „primontuje“ určité zariadenie do našej adresárovej štruktúry. Obyčajne sa zariadenia mountujú práve do podadresára /mnt (alebo /media). Nie je to vôbec podmienka, skôr také nepísané pravidlo ktoré sprehľadňuje systém. V adresári /mnt môžete mať vytvorené napr. podadresáre floppy a cdrom, do ktorých sa budú mountovať (zobrazovať, premietať) zariadenia predstavujúce cdrom a disketovú mechaniku. Primountovanie zariadenia do systému (naprojektovanie jeho obsahu do adresára) sa vykoná príkazom mount:

    # Pripojenie CDROM do adresara /mnt/cdrom
    mount /dev/hdc /mnt/cdrom
    # Pripojenie diskety do adresara /mnt/floppy
    mount /dev/fd0 /mnt/floppy
  • /proc – ďalší špeciálny adresár (resp. adresár ani nie je špeciálny; skôr je špeciálny jeho obsah). Obsah tohto adresára sa nenachádza na disku ani na inom podobnom médiu, ale je to len určitý obraz pamäte. Ako bolo spomenuté pri adresári /mnt a mountovaní, do adresára je možné namountovať takmer hocičo, len je potrebný program, ktorý to zobrazí vo forme súborov. Obsah adresára /proc je generovaný kernelom a obsahuje rôzne údaje o práve bežiacom systéme. Je to robené v reálnom čase (t.j. nie len napr. pri boote systému). Ako príklad spomeniem súbory cpuinfo (použitie napr. cat /proc/cpuinfo – informácie o procesore), meminfo (cat /proc/meminfo – informácie o pamäti). Je zrejmé, že práve vďaka spomínanému systému súborov na Linuxe je napr. úplne jednoduché spraviť program na monitorovanie stavu pamäte (stačí v určitých časových intervaloch sledovať hodnoty v súbore meminfo, nie je potrebná žiadna špeciálna programátorská technika). Súbor /proc/bus/pci/devices je vhodné využiť napr. pri inštalácii nového hardwéru. Vypísaním obsahu súboru zistíme názov požadovaného hardwéru. Potom je potrebné nájsť modul k tomuto hardwéru, v prípade potreby nastaviť parametre v súbore /etc/modules.conf a nakoniec nainštalovať modul do pamäte (príkazom insmod). Okrem spomínaných súborov adresár obsahuje niekoľko podadresárov s číselným názvom. Tieto podadresáre reprezentujú procesy bežiace v pamäti – názov adresára zodpovedá ID procesu (pid). Takto je možné zistiť informácie o ľubovoľnom bežiacom procese.
  • /root – domovský adresár hlavného používateľa (root-a)
  • /sbin – systémové spustiteľné súbory (napr. program init)
  • /srv – obvykle obsahuje podadresáre ftp (domovský adresár pre ftp) a www (hlavný adresár apache). Vo verzii CentOS5 (RedHat 5) je hlavne z dôvodu kompaktibility, webové adresáre sa nachádzajú vo /var/www
  • /tmp – do tohto adresára si rôzne programy ukladajú dočasné súbory. Najväčší problém je s prístupovými právami. Aby si tu mohol každý program vytvoriť pomocný súbor a keď ho už nepotrebuje tak ho aj mohol vymazať, musí mať v adresári práva na zápis. Potom však môže mazať nielen svoje súbory, ale aj hociktorý iný, takže môže poškodiť niektorú bežiacu aplikáciu, ktorú on nespustil. Tento problém je vyriešený špeciálnym atribútom označeným písmenom ‘t’. Atribút znamená, že používateľ môže mazať len tie súbory, ktorých je vlastníkom. Daný atribút nastavíme nasledovne:
    chmod 1777 /tmp
  • /usr – adresár obsahuje súbory, ktoré už nie sú až také základné pre samotný systém. Na prvý pohľad je zrejmá podobnosť podadresárov s adresármi v roote – sú tu podadresáre bin, etc, lib, sbin … Samotné podadresáre majú totožný význam ako podadresáre v koreňovom adresári – sem sa ale inštalujú už konkrétne špecifické programy, napr. rôzne editory, komprimačné programy, a pod. V adresári /usr je podadresár local (/usr/local/), ktorý zase obsahuje štandardnú štruktúru (bin, lib, ...). Tento adresár je najvhodnejším kandidátom na vaše inštalácie rôzneho špecifického softvéru.
  • /var – posledný adresár, obsahuje pre nás dôležité informácie o logoch (/var/log), poštu (/var/spool/mail) a pod. O logoch platí to, čo aj o konfiguračných súboroch – je potrebné hľadať súbor/adresár totožný/podobný s názvom programu. Veľa programov však používa na logovanie program syslog, ktorý ukladá výstupy do súboru syslog alebo messages. Preto je vhodné pri riešení nejakého problému skontrolovať aj tento súbor.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *