os unix i linux

438
  Borislav Đor đević Dragan Pleskonjić  Nemanja Ma ček Operativni sistemi: UNIX i Linux Viša elektrotehni čka škola Beograd, 2004.

Upload: nemanja-macek

Post on 21-Jul-2015

191 views

Category:

Documents


0 download

TRANSCRIPT

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 prof. dr Borivoj Lazi mr Slobodan Obradovi Via elektrotehnika kola u Beogradu mr Dragoljub Martinovi Anelka Kovaevi Nemanja Maek, Borislav orevi, Dragan Pleskonji Nemanja Maek ime tamparije tampano u 400 primeraka

Recenzenti:

Izdava: Za izdavaa: Lektor: Tehnika obrada: Dizajn: tampa:

PredgovorUNIX 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, userfriendly 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.

ZahvalnostZahvaljujemo 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

SadrajUVOD U UNIX I LINUX OPERATIVNE SISTEMEIstorijat UNIX operativnog sistema Vrste UNIX sistema Linux operativni sistem GNU/Linux i Open Source Software Linux distribucije Opti pregled Linux sistema Linux kernel Struktura Linux sistema Modularni kernel Znaajni delovi kernela Upravljanje procesima Procesi i niti Dodeljivanje procesora procesima Komunikacija izmeu procesa Upravljanje memorijom Izvravanje korisnikih programa Ulazno - izlazni sistem Sistemi datoteka i aktivno UNIX stablo Mrene strukture Osnovni servisi Linux sistema init Prijavljivanje sa terminala syslog Periodino izvravanje komandi Grafiki korisniki interfejs Mreni rad Prijavljivanje sa mree Deljenje datoteka i mreni sistemi datoteka Elektronska pota tampanje

11 2 3 3 4 4 5 5 7 7 8 9 9 10 10 11 11 11 12 12 12 13 13 13 13 14 14 14 15 15

BLOK UREAJI I ADMINISTRACIJA SISTEMA DATOTEKABlok ureaji Hard diskovi Fizike osobine i geometrija diskova IDE i SCSI diskovi. Specijalne datoteke koje predstavljaju ureaje. RAID (redundantni niz jeftinih diskova) Flopi diskovi Formatiranje magnetnih medijuma Formatiranje disketa CD-ROM ureaji Magnetne trake

1617 17 17 19 20 21 23 24 24 25

Podela diskova na particije Boot sektori, particione tabele i tipovi particija Master Boot Record, boot sektori i particione tabele Extended i logike particije Tipovi particija Podela diska na particije fdisk cfdisk Specijalne datoteke i particije diska Sistemi datoteka UNIX sistemi datoteka Dodeljivanje prostora datotekama Rupe u datotekama Konvencija o imenima objekata sistema datoteka Tipovi sistema datoteka Sistemi datoteka sa dnevnikom transakcija (Journaling) Ext3 sistem datoteka i reimi voenja dnevnika transakcija Reiser FS XFS JFS Koji sistem datoteka treba koristiti ? Kreiranje sistema datoteka Parametri UNIX sistema datoteka Aktiviranje i deaktiviranje sistema datoteka Montiranje sistema datoteka na aktivno UNIX stablo root i user sistemi datoteka /etc/fstab i auto-mount Pregled aktiviranih sistema datoteka Deaktiviranje sistema datoteka Dozvole za aktiviranje sistema datoteka Provera i oporavak sistema datoteka Logiki defekti i provera integriteta sistema datoteka lost+found direktorijum Fiziki defekti i provera ispravnosti povrine diska Defragmentacija Ostali programi za rad sa sistemima datoteka Rad sa diskovima bez sistema datoteka Komanda dd (disk-to-disk copy) Virtuelna memorija (swap) Aktivno UNIX stablo root sistem datoteka /etc direktorijum /usr sistem datoteka /var sistem datoteka /proc sistem datoteka

