Slackware Logo
Slackware Logo

Lugons

Info

Prevodioci

Greške

 
 LUGONS Slackbook prevod

Chapter 4 Konfiguracija sistema

Table of Contents
4.1 Opšti pregled sistema
4.2 Izbor kernela

Pre nego što budete u mogućnosti da vršite konfiguraciju složenijih delova vašeg sistema, ne bi bila loša ideja da naučite kako je sistem organizovan i koje se komande mogu koristiti za pretragu nad datotekama i programima. Isto je tako dobro znati kako se vrši kompajliranje kernela tako da on odgovara vašim potrebama. Ovo poglavlje će vas upoznati sa organizacijom sistema i njegovim konfiguracionim datotekama. Posle toga ide se dalje ka složenijim aspektima u konfiguraciji sistema.

4.1 Opšti pregled sistema

Bitno je da razumete kako Linux sistem objedinjuje svoje komponente, da biste kasnije prešli na dublje razumevanje raznih aspekata u konfigurisanju. Linux sistem se značajno razlikuje od DOS-a, Windows-a, ili Macintosh sistema (izuzetak je Unix baziran Mac OS X sistem). Pored toga ovi odeljeci će vas upoznati sa suštinom kako da lako konfigurišete sistem prema vašim potrebama.

4.1.1 Pregled sistema fajlova

Prva uočljiva razlika između Slackware Linux-a i DOS odnosno Windows sistema je sistem fajlova. Kao prvo, mi ne koristimo slova za označavanje različitih particija. Pod Linux-om, postoji samo jedan glavni direktorijum. Možete ga poistovetiti sa C: drajvom u DOS-u. Svaka particija vašeg sistema je montirana na taj glavni direktorijum. To je neka vrsta uvek proširivog hard diska.

Glavni direktorijum zvaćemo root (korenski) direktorijum, a on je obeležen kao kosa crta ili slash (/). Ovaj koncept možda izgleda čudno, ali stvarno olakšava život u onim slučajevima kada je potrebno dodati još prostora. Na primer, recimo da smo popunili drajv na kome se nalazi /home direktorijum. Većina ljudi u toku instalacije Slackware-a ostavlja veliki root drajv. Pošto se particija može montirati na bilo koji direktorijum, jednostavno možete da odete u prodavnicu, izaberete novi hard disk i montirate ga kao /home. Na ovaj način dobićete više prostora na vašem sistemu, bez potrebe da radite razna kopiranja.

Dole ćete naći opis Slackware direktorijuma najvišeg nivoa.

bin

Esencijalni korisnički programi se nalaze ovde. Oni predstavljaju minimum programa koji su potrebni korisniku da bi koristio sistem. Stvari kao školjka i komande sistema fajlova (ls, cp, itd.) se nalaze tu. Direktorijum /bin obično ostaje nepromenjen posle instalacije. Ako se i promeni to su uglavnom nadogradnje paketa.

boot

Fajlovi koji se koriste od strane Linux Loader-a (LILO). Taj direktorijum se obično malo menja posle instalacije sistema. Kernel se tu nalazi od Slackware 8.1. U ranijim izdanjima Slackware-a, kerenel se jednostavno nalazio u / direktorijumu, ali sadašnja je praksa da se kernel i njemu pripadajući fajlovi tu stavljaju radi pojednostavljivanja dualnog startovanja.

dev

Sve se u Linux-u tretira kao fajl, čak i hardverski uređaji kao što su serijski portovi, hard diskovi, i skeneri. Da bi se moglo pristupiti tim uređajima, specijalni fajl zvani čvor uređaja (device node) mora da postoji. Svi čvorovi uređaja se nalaze u /dev direktorijumu. Uverićete se da to važi za mnoge na Unix-olike operativne sisteme.

etc

Ovaj direktorijim sadrži konfiguracione fajlove. Sve od X Window konfiguracionih fajlova pa do skripti za pokretanje. Sistemski administrator se povremeno druži sa ovim direkotrijumom .

home

