5.1.3. Struktura datotečnog sustava; root, boot, bin, lib, sbin, dev

 Natrag  Linux  Dalje


Datoteke, imenici i uređaji Linuxa OS smješteni su u jedan JEDINSTVENI datotečni sustav (već je navedeno, sve je datoteka), što znači da je sve ukomponirano u jednu veliku hijerarhijsku strukturu u kojoj se uređaji kao takvi ne vide posebno, kao što je slučaj kod Windows OS. Na primjer Linux ima datoteku xorg.conf koja se u odnosu na vrh-korijen (root) stabla datotečne strukture označene s [ / ], nalazi u imeniku [etc] pridruženom vrhu strukture, u kojem je podimenik [X11], ili pojednostavljeno datoteka [/etc/X11/xorg.conf]. Nigdje se ne navodi nekakav disk kao što bi kod Windows XP operativnog sustava bilo na primjer [C:\WINDOWS\system32\oeminfo.ini] gdje se vidi pripadnost particiji [C:]. Dakle, za učinkovitu 'šetnju' kroz krošnju Linux stabla treba ga poznavati. Strukturu Linux-Debian datotečnog sustava prikazuje naredna slika. Slika je mapirana i svaki pravokutnik je spojnica prema odgovarajućem opisu. Isto vrijedi i za pojedine pravokutnike pripadne opisima za povratak na ovu sliku.

 FSSTND  root  bin  dev  home  mnt  ROOT  tmp  var  ostalo  boot  etc  lib  proc  sbin  usr  lost+found  usr/ bin  usr/ lib  usr/ sbin  Upravo ovdje  Natrag za jedan nivo
Slika 5.1.8 Datotečna struktura Linux operativnog sustava.

Većina Linux distribucija u načelu se drži prikazane strukture, koja je definirana neslužbenim standardom 'Linux File System Hierarchy Standard' (FSSTND) koji definira imena i lokaciju mnoštva imenika i datoteka i nalazi se negdje na Internetu (Google?). Pojedini pravokutnici na slici ujedno su spojnice prema sadržajima koji ih opisuju. Prilikom kreiranja imenika dobro bi bilo da su [/bin], [/lib] i [/sbin] na istoj particiji, a preporuka je da su na toj particiji i [/root] i [/etc].

Datotečni sustavi koje podržava Linux su 'journaling' tipa (FAT na primjer nije) što znači da imaju mogućnost samo oporavka u slučaju naglog isključenja računala (nema UPS?), jer su sve datoteke indeksirane (popisane) u JOURNAL, zapisi na posebnom dijelu diska u kojem se bilježe promjene prema potrebi, a potom se upisuje u datoteke čime se sprječava gubitak podataka i oštećenje samog datotečnog sustava. Otpornost na greške povećava i SUPERBLOCK, odnosno njegove kopije na više mjesta (redundantni blokovi) na disku. On sadrži podatke o datotečnom sustavu u cjelini, od njegove veličine pa do podatka gdje počinje svaki imenik pa nadalje (slično FAT tablici) za svaki datotečni sustav (particiju) posebno.

 Vodilice Na svim slikama 5.1.2 prikazano je što se po komandi ' ls -al ' vidi u korijenskom imeniku operativnog sustava i imenicima koji se trenutno pregledavaju. Kao što je već navedeno, particija diska kao element sustava neće se u datotečnoj strukturi prikazati. U samom vrhu svakog imenika vide se dvije specijalne datoteke ' . ' i ' .. ' (slično DOS operativnom sustavu) koje imaju zadaću:

  • . ' - Označava vrh postojećeg imenika koji se pregledava. Moglo bi se protumačiti kao oznaka 'OVDJE' ili 'U OVOM' imeniku. Nadređeni imenik je roditeljski imenik ovome. Svaki imenik ima svog roditelja, osim korijenskog, i prava koja ima roditelj u načelu se NASLEĐUJU u novostvorenim datotekama koje pripadaju roditelju. 'Obiteljske veze' može promijeniti jedino superuser (root).
  • .. ' - Spojnica prema nadređenom imeniku u odnosu na imenik koji je označen prethodnom točkom. Moglo bi se protumačiti kao oznaka koja omogućava prelazak u imenik odmah 'POVRH' OVOG imenika, za jedan nivo više. Prelazak na nivo više iz trenutnog vrši se komandom ' cd .. '.
 