26 26 26 27 28 28 28 30 31 32 33 35 35 35 36 38 38 39 39 40 40 40 42 43 43 44 45 46 47 48 48 49 49 50 50 51 52 53 54 55 56 57 58 58 59

KORISNICI I GRUPEKorisniki nalozi

6161

Kreiranje korisnikih naloga /etc/passwd /etc/shadow lanstvo u grupama Dodela identifikatora korisnicima i grupama (UID i GID) Inicijalno okruenje - etc/skel direktorijum Kreiranje korisnikih naloga bez upotrebe pomonih programa Promena parametara korisnikih naloga Privremena zabrana prijavljivanja na sistem Uklanjanje korisnika Identifikacija korisnika Privremeno prijavljivanje na sistem pod drugim imenom Stvarni i efektivni identifikatori korisnika (RUID i EUID)

62 62 63 64 64 65 65 66 66 67 68 68 69

KONTROLA PRISTUPA NA NIVOU SISTEMA DATOTEKAVlasniki odnosi i prava pristupa Prava pristupa u sistemu datoteka Kategorije pristupnih prava Problem unije vlasnikih kategorija Znaenje prava pristupa za datoteke i direktorijume Odreivanje pristupa za datoteke i direktorijume Podrazumevana prava pristupa (umask) Promena vlasnitva i pristupnih prava Promena pristupnih prava Simboliki reim Oktalni reim Promena vlasnikih odnosa Promena vlasnika Primarne i sekundarne grupe Promena grupe kojoj objekat pripada Specijalni atributi datoteka i direktorijuma setuid (SUID) i setgid (SGID) Sticky bit (t) Specijalni atributi datoteka na ext2/ext3 sistemu datoteka Disk kvote Administracija kvota na Linux sistemu Preduslovi za postavljanje kvota Postavljanje kvota Datoteke quota.user i quota.group Dodeljivanje kvote korisniku Dodeljivanje kvote grupama Dodeljivanje jednakih kvota veem broju korisnika Ostali alati za rad sa kvotama

7171 71 72 74 75 75 76 78 78 79 80 82 82 82 83 83 83 84 84 86 86 86 86 87 88 89 89 89

RAD SA DATOTEKAMA IZ KOMANDNE LINIJE

91

Komandni interpreter (shell) Funkcije komandnog interpretera Interpretacija komandne linije Inicijalizacija programa Redirekcija ulaza i izlaza Povezivanje komandi u pipeline Zamena imena datoteka Rukovanje promenljivim i kontrola okruenja Shell programiranje Dodatne mogunosti Bourne-again shella Korienje kontrolinih karaktera Alternativno ime komande (alias) Ponavljanje komandne linije (history) Modifikacija komandne linije Kompletiranje imena datoteka Shell promenljive i prilagoeni prompt Lokalne promenljive Promenljive okruenja Prilagoavanje odziva (prompt) komandnog interpretera Inicijalizacione datoteke komandnog interpretera Korisnike inicijalizacione datoteke Poreenje poznatih komandnih interpretera Bourne shell (sh) C shell (csh) Bourne-again shell (bash) Korn shell (ksh) Osnovne komande za rad sa datotekama Dobijanje pomoi Lokatori komandi Prikazivanje informacija o sistemu Odreivanje tipa datoteke Tipovi datoteka Upotreba komande file Komanda strings Kopiranje, pomeranje i brisanje datoteka Kopiranje datoteka i direktorijuma Kopiranje jedne datoteke Kopiranje grupe datoteka iz istog direktorijuma Rekurzivno kopiranje direktorijumskog stabla Relacioni odnosi originala i kopije Potrebni i dovoljni uslovi za kopiranje datoteke Opcije komande cp Primeri korienja komande cp Pomeranje datoteka i direktorijuma Promena imena i/ili pomeranje jedne datoteke Pomeranje grupe datoteka iz istog direktorijuma Potrebni i dovoljni uslovi za promenu imena datoteke Potrebni i dovoljni uslovi za pomeranje datoteke Opcije komande mv Brisanje datoteka