Linux je višekorisnički operativni sistem. Svaki korisnik na sistemu ima svoj nalog i jedinstveni direktorijum za lične fajlove. Taj direktorijum se zove korisnički ili početni (home) direktorijum. Direktorijum /home je podrazumevana lokacija za smeštanje direktorijuma korisnika.

lib

Sistemske biblioteke koje su potrebne za bazičene operacije sistema se nelaze ovde. C bublioteke, dinamički loader, ncurses biblioteka, i moduli kernela pored ostalih stvari se isto ovde nalaze.

mnt

Ovaj direktorijum sadrži privremene tačke montiranje za hard diskove ili promenjive uređaje. Tu se mogu naći tačke montiranja za vaš CD-ROM ili floppy drajv.

opt

Opcioni softrerski paketi. Ideja na kojoj se zasniva koncept /opt direktorijuma leži u tome da se svaki paket softvera instalira u /opt/software-package, i na taj način se pojednostavljuje kasnije deinstaliranje. Slackware distribuira neke stvari u /opt direktorijum (kao što je KDE u /opt/kde), ali i vi ste slobodni da sami dodate ono što želite u taj direktorijum.

proc

Ovo je jedinstveni direktorijum. On nije stvarno sastavni deo sistema fajlova, već je virtualni fajl sistem koji omogućava pristup informacijama kernela. Razne inforamacije koje kernel želi da vi znate se saopštavaju preko fajlova u /proc direktorijumu. Isto tako i sami možete da šaljete informacije kernelu preko nekog od tih fajlova. Pokušajte cat /proc/cpuinfo.

root

Administartor sistema još se zove i root sistema. root-ov početni direktorijum se nalazi na lokaciji /root umesto u /home/root. Razlog za to je jednostavan. Šta ako /home i / nisu na istim particijama i ako se /home ne može montirati? root normalno može da se loguje i da popravi problem. Ako je fajl sistem koji sadrži njegov početni direktorijum oštećen, biće otežano logovanje.

sbin

Esecijalni programi koje pokreće root i koji se izvršavaju u toku butovanja se čuvaju ovde. Obični korisnici ne pokreću programe u tom direktorijumu.

tmp

Privremena lokacija za skladištenje. Svi korisnici imaju pristup kako i za čitanje i pisanje u tom direktorijumu.

usr

Ovo je veliki direktorijum u Linux sistemu. Skoro sve ostalo se nalazi ovde, programi, dokumentacija, izvorni kod kernela i X Windows sistem. Ovo je direktorijum u koji će se najverovatnije instalirati programi.

var

Dnevnik (log) fajlovi sistema, keš podaci i fajlovi zaključavanja programa se ovde čuvaju. Ovaj direktorijum je za često menjanje podataka.

Sada treba da imate dobar osećaj da znate šta se nalazi u kom direktorijmu. Za više informacija o pregledu fajl sistema pogledajte hier(7) man starnu. Sledeći odeljak će vam pomoći u potrazi za određenim datotekama, tako da ne morate to da radite ručno.

4.1.2 Traženje datoteka

Sada znate šta svaki glavni direktorijum sadrži, ali to vam doista ne pomaže u pretrazi. Mislim, trebali biste da pretražujete direktorijume na efikasniji način. Postoje četiri glavna načina za pretraživanje fajlova u Slackware-u.

4.1.2.1 which

Prvi način je korišćenje which(1) komande. which se obično koristi za brzo lociranje programa. Ona jednostavno pretražuje vaš PATH i vraća prvu instancu i njoj odgovarajuću putanju direktorijuma. Evo primera:

%  which bash
/bin/bash

Ovde vidite da se komanda bash nalazi u /bin direktorijumu. Ovo je veoma ograničena komanda pošto pretražuje samo vaš PATH.

4.1.2.2 whereis

whereis(1) komanda radi slično kao i which komanda, ali ona pretražuje i man strane i izvorne fajlove. A whereis koja traži bash bi vratila ovo:

%  whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Ova komanda ne samo da govori gde se nalazi dati program, već i pokazuje gde se nalazi odgovarajuća dokumentacija. Još uvek je ova komanda ograničena. Šta ako hoćete da pronađete određeni konfiguracioni fajl? Komande which ili whereis vam neće pomoći.