Navedene točke nisu ništa drugo do vodilice kroz datotečni sustav koje omogućavaju prelaz iz jednog imenika u drugi imenik na višem nivou. Prava ovih dviju datoteka uvijek su ' drwxr-xr-x ', što znači da imaju osobitosti imenika i omogućavaju 'kretanje' kroz datotečni sustav kao nekakav putokaz.

 Korijenski imenik Oznaka korijenskog imenika, odnosno vrha-ishodišta hijerarhijske strukture datotečnog sustava za koji se povezuju svi ostali imenici ili datoteke sustava bilo da pripadaju istoj particiji na kojoj je ishodište datotečnog sustava [ / ] (ili oznaka [ Linux / ] prema slici 5.1 i 5.1.7) ili nekoj drugoj koja je za ishodište zakačena (mount). Pošto je ovo mjesto koje jezgra prvo dohvaća u njemu gotovo da nema datoteka. Tu su uz imenike samo potrebne simboličke spojnice te sve zajedno ne tvori neku značajnu veličinu glede zauzeća prostora diska. Znak ' .. ' na ovom mjestu nema značaja, ali znak ' . ' ima, zato jer označava da je OVDJE moguće, na primjer, nešto kopirati. Izravan prelazak na nivo ishodišta s bilo kojeg mjesta vrši se komandom ' cd / '.

 root-dir Imenik koji nije ništa drugo do mjesto gdje se čuvaju konfiguracijske datoteke superusera. Odnosno to je 'home' imenik superusera, što se može prepoznati i iz elemenata od kojih je sastavljen PROMPT - voda:~#. Pošto ovaj imenik ne uzima mnogo podataka i mora biti stalno raspoloživ superuseru, ne montira se na posebnoj particiji ili neko drugo mjesto već uz sam korijen stabla datotečne strukture. Pošto podaci superusera ne zauzimaju mnogo mjesta [ Linux / ] particija ne zahtijeva mnogo prostora, svega nekoliko stotina MB. Ako će u ovom imeniku biti nekakav poštanski sandučić moguće će zatrebati malo više prostora. Uz moderne diskove 1 GB za korijensku particiju je više nego dosta.

 boot-dir Imenik koji nužno ne mora biti na zasebnoj particiji kao prema slici 5.1, ali je u ovom primjeru tako prikazano jer poneke distribucije Linuxa upravo takvu strukturu zahtijevaju. U ovom imeniku nalazi se BOOT_LOADER i njegove konfiguracijske datoteke, imenik GRUB ili LILO ovisno o tome koji se LOADER koristi s pripadnim im sadržajima te preslike jezgre (kernel images) s imenima datoteka koje započinju s prefiksom initrd*, a koje mogu imati i ekstenziju .img mada nije nužno. Tu se čuvaju i pripadne im konfiguracijske datoteke. Pošto preslike jezgre ne zauzimaju mnogo diskovnog prostora ova particija ne zahtijeva mnogo mjesta, svega nekoliko stotina MB. Uz moderne diskove 1 GB je više nego dosta, te se može bez bojazni čuvati više verzija preslika jezgre operativnog sustava.

 bin Ovaj imenik sadrži binarne izvršive datoteke raspoložive SVIM korisnicima koji su prijavljeni na sustav. To znači da na sustavu moraju imati izrađen-otvoren KORISNIČKI_RAČUN (account). Komande su ključne riječi koje se koriste prema već navedenoj sintaksi i operativnom sustavu prenosi ih KOMANDNI INTERPRETER - LJUSKA (shell). Kod Debiana podrazumna ljuska je BASH i ona je također komanda prilično velikih mogućnosti. Ako je BASH komanda znači da se može pozvati na izvršavanje. Tada se u postojećoj ljusci otvara nova radna ljuska. Dok se radi u novoj ljusci inicijalna miruje. Tako se može ići iz ljuske u ljusku i ako su instalirani drugi tipovi ljuske mogu se na navedeni način uporabiti. Osim komandi u ovom imeniku je i mali broj simboličkih spojnica prema imeniku [/sbin] koji također sadrži velik broj komandi ali prvenstveno namijenjene za potrebe administratora. Sve datoteke u ovom imeniku imaju prava ' -rwxr-xr-x ', a simboličke spojnice imaju prava ' lrwxrwxrwx '. Dakle, samo administrator neku komandu može zamijeniti s nekom njenom novom verzijom ili joj promijeniti ime (opcija ' w '). Imenik sadrži stotinjak datoteka i u osnovi nema podčinjenih imenika. Tu se ne nalaze datoteke pojedinih servisa, već osnovno da korisnik može izraditi imenik, kopirati datoteku i slično.

 drago@voda:~$ dir /bin
 bash     dmesg          hostname  mount           ping6      stty        which
 busybox  dnsdomainname  ip        mountpoint      ps         su          zcat
 cat      echo           kill      mt              pwd        sync        zcmp
 chgrp    ed             ln        mt-gnu          rbash      tailf       zdiff
 chmod    egrep          loadkeys  mv              readlink   tar         zegrep
 chown    false          login     nano            rm         tempfile    zfgrep
 cp       fgconsole      ls        nc              rmdir      touch       zforce
 cpio     fgrep          lsmod     nc.traditional  rnano      true        zgrep
 date     grep           mkdir     netcat          run-parts  umount      zless
 dd       gunzip         mknod     netstat         sed        uname       zmore
 df       gzexe          mktemp    pidof           sh         uncompress  znew
 dir      gzip           more      ping            sleep      vdir
 drago@voda:~$ 
 drago@voda:~$ ls -al | grep lrwx
 lrwxrwxrwx  1 root root     20 2010-04-18 11:43 mt -> /etc/alternatives/mt
 lrwxrwxrwx  1 root root     20 2010-04-18 11:43 nc -> /etc/alternatives/nc
 lrwxrwxrwx  1 root root     24 2010-04-18 11:43 netcat -> /etc/alternatives/netcat
 lrwxrwxrwx  1 root root     16 2010-04-18 11:42 pidof -> ../sbin/killall5
 lrwxrwxrwx  1 root root      4 2010-04-18 11:42 rbash -> bash
 lrwxrwxrwx  1 root root      4 2010-07-31 22:02 rnano -> nano
 lrwxrwxrwx  1 root root      4 2010-04-18 11:42 sh -> bash
 drago@voda:~$