91 91 92 93 93 95 96 96 97 97 97 97 98 99 100 100 100 101 102 102 103 104 104 104 104 105 105 105 107 108 108 109 110 110 111 111 112 112 113 113 114 114 115 120 120 120 121 121 121 122

Brisanje jedne datoteke Brisanje grupe datoteka iz istog direktorijuma Rekurzivno brisanje direktorijumskog stabla Potrebni i dovoljni uslovi za brisanje datoteke Opcije komande rm Linkovi Hard linkovi Kreiranje hard linkova Osobine hard linkova Primer kreiranja i upotrebe hard linkova Simboliki linkovi Kreiranje simbolikih linkova Osobine simbolikih linkova Primer kreiranja i upotrebe simbolikih linkova Upotreba opcije -d komande cp (no-dereference) Rad sa direktorijumima Kretanje po direktorijumskom stablu Prikazivanje sadraja direktorijuma Kreiranje direktorijuma Brisanje direktorijuma Kopiranje direktorijuma Pretraivanje direktorijuma Kriterijumi pretrage Akcioni izrazi Kvalifikatori pretrage Sloeni kriterijumi pretrage Rad sa tekstualnim datotekama Pregledanje sadraja tekstualne datoteke cat more less Prikazivanje poetka i kraja datoteke (komande head i tail) Brojanje karaktera, rei i linija Uporeivanje sadraja datoteka Komanda cmp Komanda diff Ureivanje sadraja datoteka Ureivanje sadraja datoteka po odreenom kriterijumu (sort) Priprema tekstualnih datoteka za tampu (pr) Podela tekstualnih datoteka (split) Uklanjanje duplikata linija iz datoteke (uniq) Traenje teksta u datoteci Regularni izrazi (regular expressions) Jednostavan oblik komande grep Specijalni karakteri Zamena jednog karaktera Ponavljanje karaktera Ponavljanje regularnih izraza Uporeivanje poetka i kraja linije teksta

122 122 122 123 123 123 124 125 125 125 126 127 127 127 128 129 129 130 132 132 133 133 134 135 136 136 137 137 137 138 138 139 140 140 140 141 142 142 143 144 145 145 146 146 147 147 148 149 149