4.1.2.3 find

find(1) komanda omogućava pretragu nad fajl sistemom korišćenjem bogate kolekcije izraza za pretragu. Korisnici mogu da specifiraju pretragu datoteka u odnosu na džokere, opseg vremena modifikacije ili kreiranja ili u odnosu na neke druge napredne osobine. Na primer, da bi se pretraživala podrazumevana xinitrc datoteka na sistemu, treba zadati sledeću komandu:

%  find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc

Izvršavanje komande find traje prilično, pošto se prolazi od korena stabla direktorijuma. A ako se ta komanda pokrene pod ovašćenjima običnog korisnika, pojaviće se poruke o greškama zabranjenog pristupa ka diretorijumima koje samo root korisnik može da gleda. Ipak će find komanda pronaći našu datoteku, što je sasvim u redu. Ali bi valjalo to biti malo brže...

4.1.2.4 slocate

Komanda slocate(1) pretražuje čitav datotečni sistem, baš kao što to radi find komanda, ali se ne pretražuje neposredno aktuelni datotečni sistem već odgovarajuća baza podataka. Baza podataka je podešna tako da se automatski ažurira svako jutro, tako da imate donekle svež listing datoteka na vašem sistemu. Možete ručno da pokrenete updatedb(1) da ažurirate slocate bazu podataka (pre pokretanja komande updatedb morate biti root korisnik. Evo primera slocate komande u akciji:

%  slocate xinitrc   # ne moramo biti root
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm

Dobićete više nego što ste tražili, i isto tako dosta brzo. Sa tim komandama, bićete u stanju da pronađete ono što ste nameravali na vašem Linux sistemu.

4.1.3 Direktorijum /etc/rc.d

Fajlovi za inicijalizaciju sistema se nalaze u /etc/rc.d direkotrijumu. Slackware koristi BSD stil za svoje inicijalne datoteke. Ova BSD šema, za razliku od System V init skripti, teža je za konfigurisanje ukoliko se ne koriste programi dizajnirani za tu namenu. Kod BSD init skripti, svakom runlevel-u odgovara jedan rc fajl. U System V šemi, svaki runlevel ima vlasititi direktorijum koji sadrži brojne init skripte. Na taj način imamo organizovanu strukturu koja se lako održava.

Postoji nekoliko kategorija fajlova za inicijalizaciju. To su fajlovi za podizanje sistema, runlevel-i, fajlovi za pokretanje mreže, i fajlovi koji obezbeđuju System V kompatibilnost. Po tradiciji, nabacaćemo sve ostalo u neku drugu kategoriju.

4.1.3.1 Podizanje sistema

Prvi program na Slackware-u koji se pokreće, ako se izuzme Linux kernel, je init(8). Ovaj program čita /etc/inittab(5) fajl da vidi kako da pokrene sistem. Pokreće skript /etc/rc.d/rc.S da pripremi sistem pre nego što ode u izabran runlevel. Datoteka rc.S omogućava virualnu memoriju, montira fajl sistem, čisti određene log direktorijume, inicira Plug and Play uređaje, učitava module kernela, konfiguriše PCMCIA uređaje, podešava serijske portove i pokreće System V init skriptove (ako ih pronađe). Očigledno, rc.S skript ima puno toga da odradi, ali ima nešto skripti u /etc/rc.d direktorijumu koje rc.S poziva da mu pomognu da obavi posao:

rc.S

Ovo je aktuelni skript za iniciranje sistema.

rc.modules

Učitava module kernela. Stvari kao što su mrežna kartica, PPP podrška i druge stvari se ovde učitavaju. Ako ovaj skript pronađe rc.netdevice, takođe će ga pokrenuti.

rc.pcmcia

Isprobava konfiguracije za sve PCMCIA uređaje koji su možda na vašem sistemu. Ovo je najkorisnije za korisnike laptop računara koji verovatno imaju PCMCIA modeme, odnosno mrežne karte.

rc.serial

Konfiguriše vaš serijski port pokretanjem odgovarajuće setserial komande.

rc.sysvinit

Traži System V init skripte namenjene odgovarajućem runlevel-u i pokreće ih. O tome je detaljnije diskutovano u narednom odeljku.

4.1.3.2 Skripte za iniciranje runlevel-a

Kada je inicijalizacija sistema završena, init prelazi na runlevel inicijalizaciju. Runlevel opisuje stanje u kojem će se vaša mašina naći. Zvuči izlišno? Dakle, runlevel govori init-u da li sistem da prihvati višekorisničko prijavljivanje ili samo jednog korisnika, da li ili ne želite mrežne servise ili ćete koristiti X Window sistem ili agetty(8) da rukuje prijavljivanjima. Dole navedene datoteke definišu različite runlevel-e na Slackware Linux-u.

rc.0

Zaustavljanje sistema (runlevel 0). Podrazumevano, to je link ka rc.6 datoteci.

rc.4

Višekorisničko pokretanje (runlevel 4), ali u X11 sa KDM, GDM, odnosno XDM kao login menadžerom.

rc.6

Restartovanje sistema (runlevel 6).

rc.K

Pokretanje u modu jednog korisnika (runlevel 1).

rc.M

Višekorisnički mod (runlevel-i 2 i 3), ali sa standardnom, tekstualno baziranom, logovanju. Ovo je podrazumevani runlevel u Slackware-u.

4.1.3.3 Inicijalizacije mreže

Runleveli 2, 3 i 4 pokreću mrežne servise. Sledeći fajlovi su odgovorni za inicijalizaciju mreže:

rc.inet1

Kreiran netconfig komandom, ovaj fajl je odgovoran za konfigurisanje aktuelnog mrežnog inerfejsa.

rc.inet2

Pokreće se posle rc.inet1 a startuje osnovne mrežne servise.

rc.atalk

Pokreće AppleTalk servis.

rc.httpd

Pokreće Apache web server. Kao i nekoliko drugih rc skriptova, ovaj skript se može koristiti za stopiranje i ponovno startovanje datog servisa. rc.httpd uzima argumenat za stopiranje, startovanje, odnosno restart.

rc.news

Pokreće news server.

4.1.3.4 System V kompatibilnost

System V init kompatibilnost je uvedena u 7.0 verziji Slackware-a. Mnoge druge Linux distribucije koriste ovaj stil umesto BSD stila. Ukratko, svakom runlevel-u je dodeljen poddirektorijum za odgovarajuće init skripte, za razliku od BSD stila gde ima po jedan skript za svaki runlevel.

rc.sysvinit skipt će da pretražuje /etc/rc.d direktorijum da bi se uverio da li postoje System V init skriptovi i ukoliko su prisutni da ih pokrene u odgovarajućem runlevelu. Ovo može biti od koristi za neke komercijalne softverske pakete koji ga koriste.

4.1.3.5 Ostali fajlovi

Skripte koje su izlistane dole su ostali skripte za inicijalizaciju. Njih uglavnom pokreću neke od onih glavnih skripti koje su malopre opisane. Sve što je potrebno da uradite je da uredite njihov sadržaj.

rc.gpm

Pokreće servis za miša, generalne namene. Dozvoljava da kopirate i prenosite mišem u Linux konzoli. Ponekad, gpm može da pravi probleme kada je pokrenut X windows. Ukoliko iskusite takve probleme sa mišom pod X okruženjem, pokušajte da stopirate gpm server.

rc.font

Učitava vaš izabrani font namenjen za konzolu.

rc.local

Sadrži sve specifične skripte vašeg sistema. Ova datoteka je prazna posle sveže instalacije i namenjena je za lokalno administriranje. Ovaj skript se pokreće na kraju, posle svih ostalih skirpti koji treba da se izvše.

Da biste omogućili skriptu, sve što je potrebno je da dodate dozvolu za izvršavanje sa chmod komandom. Da biste onemogućili skriptu, uklonite dozvolu za izvršavanje sa date datoteke. Za više informacija o chmod komandi, pogledajte Section 9.2.