Operativni Sistemi UNIX i Linux

Embed Size (px)

DESCRIPTION

OS

Citation preview

  • Borislav orevi Dragan Pleskonji Nemanja Maek

    Operativni sistemi: UNIX i Linux

    Via elektrotehnika kola Beograd, 2004.

  • Autori: dr Borislav orevi mr Dragan Pleskonji Nemanja Maek

    Recenzenti: prof. dr Borivoj Lazi mr Slobodan Obradovi

    Izdava: Via elektrotehnika kola u Beogradu

    Za izdavaa: mr Dragoljub Martinovi

    Lektor: Anelka Kovaevi

    Tehnika obrada: Nemanja Maek, Borislav orevi, Dragan Pleskonji

    Dizajn: Nemanja Maek

    tampa: ime tamparije tampano u 400 primeraka

  • Predgovor

    UNIX je stabilan operativni sistem visokih performansi, pogodan za izvravanje velikog broja razliitih aplikacija. Kao takav, dostupan je ve trideset godina za brojne raunarske arhitekture. Veina velikih svetskih proizvoaa raunara razvija sopstvenu komercijalnu varijantu UNIX operativnog sistema, poput SCO, HP-UX, IBM AIX i Sun Solaris. Alternativa kvalitetnim, ali relativno skupim UNIX operativnim sistemima je Linux, koji zadrava veinu dobrih osobina UNIX sistema, a dodatno se odlikuje raspoloivim izvornim kodom i praktino besplatnim korienjem. Zahvaljujui intuitivnom, user-friendly grafikom okruenju, Linux se moe koristiti kao operativni sistem na radnim stanicama. Takoe, moe se koristiti i kao operativni sistem na serverima u LAN i WAN mreama, gde mu moe biti dodeljena uloga servera za datoteke, web i mail servera, mrene skretnice (rutera) ili mrene barijere (firewall ureaja) Knjiga se prvenstveno bavi korienjem i administracijom Linux operativnog sistema i namenjena je osnovnom kursu iz predmeta Operativni sistemi na Vioj elektrotehnikoj koli u Beogradu. Globalno, knjiga se moe podeliti na etiri tematske celine koje se obrauju u okviru predmeta: rad sa sistemima datoteka, kontrola pristupa na nivou sistema datoteka, rad sa datotekama i administracija UNIX sistema. Takoe, knjiga moe posluiti kao koristan izvor informacija svakom itaocu koji se ozbiljnije bavi administracijom UNIX ili Linux operativnog sistema. Knjiga je podeljena u etrnaest glava, koje su ukratko opisane u nastavku teksta.

    U prvoj glavi UVOD U UNIX OPERATIVNI SISTEM opisan je krai istorijat UNIX i Linux operativnih sistema, razjanjeni su pojmovi GNU GPL licence i Open Source softvera, dat je opti pregled Linux sistema, znaajnih delova jezgra i osnovnih servisa Linux sistema.

    U drugoj glavi BLOK UREAJI I ADMINISTRACIJA SISTEMA DATOTEKA prikazani su osnovni postupci administracije blok ureaja (diskova, disketa, CD i DVD ureaja i magnetnih traka) i razliitih sistema datoteka. Objanjeni su postupci podele diskova na particije, kreiranja i aktiviranja sistema datoteka i formiranja aktivnog UNIX stabla, administracije swap prostora i oporavka oteenih sistema datoteka. Glava takoe obuhvata kratak pregled savremenih journaling sistema datoteka kao to su ext3, ReiserFS, JFS i XFS i objanjenja znaajnih sistemskih direktorijuma u aktivnom UNIX stablu. U treoj glavi KORISNICI I GRUPE prikazani su osnovni postupci administracije korisnikih naloga i grupa i objanjeni formati fundamentalnih datoteka /etc/passwd, /etc/shadow i /etc/group. Nakon toga su objanjeni pojmovi stvarnog i efektivnog identifikatora korisnika i procedura privremenog prijavljivanja na sistem pod drugim imenom.

    U etvrtoj glavi KONTROLA PRISTUPA NA NIVOU SISTEMA DATOTEKA najpre se uvode pojmovi vlasnikih odnosa i pristupnih prava za datoteke i direktorijume. U ovoj glavi su prikazani postupci promene pristupnih prava i vlasnikih odnosa, postavljanja specijalnih atributa SUID, SGID i sticky bit, kao i specijalnih atributa datoteka na ext2/ext3 sistemima datoteka. Takoe, ilustrovan je i jednostavan postupak postavljanja kvota na sistemima datoteka.

  • U petoj glavi RAD SA DATOTEKAMA IZ KOMANDNE LINIJE prikazane su razne komande za rad sa datotekama i direktorijumima. Glava obuhvata vie celina. Na poetku glave opisane su osnovne funkncije komandnog interpretera i opte komande za rad sa datotekama. Nakon toga, detaljno su opisane komande za kopiranje, pomeranje i brisanje datoteka, odnosi izmeu originala i kopije, kao i uslovi neophodni za izvrenje odgovarajue komande. U okviru ove celine detaljno su objanjeni pojmovi hard i simbolikih linkova. Sledeu celinu obuhvataju komande za rad sa direktorijimima, sa posebnim osvrtom na komandu za pretraivanje direktorijuma, find. Na kraju glave dat je opis znaajnih komandi za rad sa tekstualnim datotekama, ukljuujui i najpoznatije tekst editore. U estoj glavi SHELL PROGRAMIRANJE najpre su dati primeri jednostavnih shell programa i objanjenje postupka pokretanja shell programa. Nakon toga su date definicije sistemskih i korisnikih promenljivih, opis komandi specifinih za shell programiranje i raznih shell proirenja. Zatim su obraene konstrukcije u shell programiranju, kao to su uslovne konstrukcije, petlje i funkcije. Na kraju glave su dati primeri sloenijih shell programa.

    U sedmoj glavi MRENO OKRUENJE dat je najpre krai uvod u TCP/IP skup protokola i lokalne raunarske mree. Nakon toga objanjeno je konfigurisanje Linux mrenog okruenja, koje obuhvata konfiguracione datoteke i programe za administraciju TCP/IP skupa protokola i mrenih servisa. Na kraju glave opisani su mreni sistem datoteka (NFS), mehanizam centralizovane autentifikacije (NIS) i Apache web server ime je Linux prikazan kao mreni server u lokalnoj raunarskoj mrei i na Internetu. U osmoj glavi TAMPAI prikazan je najpre proces tampanja pod UNIX sistemom, dat je opis tampaa, redova ekanja za tampu i print servera. U okviru ove glave detaljno je obraen CUPS (Common UNIX Printing System), objanjene su komande koje se koriste za tampanje, administraciju reda za tampu i podeavanje karakteristika tampaa i dokumenata iz komandne linije. Na kraju glave opisani su osnovni postupci administracije CUPS sistema, koji obuhvataju instalaciju paketa, upravljanje tampaima, klasama tampaa i redovima za tampu. U devetoj glavi ARHIVIRANJE I BACKUP uvode se pojmovi arhive i rezervne kopije podataka, nakon ega se navode razlike izmeu arhiva i sistema datoteka. Nakon toga su opisani Linux programi za backup i arhiviranje, tar i cpio, sa prateim primerima. Na kraju glave ukratko su opisani programi dump i restore za integralno arhiviranje itavih sistema datoteka. U desetoj glavi ADMINISTRACIJA PROCESA objanjen je pojam i date su osnovne vrste procesa, nakon ega su opisane komande za prikazivanje procesa i slanje signala procesima. Zatim su objanjeni prioriteti procesa, izvravanje procesa u pozadini, grupe procesa i kontrola posla. Na kraju glave opisani su postupci zakazivanja i periodinog izvravanja komandi programima at i cron. U jedanestoj glavi PODIZANJE I ZAUSTAVLJANJE SISTEMA prikazane su procedure podizanja (boot) i zaustavljanja sistema (shutdown). U ovoj glavi su opisani proces init, razliiti nivoi izvrenja UNIX sistema, inicijalizacione rc datoteke, procesi getty, login i shell i komanda za zaustavljanje sistema shutdown.

  • U dvanestoj glavi INSTALACIJA SOFTVERSKIH PAKETA najpre je opisan postupak instalacije softvera, a zatim osnovne vrste softverskih paketa, kao to su tarball, RPM i deb paketi. Nakon toga je dato krae uputstvo za korienje poznatih paket menadera: Red Hat Package Manager i Debian package management system. U trinaestoj glavi KONFIGURISANJE LINUX KERNELA najpre je dat opis programskih modula jezgra, a zatim su objanjeni postupci dodavanja i uklanjanja modula iz aktivnog jezgra. Nakon toga se diskutuje o problemima koji se ne mogu reiti modulima. Na kraju glave detaljno je opisana procedura prevoenja kernela. U etrnaestoj glavi SIGURNOST I ZATITA UNIX I LINUX SISTEMA dat je krai pregled zatite UNIX i Linux sistema. U okviru ove glave obraeni su neki standardni mehanizmi zatite UNIX sistema i opte sigurnosti Linux sistema, paket za ifrovanje i potpisivanje GNU Privacy Guard i iptables mrena barijera. U dodatku A dat je spisak znaajnijih komandi Linux sistema. U dodatku B naveden je prevod GNU opte javne licence na srpski jezik. U dodatku C naveden je plan i program laboratorijskih vebi iz predmeta Operativni sistemi, koji se slua na Vioj elektrotehnikoj koli. U okviru ovog dodatka data su pitanja koja itaoci mogu iskoristiti za proveru steenog znanja.

    Zahvalnost

    Zahvaljujemo se svima koji su uestvovali ili na bilo koji nain pomogli u pripremi i realizaciji ove knjige. Posebno se zahvaljujemo: Maek Draganu, koji je detaljno pregledao rukopis i ukazao na greke, Nikoli Ivanu (Joe), na savetima na osnovu kojih su neka poglavlja dobila svoj

    konaan oblik,

    saradnicima Gavrilovi Predragu, Krneta Borislavu i Krstanovi Mladenu, na svim korisnim savetima i sugestijama,

    Kurti Nikoli, Dostani Miroslavu, Kukobat Gojku, Pavlovi Draganu, Samardi Sai i Bogojevi edomiru, studentima Vie elektrotehnike kole, koji su aktivnim uestvovanjem pomogli u pripremi materijala za ovu knjigu.

    Autori

  • Sadraj

    UVOD U UNIX I LINUX OPERATIVNE SISTEME 1

    Istorijat UNIX operativnog sistema 1 Vrste UNIX sistema 2 Linux operativni sistem 3

    GNU/Linux i Open Source Software 3 Linux distribucije 4

    Opti pregled Linux sistema 4 Linux kernel 5

    Struktura Linux sistema 5 Modularni kernel 7 Znaajni delovi kernela 8 Upravljanje procesima 9 Procesi i niti 10 Dodeljivanje procesora procesima 10 Komunikacija izmeu procesa 10 Upravljanje memorijom 11 Izvravanje korisnikih programa 11 Ulazno - izlazni sistem 11 Sistemi datoteka i aktivno UNIX stablo 12 Mrene strukture 12

    Osnovni servisi Linux sistema 12 init 12 Prijavljivanje sa terminala 13 syslog 13 Periodino izvravanje komandi 14 Grafiki korisniki interfejs 14 Mreni rad 14 Prijavljivanje sa mree 14 Deljenje datoteka i mreni sistemi datoteka 15 Elektronska pota 15 tampanje 15

    BLOK UREAJI I ADMINISTRACIJA SISTEMA DATOTEKA 17

    Blok ureaji 18 Hard diskovi 18

    Fizike osobine i geometrija diskova 18 IDE i SCSI diskovi. Specijalne datoteke koje predstavljaju ureaje. 20 RAID (redundantni niz jeftinih diskova) 21

    Flopi diskovi 22 Formatiranje magnetnih medijuma 24

    Formatiranje disketa 25 CD-ROM ureaji 25 Magnetne trake 26

  • Podela diskova na particije 27 Boot sektori, particione tabele i tipovi particija 27

    Master Boot Record, boot sektori i particione tabele 27 Extended i logike particije 28 Tipovi particija 29

    Podela diska na particije 29 fdisk 29 cfdisk 31

    Specijalne datoteke i particije diska 32

    Sistemi datoteka 33 UNIX sistemi datoteka 34

    Dodeljivanje prostora datotekama 36 Rupe u datotekama 36 Konvencija o imenima objekata sistema datoteka 36

    Tipovi sistema datoteka 37 Sistemi datoteka sa dnevnikom transakcija (Journaling) 39 Ext3 sistem datoteka i reimi voenja dnevnika transakcija 39 Reiser FS 40 XFS 40 JFS 41 Koji sistem datoteka treba koristiti ? 41

    Kreiranje sistema datoteka 41 Parametri UNIX sistema datoteka 43

    Aktiviranje i deaktiviranje sistema datoteka 44 Montiranje sistema datoteka na aktivno UNIX stablo 44 root i user sistemi datoteka 45 /etc/fstab i auto-mount 46 Pregled aktiviranih sistema datoteka 47 Deaktiviranje sistema datoteka 48 Dozvole za aktiviranje sistema datoteka 49

    Provera i oporavak sistema datoteka 49 Logiki defekti i provera integriteta sistema datoteka 50 lost+found direktorijum 51 Fiziki defekti i provera ispravnosti povrine diska 51 Defragmentacija 51 Ostali programi za rad sa sistemima datoteka 52

    Rad sa diskovima bez sistema datoteka 53 Komanda dd (disk-to-disk copy) 54

    Virtuelna memorija (swap) 55

    Aktivno UNIX stablo 56 root sistem datoteka 57

    /etc direktorijum 58 /usr sistem datoteka 59 /var sistem datoteka 60 /proc sistem datoteka 60

    KORISNICI I GRUPE 62

    Korisniki nalozi 62

  • Kreiranje korisnikih naloga 63 /etc/passwd 63 /etc/shadow 64 lanstvo u grupama 65 Dodela identifikatora korisnicima i grupama (UID i GID) 65 Inicijalno okruenje - etc/skel direktorijum 66 Kreiranje korisnikih naloga bez upotrebe pomonih programa 66

    Promena parametara korisnikih naloga 67 Privremena zabrana prijavljivanja na sistem 68

    Uklanjanje korisnika 68

    Identifikacija korisnika 69 Privremeno prijavljivanje na sistem pod drugim imenom 69

    Stvarni i efektivni identifikatori korisnika (RUID i EUID) 71

    KONTROLA PRISTUPA NA NIVOU SISTEMA DATOTEKA 72

    Vlasniki odnosi i prava pristupa 72 Prava pristupa u sistemu datoteka 72

    Kategorije pristupnih prava 74 Problem unije vlasnikih kategorija 75 Znaenje prava pristupa za datoteke i direktorijume 76 Odreivanje pristupa za datoteke i direktorijume 76

    Podrazumevana prava pristupa (umask) 78

    Promena vlasnitva i pristupnih prava 79 Promena pristupnih prava 80

    Simboliki reim 80 Oktalni reim 82

    Promena vlasnikih odnosa 83 Promena vlasnika 83 Primarne i sekundarne grupe 84 Promena grupe kojoj objekat pripada 84

    Specijalni atributi datoteka i direktorijuma 85 setuid (SUID) i setgid (SGID) 85 Sticky bit (t) 85 Specijalni atributi datoteka na ext2/ext3 sistemu datoteka 86

    Disk kvote 87 Administracija kvota na Linux sistemu 88

    Preduslovi za postavljanje kvota 88 Postavljanje kvota 88 Datoteke quota.user i quota.group 89 Dodeljivanje kvote korisniku 89 Dodeljivanje kvote grupama 90 Dodeljivanje jednakih kvota veem broju korisnika 90 Ostali alati za rad sa kvotama 91

    RAD SA DATOTEKAMA IZ KOMANDNE LINIJE 92

  • Komandni interpreter (shell) 92 Funkcije komandnog interpretera 92

    Interpretacija komandne linije 93 Inicijalizacija programa 94 Redirekcija ulaza i izlaza 94 Povezivanje komandi u pipeline 96 Zamena imena datoteka 97 Rukovanje promenljivim i kontrola okruenja 97 Shell programiranje 98

    Dodatne mogunosti Bourne-again shella 98 Korienje kontrolinih karaktera 98 Alternativno ime komande (alias) 98 Ponavljanje komandne linije (history) 99 Modifikacija komandne linije 100 Kompletiranje imena datoteka 101

    Shell promenljive i prilagoeni prompt 101 Lokalne promenljive 101 Promenljive okruenja 102 Prilagoavanje odziva (prompt) komandnog interpretera 103 Inicijalizacione datoteke komandnog interpretera 103 Korisnike inicijalizacione datoteke 104

    Poreenje poznatih komandnih interpretera 105 Bourne shell (sh) 105 C shell (csh) 105 Bourne-again shell (bash) 105 Korn shell (ksh) 106

    Osnovne komande za rad sa datotekama 106 Dobijanje pomoi 106

    Lokatori komandi 108 Prikazivanje informacija o sistemu 109

    Odreivanje tipa datoteke 109 Tipovi datoteka 110 Upotreba komande file 111 Komanda strings 111

    Kopiranje, pomeranje i brisanje datoteka 112 Kopiranje datoteka i direktorijuma 112

    Kopiranje jedne datoteke 113 Kopiranje grupe datoteka iz istog direktorijuma 113 Rekurzivno kopiranje direktorijumskog stabla 114 Relacioni odnosi originala i kopije 114 Potrebni i dovoljni uslovi za kopiranje datoteke 115 Opcije komande cp 115 Primeri korienja komande cp 116

    Pomeranje datoteka i direktorijuma 121 Promena imena i/ili pomeranje jedne datoteke 121 Pomeranje grupe datoteka iz istog direktorijuma 121 Potrebni i dovoljni uslovi za promenu imena datoteke 122 Potrebni i dovoljni uslovi za pomeranje datoteke 122 Opcije komande mv 122

    Brisanje datoteka 123

  • Brisanje jedne datoteke 123 Brisanje grupe datoteka iz istog direktorijuma 123 Rekurzivno brisanje direktorijumskog stabla 124 Potrebni i dovoljni uslovi za brisanje datoteke 124 Opcije komande rm 124

    Linkovi 124 Hard linkovi 125

    Kreiranje hard linkova 126 Osobine hard linkova 126 Primer kreiranja i upotrebe hard linkova 126

    Simboliki linkovi 127 Kreiranje simbolikih linkova 128 Osobine simbolikih linkova 128 Primer kreiranja i upotrebe simbolikih linkova 129 Upotreba opcije -d komande cp (no-dereference) 129

    Rad sa direktorijumima 130 Kretanje po direktorijumskom stablu 130

    Prikazivanje sadraja direktorijuma 131 Kreiranje direktorijuma 133 Brisanje direktorijuma 133 Kopiranje direktorijuma 134

    Pretraivanje direktorijuma 134 Kriterijumi pretrage 135 Akcioni izrazi 136 Kvalifikatori pretrage 137 Sloeni kriterijumi pretrage 137

    Rad sa tekstualnim datotekama 138 Pregledanje sadraja tekstualne datoteke 138

    cat 138 more 139 less 139 Prikazivanje poetka i kraja datoteke (komande head i tail) 140

    Brojanje karaktera, rei i linija 141 Uporeivanje sadraja datoteka 142

    Komanda cmp 142 Komanda diff 143

    Ureivanje sadraja datoteka 144 Ureivanje sadraja datoteka po odreenom kriterijumu (sort) 144 Priprema tekstualnih datoteka za tampu (pr) 145 Podela tekstualnih datoteka (split) 145 Uklanjanje duplikata linija iz datoteke (uniq) 146

    Traenje teksta u datoteci 147 Regularni izrazi (regular expressions) 147 Jednostavan oblik komande grep 148 Specijalni karakteri 148 Zamena jednog karaktera 149 Ponavljanje karaktera 150 Ponavljanje regularnih izraza 150 Uporeivanje poetka i kraja linije teksta 150

  • Primer sloenog regularnog izraza 151 Komanda grep 151 Komanda egrep 151 Komanda fgrep 152

    Editori teksta vi, joe i jed 152 vi editor 152 Reimi rada vi editora 152 Otvaranje datoteka vi editorom 153 Interaktivne komande u vi editoru 154 Alternativni editori teksta 155 Kreiranje malih tekstualnih datoteka komandom cat 155 joe (Joe's Own Editor) 155 jed 157

    Midnight Commander 158 Twin-panel interfejs 158 Rad u programu Midnight Commander 160

    SHELL PROGRAMIRANJE 163

    Osnovi shell programiranja 164 Komentari 164

    Pokretanje shell programa 164 Pronalaenje komandnog interpretera 165

    Promenljive u Linux operativnom sistemu 166 Vanije sistemske promenljive 166 Definisanje korisnikih promenljivih 167 Prikazivanje i korienje vrednosti UDV promenljivih 168

    Komande specifine za shell programiranje 169 echo 169 Navodnici 169 Komanda expr i shell aritmetika 170 read 170 sed (stream editor) 171 awk 171 grep 172 wc (word count) 172 sort 172 bc (basic calculator) 173 tput 173

    Komande, argumenti i izlazni status 173 Zato se zahtevaju komandni argumenti ? 174 Shell program i komandni argumenti 174 Izlazni status komande 175

    Grupisanje komandi 175 ( list ) 176 { list; } 176

    Parametri komandnog interpretera (Shell Parameters) 176 Pozicioni parametri (positional parameters) 176 Specijalni parametri (special parameters) 177

    Redirekcija i pipe mehanizam 177

  • Redirekcija ulaza i izlaza 177 Pipe mehanizam 178

    Shell proirenja (Shell Expansions) 179 Proirenje preko zagrada (Brace Expansion) 179 Tilda proirenje (Tilde Expansion) 180 Parametarsko proirenje (Shell Parameter Expansion) 181 Komandna zamena (Command Substitution) 182 Aritmetiko proirenje (Arithmetic Expansion) 183 Proirenje imena datoteka (Filename Expansion) 185

    Pronalaenje uzorka (Pattern Matching) 185

    Konstrukcije u shell programiranju 185 Uslovne konstrukcije 186

    Uslovna konstrukcija if 186 if-then-fi 186 Provera uslova i test naredba 187 Provera tanosti izraza komandom test 187 if-then-else-fi 189 if-then-elif-else-fi 190 Uslovna konstrukcija case 191

    Petlje 192 while petlja 192 until petlja 194 for petlja 194 Naredba select 195

    Funkcije 196 Lokalne promenljive 197

    Primeri sloenijih shell programa 197 Backup home direktorijuma 198 Promena imena grupe datoteka 199

    MRENO OKRUENJE 201 Uvod u mree i TCP/IP 201

    Mreni ureaji 202 TCP/IP skup protokola 203

    IP adresiranje 205 Rutiranje 207 Broj porta 207 Razreavanje imena raunara 207 Mreni servisi 208

    Konfigurisanje Linux mrenog okruenja 208 Konfiguracione datoteke 208

    /etc/hostname 209 /etc/hosts 209 /etc/hosts.allow i /etc/hosts.deny 210 /etc/networks 210 /etc/network/interfaces 210

  • /etc/protocols 211 /etc/services 211 /etc/resolve.conf 212 /etc/nssswitch.conf - konfigurisanje metoda 212

    Programi za TCP/IP administraciju 213 /sbin/ifdown i /sbin/ifup 214 ifconfig 214 netstat 215 arp 217 ping 217 route 218 traceroute 218 nslookup 218

    Mreni servisi i wrapper programi 219 inetd 220 xinetd 221 xinetd i kontrola pristupa 223 xinetd - vezivanje servisa za IP adresu i redirekcija 224 xinetd i upravljanje resursima 225

    Linux kao mreni server 225 Mreni sistem datoteka (NFS) 226

    NFS server 226 Aktiviranje NFS sistema datoteka na klijentima 227 Statistiki izvetaj o korienju NFS servera 228

    Centralizovana autentifikacija (NIS) 229 Komponente NIS sistema 230 Sistemske datoteke koje ulaze u sastav NIS baze 231

    Apache web server 232 Instalacija 232 Potrebne privilegije 233 Pokretanje i zaustavljanje web servera - apachectl skript 233 Komunikacija sa httpd procesom 234 Konfigurisanje Apache web servera 235 Postavljanje web sajta 238 Mere zatite 239 chroot-jail 240 Praenje rada i odravanje servera 242

    TAMPAI 244 Proces tampanja 244

    Komponente UNIX okruenja za tampu 244 tampa 245 Red za tampa 245 Server za tampu 246

    Common UNIX Printing System (CUPSTM) 247

    Korienje CUPS sistema za tampu 248 tampanje i administracija reda za tampu 248

    Slanje zahteva na tampu 248

  • Provera statusa tampaa 249 Brisanje poslova iz reda 250 Direktno tampanje 250

    Podeavanje karakteristika tampaa i dokumenata 251 Opte karakteristike 251 tampanje naslovne stranice (banner page) 251 Opte karakteristike dokumenata 252 Karakteristike tekstualnih dokumenata 253 Karakteristike grafikih dokumenata 253 Slanje dokumenta na tampu bez filtriranja 254

    Podrazumevana podeavanja tampaa 254 Instance tampaa 255

    Administracija CUPS sistema za tampu 255 Instaliranje CUPS sistema 256 Upravljanje tampaima 256

    Instalacija prvog tampaa 257 Dodavanje novih i modifikacija instaliranih tampaa 258 Brisanje tampaa 258 Postavljanje primarnog tampaa 258 Pokretanje i zaustavljanje tampaa 259 Prihvatanje i odbijanje poslova tampanja 259 Podeavanje kvota na tampau 259 Kontrola pristupa tampau 260

    Klase tampaa 260 Upravljanje klasama tampaa 260 Implicitne klase 261

    Konfigurisanje klijenata 261 Automatsko konfigurisanje klijenata 262

    CUPS konfiguracione datoteke 262 tampanje sa ostalih sistema 263

    Podrka za LPD klijente 263 tampanje na LPD serverima 264 CUPS i Windows 264

    ARHIVIRANJE I BACKUP 265

    Strategije kreiranja rezervnih kopija podataka 265 Arhive 266

    Poreenje arhiva i sistema datoteka 266 Backup 266

    Prosta ema 267 Vieslojna kopija 267 Koje podatke treba uvrstiti u backup ? 267 Komprimovane kopije podataka 268

    Linux programi za backup i arhiviranje 269 tar (tape archiver) 269

    Sintaksa i argumenti komande tar 270 Kreiranje arhive 271 Listanje sadraja arhive i ekstrakcija datoteka 273

  • Primeri korienja tar komande 273 Arhiviranje i kompresija 277

    compress 277 gzip (GNU ZIP) 278 Primer sprege tar arhivera sa gzip i compress programima 280

    cpio (copy in and out) 280 Reimi rada i sintaksa cpio komande 281 Opcioni argumenti 281 Specificiranje formata arhive 282 Kako se koristi cpio 282 Korienje pipe mehanizma - cpio u sprezi sa komandama ls i find 283 Primeri korienja komande cpio 283

    dump i restore 286 Restauracija itavog sistema datoteka iz arhive 286

    ADMINISTRACIJA PROCESA 288

    Osnovne tehnike upravljanja procesima 288 Kreiranje procesa i izvrenje programa 290 Dobijanje informacija o procesima 290

    Prikazivanje procesa (komanda ps) 290 Odreivanje vremena potrebnog za izvrenje procesa (komanda time) 292

    Slanje signala i unitenje procesa 292 Signali 292 Unitenje procesa 293 Komanda kill 294 Koji signal treba poslati procesu ? 295 Odjavljivanje sa sistema i procesi koji se izvravaju u pozadini 296

    Poslovi i prioriteti 297 Procesi koji se izvravaju u pozadini i prioriteti 297

    Procesi koji se izvravaju u prvom planu (foreground) 297 Procesi koji se izvravaju u pozadini (background) 298 Prioriteti procesa 298 Nice vrednost i prioriteti procesa 299 Pokretanje procesa sa snienim prioritetom 300 Promena prioriteta procesa komandom renice 300

    Grupe procesa i kontrola poslova 301 Komanda jobs 301 Premetanje poslova u prvi plan (komanda fg) 302 Suspendovanje procesne grupe 302 Premetanje poslova u pozadinu (komanda bg) 303 Komanda wait i ekanje izvrenja poslova 303 Primer korienja kontrole poslova 304

    Zakazivanje i periodino izvravanje komandi 304 Komanda at 304 Periodino izvravanje komandi 305 cron daemon 306

    PODIZANJE I ZAUSTAVLJANJE SISTEMA 307

  • Podizanje sistema (boot) 307 init 310

    Nivoi izvrenja (runlevels) 311 Konfiguraciona datoteka /etc/inittab i init-getty relacija 311 Komanda init 312 Inicijalizacione rc datoteke 312

    Prijavljivanje na sistem 314 Prijavljivanje na sistem preko mree 315 Funkcija procesa login 315

    Zaustavljanje sistema 315 Komanda shutdown 316

    Kontrola pristupa rutinama za zaustavljanje sistema 317

    INSTALACIJA SOFTVERSKIH PAKETA 318

    Standardni formati paketa 318 Osobine standardnih formata paketa 320

    tarball (tgz, tar.gz) 320 RPM 320 deb 321

    Rad sa paket menaderima 321 RPM (Red Hat Package Manager) 322

    Instaliranje RPM paketa 322 Uklanjanje paketa iz sistema 323 Nadogradnja (upgrade) paketa 324

    deb (The Debian package management system) 324 apt-get 324 Aptitude 326 dpkg 327 dselect 328 tasksel 329

    KONFIGURISANJE JEZGRA LINUX SISTEMA 331

    Rad sa modulima 331 Programski moduli jezgra 332

    Komande za rad sa modulima 332 Koji se problemi ne mogu reiti modulima? 333

    Prevoenje kernela 334 Terminologija prevoenja 334 Priprema za izradu novog jezgra 335

    Pronalaenje novih verzija kernela 335 Snimanje starog kernela 335

    Izrada novog jezgra 336 Podeavanje novog jezgra 336 Pokretanje okruenja komandne linije 336 Pokretanje okruenja sa menijima 337

  • Prevoenje i testiranje novog jezgra 340

    SIGURNOST I ZATITA UNIX I LINUX SISTEMA 342 Pregled zatite UNIX i Linux sistema 342

    Standardni mehanizmi zatite 342 Metode napada 342 Zatitne polise 343 Standardni mehanizmi zatite pod UNIX/Linux sistemom 344 Programi za analizu sigurnosti sistema 345

    Opta sigurnost Linux sistema 345 Sigurnost na nivou BIOS-a 345 Prevoenje monolitnog kernela 346 Privremeno iskljuivanje servera sa mree 346 LILO i datoteka /etc/lilo.conf 346 Korisnike lozinke 348 root korisniki nalog 348 Promenljiva TMOUT 348 Datoteka /etc/securetty 349 Sistemski korisniki nalozi 349 Jednokorisniki reim rada 350 Zabrana korienja Ctrl-Alt-Del 351 Datoteka /etc/fstab 351 Uklanjanje nepotrebnog softvera 352 Automatsko brisanje .bash_history datoteke 352 Sigurnost skriptova u /etc/init.d direktorijumu 353 SUID bit 353 Datoteka /etc/services 353 Datoteka /etc/exports 353 Datoteke bez vlasnika 354 Datoteke .rhosts 355 PAM (Pluggable Authentication Modules) 355

    GNU Privacy Guard (GnuPG) 355 Uvod u tehnologiju ifrovanja 356

    Simetrini algoritmi i algoritmi sa javnim kljuem 357 Digitalni potpis 357

    Instaliranje GnuPG paketa 358 Administracija GnuPG - rad sa kljuevima 359

    Kreiranje para kljueva 359 Izvoz kljueva 361 Uvoz kljueva 361 Oznaavanje kljueva 361 Provera potpisa 362 ifrovanje i deifrovanje 362

    Linux kao mrena barijera 363 Metode zatite mrenim barijerama 363

    Filtriranje paketa 364 Prevoenje mrenih adresa 364 Dvonivovska zatita 366

  • iptables 366 Filtriranje paketa 366 NAT tabela 367 Mangle tabela 368 Put paketa kroz iptables 369 Administracija iptables mrene barijere 371

    PREGLED ZNAAJNIJIH LINUX KOMANDI 373

    GNU OPTA JAVNA LICENCA 387 GNU OPTA JAVNA LICENCA 387

    Kako da primenite ove odredbe na vae nove programe 392

    LABORATORIJSKE VEBE 394

    LITERATURA 423

  • UVOD U UNIX I LINUX OPERATIVNE SISTEME

    UNIX je stabilan, moan i fleksibilan operativni sistem visokih performansi pogodan za izvravanje kritinih aplikacija od visoke vanosti. UNIX je vrsto povezan sa mrenim servisima TCP/IP protokola, ime je u potpunosti promenjena slika UNIX servera i radnog okruenja iz prolosti. Umesto servera sa klasinim serijskim terminalima UNIX server se nalazi u mrei, pri emu sa radnim stanicama ostvaruje vezu preko LAN/WAN mree i TCP/IP skupa protokola. Veina velikih svetskih proizvoaa raunara razvija specifinu varijantu UNIX operativnog sistema, to ukazuje na njegov kvalitet, popularnost i rasprostranjenost. Veina UNIX sistema, poput IBM AIX i Sun Solaris, je komercijalna - korisnik mora da plati licencu za korienje, a izvorni kod nije rasploiv. To su razlozi narastajue popularnosti Linux sistema koji zadrava veinu dobrih osobina UNIX sistema, a dodatno se odlikuje raspoloivim izvornim kodom i praktino besplatnim korienjem. Zbog toga danas veina proizvoaa raunara osim sopstvene komercijalne verzije UNIX sistema nudi i podrku za Linux. Linux se najee koristi kao operativni sistem na radnim stanicama ili serverima u manjoj ili srednjoj klasi servera, a jedna od oblasti dominantne primene, u kojoj veliki broj korisnika podrava i promovie Linux kao bazini server, su Internet servisi.

    Istorijat UNIX operativnog sistema Istorijat i razvoj UNIX operativnog sistema. Vrste UNIX sistema. Linux distribucije, GNU GPL

    licenca i Open Source softver.

    Razvoj UNIX operativnog sistema poeo je sredinom 1960-tih godina u AT&T Bell laboratorijama u saradnji sa kompanijom General Electric i tehnolokim institutom Massachusetts. Projekat, odnosno operativni sistem MULTICS (Multiplexed Information and Computing Service) predstavljao je interaktivni operativni sistem namenjen da opsluuje veliki broj korisnika iji su terminali direktnim serijskim ili modemskim komunikacionim kanalima povezani na centralizovani server. Takav koncept operativnog

  • Operativni sistemi: UNIX i Linux

    2

    sistema bio je preambiciozan za tadanji stepen razvijenosti hardvera, pri emu se prvenstveno misli na procesorsku snagu i koliinu sistemske memorije. MULTICS nije doiveo svoju praktinu primenu jer se posle nekoliko godina razvoja pokazao kao preskup i preambiciozan projekat od koga su AT&T Bell laboratorije odustale. Bez obzira na to, teorijska i praktina reenja projekta nala su primenu u mnogim operativnim sistemima. Konkretno, MULTICS je pretea UNIX sistema koji se smatra jednim od najkvalitetnijih i najrasprostranjenijih operativnih sistema, na ijem se razvoju radi preko 30 godina, sa tendencijom dalje egzistencije i usavravanja. Dva fundamentalna imena vezana za razvoj UNIX operativnog sistema su svakako Ken Thompson, MULTICS sistemski programer u Bell laboratorijama, i Dennis Ritchie, poznatiji kao tvorac programskog jezika C. Godine 1969, Ken Thompson je zapoeo razvoj novog operativnog sistema za DEC PDP-7 raunar, napravivi redukovani MULTICS, odnosno UNICS (Uniplexed Information and Computing Service). Radi lakeg izgovora i pisanja ime UNICS je kasnije evoluiralo u UNIX. UNIX je prvobitno napisan u asemblerskom jeziku, a samim tim bio je potpuno zavisan od klase procesora za koji se realizuje. Godine 1971, Ritchie je napisao programski jezik C kao vii programski jezik koji omoguava sistemsko programiranje, a zatim sa Thompsonom preveo kd UNIX sistema na C, to se moe smatrati prekretnicom i jednim od najznaajnijih poteza u razvoju operativnih sistema. Zahvaljujui C jeziku UNIX je mogao biti preneen na razne raunarske arhitekture sa vrlo malo programskih modifikacija, to je svakako bio klju uspeha i popularnosti UNIX operativnog sistema.

    Nakon prevoda na C jezik, autori su u cilju daljeg unapreenja prosledili izvorni kd UNIX sistema univerzitetima irom Amerike, pri emu su programeri sa Berkeley univerziteta u Kaliforniji dominantno uticali na dalji razvoj. Nakon brojnih modifikacija koda nastao je BSD UNIX (Berkeley Software Distribution), koji je takoe u izvornoj formi distribuiran amerikim univerzitetima na dalje usavravanje. Najznaajniji doprinos grupe koja je realizovala BSD UNIX odnosi se na softver za umreavanje, koji omoguava funkcionalnost operativnog sistema u LAN i WAN mreama. BSD UNIX mrena reenja prihvatili su brojni proizvoai raunara koji su razvijali sopstvene varijante UNIX operativnog sistema:

    SunOS, kompanije Sun Microsystems, baziran na BSD UNIX v4.2 System V UNIX, kompanije AT&T XENIX, kompanije Microsoft, razvijen za PC raunare sa Intel procesorima. Godine 1988, kombinovanjem dobrih osobina Sun OS/BSD, AT&T System V Release 3 i XENIX operativnih sistema nastala je nova varijanta UNIX sistema - System V Release 4 (SVR4), koja je ubrzo postala de facto standard i osnova za dalji razvoj UNIX sistema. Sledei korak u razvoju predstavlja pokuaj standardizacije i realizacije meusobne kompatibilnosti raznih vrsta UNIX sistema.

    Vrste UNIX sistema

    Danas postoji veliki broj razliitih vrsta UNIX sistema koje su zasnovane ili na industrijskom standardu SVR4 ili na BSD distribuciji. One vrste UNIX sistema koje

  • Uvod u UNIX i Linux operativne sisteme

    3

    potiu od istog standarda meusobno su veoma sline, tako da se na osnovu nekih indikatora (najee na osnovu sistemskih komandi) moe odrediti koji je standard korien kao osnova za izgradnju i razvoj specifinog UNIX sistema. Komanda za tampanje na sistemima ija je osnova System V je lp, dok je komanda za tampanje na BSD baziranim sistemima lpr. Komanda koja opisuje tekue procese na System V sistemima je ps -ef , dok BSD koristi ps -aux. Razlike postoje i u drugim komandama. UNIX je sada zatieno ime u vlasnitvu organizacije The Open Group (www.opengroup.org), koja je definisala POSIX standard (Portable Operating System Interface) u cilju poveanja kompatibilnosti raznih vrsta UNIX sistema. Svaki proizvoa svoju UNIX distribuciju naziva odreenim unikatnim imenom: Solaris (Sun Microsystems), AT&T UNIX, AIX (IBM), HP-UX (Hewlett-Packard), Tru64UNIX (Compaq). Iako je veina UNIX sistema kreirana da radi uglavnom na odreenoj arhitekturi sa odreenom klasom procesora (najee su to procesori matine kompanije) postoje varijante koje rade na vie klasa procesora. Na primer, Solaris koji je prvenstveno namenjen Sun raunarima postoji i u verziji za PC arhitekturu, odnosno za Intel procesore, dok Linux, pored PC arhitekture podrava i druge arhitekture kao to su Sun, Apple Mackintosh i IBM. Kada se savlada rad na jednoj vrsti UNIX sistema prelazak na neku drugu verziju je relativno lak.

    Linux operativni sistem

    Jedna od poslednjih varijanti UNIX operativnih sistema, iji je razvoj zapoeo Linus Torvalds 1991. godine na Univerzitetu u Helsinkiju, je Linux. Torvalds je svoj operativni sistem koji objedinjuje oba standarda, SRV4 i BSD, objavio na Internetu i podsticao druge programere irom sveta da se prikljue njegovom daljem razvoju. Ubrzo, Linux je postao veoma popularan meu raunarskim entuzijastima koji su traili alternativno reenje za postojee operativne sisteme za PC raunare (DOS, Windows). Linux je svojom koncepcijom stabilnog a jeftinog operativnog sistema doiveo veliku ekspanziju i popularnost. Simbol

    Linux sistema je mali pingvin (Tux). Linux je prvobitno namenjen 32-bitnim Intel x86 mikroprocesorima (poevi od 80386), na kojima moe funkcionisati kao radna stanica (workstation) ili kao server. Jezgro Linux sistema je kasnije modifikovano i prilagoeno procesorima koji ne pripadaju Intel x86 klasi, meu kojima treba istai Intel IA-64, DEC Alpha, SUN SPARC/UltraSPARC, Motorola 68000, MIPS, PowerPC i IBM mainframe S/390. Moe se konstatovati da dananji Linux u odnosu na bilo koji operativni sistem podrava najiri spektar procesora i raunarskih arhitektura.

    GNU/Linux i Open Source Software Veliki deo komponenti Linux operativnom sistemu dodali su nezavisni programeri i programeri GNU projekta (www.gnu.org),

  • Operativni sistemi: UNIX i Linux

    4

    koji pripada slobodnoj softverskoj fondaciji (FSF - Free Software Foundation). Svi GNU/Linux operativni sistemi koriste Linux kernel kao fundamentalni deo koji kontrolie interakciju izmeu hardvera i aplikacija, i GNU aplikacije kao dodatne komponente operativnog sistema.

    Linux je raspoloiv kao besplatan operativni sistem pod GNU GPL licencom (GNU General Public Licence), to vai i za neke druge vrste UNIX sistema, kao to su FreeBSD i NetBSD. Linux je softver sa otvorenim izvornim kodom (Open Source), to znai da je izvorni kd javno raspoloiv i moe biti modifikovan tako da odgovara specifinim potrebama. Linux se moe slobodno distribuirati meu korisnicima. Ovakav koncept je potpuno suprotan konceptu komercijalnog softvera, gde izvorni kd nije dostupan i svaki korisnik mora da plati licencu za korienje. Komercijalni softver je baziran na autorskim pravima (copyright laws) koja preciziraju limite koje korisnici softvera imaju u odnosu na izvorni kd, korienje i dalje distribuiranje softvera. Linux se besplatno moe preuzeti sa razliitih web-sajtova.

    Linux distribucije Brojne profitne i neprofitne organizacije ine Linux raspoloivim u formi distribucija, odnosno razliitih kombinacija kernela, sistemskog softvera i korisnikih aplikacija. Veina distribucija sadri kolekciju CD/DVD medijuma na kojima se nalaze operativni sistem, izvorni kd, detaljna dokumentacija, kao i tampana uputstva za instalaciju i upotrebu sistema. Cene ovakvih distribucija su u veini sluajeva simboline, osim ako se u distribuciji nalazi komercijalan softver ili je distribucija specifine namene. Osnovna komponenta svake Linux distribucije je kernel operativnog sistema. Osim kernela i sistemskog softvera u distribuciji se nalaze i instalacioni alati, softver za podizanje operatvnog sistema (boot loader), razne korisnike aplikacije (kancelarijski paketi - office suite, softver za manipulaciju bit-mapiranih slika) i serverski paketi. Veina distribucija je, poput Windows sistema, grafiki orijentisana prema korisniku, dok su neke distribucije namenjene za sistemske administratore i programere familijarne sa tradicionalnim UNIX okruenjem. U poznatije Linux distribucije spadaju: Debian GNU/Linux (http://www.debian.org), Linux Mandrake (http://linux-mandrake.com/en), Red Hat Linux (http://www.redhat.com), Slackware Linux (http://www.slackware.com) i SuSE Linux (http://www.suse.com).

    Opti pregled Linux sistema Delovi operativnog sistema. Znaajni delovi kernela i osnovni servisi Linux sistema.

    Linux je viekorisniki, vieprocesni operativni sistem sa potpunim skupom UNIX kompatibilnih alata, projektovan tako da potuje relevantne POSIX standarde. Linux sistemi podravaju tradicionalnu UNIX semantiku i potpuno implementiraju standardni UNIX mreni model.

  • Uvod u UNIX i Linux operativne sisteme

    5

    Linux operativni sistem sastoji se od kernela, sistemskog softvera, korisnikih aplikacija, programskih prevodilaca i njihovih odgovarajuih biblioteka (GCC - GNU C Compiler i C biblioteka za Linux) i dokumentacije. Sadraj konkretne Linux distribucije definisan je sadrajem instalacionih medijuma, koji u sluaju nekih Linux sistema ukljuuju razne FTP sajtove irom sveta. Kernel je jezgro operativnog sistema - on omoguava konkurentno izvravanje procesa, dodeljuje im memoriju i druge resurse i obezbeuje mehanizam za ostvarivanje usluga operativnog sistema. Kernel titi korisnike procese od direktnog pristupa hardveru - procesi pristupaju hardveru korienjem sistemskih poziva kernela, ime se obezbeuje jedna vrsta zatite izmeu samih korisnika. Sistemski programi koriste kernel u cilju implementacije razliitih servisa operativnog sistema. Svi programi, ukljuujui i sistemske, funkcioniu na nivou iznad kernela, to se naziva korisniki reim rada, dok se sistemske aktivnosti poput pristupa hardveru obavljaju na nivou kernela, odnosno u sistemskom reimu rada (supervisory mode). Razlika izmeu sistemskih i aplikativnih programa je u njihovoj nameni: aplikacije su namenjene za razne korisne aktivnosti (kao to su obrada teksta i slike), dok su sistemski programi namenjeni za rad sa sistemom i administraciju. Na primer, tekst procesor je korisnika aplikacija, dok je komanda mount sistemski program. Razlike izmeu korisnikih i sistemskih programa su ponekad veoma male i znaajne samo za stroge kategorizacije softvera.

    Linux kernel

    Tri osnovne verzije Linux kernela su poetna verzija, verzija 1.x i verzija 2.x. Poetna verzija 0.01, koju je 1991. godine kreirao Linus Torvalds, podravala je samo Intel 80386 kompatibilne procesore, mali broj hardverskih ureaja i Minix sistem datoteka. Mreni servisi nisu imali kernelsku podrku. Verzija 1.0, nastala u martu 1994. godine, ukljuivala je podrku za standardne TCP/IP mrene protokole, BSD-kompatibilni socket interfejs za mreno programiranje i drajversku podrku za mrene kartice. Ova verzija je dodatno podravala ext i ext2 sisteme datoteka, iroku klasu SCSI disk kontrolera, kao i brojne hardverske ureaje. Verzija 1.2 (mart 1995) je poslednja verzija Linux kernela namenjena iskljuivo PC arhitekturi. U verziji 2.0 (jun 1996) uvedena je podrka za vie arhitektura (Motorola i Intel procesori, Sun Sparc i PowerMac sistemi), kao i podrka za vieprocesorsku arhitekturu (SMP). Dodatno, poboljano je upravljanje memorijom i uveane se performanse TCP/IP protokol steka, a ugraena je i podrka za unutranje kernelske niti (internal kernel threads). Kernel je modularizovan, odnosno uvedena je mikro-kernel struktura sa izmenljivim drajverskim modulima (loadable kernel modules), a standardizovan je i konfiguracioni interfejs.

    Struktura Linux sistema Osnovu Linux sistema ine kernel, sistemske biblioteke i sistemski programi. Kernel je odgovoran za najznaajnije funkcije operativnog sistema. Dve osnovne karakteristike kernela su:

    kernel kd se izvrava u kernelskom modu u kome je jedino mogue pristupati svim komponentama hardvera,

  • Operativni sistemi: UNIX i Linux

    6

    kompletan kernel kd i sve kernel strukture podataka uvaju se u istom adresnom prostoru (monolithic).

    Kod veine UNIX sistema aplikacije se preko sistemskog poziva direktno obraaju kernelu, kao to je prikazano na slici 1.1.

    Slika 1.1 UNIX kernel

    Kod Linux sistema sistemski pozivi se upuuju kernelu preko sistemskih biblioteka koje definiu standardni set funkcija preko kojih aplikacije komuniciraju sa kernelom. Ovaj metod komunikacije sa kernelom prikazan je na slici 1.2.

  • Uvod u UNIX i Linux operativne sisteme

    7

    Slika 1.2 Struktura Linux sistema

    Sistemski programi izvravaju specifine upravljake poslove, kao to je konfigurisanje mrenih ureaja i protokola, punjenje kernelskih modula itd.

    Modularni kernel Moduli kernela su delovi kernelskog koda koji moe da se prevede, napuni u memoriju ili izbaci iz memorije nezavisno od ostatka kernela. Kernelski moduli implementiraju drajvere za hardverske ureaje, novi sistem datoteka, mrene protokole, itd. Moduli omoguavaju raznim programerima da napiu i distribuiraju drajvere koji ne moraju da prou GPL licencu. Moduli kernela omoguavaju micro-kernel arhitekturu, odnosno realizaciju minimalne stabilne konfiguracije kernela bez dodatnih drajvera. Potrebni drajveri pune se u memoriju kao moduli kernela. Module Linux kernela ine tri komponente:

    upravljanje modulom, koja omoguava punjenje modula u kernelsku memoriju i komunikaciju modula sa ostatkom kernela, proveru da li je modul u memoriji i da li se koristi i izbacivanje modula iz memorije (pod uslovom da se modul ne koristi),

    registracija drajvera, koja omoguava modulu da objavi ostatku kernela da je novi drajver u memoriji i da je raspoloiv za korienje. Kernel odrava dinamiku tabelu drajvera koji se pomou posebnog seta programa mogu napuniti ili izbaciti iz memorije u svakom trenutku,

    rezolucija konflikata, odnosno mehanizam koji slui da sprei hardverske konflikte tako to omoguava drajveru da rezervie hardverske resurse (IRQ, DMA, ports) i time sprei druge drajvere ili autoprobe funkciju da ih koriste.

    Na slici 1.3 prikazana je struktura modularnog Linux kernela.

  • Operativni sistemi: UNIX i Linux

    8

    Slika 1.3 Modularni Linux kernel

    Znaajni delovi kernela Linux kernel ini nekoliko znaajnih komponenti: upravljanje procesima upravljanje memorijom upravljanje sistemima datoteka (VFS) apstrakcija mrenih servisa podrka za hardverske ureaje podrka za razliite sisteme datoteka

    podrka za TCP/IP. Kritine komponente Linux kernela su upravljanje procesima i upravljanje memorijom. Komponenta za upravljanje memorijom kontrolie dodeljivanje memorije i swap prostora procesima, kernelskim komponentama kao i bafersko keiranje. Komponenta za upravljanje procesima kreira procese i omoguava vieprocesni rad (multitasking) dodeljujui procesor procesima po odgovarajuem algoritmu. Na najniem nivou kernel sadri podrku u vidu drajvera za razne hardverske ureaje. S obzirom da postoji veliki broj razliitih vrsta hardverskih ureaja broj drajvera je takoe veoma veliki. Za hardverske ureaje iste vrste (npr. diskove), koji vre slinu funkciju ali se razlikuju u nainu softverske kontrole, formirane su opte klase drajvera na sledei nain: svaki lan klase prua isti interfejs prema ostatku kernela ime obezbeuje podrku za operacije koje su karakteristine za tu vrstu ureaja, a hardver opsluuje na odgovarajui nain. Na primer, svi disk drajveri pruaju isti interfejs prema ostatku kernela i svi imaju operacije tipa inicijalizacije drajva, itanja podataka iz odreenog sektora i upisa podataka u odreeni sektor. Takoe, neki softverski servisi koje kernel podrava imaju sline osobine ime se omoguava njihova apstrakcija u klase. Na primer, razliiti mreni protokoli se apstrakuju

  • Uvod u UNIX i Linux operativne sisteme

    9

    u jedan programski interfejs koji se naziva BSD socket library. Drugi primer je virtuelni sistem datoteka (VFS - virtual filesystem), koji apstrakuje operacije u sistemu datoteka, pri emu svaki tip sistema datoteka obezbeuje specifine implementacije raznih operacija. Zahtev za korienjem sistema datoteka koji alje korisnik prolazi kroz VFS sloj, koji isti prosleuje na odgovarajui drajver za konkretni sistem datoteka.

    Upravljanje procesima Linux koristi standardni UNIX proces mehanizam (fork) koji razdvaja kreiranje procesa i njegovo izvrenje u dve razliite operacije: sistemski poziv fork, koji kreira novi proces, sistemski poziv exec, koji izvrava program u resursima novostvorenog procesa. Pod UNIX sistemom sve informacije koje operativni sistem mora uvati da bi kontrolisao jedan proces predstavljaju kontekst tog procesa. Pod Linux operativnim sistemom, svaki proces je u potpunosti opisan identitetom, okolinom, i kontekstom. Identitet procesa obuhvata sledee informacije: Identifikator procesa (Process ID - PID), pomou kog Linix kontrolie proces; Akreditivi (Credentials). Svaki proces pripada jednom korisniku koji ima svoj user

    ID i jedan ili vie grupnih IDs koji odreuju prava pristupa procesu u radu sa datotekama;

    Linost (Personality). Ova informacija se ne koristi kod drugih UNIX sistema, a Linux svakom procesu dodeljuje lini identifikator koji moe imati uticaja za neke sistemske pozive.

    Okolina procesa se nasleuje od procesa roditelja (odnosno od procesa koji je izazvao kreiranje datog procesa). U okolinu procesa spadaju vektor argumenata koje proces roditelj prosleuje programu i vektor okoline, odnosno lista promenljivih koje definiu okolinu procesa (environment). Kontekst procesa je stanje procesa u datom trenutku vremena. Kontekst procesa ine sledee komponente:

    kontekst za rasporeivanje (scheduling context), koji slui za efikasnu suspenziju ili ponovni start procesa. Obuhvata sve CPU registre, prioritet procesa i kernelski stek procesa;

    statistiki kontekst, koji sadri informacije o resursima koje proces koristi u jednom trenutku, kao i kompletnu upotrebu resursa za vreme trajanja jednog procesa (accounting information);

    tabela datoteka (file table), tj. polje ukazivaa na kernelske strukture datoteka; kontekst sistema datoteka (file-system context); tabela za upravljanje signalima (signal-handler table), koja definie ukazivae na

    programe koji se pozivaju nakon odreenog signala;

  • Operativni sistemi: UNIX i Linux

    10

    kontekst virtulene memorije (virtual-memory context), koji potpuno opisuje korienje memorije od strane procesa.

    Procesi i niti

    Linux koristi istu internu reprezentaciju za procese i niti - nit (thread) je jednostavno novi proces koji deli adresni prostor roditelja. Za razliku od novog procesa koji pomou sistemskog poziva fork formira novi kontekst sa jedinstvenim adresnim prostorom, nit nastaje pomou sistemskog poziva clone koji kreira novi kontekst, ali dozvoljava novom procesu da deli adresni prostor roditelja.

    Dodeljivanje procesora procesima Linux koristi 2 algoritma za dodelu procesora procesima (process-scheduling algorithms): time-sharing algoritam za korektno rasporeivanje izmeu procesa (fair preemptive

    scheduling). Dodela se vri na osnovu prioriteta procesa koji definie korisnik i kredita (efektivni prioritet) koji raste s porastom vremena ekanja na procesor po sledeoj rekurzivnoj formuli: prioritetkreditkredit +=

    2

    real-time algoritam za procese gde su apsolutni prioriteti mnogo znaajniji od ravnomerne raspodele. Linux je ipak soft real-time operativni sistem.

    Koji e se algoritam primeniti zavisi od klase u kojoj se proces nalazi (FIFO ili round-robin). Trenutna pozicija procesa u svakoj od klasa odreuje se na osnovu prioriteta, to znai da e se izvravati onaj proces koji ima najvii prioritet, a u sluaju da su prioriteti isti, izvrava se proces koji je najdue ekao. U FIFO klasi procesi nastavljaju da rade sve dok ne zavre rad ili ne uu u blokirano stanje, dok u round-robin klasi svaki proces radi dok mu ne istekne vremenski kvantum (time-slice), posle ega prekida rad i odlazi na kraj liste za ekanje. Poevi od kernela 2.0 Linux podrava SMP, to znai da se razliiti procesi ili niti mogu izvravati paralelno na posebnim procesorima. Da bi se obezbedila procesorska sinhronizacija kernela u SMP okruenju samo jedan CPU moe izvravati kd u kernel modu.

    Komunikacija izmeu procesa Komunikacija izmeu procesa obuhvata obavetavanje procesa o dogaaju i prenos podataka s jednog procesa na drugi. Kao i UNIX sistem, Linux informie procese u korisnikom reimu o dogaaju putem signala. Procesi u kernel modu umesto signala koriste specijalnu vrstu deljive memorije (wait.queue struktura) za interprocesnu komunikaciju. Za prosleivanje podataka izmeu procesa koristi se pipe mehanizam, koji omoguava jednosmernu razmenu podataka putem komunikacionog kanala koji proces nasleuje od roditelja, i deljiva memorija, koja je brza i fleksibilna, ali zahteva sinhronizaciju.

  • Uvod u UNIX i Linux operativne sisteme

    11

    Upravljanje memorijom Upravljanje memorijom obuhvata upravljanje operativnom (RAM) memorijom i upravljanje virtuelnom memorijom. Upravljanje operativnom, odnosno fizikom memorijom obuhvata dodeljivanje (alokaciju) i oslobaanje stranica (pages, normal extent), grupe stranica (large extent) i malih memorijskih blokova (small extent). Fizikom memorijom se upravlja po sistemu drugova (Buddy heap). Cela fizika memorija se deli na udruene blokove ije su veliine stepeni broja 2. Blokovi se prema potrebi alokacije dalje razbijaju na manje blokove ili se parovi udruuju u vee celine. Sistem virtuelne memorije poveava ukupan adresni prostor koji je dostupan procesima - sistem kreira stranicu virtuelne memorije na zahtev, upravlja punjenjem te stanice u fiziku memoriju sa diska i povratkom stranice na disk u swap prostor. Kada stranica mora da napusti memoriju i ode na disk izvrava se takozvani page-out alogoritam, koji je na Linux sistemu realizovan LFU konceptom (Least Frequently Used - najree korien). Novi virtuelni adresni prostor formira se nakon kreiranja novog procesa sistemskim pozivom fork, i nakon izvravanja novog programa sistemskim pozivom exec. Regioni virtuelne memorije obuhvataju fizike stanice, odnosno okvire u koje su fizike stranice smetene (frames) i swap prostor na disku.

    Izvravanje korisnikih programa Linux podrava brojne formate za punjenje i izvravanje programa. Meu njima svakako treba istai stari UNIX format a.out i novi elf format koji je maksimalno prilagoen konceptu virtuelne memorije. Zaglavlje ELF formata opisuje sekcije programa. Sekcije programa su po veliini prilagoene veliini stanice virtuelne memorije. Program kod kog su funkcije iz sistemske biblioteke direktno ugraene u kd programa je program sa statikim povezivanjem. Glavni nedostatak ovakvog naina povezivanja je poveanje veliine koda, jer svaki poziv funkcije iz biblioteke kopira celu funkciju u kd. Takoe, sa veliinom koda raste i koliina memorije koja je potrebna za njegovo izvravanje. Na drugoj strani, dinamiko povezivanje je efikasnije u smislu iskorienja memorije - sama funkcija se ne kopira u kd, tako da je za izvrenje potrebna manja koliina memorije, ali se programi po nepisanom pravilu izvavaju sporije.

    Ulazno - izlazni sistem Linux deli ureaje u tri klase: blok ureaje (poput diskova i CD-ROM ureaja), karakter ureaje (poput tampaa) i mrene ureaje. Svaki ureaj je predstavljen specijalnom datotekom (device node, device file) koja se nalazi u direktorijumu /dev root sistema datoteka. Kada korisnik upisuje podatke u datoteku koja predstavlja neki ureaj ili ita iz te datoteke, vri se neka ulazno-izlazna operacija, odnosno sistem alje ili prima podatke sa ureaja koji je predstavljen tom datotekom. Time se ukida potreba za postojanjem posebnih programa (a samim tim i posebnom metodologijom programiranja ulazno-izlaznih operacija) neophodnih za rad sa ureajima. Na primer, korisnik moe da odtampa

  • Operativni sistemi: UNIX i Linux

    12

    tekst na tampau jednostavnom redirekcijom standardnog izlaza na datoteku /dev/lp1 koji predstavlja tampa: # cat izvestaj.txt > /dev/lp1

    Ova komanda e korektno odtampati datoteku izvestaj.txt ukoliko je ona u obliku koji tampa razume (npr. tekstualna datoteka). Meutim, nije preporuljivo da vie korisnika istovremeno alju datoteke na tampa pomou redirekcije izlaza, jer se ovim zaobilazi red za ekanje za tampa (print spooler). Poseban program, lpr (line printer), obezbeuje da datoteke poslate na tampu ekaju u redu, i prosleuje ih tampau tek kad je tampanje prethodne datoteke zavreno. Slini programi postoje za veinu ureaja, tako da korisnici uglavnom ne koriste specijalne datoteke. Direktorijum /dev nastaje prilikom instalacije Linux sistema i u njemu se nalaze sve specijalne datoteke, bez obzira na to da li je ureaj instaliran na sistem ili ne - postojanje datoteke /dev/sda ne znai da je na sistem instaliran SCSI disk. Postojanje svih datoteka olakava proces instalacije novog hardvera, tj. oslobaa administratora sistema potrebe za kreiranjem specijalnih datoteka sa korektnim parametrima.

    Sistemi datoteka i aktivno UNIX stablo Linux sistemi datoteka koriste hijerarhijsku strukturu stabla i semantku UNIX sistema datoteka. Interno, kernel sakriva detalje i upravlja razliitim sistemima datoteka preko jednog nivoa apstrakcije koji se naziva virtuelni sistem datoteka VFS. Aktivno Linux stablo datoteka ini jedan ili vie sistema datoteka koji su montirani na odgovarajue direktorijume preko kojih im se pristupa. Osnovu aktivnog stabla datoteka ini korenski sistem datoteka (root filesystem), iji koreni (root) direktorijum ujedno predstavlja i koreni direktorijum aktivnog stabla datoteka. Zavisno od hardverske konfiguracije i odluke administratora sistema, struktura aktivnog Linux stabla moe biti jednostavna (aktivno stablo realizovano jednim sistemom datoteka), ili sloena (aktivno stablo realizovano veim brojem sistema datoteka - root, /boot, /var, /usr, /home ...).

    Mrene strukture Umreavanje je kljuno podruje funkcionalnosti Linux sistema. Linux koristi standardni TCP/IP protokol stek kao osnovni komunikacioni protokol, a dodatno podrava i brojne druge protokole koji nisu uobiajeni za komunikaciju dva UNIX sistema (AppleTalk, IPX, Samba). Interno, umreavanje pod Linux sistemom obuhvata tri softverska nivoa: socket interfejs, protokol drajvere i drajvere za mrene kartice.

    Osnovni servisi Linux sistema

    init

    Proces init se pokree kao prvi proces na svakom Linux sistemu i to je poslednja akcija koju kernel obavlja prilikom podizanja sistema. Kada se pokrene, init nastavlja proces

  • Uvod u UNIX i Linux operativne sisteme

    13

    podizanja operativnog sistema, obavljajui razne inicijalne procedure kao to su provera i akitviranje sistema datoteka i pokretanje servisa (daemons). Potpun skup aktivnosti koje e proces init obaviti zavisi od naina podizanja samog Linux sistema. Proces init obezbeuje koncept jednokorisnikog reima rada (single user mode) u kome niko ne moe da se prijavi na sistem osim administratora (root), koji u ovom reimu moe da koristi komandni interpreter iskljuivo na konzoli. Osim ovog reima rada, koji se koristi u svrhe administarcije ili oporavka sistema, init obezbeuje i standardni viekorisniki reim rada (multiuser mode). Neki reimi rada Linux sistema se generalizuju i nazivaju nivoima izvrenja (runlevel) - jednokorisniki i viekorisniki reim predstavljaju dva nivoa izvrenja, a osim njih postoje i dodatni nivoi izvrenja, poput nivoa sa grafiim okruenjem (X) i nivoa sa mrenim servisima. Linux dozvoljava do 10 nivoa izvravanja, 0-9, od kojih su samo neki u upotrebi. Nivo izvrenja 0 definie se kao gaenje sistema (system halt), nivo izvrenja 1 kao jednokorisniki reim, a nivo izvrenja 6 kao ponovno podizanje sistema (system reboot). Ostali nivoi definisani su u datoteci /etc/inittab za konkretnu Linux distribuciju, pri emu definicije mogu biti razliite za razliite distribucije. U stanju normalnog izvrenja proces init obezbeuje funkcionisanje procesa getty, koji korisnicima omoguava proceduru prijavljivanja na sistem (login) i usvaja procese siroie (orphan), odnosno procese iji su roditeljski procesi nestali, ime se odrava integritet rodbinskog stabla procesa. Prilikom zaustavljanja Linux sistema proces init redom obustavlja sve druge procese, deaktivira sve aktivne sisteme datoteka i zaustavlja procesor, a dodatno moe obaviti i druge aktivnosti za koje je konfigurisan.

    Prijavljivanje sa terminala Funkciju prijavljivanja preko serijskih linija i sistemske konzole (bez grafikog okruenja) obezbeuje proces getty. Proces init kao proces roditelj pokree posebnu instancu programa getty za svaki terminal na kome je dozvoljeno prijavljivanje na sistem. Dalje, getty ita korisniko ime i o tome izvetava proces login, koji proverava uneeno korisniko ime i lozinku. Ako su korisniko ime i lozinka korektni login pokree proces shell koji prihvata i izvrava korisnike komande. Proces init e otpoeti novu instancu procesa getty kada proces komandnog interpretera zavri aktivnost, odnosno kada se korisnik odjavi sa sistema, ili ako se login proces zavri nekorektnim prijavljivanjem. Evidenciju o login procedurama ne vodi kernel ve to obavljaju sistemski programi.

    syslog Kernel i mnogi sistemski programi generiu razna upozorenja i poruke o grekama koje se upisuju u datoteke, tako da se mogu pregledati nakon izvesnog vremena. Program koji obavlja funkciju upisivanja poruka u datoteke je syslog. Program se moe konfigurisati da poruke aranira u razliite datoteke na osnovu stepena znaajnosti i procesa koji je poruke generisao. Na primer, poruke koje generie kernel se, kao vrlo znaajne poruke koje mogu ukazivati na ozbiljne probleme u sistemu, upisuju u posebnu datoteku.

  • Operativni sistemi: UNIX i Linux

    14

    Periodino izvravanje komandi Veina korisnika, ukljuujui sistem administratore esto ima potrebu za periodinim izvravanjem neke komande. Na primer, sistem administrator moe da zakae periodino izvrenje komande koja isti direktorijume sa privremenim datotekama (/tmp i /var/tmp), ime spreava prepunjenje diska. Funkciju periodinog izvrenja komandi obezbeuje servis cron. Svaki korisnik moe u svojoj crontab datoteci definisati komande koje eli periodino da izvrava i vreme kada te komande treba izvriti. Cron demon vodi rauna o izvrenju komandi u specificiranom vremenu. Servis koji je slian cron servisu je at, ali za razliku od cron servisa komandu pokree samo jednom, u specificiranom trenutku.

    Grafiki korisniki interfejs Linux ne ugrauje korisniki interfejs u kernel - korisniki interfejs se implementira na korisnikom nivou. Koriste se dve vrste interfejsa, alfanumeriki i grafiki, ime se postie vea fleksibilnost sistema. Nedostatak ovakvog ureenja je relativno sloena implementacija razliitih korisnikih interfejsa za svaki program, to operativni sistem ini teim za uenje i korienje. Primarno grafiko okruenje koje se koristi u Linux sistemima je X Window System (skraeno - X). X ne implementira korisniki interfejs ve obezbeuje alate pomou kojih grafiki korisniki interfejs moe da se implementira. Najee korieni window menaderi na Linux sistemima su: KDE i Gnome.

    Mreni rad Umreavanje je in povezivanja dva ili vie raunara relativno visokog stepena autonomije u cilju omoguavanja njihove meusobne komunikacije. Iako proces povezivanja raunara u mreu i konfigurisanja mrenog okruenja moe biti komplikovan, krajnji rezultat je veoma koristan - korisnici mogu koristiti deljene mrene resurse poput tampaa, direktorijuma i up-linkova, a takoe se mogu omoguiti i mehanizmi centralizovane autentifikacije i administracije. Veina osnovnih servisa Linux sistema, poput sistema datoteka, tampanja i arhiviranja podataka moe se realizovati pomou mrenih funkcija operativnog sistema.

    Detaljne informacije o mrenom radu pod Linux operativnim sistemom korisnici mogu dobiti iz knjiga "Securing and Optimizing Linux: The Ultimate Solution", Gerhard Mourani, koja se besplatno moe preuzeti sa sajta www.openna.com i "Linux Network Administrators Guide", koja se takoe besplatno moe preuzeti sa sajta www.tldp.org (The Linux Documentation Project).

    Prijavljivanje sa mree Procedura prijavljivanja sa mree razlikuje se od klasine procedure prijavljivanja na sistem, koja zahteva postojanje posebne fizike serijske linije za svaki terminal na kom je potrebno omoguiti prijavljivanje i rad. Za svakog korisnika koji se prijavljuje na sistem preko mree postoji posebna virtuelna mrena konekcija. Broj tih konekcija teorijski moe

  • Uvod u UNIX i Linux operativne sisteme

    15

    biti neogranien, tako da nije mogue izvravati poseban getty proces za svaku virtuelnu konekciju. Za potrebe prijavljivanja sa mree, umesto gomile getty procesa, postoji glavni demon proces (master daemon, wrapper) koji oslukuje sve nadolazee zahteve. Ukoliko se pojavi zahtev za prijavljivanje na sistem, wrapper kao proces roditelj pokree novi proces (telnet ili rlogin demon), slian getty procesu, koji dalje upravlja pokuajem prijavljivanja, dok glavni demon nastavlja da oslukuje nove zahteve sa mree.

    Deljenje datoteka i mreni sistemi datoteka U znaajnije servise UNIX i Linux sistema spada i deljenje datoteka na mrei. Mreni sistemi datoteka funkcioniu na sledei nain: zahtevi za operacijama nad datotekama i direktorijumima alju se po mrei na raunar na ijim se diskovima sistem datoteka nalazi, a korisnik ima utisak da se sve datoteke nalaze na lokalnom sistemu datoteka. Na ovaj nain omoguava se deljenje datoteka na krajnje jednostavan nain, poto se ne zahteva nikakva modifikacija korisnikih programa. Najee korieni tip mrenih sistema datoteka je NFS (Network File System), koji je razvila kompanija Sun Microsystems. Drugi servis, koji omoguava pristup Linux mrenim sistemima datoteka sa MS Windows radnih stanica, je Samba (http://www.samba.org). Po istim protokolima je mogue deliti i tampae.

    Elektronska pota Elektronska pota je najpopularniji metod komunikacije putem raunara. Svaki korisnik ima prijemno potansko sandue (incoming mailbox) u vidu datoteke u specijalnom formatu koja se po pravilu nalazi na direktorijumu /var/spool/mail. Kada neko alje potu specijalan program, koji omoguava prijem i slanje pisama, locira prijemno potansko sandue i dodaje pismo u mailbox datoteku. Ukoliko se prijemno potansko sandue nalazi na drugom raunaru, pismo se najpre alje preko mree ka destinacionom raunaru, iji e mail program dalje pismo distribuirati u odgovarajue sandue. Potanski sistem ine dve osnovne vrste programa: MTA - Mail Transfer Agent (na primer sendmail) koji vre isporuku pote u lokalno potansko sandue i prosleuju potu udaljenim raunarima, i MUA - Mail User Agent (pine, mutt ili elm) koje slue korisnicima za itanje i slanje pote.

    tampanje Jedan tampa u jednom vremenskom trenuntku moe da koristi samo jedan korisnik, ali je krajnje neekonomino ne dozvoliti upotrebu tampaa u razliitim vremenskim trenucima veem broju korisnika. Zato tampaima upravlja program koji implementira red ekanja za dati tampa (printer queue): svi zahtevi za tampu postave se u red ekanja i kada tampa obavi jedan posao upravljaki program mu automatski alje sledei. Na ovaj nain se omoguava korienje tampaa veem broju korisnika, pri emu su korisnici osloboeni organizacije reda ekanja za tampa.

  • Operativni sistemi: UNIX i Linux

    16

    Program koji implementira red ekanja uva kopiju koju treba tampati na disku print servera, ime se omoguava aplikativnom programu da preda zahtev za tampu u red i nakon toga nastavi svoje aktivnosti. Disk je relativno brz ureaj u odnosu na tampa, tako da predaja zahteva u red traje kratko. Nakon predaje zahteva aplikativni program ne mora da eka da zahtev bude odtampan, a takoe ne mora ni da kontrolie proces tampe, tako da nastavlja s daljim radom. Ovakav nain organizacije tampanja je jako povoljan, zato to korisnik moe da izda zahtev za tampanjem jednog dokumenta, zatim otvori drugi dokument i poalje ga na tampu bez ikakvog ekanja.

  • BLOK UREAJI I ADMINISTRACIJA SISTEMA

    DATOTEKA Prilikom instalacije ili nadogradnje operativnog sistema potrebno je utroiti izvesnu koliinu vremena na administraciju diskova i sistema datoteka. Sistemi datoteka su neophodni za instalaciju operativnog sistema i uvanje datoteka na sekundarnim memorijama. Postupci koji su ovde objanjeni najee se izvode pre instalacije operativnog sistema, ali se mogu ponoviti ukoliko se ukae potreba za podeavanjem parametara sistema datoteka ili ukoliko se na sistem dodaje novi disk. etiri osnovna zadatka iz oblasti administracije diskova su: formatiranje diska na niskom nivou, ime se disk priprema za korienje. Veina

    diskova koji se danas proizvode fabriki su preformatirani, tako da je administrator sistema osloboen tog dela posla;

    podela diska na particije. Disk se deli na particije ukoliko je na raunar potrebno instalirati vie operativnih sistema ili u cilju razdvajanja sistemskih i korisnikih datoteka, ime se pojednostavljuju postupci backupa i arhiviranja;

    kreiranje sistema datoteka na particijama diska. Korisnici svoje podatke uvaju kao datoteke koje sa hijerarhijskom strukturom direktorijuma u kojima se nalaze ine sistem datoteka;

    aktiviranje sistema datoteka, montiranjem (mounting) na odgovarajue direktorijume, ime se formira struktura aktivnog direktorijumskog stabla. Ovaj postupak se obavlja ili automatski, prilikom podizanja sistema, ili runo.

  • Operativni sistemi: UNIX i Linux

    18

    Blok ureaji Hard i flopi diskovi. Formatiranje magnetnih medijuma. CD-ROM ureaji i magnetne trake.

    U blok ureaje spadaju hard diskovi i ureaji sa izmenljivim medijumima - disketni ureaji (flopi diskovi), CD-ROM ureaji (ukljuujui DVD i ureaje za pisanje po medijumu) i magnetne trake. Ovi ureaji se mogu koristiti za uvanje podataka u formi arhiva (koje se po pravilu uvaju na izmenljivim medijumima) i smetanje sistema datoteka. U daljem tekstu opisani su blok ureaji i osnovni postupci njihove administracije.

    Hard diskovi

    Fizike osobine i geometrija diskova Hard disk se sastoji od jedne ili vie krunih ploa premazanih tankim slojem magnetne supstance. Za svaku povrinu postoji posebna glava za itanje i pisanje (read-write head) koja ita ili upisuje podatke sa magnetnih ploa. Ploe rotiraju oko zajednike ose konstantnom ugaonom brzinom koja najee iznosi 5400-7200 obrtaja u minuti za standardne IDE diskove, odnosno 10000 i vie obrtaja za profesionalne SCSI diskove. Glave za itanje i pisanje kreu se pravolinijski po preniku ploa ime im je, uz rotaciju ploa, omoguen pristup svim delovima magnetne povrine. Na slici 3.1. prikazana je struktura diskova. Procesor raunara i disk komuniciraju preko disk kontrolera (disk controller). Disk kontroleri razliitih diskova pruaju isti interfejs ka ostatku raunara i time pojednostavljuju pristup podacima na disku, tj. oslobaaju raunar potrebe za poznavanjem naina rada i kontrolom elektromehanike diska. Dodatne funkcije kontrolera su baferovanje podataka koje treba upisati na disk, keiranje diskova (disk caching) i automatsko obeleavanje neispravnih sektora diska. Povrina diska je podeljena u koncentrine prstenove - staze (tracks), a svaka staza je dalje podeljena na sektore (sectors). Ovom podelom mogue je specificirati lokacije diska na kojima se nalaze podaci, ili alocirati prostor za nove podatke - npr. itanje podatka sa druge povrine, iz staze broj 3, sa sektora 5. Broj sektora po stazi je kod starijih diskova najee isti za sve staze, dok noviji diskovi dele spoljanje staze na vei broj sektora ime obezbeuju jednaku magnetnu povrinu za sve sektore. Tipina koliina podataka koja se moe upisati u jedan sektor je 512b, i to je najmanja koliina podataka koja se moe upisati na disk ili proitati sa diska. Sve povrine magnetnih ploa jednako su podeljene na staze i sektore. To znai da se glave za itanje i pisanje na svim ploama diska u jednom vremenskom trenutku nalaze na istim stazama. Ekvidistantne staze svih ploa ine jedan cilindar (cylinder). Datoteke koje nisu smetene u okviru jednog cilindra su fragmentisane - pomeranje glava sa jedne staze na drugu prilikom itanja ovakvih datoteka unosi kanjenje. Performanse diska mogu se uveati smetanjem datoteke u okviru jednog cilindra kad god je to mogue.

  • Blok ureaji i administracija sistema datoteka

    19

    ro tacija ploa

    glave za itanjei pisanje

    rotacioneploe

    magnetnepovrine

    cilindar

    sektorstaza

    Slika 3.1 Struktura diskova

    Geometrija diska odreena je brojem magnetnih povrina (odnosno glava za itanje i pisanje), cilindara i sektora, i uva se u posebnoj memorijskoj lokaciji sa baterijskim napajanjem - CMOS RAM. Operativni sistem ita vrednosti koje opisuju geometriju diska prilikom podizanja sistema ili inicijalizacije drajvera. BIOS namee limite geometriji diskova, tako da je nemogue specificirati vie od 1024 staza u CMOS RAM-u, to je nedovoljno za diskove velikih kapaciteta. Ovaj problem se prevazilazi na sledei nain: disk kontroler prijavljuje raunaru lanu geometriju diska koja odgovara nametnutim limitima i prevodi adrese lane geometrije koje dobija od raunara prilikom itanja ili upisa podataka u adrese realne geometrije. Na primer, ako disk ima 8 glava, 2048 staza i 35 sektora po stazi, kontroler e raunaru prijaviti disk sa 16 glava, 1024 staze i 35 sektora po stazi, ime broj sektora ostaje u dozvoljenom opsegu. Prilikom prevoenja adresa kontroler e prepoloviti broj glava za itanje i pisanje i udvostruiti broj staza. Primer ilustruje krajnje jednostavnu situaciju, dok je u realnim sluajevima prevoenje malo komplikovanije (npr. prevoenje geometrije diska sa 8 glava, 1536 staza i 23 sektora je sloenije od prethodnog primera). Ovaj postupak menja pogled operativnog sistema na geometriju diska, tako da je nepraktino koristiti metod smetaja jedne datoteke na jednom cilindru u cilju poveanja performansi. Prevoenje geometrije je problem IDE diskova - SCSI diskovi koriste metod logikih sektora za pristup podacima (kontroler prevodi broj logikog sektora u fiziku adresu - glava, cilindar, sektor) i drugi nain komunikacije izmeu procesora i kontrolera. Meutim, i realna geometrija SCSI diskova moe ostati nepoznata raunaru. Kako je realna geometrija diskova esto nepoznata UNIX sistemi datoteka ne smetaju datoteke u okvirima jednog cilindra. Situacija je komplikovanija ukoliko na kontroleru postoji ke ili pre-fetch mehanizam, odnosno ako kontroler na osnovu neke logike ita podatke unapred i privremeno ih skladiti u ke memoriji. U cilju poveanja performansi,

  • Operativni sistemi: UNIX i Linux

    20

    UNIX sistemi datoteka koriste metodu smetanja datoteka u sekvencijalne logike sektore - ova metoda daje dovoljno dobre performanse, a ne zahteva poznavanje realne geometrije diska.

    IDE i SCSI diskovi. Specijalne datoteke koje predstavljaju ureaje. Dve vrste diskova predstavljaju de facto standarde na PC raunarima: IDE i SCSI diskovi. IDE ureaji su dobili naziv po elektronici integrisanoj na samom ureaju (Integrated Drive Electronics). Ovoj klasi ureaja pripadaju relativno jeftini diskovi solidnih performansi: kapacitieta do 160GB, sa brzinama okretanja ploa od 5400-7200 obrtaja u minuti. Kontroleri za IDE ureaje su ugraeni na matinim ploama raunara (on-board controller) i pruaju interfejs ka raunaru pri brzinama od 33-133 Mbit/s. Realna brzina itanja i pisanja na same magnetne povrine znatno je manja, tako da na kontroleru postoji bafer u koji se podaci smetaju pre upisa na sam disk - na ovaj nain se spreava da performanse sistema znaajno padnu prilikom rada sa diskovima. Svaki IDE kontroler ima dva kanala - primarni (primary) i sekundarni (secondary), a na svaki kanal se mogu vezati najvie dva ureaja u odnosu master-slave. Ureaji vezani na razliite kanale mogu da primaju ili alju podatke raunaru istovremeno. Na jednom kanalu moe biti samo jedan ureaj aktivan u jednom trenutku vremena. Svaki IDE ureaj ima preklopnike (jumpers) koje treba podesiti u eljeni reim rada - master ili slave pre vezivanja na kontroler. Administrator sistema odreuje nain na koji e ureaji biti vezani na IDE kontroler - vezivanje dva brza diska sa kojih se esto ita i na koje se esto pie na jedan kanal, a dva spora CD-ROM ureaja, koji se povremeno koriste, na drugi kanal nema smisla. Ureaje treba vezati tako da se performanse sistema odre na najviem moguem nivou. SCSI ureaji predstavljaju profesionalnu klasu irokog spektra ureaja - diskova, CD-ROM ureaja, traka, skenera itd. Kontroler za SCSI diskove nije integrisan na matinim ploama i kupuje se odvojeno. Elektronika na SCSI kontroleru je komplikovanija, interfejs ka raunaru je bri (do 320Mbit/s), a na kontroler je mogue vezati od 7 do 15 ureaja to zavisi od modela kontrolera. SCSI ureaji se ne nalaze u master-slave odnosu, ve se na kontroler vezuju prema prioritetima. Prioritet svakog ureaja odreen je njegovim identifikacionim brojem koji se postavlja preko preklopnika na ureaju. Princip je sledei: prioritet ureaja sa ID=0 je najvii i treba ga dodeliti sistemskom disku, a prioritet ureaja sa ID=15 je najnii. Identifikacioni broj ID=7 rezervisan je za SCSI kontroler. Na slici 3.2. ematski je prikazan SCSI kontroler:

    ID=0 ID=1 ID=2 ID=5 ID=7 CPUsistemski

    disksistemski

    disk

    SCSI kontroler

    SCSI magistrala

    disk sakorisnikimpodacima

    CD-ROM

    Slika 3.2 SCSI kontroler

  • Blok ureaji i administracija sistema datoteka

    21

    Svaki disk u sistemu predstavljen je odvojenom specijalnom datotekom - vorom (node) sa direktorijuma /dev. Ove datoteke omoguavaju pristup celom disku i koriste se u svrhe particionisanja diska ili pristupanja specijalnim delovima diska kao to je Master Boot Record:

    # fdisk /dev/hda # dd if=/dev/hda of=/mnt/floppy/linuxboot count=1

    Dat je spisak specijalnih datoteka i ureaja na koje se one odnose: /dev/hda IDE Primary Master /dev/hdb IDE Primary Slave /dev/hdc IDE Secondary Master /dev/hdd IDE Secondary Slave /dev/sda prvi SCSI disk /dev/sdb drugi SCSI disk /dev/sdc trei SCSI disk /dev/sdd etvrti SCSI disk, itd...

    RAID (redundantni niz jeftinih diskova) RAID koncept razvijen je na University of California, Berkeley, sa ciljem da se to bolje iskoriste diskovi malog kapaciteta. RAID tehnika (Redundant Area of Inexpresive Disks) predstavlja razliite naine upotrebe diskova radi postizanja vee pouzdanosti i boljih performansi. RAID se deli na nivoe 0-6 koji se mogu realizovati hardverski i softverski. Spominjemo najbitnije: RAID level 0 (disk striping) je postupak kojim se podaci ravnomerno rasporeuju

    na sve diskove u nizu, u cilju poboljanja performansi sistema. Ovaj postupak se realizuje deljenjem diskova na trake (stripes) ije veliine zavise od tipa operativnog sistema i namene niza diskova. RAID 0 ne unosi redundansu (nema poveanja cene), ali se u sluaju otkaza jednog diska svi podaci nepovratno gube. Tabela 3.1. ematski prikazuje RAID 0 postupak.

    Disk 1 Disk 2 Disk 3 Disk 4 A B C D

    E F G H

    I J K L

    M N O P

    Tabela 3.1 RAID 0 (Disk Striping) RAID level 1 (disk mirroring) je postupak kojim se za svaki disk u nizu uvodi po

    jedan rezervni koji u svakom trenutku sadri sliku originala. RAID 1 uvodi 100% redundanse, zatita podataka je potpuna, ali je cena sistema duplo vea. Tabela 3.2. ematski prikazuje RAID 1 postupak.

  • Operativni sistemi: UNIX i Linux

    22

    Disk 1 Disk 2 Disk 3 (r1) Disk 4 (r2) A B A B

    C D C D

    E F E F

    G H G H

    Tabela 3.2 RAID 1 (Disk Mirroring) RAID level 3 je postupak kojim se podaci ravnomerno rasporeuju na vie diskova

    u nizu u cilju poboljanja performansi, a u cilju poveanja pouzdanosti uvodi se disk za kontrolu parnosti. Ukoliko doe do otkaza jednog diska svi podaci su i dalje dostupni. Tabela 3.3. ematski prikazuje RAID 3 postupak.

    Disk 1 Disk 2 Disk 3 Disk 4 (par) A B C par (A, B, C) D E F par (D, E, F) G H I par (G, H, I) J K L par (J, K, L)

    Tabela 3.3 RAID 3 (postupak sa proverom parnosti) RAID level 5 je postupak slian RAID 3 s tim to se provera parnosti raspodeljuje

    na sve diskove u sistemu. Podaci su dostupni nakon otkaza jednog diska. Ovaj postupak je poznat pod imenom rotacioni niz parnosti (Rotating Parity Array). Tabela 3.4. ematski prikazuje RAID 5 postupak.

    Disk 1 Disk 2 Disk 3 Disk 4 A B C par (A, B, C) D E par (D, E, F) F G par (G, H, I) H I

    par (J, K, L) J K L

    Tabela 3.4 RAID 5 (rotacioni niz parnosti)

    Flopi diskovi

    Disketni ureaj (Floppy Disk Drive) je ureaj koji koristi izmenljive medijume (diskete) za skladitenje podataka. Disketa se sastoji od fleksibilne membrane koja je obostrano

  • Blok ureaji i administracija sistema datoteka

    23

    premazana tankim slojem magnetne supstance i odgovara jednoj rotacionoj ploi hard diska. Glave za itanje i pisanje nalaze se u disketnom ureaju. Ovim je omogueno sledee: jedan ureaj moe da pristupi razliitim medijumima (disketama), a disketi snimljenoj na jednom ureaju moe se pristupiti pomou drugog ureaja. Diskete se dele na staze i sektore poput hard diskova, pri emu dve ekvidistantne staze na razliitim stranama diskete ine jedan cilindar. Broj staza i sektora je znatno manji nego na hard diskovima. Kontroler za disketne ureaje je integrisan na matinoj ploi - pomou njega se na sistem mogu vezati najvie dva ureaja (kojima se u DOS-u i Windows-u pristupa preko logikih diskova A: i B:). Dve vrste disketnih ureaja predstavljaju standard za PC raunare:

    5.25inch, kapaciteta 360KB sa dvostrukom gustinom zapisa (double density) i 1.2MB sa visokom gustinom zapisa (high density). Ovi ureaji se vie ne upotrebljavaju;

    3.5inch, kapaciteta 720KB (double density), 1.44MB (high density) i 2.88MB (extended density).

    Pri tome se vie razliitih formata disketa moe proitati na istom ureaju - 3.5inch drajv kapaciteta 1.44MB omoguava pristup disketama 720KB i 1.44MB. S obzirom na razlike koje se javljaju pri radu jednog ureaja sa razliitim formatima medijuma sistemu treba saoptiti koji se ureaj koristi i kog su kapaciteta medijumi. Na primer, /dev/fd0H1440 predstavlja prvi disketni ureaj (fd0), standarda 3.5incha, maksimalnog kapaciteta 1.44MB (H), u kome se nalazi disketa visoke gustine zapisa, kapaciteta 1.44MB. Kao posledica, na Linux sistemu postoji vei broj specijalnih datoteka koje predstavljaju disketne ureaje. Dat je spisak specijalnih datoteka, ureaja i standardnih kapaciteta medijuma na koje se one odnose: /dev/fd0d360 prvi flopi disk, ureaj 5.25incha, kapacitet 360KB /dev/fd1d360 drugi flopi disk, ureaj 5.25incha, kapacitet 360KB /dev/fd0h1200 prvi flopi disk, ureaj 5.25incha, kapacitet 1.2MB /dev/fd1h1200 drugi flopi disk, ureaj 5.25incha, kapacitet 1.2MB /dev/fd0D720 prvi flopi disk, ureaj 3.5incha, kapacitet 720KB /dev/fd1D720 drugi flopi disk, ureaj 3.5incha, kapacitet 720KB /dev/fd0H1440 prvi flopi disk, ureaj 3.5incha, kapacitet 1.44MB /dev/fd1H1440 drugi flopi disk, ureaj 3.5incha, kapacitet 1.44MB /dev/fd0E2880 prvi flopi disk, ureaj 3.5incha, kapacitet 2.88MB /dev/fd1E2880 drugi flopi disk, ureaj 3.5incha, kapacitet 2.88MB Imena nodova za disketne ureaje su komplikovana - za Linux su uvedene posebne datoteke, tzv. univerzalni (autodetect) flopi nodovi (/dev/fd0 za prvi, i /dev/fd1 za drugi flopi disk) pomou kojih se moe pristupiti disketi bez eksplicitnog navoenja tipa ureaja i kapaciteta. Pri tom, sistem pokuava da proita prvi sektor diskete posmatrajui je kao disketu razliitog tipa pri svakom pokuaju. Tip diskete je odreen kad sistem uspeno proita prvi sektor i disketa se dalje normalno koristi. Parametri flopi diskova, koji se koriste prilikom pristupanja disketi pomou univerzalnih nodova, mogu se podesiti programom setfdprm. Ovaj program omoguava pristup disketama sa nestandardnim kapacitetima (diskete sa nestandardnim brojem sektora - npr.

  • Operativni sistemi: UNIX i Linux

    24

    XDF format), a koristi se i ukoliko autodetekcija medijuma iz nekog razloga otkae, ili ukoliko odgovarajui nod za disketni ureaj ne postoji. Parametri flopi diskova podeeni ovim programom uvaju se u datoteci /etc/fdprm.

    Formatiranje magnetnih medijuma Formatiranje je proces upisivanja oznaka koje predstavljaju granice staza i sektora na magnetni medijum, ime se uvodi red u magnetni haos neformatirane povrine. Disk (disketa) koji nije formatiran ne moe da se koristi. Terminologija je zbunjujua za korisnike DOS/Windows operativnih sistema - termin formatiranje diska odnosi se na proces kreiranja sistema datoteka, dok se formatiranje disketa odnosi na kombinovan proces oznaavanja staza i sektora i kreiranja sistema datoteka. U cilju razdvajanja ovih pojmova uvode se dva termina: formatiranje niskog nivoa (low level formatting), za Linux poznato kao

    formatiranje, formatiranje visokog nivoa (high level formatting), za Linux poznato kao kreiranje

    sistema datoteka. Veina IDE i SCSI diskova su fabriki formatirani na niskom nivou, tako da ovaj proces nije potrebno ponavljati. U nekim sluajevima se to i ne preporuuje - disk je ponekad potrebno formatirati na specijalan nain da bi se ukljuile specijalne funkcije, kao to je automatska zamena loih sektora. Diskovi koje treba formatirati obino se isporuuju sa specijalnim softverom koji je za to namenjen, dok se za formatiranje standardnih IDE diskova mogu iskoristiti programi koji se nalaze u BIOS-u raunara ili softverski paketi koji se bave tom problematikom. Prilikom formatiranja mogua je pojava neispravnih povrina na disku - takozvanih neispravnih blokova (bad blocks) odnosno neispravnih sektora (bad sectors). Ove povrine treba izbegavati prilikom upisa podataka, jer su podaci upisani u njih najee nepovratno izgubljeni. Kvalitetniji diskovi imaju ugraen mehanizam za automatsko obeleavanje neispravnih sektora, ali je glavna logika ugraena u sisteme datoteka. Alternativna metoda je kreiranje particije koja e sadrati sve neispravne sektore - ovaj pristup je poeljno iskoristiti ukoliko je oteena vea povrina diska. Komanda badblocks moe se koristiti za proveru ispravnosti povrine diska ili diskete nakon formatiranja. Kao rezultat izvrenja komande na ekranu se prikazuju brojevi svih neispravnih blokova medijuma koji se analizira - ova lista se kasnije moe iskoristiti prilikom kreiranja sistema datoteka. Sledei primer ilustruje ispitivanje povrine diskete koja ima tri neispravna bloka. # badblocks /dev/fd0H1440 1440 62 514 513

  • Blok ureaji i administracija sistema datoteka

    25

    Inicijalna pretraga za loim sektorima moe se izvesti i pomou komande mkfs, koja kreira sistem datoteka. Za razliku od komande mkfs komanda badblocks nije destruktivna - postojei podaci nee biti izbrisani, tako da se moe upotrebiti i za ispitivanje povrine diska na kome postoji sistem datoteka. Dopuna liste neispravnih blokova u postojeem sistemu datoteka vri se kombinacijom komandi badblocks i fsck.

    Formatiranje disketa Na Linux sistemu postoji poseban program, fdformat, ija je namena formatiranje disketa. Za razliku od DOS programa format koji pored formatiranja kreira i sistem datoteka, fdformat se ograniava na formatiranje disketa na niskom nivou. Dalje se disketa moe upotrebiti za kreiranje sistema datoteka ili kao medijum za arhiviranje. Programu fdformat potrebno je navesti nod za flopi disk kao parametar: # fdformat /dev/fd0H1440 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. Formatting ... done Verifying ... done

    Ukoliko postoji potreba da se kao parametar programu fdformat navede univerzalni nod za flopi disk, potrebno je prvo komandom setfdprm podesiti parametre autodetect ureaja, kao to je prikazano u sledeem primeru: # setfdprm /dev/fd0 1440/1440 # fdformat /dev/fd0H1440 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. Formatting ... done Verifying ... done

    Ukoliko se disketa formatira na vei kapacitet od predvienog fdformat e izvriti proveru povine diska i ispitati postojanje neispravnih blokova. Svaki blok na disketi bie proveren nekoliko puta, i ukoliko neispravni blokovi postoje proces formatiranja bie prekinut. Formatiranje diskete na vei kapacitet nije dobra ideja - pojava neispravnih blokova na takvim disketama je esta pojava i ne mora se javiti odmah, ime je rizik od gubitka podataka vei. Neuspeno formatiranje moe se upisati u log datoteku /usr/log/messages pomou syslog programa, ali to nije praktino raditi zbog niske cene disketa i poruka koje fdformat prikazuje korisniku na ekranu.

    CD-ROM ureaji CD-ROM ureaj koristi izmenljive medijume u vidu tankih diskova s visokim stepenom refleksije. Podaci se upisuju na povrinu diska u vidu malih rezova, poreanih u spiralu s poetkom u centru (to objanjava termin "narezivanje" diskova). Prilikom itanja podataka CD-ROM ureaj upuuje laserski zrak du spirale, koji se moe reflektovati na dva naina zavisno od povrine s koje se refleksija vri (glatka povrina ili rez). Ovim je omogueno jednostavno kodiranje bitova, a samim tim i podataka. Ovo je osnovni princip - postupak se svodi na preciznu optiku i elektromehaniku i daleko je komplikovaniji.

  • Operativni sistemi: UNIX i Linux

    26

    U poreenju sa hard diskovima CD-ROM ureaji pripadaju klasi sporih ureaja. Srednje vreme pristupa podacima (average seek time) standardnog IDE diska ne prelazi 15 milisekundi, to je nekoliko desetina puta manje u odnosu na CD-ROM ureaje. CD-ROM ureaj nije prijatno koristiti kao "live" sistem datoteka ukoliko se na njemu nalazi vea koliina malih datoteka rasporeenih po direktorijumima. Na primer, neke distribucije Linux sistema obezbeuju "live" sisteme datoteka na instalacionim medijumima, ime se korisnik oslobaa potrebe da iskopira sve datoteke na hard disk. Takav sistem je relativno spor, s obzirom da distribuciju Linux sistema ini veliki broj malih datoteka. Nasuprot tome, brzina prenosa podataka je relativno visoka u sluaju da se podaci itaju sekvencijalno (itanje velikih datoteka ili kopiranje medijuma). CD-ROM je jako koristan ureaj za korienje prilikom instalacije softvera - kapacitet medijuma je relativno visok (650-700MB), a brzina nije presudna za instalaciju. Postoji nekoliko sistema datoteka koji se mogu koristiti za uvanje podataka na CD-ROM medijumima. Najee je korien minimalni sistem datoteka specificiran internacionalnim standardom ISO 9660. Veina operativnih sistema prepoznaje ovaj sistem datoteka, a podaci upisani na CD-ROM medijum softverom za narezivanje u jednom operativnom sistemu prenosivi su na druge operativne sisteme i druge raunare. Na primer, slike u JPEG formatu ili Video CD narezani pod Linuxom su vidljivi pod Windows operativnim sistemom, ali se Windows izvrni programi ne mogu pokrenuti pod Linux-om bez emulatora (kao to je wine). ISO 9660 sistem datoteka zbog svoje minimalnosti nije u potpunosti upotrebljiv kao "live" UNIX sistem datoteka, tako da je standard nadograen Rock Ridge ekstenzijom. Rock Ridge proirenje dozvoljava duga imena datoteka, simbolike linkove i ostalo to karakterie standardne UNIX sisteme datoteka, a pri tome zadrava prenosivost standarda ISO 9660. Linux podrava oba standarda, a detekcija Rock Ridge proirenja je automatska. Koje e specijalne datoteke biti koriene za pristup CD-ROM ureajima zavisi od tipa ureaja i interfejsa preko kog je vezan na raunar. Ukoliko je CD-ROM ureaj vezan kao Primary Slave na IDE kontroler, korisnik e mu pristupati pomou