Komanda ' dir ' prikazuje sadržaj imenika na koji se odnosi. U ovom slučaju odnosi se na imenik koji se u odnosu na ' / ' naziva ' bin ' i nalazi se u samom vrhu hijerarhijske imenične strukture. Komandna linija ' ls -al | grep lrwx ' primjer je ulančavanja komandi koji kaže da se iz cjelokupnog popisa izdvoje i prikažu samo spojnice. U ovom imeniku nema ni čestitog uređivača datoteka, već samo jedan rudimenti linijski tekstualno orijentirani editor ' ed '. Iz primjera se vidi da komande za pregled sadržaja imenika ' dir ' i ' ls ' ne daju isti ispis jer su uporabljene različite opcije, iako su za obje komande u suštini opcije iste.

 lib Biblioteke su neizostavni dio svakog operativnog sustava. To je skup programskih rutina (objekata) koje služe prilikom kreiranja programske potpore ili ih programska potpora koristi u radu kako bi mogla izvršiti postavljenu joj zadaću. Ove rutine nalaze se u imeniku [/lib] u kojem su dodatni imenici s pripadnim im datotekama, a osobitost svih datoteka je što uglavnom počinju s prefiksom lib* u imenu i imaju ekstenziju .so ili .a. Dijele se na:

Kod Windows operativnih sustava .so datoteke imaju ekvivalent u .dll datotekama. U ovom imeniku su dinamički raspoložive datoteke .so tipa jer po svojoj funkciji više pripada potrebama 'običnog' korisnika te se zbog lakšeg dohvata od strane programske potpore imenik s ovim datotekama nalazi u korijenskom imeniku sustava u na istoj je particiji kao imenik [/bin].

 sbin U ovom imeniku nalaze se tipični alati (programska potpora) potrebni administratoru, koje običan korisnik ne može uporabiti. Na primjer komanda ' init ', s kojom je moguće promijeniti nivo uporabljivosti računala.

 drago@voda:~                                     (radni imenik korisnika 'drago')
 drago@voda:~$ whoami                             (tko sam ja na računalu?)
 drago
 drago@voda:~$
 drago@voda:~$ cd /sbin                           (prelazak u imenik [/sbin] )
 drago@voda:/sbin:$ dir
 badblocks        fsck.ext3          iptables-restore  mkswap        ss