Primer sloenog regularnog izraza Komanda grep Komanda egrep Komanda fgrep Editori teksta vi, joe i jed vi editor Reimi rada vi editora Otvaranje datoteka vi editorom Interaktivne komande u vi editoru Alternativni editori teksta Kreiranje malih tekstualnih datoteka komandom cat joe (Joe's Own Editor) jed Midnight Commander Twin-panel interfejs Rad u programu Midnight Commander

149 149 150 150 151 151 151 152 152 154 154 154 156 157 157 159

SHELL PROGRAMIRANJEOsnovi shell programiranja Komentari Pokretanje shell programa Pronalaenje komandnog interpretera Promenljive u Linux operativnom sistemu Vanije sistemske promenljive Definisanje korisnikih promenljivih Prikazivanje i korienje vrednosti UDV promenljivih Komande specifine za shell programiranje echo Navodnici Komanda expr i shell aritmetika read sed (stream editor) awk grep wc (word count) sort bc (basic calculator) tput Komande, argumenti i izlazni status Zato se zahtevaju komandni argumenti ? Shell program i komandni argumenti Izlazni status komande Grupisanje komandi ( list ) { list; } Parametri komandnog interpretera (Shell Parameters) Pozicioni parametri (positional parameters) Specijalni parametri (special parameters) Redirekcija i pipe mehanizam

162163 163 163 164 165 165 166 167 168 168 168 169 169 170 170 171 171 171 172 172 172 173 173 174 174 175 175 175 175 176 176

Redirekcija ulaza i izlaza Pipe mehanizam Shell proirenja (Shell Expansions) Proirenje preko zagrada (Brace Expansion) Tilda proirenje (Tilde Expansion) Parametarsko proirenje (Shell Parameter Expansion) Komandna zamena (Command Substitution) Aritmetiko proirenje (Arithmetic Expansion) Proirenje imena datoteka (Filename Expansion) Pronalaenje uzorka (Pattern Matching) Konstrukcije u shell programiranju Uslovne konstrukcije Uslovna konstrukcija if if-then-fi Provera uslova i test naredba Provera tanosti izraza komandom test if-then-else-fi if-then-elif-else-fi Uslovna konstrukcija case Petlje while petlja until petlja for petlja Naredba select Funkcije Lokalne promenljive Primeri sloenijih shell programa Backup home direktorijuma Promena imena grupe datoteka

176 177 178 178 179 180 181 182 184 184 184 185 185 185 186 186 188 189 190 191 191 193 193 194 195 196 196 196 198

MRENO OKRUENJEUvod u mree i TCP/IP Mreni ureaji TCP/IP skup protokola IP adresiranje Rutiranje Broj porta Razreavanje imena raunara Mreni servisi Konfigurisanje Linux mrenog okruenja Konfiguracione datoteke /etc/hostname /etc/hosts /etc/hosts.allow i /etc/hosts.deny /etc/networks /etc/network/interfaces

199199 200 201 202 205 205 205 206 206 206 207 207 208 208 208

/etc/protocols /etc/services /etc/resolve.conf /etc/nssswitch.conf - konfigurisanje metoda Programi za TCP/IP administraciju /sbin/ifdown i /sbin/ifup ifconfig netstat arp ping route traceroute nslookup Mreni servisi i wrapper programi inetd xinetd xinetd i kontrola pristupa xinetd - vezivanje servisa za IP adresu i redirekcija xinetd i upravljanje resursima Linux kao mreni server Mreni sistem datoteka (NFS) NFS server Aktiviranje NFS sistema datoteka na klijentima Statistiki izvetaj o korienju NFS servera Centralizovana autentifikacija (NIS) Komponente NIS sistema Sistemske datoteke koje ulaze u sastav NIS baze Apache web server Instalacija Potrebne privilegije Pokretanje i zaustavljanje web servera - apachectl skript Komunikacija sa httpd procesom Konfigurisanje Apache web servera Postavljanje web sajta Mere zatite chroot-jail Praenje rada i odravanje servera

209 209 210 210 211 212 212 213 215 216 216 216 216 217 218 219 221 222 223 223 224 225 225 226 227 228 229 230 231 231 232 232 233 236 237 238 240

TAMPAIProces tampanja Komponente UNIX okruenja za tampu tampa Red za tampa Server za tampu Common UNIX Printing System (CUPSTM) Korienje CUPS sistema za tampu tampanje i administracija reda za tampu Slanje zahteva na tampu

242242 242 243 243 244 245 246 246 246

Provera statusa tampaa Brisanje poslova iz reda Direktno tampanje Podeavanje karakteristika tampaa i dokumenata Opte karakteristike tampanje naslovne stranice (banner page) Opte karakteristike dokumenata Karakteristike tekstualnih dokumenata Karakteristike grafikih dokumenata Slanje dokumenta na tampu bez filtriranja Podrazumevana podeavanja tampaa Instance tampaa Administracija CUPS sistema za tampu Instaliranje CUPS sistema Upravljanje tampaima Instalacija prvog tampaa Dodavanje novih i modifikacija instaliranih tampaa Brisanje tampaa Postavljanje primarnog tampaa Pokretanje i zaustavljanje tampaa Prihvatanje i odbijanje poslova tampanja Podeavanje kvota na tampau Kontrola pristupa tampau Klase tampaa Upravljanje klasama tampaa Implicitne klase Konfigurisanje klijenata Automatsko konfigurisanje klijenata CUPS konfiguracione datoteke tampanje sa ostalih sistema Podrka za LPD klijente tampanje na LPD serverima CUPS i Windows

247 248 248 249 249 249 250 251 251 252 252 253 253 254 254 255 256 256 256 257 257 257 258 258 258 259 259 260 260 261 261 262 262

ARHIVIRANJE I BACKUPStrategije kreiranja rezervnih kopija podataka Arhive Poreenje arhiva i sistema datoteka Backup Prosta ema Vieslojna kopija Koje podatke treba uvrstiti u backup ? Komprimovane kopije podataka Linux programi za backup i arhiviranje tar (tape archiver) Sintaksa i argumenti komande tar Kreiranje arhive Listanje sadraja arhive i ekstrakcija datoteka

263263 264 264 264 265 265 265 266 267 267 268 269 271

Primeri korienja tar komande Arhiviranje i kompresija compress gzip (GNU ZIP) Primer sprege tar arhivera sa gzip i compress programima cpio (copy in and out) Reimi rada i sintaksa cpio komande Opcioni argumenti Specificiranje formata arhive Kako se koristi cpio Korienje pipe mehanizma - cpio u sprezi sa komandama ls i find Primeri korienja komande cpio dump i restore Restauracija itavog sistema datoteka iz arhive

271 275 275 276 278 278 279 279 280 280 281 281 284 284

ADMINISTRACIJA PROCESAOsnovne tehnike upravljanja procesima Kreiranje procesa i izvrenje programa Dobijanje informacija o procesima Prikazivanje procesa (komanda ps) Odreivanje vremena potrebnog za izvrenje procesa (komanda time) Slanje signala i unitenje procesa Signali Unitenje procesa Komanda kill Koji signal treba poslati procesu ? Odjavljivanje sa sistema i procesi koji se izvravaju u pozadini Poslovi i prioriteti Procesi koji se izvravaju u pozadini i prioriteti Procesi koji se izvravaju u prvom planu (foreground) Procesi koji se izvravaju u pozadini (background) Prioriteti procesa Nice vrednost i prioriteti procesa Pokretanje procesa sa snienim prioritetom Promena prioriteta procesa komandom renice Grupe procesa i kontrola poslova Komanda jobs Premetanje poslova u prvi plan (komanda fg) Suspendovanje procesne grupe Premetanje poslova u pozadinu (komanda bg) Komanda wait i ekanje izvrenja poslova Primer korienja kontrole poslova Zakazivanje i periodino izvravanje komandi Komanda at Periodino izvravanje komandi cron daemon

286286 288 288 288 290 290 290 291 292 293 294 295 295 295 296 296 297 298 298 299 299 300 300 301 301 301 302 302 303 304

PODIZANJE I ZAUSTAVLJANJE SISTEMA

305

Podizanje sistema (boot) init Nivoi izvrenja (runlevels) Konfiguraciona datoteka /etc/inittab i init-getty relacija Komanda init Inicijalizacione rc datoteke Prijavljivanje na sistem Prijavljivanje na sistem preko mree Funkcija procesa login Zaustavljanje sistema Komanda shutdown Kontrola pristupa rutinama za zaustavljanje sistema

305 308 308 309 310 310 311 312 313 313 314 315

INSTALACIJA SOFTVERSKIH PAKETAStandardni formati paketa Osobine standardnih formata paketa tarball (tgz, tar.gz) RPM deb Rad sa paket menaderima RPM (Red Hat Package Manager) Instaliranje RPM paketa Uklanjanje paketa iz sistema Nadogradnja (upgrade) paketa deb (The Debian package management system) apt-get Aptitude dpkg dselect tasksel

316316 318 318 318 319 319 319 320 321 322 322 322 323 325 326 327

KONFIGURISANJE JEZGRA LINUX SISTEMARad sa modulima Programski moduli jezgra Komande za rad sa modulima Koji se problemi ne mogu reiti modulima? Prevoenje kernela Terminologija prevoenja Priprema za izradu novog jezgra Pronalaenje novih verzija kernela Snimanje starog kernela Izrada novog jezgra Podeavanje novog jezgra Pokretanje okruenja komandne linije Pokretanje okruenja sa menijima

329329 330 330 331 332 332 333 333 333 334 334 334 335

Prevoenje i testiranje novog jezgra

338

SIGURNOST I ZATITA UNIX I LINUX SISTEMAPregled zatite UNIX i Linux sistema Standardni mehanizmi zatite Metode napada Zatitne polise Standardni mehanizmi zatite pod UNIX/Linux sistemom Programi za analizu sigurnosti sistema Opta sigurnost Linux sistema Sigurnost na nivou BIOS-a Prevoenje monolitnog kernela Privremeno iskljuivanje servera sa mree LILO i datoteka /etc/lilo.conf Korisnike lozinke root korisniki nalog Promenljiva TMOUT Datoteka /etc/securetty Sistemski korisniki nalozi Jednokorisniki reim rada Zabrana korienja Ctrl-Alt-Del Datoteka /etc/fstab Uklanjanje nepotrebnog softvera Automatsko brisanje .bash_history datoteke Sigurnost skriptova u /etc/init.d direktorijumu SUID bit Datoteka /etc/services Datoteka /etc/exports Datoteke bez vlasnika Datoteke .rhosts PAM (Pluggable Authentication Modules) GNU Privacy Guard (GnuPG) Uvod u tehnologiju ifrovanja Simetrini algoritmi i algoritmi sa javnim kljuem Digitalni potpis Instaliranje GnuPG paketa Administracija GnuPG - rad sa kljuevima Kreiranje para kljueva Izvoz kljueva Uvoz kljueva Oznaavanje kljueva Provera potpisa ifrovanje i deifrovanje Linux kao mrena barijera Metode zatite mrenim barijerama Filtriranje paketa Prevoenje mrenih adresa Dvonivovska zatita

340340 340 340 341 342 342 343 343 343 344 344 345 346 346 346 347 348 348 349 350 350 350 351 351 351 352 352 353 353 354 355 355 356 357 357 359 359 359 360 360 361 361 362 362 364

iptables Filtriranje paketa NAT tabela Mangle tabela Put paketa kroz iptables Administracija iptables mrene barijere

364 364 365 366 367 368

PREGLED ZNAAJNIJIH LINUX KOMANDI GNU OPTA JAVNA LICENCAGNU OPTA JAVNA LICENCA Kako da primenite ove odredbe na vae nove programe

371 385385 390

LABORATORIJSKE VEBE LITERATURA

392 420

1UVOD U UNIX I LINUX OPERATIVNE SISTEMEUNIX 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 sistemaIstorijat 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 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 sistemaDanas postoji veliki broj razliitih vrsta UNIX sistema koje su zasnovane ili na industrijskom standardu SVR4 ili na BSD distribuciji. One vrste UNIX sistema koje potiu

2

Uvod u UNIX i Linux operativne sisteme 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 sistemJedna 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 SoftwareVeliki deo komponenti Linux operativnom sistemu dodali su nezavisni programeri i programeri GNU projekta (www.gnu.org), koji pripada slobodnoj softverskoj fondaciji (FSF - Free Software

3

Operativni sistemi: UNIX i Linux 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 distribucijeBrojne 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 sistemaDelovi 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. Linux operativni sistem sastoji se od kernela, sistemskog softvera, korisnikih aplikacija, programskih prevodilaca i njihovih odgovarajuih biblioteka (GCC - GNU C Compiler i C

4

Uvod u UNIX i Linux operativne sisteme 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 kernelTri 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 sistemaOsnovu 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, kompletan kernel kd i sve kernel strukture podataka uvaju se u istom adresnom prostoru (monolithic).

5

Operativni sistemi: UNIX i Linux 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.

Slika 1.2 Struktura Linux sistema

6

Uvod u UNIX i Linux operativne sisteme Sistemski programi izvravaju specifine upravljake poslove, kao to je konfigurisanje mrenih ureaja i protokola, punjenje kernelskih modula itd.

Modularni kernelModuli 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.Korisniki programi

Sistemske biblioteke

Minimalni kernel

Moduli kernela

Slika 1.3 Modularni Linux kernel

Znaajni delovi kernelaLinux kernel ini nekoliko znaajnih komponenti: upravljanje procesima

7

Operativni sistemi: UNIX i Linux 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 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 procesimaLinux 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;

8

Uvod u UNIX i Linux operativne sisteme 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; kontekst virtulene memorije (virtual-memory context), koji potpuno opisuje korienje memorije od strane procesa.

Procesi i nitiLinux 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 procesimaLinux 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: kredit =

kredit + prioritet 2

9

Operativni sistemi: UNIX i Linux 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 roundrobin). 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 procesaKomunikacija 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.

Upravljanje memorijomUpravljanje 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.

10

Uvod u UNIX i Linux operativne sisteme

Izvravanje korisnikih programaLinux 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 sistemLinux 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 ulaznoizlaznih operacija) neophodnih za rad sa ureajima. Na primer, korisnik moe da odtampa 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 stabloLinux 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.

11

Operativni sistemi: UNIX i Linux 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 struktureUmreavanje 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 sistemainitProces 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 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.

12

Uvod u UNIX i Linux operativne sisteme 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 terminalaFunkciju 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.

syslogKernel 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.

Periodino izvravanje komandiVeina 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 interfejsLinux 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

13

Operativni sistemi: UNIX i Linux grafiki korisniki interfejs moe da se implementira. Najee korieni window menaderi na Linux sistemima su: KDE i Gnome.

Mreni radUmreavanje 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 mreeProcedura 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 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 datotekaU 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.

14

Uvod u UNIX i Linux operativne sisteme

Elektronska potaElektronska 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.

tampanjeJedan 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. 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.

15

2BLOK UREAJI I ADMINISTRACIJA SISTEMA DATOTEKAPrilikom 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.

Blok ureaji i administracija sistema datoteka

Blok ureajiHard 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 diskoviFizike osobine i geometrija diskovaHard 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.

17

Operativni sistemi: UNIX i Linuxro tacija plo a

staza

sektor

glave za itanje i pisanje rotacione ploe

cilindar magnetne povrine

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,

18

Blok ureaji i administracija sistema datoteka 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, CDROM 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:SCSI magistrala

ID=0

ID=1

ID=2

ID=5

ID=7

CPU

sistemski sistemski disk sa CD-ROM disk disk korisnikim podacima SCSI kontroler

Slika 3.2 SCSI kontroler

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

19

Operativni sistemi: UNIX i Linux 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 /dev/hdb /dev/hdc /dev/hdd /dev/sda /dev/sdb /dev/sdc /dev/sdd IDE Primary Master IDE Primary Slave IDE Secondary Master IDE Secondary Slave prvi SCSI disk drugi SCSI disk trei SCSI disk 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 1A E I M

Disk 2B F J N

Disk 3C G K O

Disk 4D H L 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.

20

Blok ureaji i administracija sistema datoteka Disk 1A C E G

Disk 2B D F H

Disk 3 (r1)A C E G

Disk 4 (r2)B D F 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 1A D G J

Disk 2B E H K

Disk 3C F I L

Disk 4 (par)par (A, B, C) par (D, E, F) par (G, H, I) 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 1A D G par (J, K, L)

Disk 2B E par (G, H, I) J

Disk 3C par (D, E, F) H K

Disk 4par (A, B, C) F I L

Tabela 3.4 RAID 5 (rotacioni niz parnosti)

Flopi diskoviDisketni ureaj (Floppy Disk Drive) je ureaj koji koristi izmenljive medijume (diskete) za skladitenje podataka. Disketa se sastoji od fleksibilne membrane koja je obostrano premazana tankim slojem magnetne supstance i odgovara jednoj rotacionoj ploi hard

21

Operativni sistemi: UNIX i Linux 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 /dev/fd1d360 /dev/fd0h1200 /dev/fd1h1200 /dev/fd0D720 /dev/fd1D720 /dev/fd0H1440 /dev/fd1H1440 /dev/fd0E2880 /dev/fd1E2880 prvi flopi disk, ureaj 5.25incha, kapacitet 360KB drugi flopi disk, ureaj 5.25incha, kapacitet 360KB prvi flopi disk, ureaj 5.25incha, kapacitet 1.2MB drugi flopi disk, ureaj 5.25incha, kapacitet 1.2MB prvi flopi disk, ureaj 3.5incha, kapacitet 720KB drugi flopi disk, ureaj 3.5incha, kapacitet 720KB prvi flopi disk, ureaj 3.5incha, kapacitet 1.44MB drugi flopi disk, ureaj 3.5incha, kapacitet 1.44MB prvi flopi disk, ureaj 3.5incha, kapacitet 2.88MB 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. XDF format), a koristi se i ukoliko autodetekcija medijuma iz nekog razloga otkae, ili