blkid fsck.ext4 iptables-save modinfo startpar
blockdev fsck.ext4dev iptunnel modprobe start-stop-daemon
bootlogd fsck.minix isosize nameif sulogin
cfdisk fsck.nfs kbdrate pam_tally swapoff
ctrlaltdel getty killall5 pivot_root swapon
debugfs grub-install ldconfig plipconfig sysctl
depmod halt logsave poweroff tc
dhclient hwclock losetup rarp telinit
dhclient3 ifconfig lsmod raw tune2fs
dhclient-script ifdown MAKEDEV reboot udevadm
dumpe2fs ifup mii-tool resize2fs udevd
e2fsck init mke2fs rmmod udevsettle
e2image insmod mkfs route unix_chkpwd
e2label installkernel mkfs.bfs rtacct unix_update
e2undo ip mkfs.cramfs rtmon update-grub
fdisk ip6tables mkfs.ext2 runlevel update-modules
findfs ip6tables-restore mkfs.ext3 sfdisk vol_id
fsck ip6tables-save mkfs.ext4 shadowconfig
fsck.cramfs ipmaddr mkfs.ext4dev shutdown
fsck.ext2 iptables mkfs.minix slattach
drago@voda:/sbin:$ drago@voda:/sbin:$ ls -al | grep init (pregled određenog dijela iz gornjeg popisa) -rwxr-xr-x 1 root root 31296 2008-08-12 16:09 init
lrwxrwxrwx 1 root root 4 2010-04-18 11:42 telinit -> init drago@voda:/sbin:$

Simbolička veza ' telinit ' u primjeru vodi na ' init ' datoteku u istom imeniku izrađena je da bi se sačuvao već od prije uvriježen naziv ili na njega ide veza s nekog drugog mjesta koje ne zna za komandu ' init ' ali zna za komandu ' telinit ' koja mu treba. Prema primjeru moglo bi se zaključiti do običan korisnik, koji se utvrđuje izgledom PROMPT-a ili komandom ' whoami ' koja ispisuje njegovo ime, ima prava pozvati ove datoteke na izvršavanje (-rwxr-xr-x). Nema, jer korisniku ROOT nije pridružen niti jedan drugi korisnik u grupi a ono što smije ROOT ne smije nitko. Dakle, prava ne ovise samo zapisu u prvom stupcu. Osim navedenog i raspoloživi put prema imenicima je različit za korisnika i administratora. Komanda ' set ' daje mnoštvo varijabli okruženje među kojima se može iščitati:

 path    (/bin /usr/bin /usr/local/bin /usr/bin/X11 /usr/games)

 path    (/bin /sbin /usr/bin /usr/sbin /usr/bin/X11 /usr/local/bin /usr/local/sbin)

Običan korisnik može izvršiti samo pregled sadržaja ovog imenika i ništa drugo.

Već je rečeno da na dio ovih datoteka idu izravne simboličke veze iz imenika [/bin] i samo njih može uporabiti običan korisnik. Običan korisnik ne može uporabiti komandu ' init 6 ' na primjer, koja bi inicirala zaustavljanje rada računala i njegovo ponovno pokretanje bez fizičkog gašenja (reboot), ili pak komandu ' init 0 ' koja fizički gasi računalo (shutdown). Navedeni brojevi su nivoi iz poglavlja 5.1.1.

 dev Ovdje su smještene specijalne datoteke koje predstavljaju sklopovlje računala na kojem je instaliran ovaj operativni sustav. Upisivanjem u ovu datoteku ili njenim čitanjem izravno se kontaktira odgovarajući sklop računala, te zbog toga potpuna prava na ove uređaje ostvaruje uglavnom administrator. U slučaju potrebe uređaj se može kreirati pomoću skripte MAKEDEV.

 voda/dev# ls -alh | more
 total 4.0K
drwxr-xr-x 12 root root 3.3K 2010-07-31 21:08 .
drwxr-xr-x 21 root root 4.0K 2010-04-18 11:44 ..
crw-rw---- 1 root audio 14, 4 2010-07-31 21:08 audio
drwxr-xr-x 2 root root 640 2010-07-31 21:08 block
lrwxrwxrwx 1 root root 3 2010-07-31 21:08 cdrom -> hdc
drwxr-xr-x 2 root root 2.4K 2010-07-31 21:08 char
crw------- 1 root root 5, 1 2010-07-31 22:01 console
:
lrwxrwxrwx 1 root root 3 2010-07-31 21:08 dvd -> hdc
lrwxrwxrwx 1 root root 13 2010-07-31 21:08 fd -> /proc/self/fd
brw-rw---- 1 root floppy 2, 0 2010-07-31 21:08 fd0
crw-rw-rw- 1 root root 1, 7 2010-07-31 21:08 full : -rw-r--r-- 1 root root 0 2010-07-31 21:08 .initramfs-tools : srw-rw-rw- 1 root root 0 2010-07-31 21:08 log :
brw-rw---- 1 root disk 3, 0 2010-07-31 21:08 hda
brw-rw---- 1 root disk 3, 1 2010-07-31 21:08 hda1
brw-rw---- 1 root disk 3, 2 2010-07-31 21:08 hda2
brw-rw---- 1 root disk 3, 5 2010-07-31 21:08 hda5
brw-rw---- 1 root cdrom 22, 0 2010-07-31 21:08 hdc
:
lrwxrwxrwx 1 root root 13 2010-07-31 21:08 MAKEDEV -> /sbin/MAKEDEV
:
crw-rw-rw- 1 root root 1, 3 2010-07-31 21:08 null
crw-r----- 1 root kmem 1, 4 2010-07-31 21:08 port
:
lrwxrwxrwx 1 root root 15 2010-07-31 21:08 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 2010-07-31 21:08 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 2010-07-31 21:08 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 5, 0 2010-07-31 21:08 tty
crw-rw---- 1 root root 4, 0 2010-07-31 21:08 tty0
crw------- 1 drago tty 4, 1 2010-07-31 22:51 tty1
:
prw-r----- 1 root adm 0 2010-07-31 23:11 xconsole
crw-rw-rw- 1 root root 1, 5 2010-07-31 21:08 zero voda/dev#

Prema prikazanom primjeru prvo slovo u pravima datoteke (_rwxrwxrwx) može imati slijedeće oznake i značenje:

Imenici u sebi sadrže uređaje koji pripadaju jednoj od navedenih grupa. Navedeni uređaji u sebi sadrže glavni i sporedni identifikacijski broj temeljem kojeg se dohvaća upravljački programa uređaja u jezgri. Dakle, sve u ovom imeniku je putokaz ka jezgri.


 Natrag
 Tražila
 Dalje

 Početak
 KAZALO  Informatička abeceda
 
Citiranje ove stranice:
Radić, Drago. " Informatička abeceda " Split-Hrvatska.
{Datum pristupa}. <http://www.informatika.buzdo.com/>.
Copyright © by Drago Radić. Sva prava pridržana. | Odgovornost