22

Blok ureaji i administracija sistema datoteka ukoliko odgovarajui nod za disketni ureaj ne postoji. Parametri flopi diskova podeeni ovim programom uvaju se u datoteci /etc/fdprm.

Formatiranje magnetnih medijumaFormatiranje 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

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

23

Operativni sistemi: UNIX i Linux diska na kome postoji sistem datoteka. Dopuna liste neispravnih blokova u postojeem sistemu datoteka vri se kombinacijom komandi badblocks i fsck.

Formatiranje disketaNa 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 ureajiCD-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. 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

24

Blok ureaji i administracija sistema datoteka 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 datoteke /dev/hdb. Ukoliko je CD-ROM vezan na SCSI kontroler kao SCSI ureaj sa rednim brojem ID=5, korisnik e mu pristupati pomou datoteke /dev/scd5. Ukoliko se na sistemu nalazi jedan CD-ROM ureaj, njemu se moe pristupiti pomou univerzalnog noda /dev/cdrom.

Magnetne trakeUreaj za snimanje na magnetne trake (tape drive, streamer) koristi trake, sline audio kasetama. Traka je po prirodi sekvencijalni medijum - stroga sekvencijalnost ini traku sporom i krajnje neprijatnom za rad sa sistemima datoteka. S druge strane, trake su jeftine za proizvodnju, odnosno kupcu se mogu isporuiti trake velike duine, a samim tim i relativno velikog kapaciteta (2GB-20GB i vee) po pristupanim cenama. Veliki kapacitet ih ini pogodnim za backup i arhiviranje, a to su postupci koji ne zahtevaju brze ureaje i direktan pristup medijumu.

25

Operativni sistemi: UNIX i Linux

Podela diskova na particijeBoot sektori, particione tabele i tipovi particija. Podela diska na particije. Predstavljanje particija specijalnim datotekama.

Hard disk se po potrebi moe podeliti na nekoliko delova - particija (partitions), koje se ponaaju kao odvojeni diskovi. Disk se deli na particije ukoliko je na raunar sa jednim diskom potrebno instalirati vie operativnih sistema. Pri tom svaki operativni sistem koristi svoju particiju, a po potrebi moe da ita i pie datoteke na druge ukoliko kernel nudi podrku za sisteme datoteka koji se na tim particijama nalaze. Bez particija instalacija veeg broja operativnih sistema bila bi mogua samo sistemima sa dva ili vie diskova. Deljenje diska na particije (particionisanje) esto se vri i na raunarima na kojima je instaliran samo jedan operativni sistem - na taj nain se razdavajaju sistemske i korisnike datoteke, ime se pojednostavljuju postupci backupa i arhiviranja. Diskete i CD-ROM medijumi ne dele se na particije. Razlozi su sledei: diskete su medijumi malog kapaciteta, a CD-ROM medijumi se najee koriste za arhiviranje podataka pa particionisanje ne bi imalo nikakvog smisla.

Boot sektori, particione tab