40
Operativni sistemi — skripta 1 Nikola Ajzenhamer Univerzitet u Beogradu, Matematički fakultet, Studentski trg 16, Stari Grad, Beograd, Srbija mailto:[email protected] Sažetak U sledećem tekstu su navedene osnovne komande za upravljanje i osnovni prin- cipi funkcionisanja operativnog sistema Linux. Ovaj tekst predstavlja materijal za vežbe kursa „Arhitektura i operativni sistemi” koji se održava na drugoj godini smera Informatika. Više o ovome možete saznati na sledećim linkovima: 1. http://www.matf.bg.ac.rs/files/Arhitektura_i_operativni_sistemi-I1. pdf 2. http://poincare.matf.bg.ac.rs/~milena/AOS.htm 1 Materijal je preuzet od Milene Vujošević-Janičić (http://poincare.matf.bg.ac.rs/~milena)

NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Operativni sistemi — skripta1

Nikola Ajzenhamer

Univerzitet u Beogradu, Matematički fakultet,Studentski trg 16, Stari Grad, Beograd, Srbija

mailto:[email protected]

Sažetak

U sledećem tekstu su navedene osnovne komande za upravljanje i osnovni prin-cipi funkcionisanja operativnog sistema Linux. Ovaj tekst predstavlja materijal zavežbe kursa „Arhitektura i operativni sistemi” koji se održava na drugoj godinismera Informatika. Više o ovome možete saznati na sledećim linkovima:

1. http://www.matf.bg.ac.rs/files/Arhitektura_i_operativni_sistemi-I1.pdf

2. http://poincare.matf.bg.ac.rs/~milena/AOS.htm

1Materijal je preuzet od Milene Vujošević-Janičić (http://poincare.matf.bg.ac.rs/~milena)

Page 2: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Sadržaj1 Uvod 3

1.1 Osnovni aspekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.1 Operativni sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Resursi računara . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Ostali aspekti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Linux 52.1 Slobodni softver i licence . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 GNU i X Window sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Osnovne komande šela 83.1 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2 Struktura direktorijuma i imenovanje . . . . . . . . . . . . . . . . . . . . 83.3 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Najvažniji direktorijumi sistema 114.1 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Osnovne komande – Fajlovi i direktorijumi 145.1 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6 Korisnici i grupe 176.1 Korisnici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.2 Grupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186.3 Osnovne komande sa korisnicima i grupama . . . . . . . . . . . . . . . . 19

6.3.1 Korisnici – osnovne komande . . . . . . . . . . . . . . . . . . . . . 196.3.2 Grupe – osnovne komande . . . . . . . . . . . . . . . . . . . . . . 21

6.4 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

7 Vlasništvo nad fajlovima i prava pristupa 247.1 Vlasništvo nad datotekama . . . . . . . . . . . . . . . . . . . . . . . . . . 247.2 Prava pristupa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247.3 Specijalne datoteke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277.4 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

8 Fajl sistem 288.1 ext2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

8.1.1 Inode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1

Page 3: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

8.1.2 Direktorijumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318.2 Evidencija transakcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328.3 Virtualni fajl sistem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328.4 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

9 Procesi 349.1 init i hijerarhija procesa . . . . . . . . . . . . . . . . . . . . . . . . . . . 359.2 Vrste procesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359.3 Signali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369.4 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2

Page 4: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

1 Uvod

1.1 Osnovni aspekti1.1.1 Operativni sistem

Ono što se danas podrazumeva pod minimalnim računarom jeste unija CPU-a (pro-cesor), memorije i I/O (ulaz i izlaz). Prvi računari nisu imali operativni sistem već je sahardverom komunicirao direktno čovek (pomoću prekidača i lampica). Unapređe nje I/Ouređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batchobrada, multiprogramiranje, timesharing, multitasking...). Sistemski softver olakšava radkorisniku ali zato računar ima više posla.

Operativni sistem je softver koji upravlja resursima računara. Resursi računarasu procesor, memorija, fajl sistem, ulazni i izlazni uređaji i mrežni resursi. Neki od po-znatijih operativnih sistema su Windows, Unix, Linux, Mac OS...

Jezgro operativnog sistema se naziva kernel. Kernel kontroliše resurse (upravlja pro-cesima, memorijom, diskom i pruža pristup drugom hardveru) i pruža usluge koje suvezane za njih drugim aplikacijama. Pored kernela postoji i drugi sistemski softver kojije deo operativnog sistema. Ovaj softver može upravljati fajlovima, pružati grafički in-terfejs, služiti za konfigurisanje sistema...

1.1.2 Resursi računara

„Istovremeno” izvršavanje više procesa naziva se multitasking. Operativni sistemdodeljuje različitim procesima po deo procesorskog vremena za izvršenje njihovih in-strukcija. Postoje različite strategije podele vremena izmedu procesa, podela vremenamože biti realizovana putem dobrovoljnog predavanja procesora drugom procesu (starijisistemi), ili oduzimanjem procesora putem hardverskog prekida (interrupt).

Operativni sistem dodeljuje memoriju procesima i vrši preslikavanje iz virtualnihadresa u fizičke adrese. Adresni prostori različitih procesa su razdvojeni. Virtualna me-morija predstavlja korišćenje diska kao proširenja memorije. Značajno povećava količinuraspoložive memorije, ali utiče na brzinu izvršavanja programa.

Fajl sistem predstavlja način organizovanja zapisivanja podataka na disku. Osnovnejedinice su fajlovi koji su organizovani u direktorijume. Realizacija ove strukture variraod sistema do sistema. Poznatiji fajl sistemi su FAT, NTFS, ext2, ext3, ReiserFS...

Umreženi računari mogu da koriste neke resurse drugih računara kao svoje. Tipičan

3

Page 5: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

primer je korišćenje štampača, skenera, fajlova... Najpoznatiji protokol mrežne komuni-kacije je TCP/IP.

1.2 Ostali aspektiKad je reč o zaštiti operativnih sistema, treba voditi računa ko sme da pristupi raču-

narima i, kada je već pristupio, šta sme sve da radi. Koristi se sistem autorizacije pomoćukorisničkih imena i lozinki čime se korisnik identifikuje i dobija pravo pristupa računaru.Korisnici imaju različite nivoe privilegija što utiče i na izvršavanje njihovih programa.

Korisnički interfejs operativnog sistema je program koji ostvaruje vezu izmedukorisnika i operativnog sistema. On je nadograden na operativni sistem i ne predstavljanjegov osnovni deo. Korisnički interfejs može biti:

• Linijski (tekstualni)

• Ekranski (tekstualni ili grafički)

1.3 Pitanja1. Šta je operativni sistem?

2. Nabroj primere najpoznatijih operativnih sistema.

3. Kako se naziva jezgro operativnog sistema?

4. Koji su osnovni resursi računara?

5. Šta kontroliše kernel?

4

Page 6: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

2 LinuxLinux je kernel nastao početkom 90-ih sa željom da se stvori jednostavan i lako do-

stupan operativni sistem nalik Unix operativnim sistemima.

Tvorac kernela je Linus Torvalds.

Prateći softver može da se razlikuje od distribucije do distribucije. Sve distribucijemožete pronaći na sledećem linku: http://en.wikipedia.org/wiki/List_of_Linux_distributions, a najpoznatije među njima su Debian, Red Hat, Slackware, Ubuntu...Izvorni kod Linux-a se dobija uz ove distribucije.

2.1 Slobodni softver i licenceLinux predstavlja najbolji primer otvorenog (open source) i slobodnog softvera (free

software). Postoji masovni pokret u svetskoj računarskoj zajednici koji se bori za slo-bodni softver.

Free Software Foundation (FSF) propagira 4 korisničke slobode:

• Sloboda pokretanja softvera u bilo koje svrhe

• Sloboda proučavanja funkcionisanja softvera i njegovog prilagođavanja sopstvenimpotrebama. Preduslov je dostupnost izvornog koda.

• Sloboda distribuiranja kopija.

• Sloboda unapređivanja softvera i objavljivanja ovih unapređenja.

Softver se smatra slobodnim ako zadovoljava sve pomenute uslove. Više o ovomemožete pronaći na linku: http://www.fsf.org/

5

Page 7: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Richard Stallman je osnivač GNU projekta i FSF.

Copyleft predstavlja vid zaštite autorskih prava (copyright) koja garantuje sve po-menute slobode korisnicima softvera pod uslovom da kopirani ili izvedeni softver budedistribuiran pod nepromenjenim uslovima. General Public Licence je licenca pod ko-jom se registruje i distribuira slobodni softver i čiji je cilj očuvanje slobode softvera (zarazliku od licenci kao što je EULA). EULA (End-user license agreement) je ugovorizmeđu kupca i proizvodača softvera koji je kupac u obavezi da prihvati.

2.2 GNU i X Window sistemKada se kaže Linux najčešće se misli na distribuciju Linux-a iako je Linux naziv samo

za kernel operativnog sistema. Distribucija operativnog sistema koji ima Linux kernel usebi najčešće sadrži GNU softver i grafički korisnički interfejs X Window.

GNU’s Not Unix (GNU) projekat pokrenut 1984, predstavlja najznačajniji pro-jekat vezan za slobodni softver. Pokrenut je od strane FSF. Cilj mu je razvoj slobodnogsoftvera koji može da parira zaštićenom softveru bilo koje namene. Uglavnom se osla-nja na operativne sisteme slične Unix-u, a pre svega na Linux. GNU alati predstavljajuosnovni deo Linux distribucija i između ostalog sadrže veliku količinu kvalitetnog progra-merskog softvera.Više o ovome možete saznati na linku: http://www.gnu.org/

GNU logo

X Window sistem predstavlja grafički korisnički interfejs za operativne sisteme sličneUnix-u.

6

Page 8: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Projekat organizacije X.Org Foundation

Više o ovome možete saznati na linku: http://www.x.org/

Potpuno je nezavisan od operativnog sistema, za razlku od npr. Windows-ovog grafičkogokruženja. Dve glavne komponente sistema su:

• Server

• Window manager

X Window Server pruža funkcije niskog nivoa za interakciju sa grafičkim hardve-rom, pa je stoga zavisan od sistema na kome treba da se izvršava.

X Window Manager se naslanja na server i pruža grafički interfejs. Pošto se oslanjana server, nema direktne zavisnosti od sistema na kome se izvršava, pa se grafički interfejsmože jednostavno menjati promenom window manager-a koji se koristi.

Više o ovome možete saznati na linku: http://xwinman.org/

2.3 Pitanja1. Koje su najpoznatije distribucije Linux-a?

2. Koje slobode propagira FSF?

3. Šta garantuje GPL licenca?

4. Koje GNU alate smo do sada koristili?

5. Koje su osnovne komponente grafičkog korisničkog interfejsa X Window?

7

Page 9: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

3 Osnovne komande šela

3.1 ShellShell je program koji preuzima komande sa tastature i prosleduje ih operativnom

sistemu da ih izvrši – command line interface (CLI). Većina Linux sistema koristi pro-gram bash (Bourne Again SHell), unapredenu verziju programa sh koju je napisao SteveBourne. Za proveru koji se shell koristi može se upotrebiti komanda:

ps -p $$

Programi koji omogućavaju komunikaciju sa šelom su: xterm, rxvt, konsole, kvt, gnome-terminal, nxterm, eterm, terminal.

3.2 Struktura direktorijuma i imenovanjeOperativni sistemi nalik Unix-u imaju sličnu strukturu najvažnijih direktorijuma –

hijerarhijsku strukturu direktorijuma (to znači da svi direktorijumi počinju (granaju seod osnovnog direktorijuma)). Osnovni, koreni, direktorijum predstavlja direktorijumpod kojim se logički nalaze svi ostali direktorijumi u sistemu. Koren drvoidne strukturedirektorijuma označava se sa

/.

Imena fajlova i foldera pod Linuxom su case sensitive – dakle, razlikujemo datotekedat1 i Dat1. Imena fajlova koja počinju sa tačkom su tzv. skriveni fajlovi – oni nećebiti prikazani ukoliko se to eksplicitno ne naglasi.

U Linux-u ne postoji koncept ekstenzije koja odreduje svrhu/sadržaj datoteke, već seto odreduje na drugi način. Iako su dozvoljeni interpunkcijski znaci u imenima datotekai foldera, oni se nikako ne preporučuju!

Grafički interfejs nam omogućava da pristupamo direktorijumima i datotekama, a uokviru šela koriste se odgovarajuće komande.

Pomoću info komande možemo dobiti informacije o ostalim komandama i opcijama.Skoro svaka komanda i program imaju neku od opcija –help ili -h, –version koje daju višeinformacija, tako da nije neophodno znati napamet sve opcije.

pwd

– Print working directory, štampa putanju trenutnog direktorijuma

cd

8

Page 10: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

– Change directory, promena direktorijuma, argument može da bude apsolutna putanjaili relativna putanja.

Apsolutna putanja počinje od korenog direktorijuma, dakle ima / na početku. Primer:cd /home/milena/nastava

Relativna putanja određuje se u odnosu na tekući direktorijum pri čemu se . odnosina tekući direktorijum, a .. na roditeljski direktorijum.Primeri:• Komandom cd ./aos/cas10 se u okviru tekućeg direktorijuma ulazi u poddirektorijumaos i njegov poddirektorijum cas10• cd aos/cas10 – tačka na početku nije neophodna• Komandom cd .. se menja direktorijum u roditeljski• Komandom cd ../cas09 se menja direktorijum u cas09 koji se nalazi u roditeljskomdirektorijumu• Komanda cd bez argumenta postavlja nas u home direktorijum.

ls

– Listanje sadržaja direktorijuma koji se navodi kao argument, ako se ništa ne navedepodrazumeva se tekući direktorijum. Boje nam omogućavaju da raspoznajemo koji je tipfajla u pitanju: plavo — direktorijum, crveno — arhiva, belo — tekstualni fajl, pink —slika, cyan — linkovi, žuto — uređaji, zeleno — programi (po default-u)

Neke od opcija komande ls su:

• –R — izlistaj poddirektorijume rekurzivno

• –a — izlistaj i datoteke čije ime počinje tačkom (skrivene datoteke)

• –l — izlistaj i detalje vezane za datoteku (prava pristupa, broj hard linkova, vlasnikdatoteke, grupa kojoj datoteka pripada, velicina, datum modifikacije/kreiranja, imefajla/direktorijuma)

• –t — sortiraj prikaz prema datumu i vremenu modifikovanja datoteka

• –d — izlistaj samo direktorijume

• –1 — izlistaj jednu datoteku po liniji

• ...

Komande za listanje teksta su more i less. Komande more — ? i less — h dajuinstrukcije kako se koriste.

9

Page 11: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Komande za jednostavan izlaz su echo — listanje jedne linije teksta, cat — nadove-zuje fajlove i štampa ih na standardni izlaz i tac — nadovezivanje fajlova u obrnutomredosledu. Opcije komande cat su:

• -n — dodaje brojeve svim linijama

• -b — dodaje brojeve svim nepraznim linijama

Neki od editora koji pružaju osnovne kontrole nad tekstualnim datotekama su: pico,nano, joe, emacs, ...

file

— Komanda koja određuje vrstu datoteke: da li je tekstualna datoteka, izvršni fajl, bashskript, deljena biblioteka, arhiva, jpeg, html... Primeri upotrebe komande:

file /bin/cpfile /bin/znew

3.3 Pitanja1. Sta je šell?

2. Koji program omogućava komunikaciju sa šelom?

3. Kako se označava koren strukture direktorijuma?

4. Da li imena fajl1 i Fajl1 označavaju istu datoteku?

5. Kako se označavaju skriveni fajlovi?

6. Koje su ekstenzije neophodne i zašto?

7. Koje su tri osnovne komande za navigaciju?

8. Kojom komandom se izlistava putanja tekućeg direktorijuma?

9. Kojom komandom se menja tekući direktorijum?

10. Kojom komandom se izlistava sadržaj direktorijuma?

11. Kojom komandom se izlistava sadržaj direktorijuma, a da se pritom prikažu svidetalji vezani za datoteke?

12. Kojom komandom se izlistava sadržaj direktorijuma, a da se pritom prikaže ... ?

13. Kojom komandom se može odrediti vrsta datoteke?

10

Page 12: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

4 Najvažniji direktorijumi sistema/bin — binariesDirektorijum /bin predstavlja standardnu lokaciju za čuvanje izvršnih fajlova neophod-nih za ostvarivanje minimalne funkcionalnosti sistema. Komandom ls /bin se možeizlistati sadržaj ovog direktorijuma.

PATH je lista direktorijuma po kojima sistem pretražuje programe kada se zada ko-manda. /bin direktorijum se podrazumevano nalazi u PATH-u. To znači da se svakiizvršni fajl koji se nalazi u /bin direktorijumu može pokrenuti iz komandne linije navo-denjem njegovog imena i pritiskom na ENTER.Sadržaj PATH-a može da se izlista sledećom komandom:

echo $PATH

Dodavanje direktorijuma u PATH se vrši na sledeći način:

export PATH=$PATH:/putanja/koju/zelimo/da/dodamo/

/boot sadrži fajlove neophodne za podizanje sistema (npr. Grub ili Lilo) i sam Kernel.

/dev — devices (uredaji)Direktorijum /dev sadrži specijalne fajlove koji predstavljaju razne periferne uređaje ilipseudo uređaje (npr. /dev/null koji odbacuje sve što mu se prosledi, /dev/zero kojistalno vraća NULL karaktere, /dev/full koji uvek vraća grešku ENOSPC što znači danema više mesta na uređaju).

Direktorijumi /etc i /sbin sadrže sistemske konfiguracione i izvršne fajlove.

Direktorijum /home se obično koristi za korisničke home direktorijume, ali izbor ovogimena nije obavezujuć.

Svi korisnički direktorijumi se nalaze u okviru /home direktorijuma osim direktorijumza root korisnika, on se nalazi u /root direktorijumu. Za listanje sadržaja ovog direk-torijuma potrebne su root privilegije:ls -a /root (uključivanjem opcije -a štampaju se i skriveni fajlovi)

Direktorijum /lib sadrži razne biblioteke bitne za druge izvršne fajlove (tj. za onekoji se nalaze u /bin i /sbin direktorijumu), kao i drajvere za razne uredaje. Primer:ls /lib, ls /lib/i386-linux-gnu/

/lost+found sadrži fajlove koji se odnose na lokacije na disku koje su označene kao

11

Page 13: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

korišćene, ali nisu svrstane ni u jedan direktorijum. Za listanje sadržaja ovog direktori-juma potrebne su root privilegije.

/media direktorijum služi za privremeno smeštanje uklonjivih uređaja, npr. USB uređaja.

/mnt direktorijum služi za privremeno vezivanje drugih fajl sistema.Da li će nešto biti smešteno u /mnt ili u /media direktorijum, zavisi od sistema, uređajai od toga da li se smeštanje vrši automatski ili ručno.

/opt služi za smeštanje opcionog softvera (bitniji za UNIX nego za Linux).

/proc direktorijum predstavlja trenutne procese na osnovu unosa u tabeli procesa kojuodržava kernel. Proces kod koga je ID jednak 1 je init proces — to je prvi proces koji sestartuje prilikom podizanja operativnog sistema.System monitor je aplikacija za praćenje stanja procesa. U šelu se praćenje stanja procesamože postići komandom top.

/sys sadrži informacije koje su vezane za hardver.

/tmp sadrži privremene fajlove (npr. pdf fajl koji se „otvori” sa interneta).

/var sadrži razne podatke koji se menjaju tokom vremena kao što su dokumenti kojičekaju na štampu, elektronska pošta, log fajlovi raznih servisa i slično.

/srv (Server data) direktorijum sadrži podatke o servisima koje sistem obezbeđuje.

/usr direktorijum (User System Resources) jedan je od najvažnijih direktorijuma jersadrži korisničke programe, dokumentaciju, biblioteke, zaglavlja, .../usr/doc je direktorijum koji sadrži dokumentaciju./usr/include sadrži zaglavlja koja omogućavaju pristup mogućnostima sistema i raznimprogramskim bibliotekama. (Vežba): Izlistati sadržaj ovog direktorijuma./usr/share sadrži podatke deljene između korisnika ili umreženih sistema./usr/src sadrži izvorni kod (kernel i slično).U /usr/bin se nalaze izvršni fajlovi programa koji su deo Linux sistema i razne shellskripte (gcc, g++, firefox, ...). Isprobati komandu:

ls -l /usr/bin | more

12

Page 14: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

4.1 Pitanja1. Navesti proizvoljih 5 najvažnijih direktorijuma Unixolikog sitema i opisati šta se u

tim direktorijumima nalazi.

2. Šta se nalazi u /bin direktorijumu?

3. Šta se nalazi u ... direktorijumu?

4. U kom direktorijumu se nalaze izvršni fajlovi neophodni za ostvarivanje minimalnefunkcionalnosti sistema?

5. Gde se nalazi datoteka stdlib.h?

6. Gde se nalazi biblioteka libc?

7. Gde se nalazi gcc kompajler?

13

Page 15: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

5 Osnovne komande – Fajlovi i direktorijumi

touch

— Kreiranje novog praznog fajla ili izmena timestamp-a starog fajla. Može imati višeargumenata, a opcije utiču na način modifikovanja timestamp-a. Isprobati opcije -r,-t, -m, -a.

Vežba:

1. Napraviti datoteku vreme

2. Izlistati i proveriti vreme modifikacije

3. Promeniti datoteci vreme vreme modifikacije u 3. januar 2003. godine

4. Izlistati i proveriti vreme modifikacije

5. Promeniti datoteci vreme vreme pristupa u 15. januar 2030. godine

6. Izlistati i proveriti vreme pristupa

7. Promeniti vreme na trenutno vreme

mkdir

— Pravi direktorijum. Opcija -p pravi roditeljske direktorijume ukoliko je potrebno,opcija -v štampa na standardni izlaz koji su direktorijumi kreirani.

Vežba:

1. Napraviti iz komandne linije direktorijum aos, i u njemu poddirektorijume aos1,aos2, aos3, i u direktorijumu aos1 prazne datoteke text1, text2 i text3

2. Rekurzivno odštampati sadržaj direktorijuma aos.

cp

— Kopira source u destination ili source u direktorijum. Opcija -i upozorava pre negošto se prepiše neki fajl, opcija -r rekurzivno kopira sadržaj direktorijuma, -v opcijaobjašnjava šta se radi, -s napravi simbolički link umesto kopiranja.

mv

— Preimenuje source u destination, ili premesti source u directory. Opcije su: -i, -v

14

Page 16: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

rm

— Briše fajl ili direktorijum. Opcije su: -i, -v, opcija -r briše rekurzivno sadržajdirektorijuma, -f opcija ignoriše nepostojeće fajlove i nikada ne javlja ništa (force delete).

rmdir

— Briše direktorijum. Opcija -p briše i sve pretke u putanji do tog direktorijuma

which

— Štampa putanju do programa koji bi bio izvšen kada bi se pozvao, npr. which mkdirštampa gde se nalazi program mkdir

locate

— Locira sve fajlove koji sadrže dati string

Vežba:

1. Kopirati datoteku aos/aos1/text1 u direktorijum aos/aos2

2. Kopirati datoteku aos/aos1/text1 u direktorijum aos/aos2 koristeći opciju -i(uključiti i -v)

3. Preimenovati datoteku aos/aos1/text1 u aos/aos1/text

4. Kopirati sadržaj direktorijuma aos1 u aos3 (sa i bez samog direktorijuma aos1).

5. Obrisati sadržaj direktorijuma aos3.

5.1 Pitanja1. Kojom komandom se izlistava sadržaj direktorijuma?

2. Kojom komandom se menja tekući direktorijum?

3. Nabroj 3 opcije komande ls i objasni koje dejstvo imaju.

4. Kojom komandom se pravi novi direktorijum?

5. Kojom komandom se briše direktorijum koji nije prazan?

6. Navesti komandu kojom se izlistava putanja do programa ls.

7. Koje je dejstvo sledeće komande: ls -l -a /

15

Page 17: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

8. Koje je dejstvo sledeće komande: rm -r aos

9. Koje je dejstvo sledeće komande: cp -i aos/text .

10. Koje je dejstvo sledeće komande: mkdir -p aos/3/2/

16

Page 18: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

6 Korisnici i grupe

6.1 KorisniciKorisnički nalozi i autorizacija su najvažnije nadležnosti administratora sistema.

Korisnički nalozi predstavljaju mehanizam pomoću koga sistem raspoznaje korisnike idaje im ili uskraćuje informacije i resurse sistema.

Na UNIX sistemima postoje dve vrste korisnika:

• Sistemski korisnici, koji nastaju prilikom instalacije operativnog sistema i služeza specijalne namene, a ne za prijavljivanje na sistem. Jedini sistemski korisnikkoji se može prijaviti na sistem je superuser root. Root ima sve privilegije i služiisključivo za administraciju sistema.

• Regularni korisnici, koji služe za prijavljivanje na sistem. Regularne korisnikekreira superuser.

Autorizacija je mehanizam pomoću kog se proverava identitet korisnika. Korisnici seidentifikuju svojim korisničkim imenom, a identitet potvrduju korišćenjem lozinke. Svakikorisnik ima svoj korisnički broj (UID – User ID). UID za root je 0, od 1-99 su rezervisaniza posebne unapred definisane naloge, 100-999 su rezervisani za sistemske naloge i grupe,od 1000 pa naviše su korisnički nalozi i grupe.

Baza podataka koja opisuje sve korisnike UNIX sistema realizovana je u obliku jedno-stavne tekstualne datoteke /etc/passwd – ova datoteka čuva osnovne podatke potrebneza logovanje.U datoteci /etc/shadow, kojoj može da pristupi samo root, nalaze se šifrovane lozinkesvih korisnika sistema i informacije o vremenskim ograničenjima.

/etc/passwd – čuva osnovne podatke potrebne za logovanjeusername:x:UID:GID:user-information:home-directory:login-shell• username – ime korisnika• x – označava da se kriptovana lozinka nalazi u datoteci /etc/shadow• UID – User ID• GID – Group ID• user-information – detalji o korisniku (GECOS)• home-directory – putanja do korisničkog direktorijuma• login-shell – program koji se startuje prilikom svakoglogovanja korisnika, najčešće command-line interpreter (shell)

Ispis ove datoteke se može izvršiti pomoću: cat /etc/passwd ili more /etc/passwd

17

Page 19: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

/etc/shadow – čuva kriptovane lozinke korisnika sistemausername:encoded-password:changed:minlife:maxlife:warn:inactive:expires:unused• username – korisničko ime• encoded-password – kriptovana lozinka korisnika ili neki specijalni slučajevi, npr ”!”ako nema lozinke, ”*” ako je nalog zaključan tako da korisnik ne može da se uloguje, ”!!”istekla lozinka• changed – broj dana od 1 januara 1970. godine od promene lozinke• minlife – broj dana pre nego što se dozvoli promena lozinke (0 znači da može odmahda se promeni)• maxlife – broj dana pre nego što se zahteva promena lozinke (99999 praktično znači dane mora da se menja nikada)• warn – broj dana pre nego što istekne lozinka kada korisnik dobija upozorenje (obično7)• inactive – broj dana nakon što istekne lozinka nakon čega se i korisnik isključuje• expires – dan nakon 1 januara 1970. godine kada se korisnku ukida pravo korišćenjasistema• unused – polje rezervisano za buduću upotrebu

Ispis ove datoteke (za koji su potrebne root privilegije može se obaviti na sledeći na-čin: cat /etc/shadow

Vremenska ograničenja lozinki se mogu pregledati i promeniti komandomchage chage -l korisnik

6.2 GrupeSvaki korisnik UNIX sistema mora pripadati najmanje jednoj grupi, a dodatno može

pripadati većem broju grupa i u svima je ravnopravan član. Grupe imaju imena i svojegrupne brojeve (GID – Group ID).

Na UNIX sistemima postoje dve vrste grupa:

• Sistemske, koje nastaju prilikom instalacije UNIX sistema i služe za specijalnenamene. Grupa root spada u sistemsku grupu - korisnici koji su članovi ove grupeimaju relativno visoka ovlašćenja.

• Regularne, koje kreira superuser, a koje se koriste u svrhe lakše administracije(npr. studenti, profesori...).

Regulisanjem članstva u grupama kontroliše se pristup resursima sistema (datotekama,štampačima itd...). Primarna grupa korisnika je obavezan atribut svakog korisnika.

18

Page 20: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

To je grupa čiji je GID naveden u datoteci /etc/passwd u liniji kojom je korisnik opisan,odnosno to je grupa kojoj se dodeljuju objekti sistema datoteka koje korisnik kreira.

Osnovne datoteke grupa su:

/etc/group – ova datoteka čuva podatke o grupamagroup-name:x:GID:user-list• group-name – ime grupe• x – kriptovana lozinka ili x koje označava da se lozinka nalazi u /etc/gshadow datoteci• GID – identifikator grupe• user-list – korisnici koji pripadaju grupi

Izlistavanje se vrši pomoću cat /etc/group.

/etc/gshadow – datoteka koja čuva podatke o grupama, uključujući i lozinkegroup-name:encoded-password:group-admins:user-list• group-name – ime grupe• enc-password – kodirana lozinka, koristi se kada korisnik koji nije član grupe želi daostvari prava grupe, * i ! označavaju da korisnici ne mogu da koriste lozinku da pristupegrupi, ali da za članove grupe nije potrebna lozinka• group-admins – lista admninistratora grupe, administrator može da doda ili obriše čla-nove grupe• user-list – korisnici koji pripadaju grupi

Izlistavanje se vrši pomoću cat /etc/gshadow.

6.3 Osnovne komande sa korisnicima i grupama6.3.1 Korisnici – osnovne komande

Prilikom dodavanja korisnika neophodni su sledeći koraci:

• Odredivanje korisničkog imena, korisničkog broja, primarne grupe, ostalih grupa ishell-a (shell obezbeduje interfejs prema operativnom sistemu).

• Postavljanje lozinke.

• Postavljanje inicijalizacionih fajlova.

• Kreiranje home direktorijuma i davanje vlasništva nad njime korisniku.

Osnovne komande:

19

Page 21: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

adduser

– Kreira novog korisnika. Pregledati razne opcije pomoću adduser –help, interaktivnakomanda (postoji i useradd). Inicijalno okruženje (profil) kreira se na osnovu datotekakoje se nalaze u direktorijumu /etc/skel. Administrator sistema u ovaj direktorijumsmešta datoteke koje će činiti podrazumevani profil za sve novokreirane korisnike.

userdel

– Briše postojećeg korisnika. Opcija −r briše i njegov korisnički direktorijum

usermod

– Vrši promene kod postojećeg korisnika. Pregledati razne opcije pomoću usermod –help

Ostale komande:

• chfn – Menja informacije o korisniku, komanda je interaktivna• chsh – Menja shell korisniku, komanda je interaktiva• passwd – Menja informacije o lozinki korisnika, pregledati razne opcije passwd –help• finger – Pokazuje informacije o trenutno ulogovanim korisnicima

Vežba:

1. Kreirati korisnika „ana” i pogledati izmene u datoteci /etc/passwd i u /home di-rektorijumu

2. Kreirati korisnika „nikola” i opcijama komande podesiti da postaviti UID na 1111,upisati lične informacije, podesiti da se njegov korisnički direktorijum zove „Nikola”kao i da može da se loguje bez lozinke (za komandu useradd dodavanjem opcije-G nopasswdlogin, za komandu adduser, nakon inicijalnog kreiranja komandomadduser nikola nopasswdlogin)

3. Proveriti /etc/passwd datoteku i /home direktorijum

4. Obrisati korisnika „nikola”

5. Proveriti sadržaj /etc/passwd datoteke i /home direktorijuma

6. Obrisati direktorijum /home/Nikola

7. Kreirati ponovo korisnika „nikola”

8. Obrisati korisnika „nikola” korišćenjem -r opcije

20

Page 22: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

9. Proveriti sadržaj /etc/passwd datoteke i /home direktorijuma

10. Promeniti korisniku „ana” lične podatke, proveriti u /etc/passwd

11. Preimenovati korisniku „ana” home direktorijum u „Ana”, proveriti u /home

12. Promeniti korisniku „ana” korisničko ime u „anna”, proveriti u /etc/passwd

13. Promeniti korisniku „anna” korisnički ID u 2222, proveriti u /etc/passwd

14. Obrisati korisnika „anna” kao i njen korisnički direktorijum

15. Obrisati sve što je ovom prilikom kreirano

Inicijalizacioni fajlovi:

Prvi nađeni od fajlova .bash_profile, .bash_login, .profile iz korisnikovog homedirektorijuma se izvršava prilikom njegovog logovanja na sistem (bilo preko svoje mašineili preko ssh) i na taj način se konfiguriše shell (inicijalna vrednost ovih datoteka se po-vlači iz /etc/skel/).

.bashrc se izvršava prilikom pokretanja novog shell-a (subshell), tj. ako je korisnikveć ulogovan i otvara novi terminalni prozor ili iz terminala pokreće /bin/bash.

Datotekama .bash_profile i .bashrc se podešava radno okruženje: u njima se moguzadati sve komande koje se mogu zadati bash-u, mogu se izvršiti pozivi komandi iz drugihdatoteka, podesiti aliasi, prilagoditi način prikaza, dodati promenljive u PATH, ispisivatirazličite poruke...Primer:http://tldp.org/LDP/abs/html/sample-bashrc.htmlhttp://tldp.org/LDP/Bash-Beginners-Guide/html/index.html

6.3.2 Grupe – osnovne komande

Svaki korisnik mora pripadati najmanje jednoj grupi čiji je GID naveden u opisu kori-snika u datoteci /etc/passwd. Primarna grupa se odreduje prilikom kreiranja nalogai ovoj grupi pripadaju datoteke i direktorijumi koje korisnik kreira. Sekundarne grupesu sve ostale grupe kojima korisnik pripada.

Provere:

groups – Izlistava grupe kojima pripada dati korisnik (ili ukoliko nije zadat argument

21

Page 23: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

onda za zadati proces)id – Štampa infomacije o korisniku koji je naveden kao argument, ili o trenutno ulogo-vanom korisnikuwhoami – ime korisnika koji odgovara trenutnom id-u

Kreiranje, brisanje i modifikacija:

groupadd – Dodaje novu grupu u sistemgroupdel – Briše grupugroupmod – Modifikuje grupu u zavisnosti od opcija. Opcija -g menja GID, a opcija -nmenja ime grupe

Vežba:

1. Kreirati grupu „studenti”, postaviti da je GID 1234, proveriti u /etc/group

2. Napraviti korisnike „nenad”, „veljko”, „marko”, „tijana” i „milica” (sa njihovimprimarnim grupama)

3. Dodati korisnike „nenad”, „veljko”, „marko”, „tijana” i „milica” tako da pripadajugrupi „studenti”, proveriti u /etc/passwd i u /etc/group (koristiti usermod saopcijom -G)

4. Promeniti grupi ime

5. Izbrisati sve pomenute korisnike (uključujući i njihove home direktorijume) i grupu

6.4 Pitanja1. Kojom komandom se kreira korisnik čije je korisničko ime „aleksandar”, korisnički

direktorijum /home/Aleksandar, lični podaci „Aleksandar Ilic” i koji može da seloguje u sistem bez lozinke?

2. Kojom komandom se briše postojeći korisnik tako da njegov korisnički direktorijumostane u sistemu?

3. Kojom komandom se brišu svi podaci o korisniku uključujući i njegov korisničkidirektorijum?

4. Kojom komandom se modifikuju informacije o korisniku?

5. Koji su osnovni inicijalizacioni fajlovi, kada se pokreću i šta se u njima nalazi?

22

Page 24: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

6. Kojom komandom se kreira grupa?

7. Kojom komandom se briše grupa?

8. Napisati komandu kojom se grupi „osnovci” menja ime u „djaci”.

23

Page 25: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

7 Vlasništvo nad fajlovima i prava pristupa

7.1 Vlasništvo nad datotekamaSvaka datoteka pripada nekom korisniku (vlasnik, user) i nekoj grupi. Kontrola prava

nad datotekama je prilično fleksibilna. Pošto korisnik može pripadati većem broju grupa,prava nad datotekama mu se daju njegovim pridruživanjem grupi kojoj datoteka pripada.

Vlasnici nove datoteke su korisnik koji ga je napravio i njegova primarna grupa. Pro-mena vlasništva za koju su potrebne root privilegije može se obezbediti sledećim koman-dama:chown – promena vlasništva, opcija -R rekurzivno menja i svim poddirektorijumimachgrp – promena grupe, opcija -R rekurzivno menja i svim poddirektorijumima

Vežba:

1. Kreirati datoteku knjiga, proveriti sa ls -l

2. Promeniti datoteci vlasnika u ana, proveriti sa ls -l

3. Promeniti datoteci grupu u ana grupu, proveriti sa ls -l

4. Obrisati datoteku

7.2 Prava pristupaPrava pristupa se obeležavaju sa 10 karaktera, npr. -rwxrw-r–.

Prvi znak može da bude:• d = directory• - = regular file• l = symbolic link• s = Unix domain socket• p = named pipe• c = character device file• b = block device file

Postoje 3 klase pristupa datoteci:• U — pristup koji je dozvoljen vlasniku• G — pristup koji je dozvoljen grupi• O — pristup koji je dozvoljen ostalima

Vrste pristupa su:

24

Page 26: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

• Čitanje — r — nad datotekom može da se otvori i čita, nad direktorijumom može dase izlista sadržaj.• Pisanje — w — nad datotekom može da se izmeni sadržaj, nad direktorjumom moguda se kreiraju i brišu datoteke.• Izvršavanje — x — nad datotekom može da se izvrši (kao program), nad direktori-jumom može da se u njega uđe i pristupi datotekama u direktorijumu, npr. koristeći cdkomandu (ali ne i da se lista sadržaj direktorjuma, za to je potrebno da se ima r dozvola).

Osnovna komanda:

chmod — Menja prava pristupa datoj datoteci/direktorijumu. Argumenti mogu da budusimbolički ili numerički.

Simboličke oznake:• a – all• u – user• g – group• o – others• dodavanje prava +• oduzimanje prava -• postavljanje =

Primeri upotrebe:chmod a-r text — oduzima pravo čitanja svimachmod o+r text — daje pravo čitanja ostalimachmod u=rw i chmod go= text — vlasnik dobija prava r i w, grupa i ostali ništa

Numerički argumenti:Da bi se dobila odgovarajuća opcija, potrebno je sabrati odgovarajuće komponente: iz-vršavanje (1), pisanje (2) i čitanje (4)rwx000 - 0 — bez prava001 - 1 — pravo izvršavanja010 - 2 — pravo pisanja011 - 3 — pisanje i izvršavanje100 - 4 — čitanje101 - 5 — čitanje i izvršavanje110 - 6 — čitanje i pisanje111 - 7 — sva prava

Primeri upotrebe:

25

Page 27: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

chmod 0755 — vlasnik sve, grupa i ostali rxchmod 0777 — svi sva prava

Vežba:

1. Kreirati datoteku knjiga

2. Izmeniti joj prava pristupa tako da svi imaju pravo izvršavanja i čitanja

3. Dodati pravo pisanja vlasniku i grupi

4. Obrisati datoteku

Umask definiše početna prava pristupa prilikom kreiranja datoteke/direktorijuma. Ukolikose umask ne izmeni, maska ima vrednost 000 koja označava da se za kreiranje direkto-rijuma daju svima sva prava (777 – umask), a da se za kreiranje datoteka daju svimaprava rw (666 – umask).Komandom umask 022 se postavlja umask vrednost na 022, što znači da kada se kreiradatoteka ona će imati prava pristupa -rw-r–r– (jer je 666 – 022 = 644), dok je to zadirektorijum drwxr-xr-x (jer je 777 – 022 = 755)

Vežba:

1. Proveriti trenutnu vrednost za umask

2. Kreirati datoteku knjiga, proveriti prava pristupa ls -l

3. Promeniti umask, kreirati datoteku roman, proveriti prava pristupa ls -l

4. Obrisati kreirane datoteke

Setuid bit označava izvršavanje procesa sa pravima vlasnika, a ne korisnika koji je pro-gram pokrenuo i obeležava se sa s (primer: program passwd— ls -l /usr/bin/passwd).Postavljanje setuid bita vrši se pomoću chmod u+s ime_datoteke ili chmod 4755 ime_datoteke(pri čemu se postavljaju prava pristupa 755 i setuid bit).Setgid bit označava izvršavanje procesa sa pravima grupe. Postavljnje setgid bita vrši sepomoću chmod g+s ime_datoteke ili chmod 2755 ime_datoteke (postavljaju se pravapristupa 755 i setgid bit).

Sticky bit u slučaju direktorijuma dozvoljava brisanje i preimenovanje sadržanih dato-teka samo vlasniku datoteke i obeležava se sa t na poslednjem mestu ukoliko je prisutnadozvola za izvršavanje (tj. x), ukoliko nije onda se obeležava sa T. Postavljnje stickybita vrši se pomoću chmod +t ime_direktorijuma ili chmod 1755 ime_direktorijuma(postavljaju se prava pristupa 755 i sticky bit). Ukoliko isprobamo komandu ls -l /videćemo da je sticky bit postavljen za /tmp direktorijum.

26

Page 28: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

7.3 Specijalne datotekeSpecijalne datoteke predstavljaju mehanizam korišćenja ulaza i izlaza na sistemima

sličnim Unix-u. Postoje dve vrste specijalnih datoteka:

• Karakterske specijalne datoteke koje odgovaraju uređajima koji ne koriste buffer-ovanje. Čitanje i pisanje se vrše karakter po karakter. Primeri su modemi i virtuelniterminali.

• Blokovske specijalne datoteke koje odgovaraju uređajima koji koriste buffer-ovanje.Čitanje i pisanje se vrše u blokovima koji predstavljaju najmanje jedinice podatakakojima se operiše. Primer su diskovi.

Specijalne datoteke se nalaze u direktorijumu /dev. Tip Specijalne datoteke se lakoodreduje pomoću ls -l. Karakterišu se glavnim (major) i sporednim (minor) brojem.Glavni broj odreduje drajver koji će kernel koristiti za pristup uredaju, a sporednispecifičnosti pristupa.

7.4 Pitanja1. Napisati komandu kojom se postavljaju prava pristupa za datoteku f.txt tako

da vlasnik ima sva prava, pripadnici grupe imaju pravo da čitaju i da izvršavajudatoteku, a ostali imaju pravo samo za izvršavanje.

2. Napisati komandu kojom se pravima pristupa za datoteku f.txt dodaje pravoizvršavanja ostalima.

3. Napisati komandu kojom se pravima pristupa za datoteku f.txt oduzima pravoizvršavanja ostalima.

4. Napisati komandu kojom se pravima pristupa za datoteku f.txt dodaje setuid bit.

5. Napsiati komandu kojom se direktorjumu a postavlja sticky bit.

6. Šta zna či niska karaktera drwxr-x–x u izlazu komande ls -l?

7. Šta zna či niska karaktera -rwxr-x–x u izlazu komande ls -l?

27

Page 29: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

8 Fajl sistemFajl sistem je sistem koji omogućava skladištenje, hijerarhijsku organizaciju, mani-

pulaciju, navigaciju i pristup podacima. Primeri fajl sistema su FAT (FAT12, FAT16,FAT32), exFAT, NTFS, HFS i HFS+, HPFS, UFS, ext, ext2, ext3, ext4, XFS, btrfs,ISO 9660, Files-11, Veritas File System, VMFS, ZFS, ReiserFS, UDF... Linux podržavaveliki broj fajl sistema i na njemu je moguć istovremen rad sa više različitih fajl sistemakoji su predstavljeni u okviru jedinstvenog drveta koje služi da korisniku predstavi svedostupne fajlove na uniforman način bez obzira na karakteristike fajl sistema na kome seoni nalaze.

8.1 ext2Jedan od najpopularnijih fajl sistema je ext2 nastao 1993. na osnovu ext fajl si-

stema. Slično drugim fajl sistemima pretpostavlja da se podaci u fajlovima čuvaju uokviru blokova podataka iste dužine. Blok je najmanja jedinica podataka i veličina fajlase zaokružuje naviše na ceo broj blokova. U proseku se zbog ovoga gubi pola bloka pofajlu.

Pitanje: Ukoliko je u okviru fajl sistema osnovni blok veličine 512B, koliko prostorana hard disku zauzima datoteka veličine: 10B? A 100B? A 500B? A 513B? A 1020B? A1025B? A 1525B?

Sa tačke gledišta fajl sistema, svaki uređaj je niz blokova koji se mogu čitati i pisati.O fizičkom rasporedu ovih blokova njihovom pristupanju stara se drajver uredaja od kogafajl sistem po potrebi traži odredeni broj blokova. ext2 deli particiju na kojoj se nalazina grupe blokova.

Sadržaj bloka ext2 fajl sistema

28

Page 30: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Superblok sadrži osnovne informacije o fajl sistemu koje su potrebne za njegovoodržavanje i upravljanje. Obično se čita superblok grupe 0, ali je on umnožen i u ostalimgrupama radi povećanja pouzdanosti.Neki od podataka koji se čuvaju u superbloku su:

• Veličina bloka,

• Broj blokova po grupi,

• Broj slobodnih blokova u fajl sistemu,

• Broj slobodnih inodova u fajl sistemu,

• Broj prvog inoda na fajl sistemu (koreni direktorijum).

• Trenutni i maksimalni broj vezivanja (mount) koji se pamte zbog automatskih pro-vera fajl sistema.

• ...

Svaka grupa blokova ima strukturu koja je opisuje — deskriptor. Svi deskriptorigrupa čine tabelu deskriptora grupa koja je duplirana u svim grupama (kao i superblok),a koristi se tabela deskriptora grupe 0. Deskriptor čuva podatke o rasporedu slobodnihi zauzetih blokova i inodova (tj. adrese odgovarajućih bitmap-a), adresu tabele inodova,broj slobodnih blokova, broj slobodnih inodova, broj korišćenih direktorijuma.

ext2 prati slobodan prostor koristeći bitmape. Block bitmap prati slobodne blokove.Inode bitmap prati slobodne inodove. Inode table sadrži listu svih inodova u grupibloka.

8.1.1 Inode

Inode je osnovni gradivni blok ext2 sistema. Svaki fajl i direktorijum sistema je opisanjednim inodom. Inode se identifikuje svojim brojem koji se može pogledati komandomls -i. Inode sadrži podatke kao što su:

• Tip fajla: običan fajl, direktorijum, simbolička veza, blokovski/karkaterski speci-jalni fajl...

• Grupa i vlasnik fajla, prava pristupa

• Veličina fajla i vremena (timestamps)

• Broj inoda

29

Page 31: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

• Pokazivači (15) na blokove podataka (prvih 12 su direktni, 13 je indirektan, 14 jeduplo, a 15 trostruko indirektan).

Sadržaj ext2 inode

Pretpostavimo da je realna veličina sistemskog bloka (1KB) i da su pokazivači 32-bitni. Jedan indirektni blok može sadržati najviše 1KB/4B = 256 32-bitnih pokazivača.Maksimalne veličine datoteka koje se mogu dobiti alokacijom prostora pomoću direktnihi 32-bitnih indirektnih pokazivača su:

• samo sa direktnim pokazivačima: 12 · 1KB = 12KB

• + indirektni pokazivač: 12KB + 256 · 1KB = 268KB

• + dvostruki ind. pokazivač: 268KB + 2562 · 1KB ≈ 64MB

• + trostruki ind. pokazivač: 64MB + 2563 · 1KB ≈ 16GB

Pretpostavimo da je realna veličina sistemskog bloka (8KB) i da su pokazivači 32-bitni. Jedan indirektni blok može sadržati najviše 8KB/4B = 2048 32-bitnih pokazivača.

30

Page 32: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

Maksimalne veličine datoteka koje se mogu dobiti alokacijom prostora pomoću direktnihi 32-bitnih indirektnih pokazivača su:

• samo sa direktnim pokazivačima: 12 · 8KB = 96KB

• + indirektni pokazivač: 96KB + 2048 · 8KB ≈ 16MB

• + dvostruki ind. pokazivač: 16MB + 20482 · 8KB ≈ 32GB

• + trostruki ind. pokazivač: 32GB + 20483 · 8KB ≈ 64TB

Komanda stat ime_fajla prikazuje neke podatke koji se nalaze u inodu. I specijalnifajlovi imaju inode, ali nemaju podatke na disku, već inodove koriste za pristup uređajima.

8.1.2 Direktorijumi

Direktorijumi su specijalni slučajevi fajlova. Sadržaj ovog fajla je lista fajlova kojise nalaze u direktorijumu, tj. u ext2 unosi sadrže sledeće informacije:

• Broj inoda fajla

• Dužina unosa u bajtovima (inode — 4 bajta, ovo polje — 2 bajta, dužina imenafajla — 1 bajt, tip fajla — 1 bajt, ime fajla — promenljiv broj bajtova)

• Dužina imena fajla

• Tip fajla

• Ime fajla

Prva dva unosa su uvek „.” (ovaj direktorijum) i „..” (prethodni direktorijum).

Primer sadržaja direktorijuma

31

Page 33: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

8.2 Evidencija transakcijaFajl sistemi sa evidencijom transakcija (journaled) evidentiraju sve operacije

koje se vrše na disku (tzv. transakcije) u poseban log fajl. Prvo se upisuje transakcija,pa se vrši stvarna operacija. U slučaju pada sistema, operacije koje su polovično izvršenese mogu ponovo izvršiti na osnovu evidencije iz log fajla. Primeri ovakvih fajl sistema su:ext3 i ext4.

8.3 Virtualni fajl sistemVirtualni fajl sistem (VFS) je mehanizam predstavljanja različitih fajl sistema ko-

risniku na uniforman način. Korisnik ne mora da zna ništa o karakteristikama i lokacijifajl sistema na kome se nalazi željeni fajl ukoliko je on vezan na virtualni fajl sistem. VFSima sličnu organizaciju kao i ext2. Takode koristi superblokove i inodove. Prilikom ini-cijalizacije operativnog sistema fizički fajl sistemi se registruju kod VFS koji čita njihovesuperblokove i konstruiše adekvatan VFS superblok koji obuhvata strukturu fajl sistemakoji su na njega vezani. Takođe i inodovi realnih fajl sistema se moraju preslikati u VFSinode.

/proc fajl sistem demonstrira snagu VFS-a. Iako se on registruje kod VFS prilikompodizanja operativnog sistema, fajlovi i direktorijumi prikazani u proc fajl sistemu nepostoje fizički već se njihov prikaz po potrebi generiše na osnovu podataka iz kernela.On u stvari predstavlja jednostavan način da se pristupi informacijama iz kernela.

/dev: Slično fajlovima proc fajl sistema i specijalni fajlovi se ne nalaze stvarno nadisku, već samo predstavljaju način pristupa drajverima uređaja prisutnih na sistemu.

8.4 Pitanja1. Šta je fajl sistem?

2. Da li je pod Linux-om moguć istovremen rad sa više različitih fajl sistema? Ukolikojeste, kako se to odražava na korisnika, a ukoliko nije objasniti zašto nije.

3. Navesti imena 4 različita fajl sistema?

4. Šta je inode i koje podatke sadrži?

5. Šta je direktorijum i koji je njegov sadržaj?

6. Šta je superblok, gde se nalazi i koji superblok se koristi?

7. Šta su deskriptori grupa i gde se nalaze?

32

Page 34: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

8. Šta je virtualni fajl sistem?

9. Navesti primer fajl sistema sa evidencijom transakcija.

10. Navesti dva primera fajl sistema sa evidencijom transakcija i dva bez evidencijetransakcija.

33

Page 35: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

9 ProcesiProces je program u izvršenju. Linux omogućava istovremeno izvršavanje više pro-

cesa. Ovakvi procesi se izvršavaju u odvojenim virtualnim adresnim prostorima. Komu-nikacija izmedu procesa je moguća samo pomoću bezbednih mehanizama koje omogućavai kontroliše kernel. Procesi u toku izvršavanja koriste razne resurse sistema (procesor, me-morija, fajlovi, fizički uredaji). Linux mora da upravlja ovim resursima u cilju pravednogizvršavanja svih procesa. Najvažniji resurs je procesor i prilikom upravljanja procesimabitno je maksimizovati njegovu iskorišćenost. Procesi se identifikuju identifikacionimbrojevima (PID).

Informacije o procesima se čuvaju u nizu task_struct struktura (tzv. task vektor,tabela procesa) koja sadrži sledeće informacije:

• Stanje, koje može biti:

– Izvršno — proces se izvršava ili je spreman za izvršavanje– Čekanje — proces čeka neki događaj kao što je signal sistema ili hardverski

resurs.– Zaustavljen — proces može da se vrati u izvršno stanje– Zombi — proces koji je završio izvršavanje, ali su njegovi podaci i dalje u task

vektoru.

• Informacije o rasporedu (politika, prioritet, preostalo vreme...)

• Identifikatori (uid, gid, effektivni uid i gid...)

• Informacije o mehanizmima meduprocesne komunikacije

• Pokazivači na roditeljski proces, decu i procese sa istim roditeljem.

• Informacije o vremenu izvršavanja i tajmerima.

• Informacije o otvorenim fajlovima.

• Informacije o virtualnoj memoriji.

• Sadržaj registara procesora (processor context).

34

Page 36: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

9.1 init i hijerarhija procesaPo pokretanju sistema kreira se jedan proces — init čiji je PID 1 i koji vrši ini-

cijalizaciju sistema npr. vezivanje root fajl sistema i pokretanje osnovnih procesa iz/etc/inittab (na Ubuntu ovo je /etc/init). init je krajnji roditeljski proces svihprocesa na sistemu.

Postoji određena hijerarhija: roditelj, dete, siroče, zombi.Roditelj je proces koji kreira novi proces; novi proces je njegovo dete. Ukoliko roditeljzavrši sa radom pre deteta, ili nasilno bude prekinut, dete postaje siroče i usvaja gaproces init. Kada dete završi sa radom, očekuje se da njegov roditelj pročita exit statusdeteta, ukoliko roditelj to ne uradi, dete postaje zombi.Zombi ne drži memoriju, već samo PID i unos u tabeli procesa. Postojanje zombija usistemu ukazuje na nekakvu grešku u roditelju (ukoliko postoje duži vremenski period).Zombi se ne može ubiti, može se ubiti samo roditelj, čime zombi postaje siroče i njegovstatus razrešava init proces.

Novi procesi se u Linux-u kreiraju na sledeći način:Postojeći proces pravi svoju kopiju koja dobija svoj PID, adresni prostor... Ovo se radipomoću fork sistemskog poziva. Kopija procesa nastavlja izvršavanje, može da pokrenepomoću exec sistemskog poziva novi program, koji dobija njen adresni prostor. Noviprogram nasleđuje okruženje, standardni ulaz, izlaz i izlaz za greške, kao i prioritet izvr-šavanja koji je imao polazni proces. Na ovaj način se pokreću svi procesi osim init-a.

Primer pokretanja programa:Prvi proces je init. Nakon inicijalizacije sistema, init kreira svoju kopiju pomoću fork,a zatim kopija pomoću exec pokreće agetty program. agetty otvara tty port, traži lo-gin ime i kada korisnik unese svoje ime pokreće login program pomoću exec (da bi setražila lozinka). Nakon uspešnog logovanja, login pokreće bash pomoću exec. bashpravi kopiju pomoću fork, a ona pomoću exec pokreće program (npr. ls).

9.2 Vrste procesaDemonski procesi su serverski procesi koji se izvršavaju u pozadini. Kod Windows

sistema, ovakvi procesi se nazivaju servisi. Oni se obično pokreću u vreme podizanjasistema i čekaju dok nekom procesu ne zatreba njihova usluga. Primeri ovakvih procesasu: init, syslogd, sendmail, crond, agetty, inetd, named, httpd...

Interaktivni procesi se pokreću i kontrolišu iz terminala. Interaktivni proces možebiti izvršavan vezan za terminal kada samo on može da prima ulaz sa terminala ili upozadini kada je terminal slobodan za pokretanje drugih programa. Procesi se mogu

35

Page 37: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

poslati u pozadinu ili se iz nje vratiti na terminal.

Osnovne komande za upravljanje procesima

ps

— Lista trenutne procese. Sve opcije možete pogledati pomoću ps –help.Neke od opcija koje program ps ima su:• ps -e ili ps -A čime se prikazuje PID, TTY, TIME i CMD svih procesa na sistemu.• ps -f — full čime se prikazuju dodatne informacije o svim procesima koji su pokre-nuti iz tekućeg shell konteksta ili Terminal prozora. U dodatne informacije spadaju:ID korisnika koji je pokrenuo komandu koja je inicirala proces (UID), identifikator pro-ces roditelja (PPID), prioritet procesa (C) i vreme kada je proces počeo sa izvršenjem(STIME).• ps -u UID čime se prikazuje PID, TTY, TIME i CMD svih procesa koje je inicirao kori-snik čiji je UID naveden kao parametar.Postoji i opcija forest čime je daje drvenasti prikaz svih procesa na sistemu.

top

— Daje dinamički pogled na sistem, slično kao aplikacija System monitor, samo prekotekstualnog interfejsa.

time

— Određivanje vremena potrebnog za izvršenje procesa. Komanda time na ekranu pri-kazuje tri vremena: realno (real), sistemsko (system) i korisničko (user).Realno vreme obuhvata interval od zadavanja komande do potpunog izvršenja i po-vratka komandnog prompta, uključujući i vreme čekanja na ulaz, izlaz i ostale događaje.Korisničko vreme je količina procesorskog vremena utrošena na samo izvršenje procesa.Sistemsko vreme je vreme koje je kernel utrošio na opsluživanje procesa.

9.3 SignaliSignali predstavljaju način međuprocesne komunikacije. Služe da obaveste procese o

nekim događajima u sistemu. Procesi mogu na neki način da odgovore na signale ili daih ignorišu. Odgovor na signal može da definiše proces, ukoliko ga ne definiše izvršava sepodrazumevana akcija. Jedini signali koji se ne mogu ignorisati i predefinisati su SIGKILLi SIGSTOP. Zavisno od implementacije, u svakom UNIX sistemu je definisano 30 do 40signala, od kojih je svaki predstavljen imenom i brojem — pogledati signal.h (lociratiga sa locate, pogledati default action za signale). Tu su i real-time signali.

36

Page 38: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

stty

— Štampa ili menja karakteristike terminala. Uz pomoć stty -a štampaju se karak-teristike terminala.Postoje i prečice za slanje određenih signala, kao što su:Ctrl+C — SIGINTCtrl+Z — SIGSTOPCtrl+ \ — SIGQUIT

kill

— Šalje odgovarajući signal procesu koji se zadaje koristeći PID. Opcija -l štampa imenasignala i odgovarajuće brojeve. Ostale opcije se mogu pogledati pomoću info kill ko-mande.

killall

— Šalje signal procesu a kao argument prima ime procesa, a ne PID kao kill. Podefault-u šalje SIGTERM signal. Ostale opcije se mogu pogledati pomoću info killall.

Postavlja se pitanje koji signal treba poslati procesu ukoliko želimo da ga na neki na-čin prekinemo? Postoji uniformna procedura koju, u suštini, treba poštovati:• Ne treba započeti sa KILL, već prvo probati sa TERM.• Ukoliko uništenje ne uspe, nastaviti signalom INT.• Ukoliko uništenje ne uspe, nastaviti signalom HUP.• Ukoliko uništenje ne uspe, nastaviti signalom QUIT, ovaj signal daje sliku procesa.• Ukoliko je proces i dalje živ, uništava se signalom KILL (kill -s 9 PID).

Signal HUP (hang-up) koristi se prilikom odjavljivanja sa sistema. Ovaj signal se ša-lje svim procesima koji su pokrenuti u pozadini i njime se zaustavlja rad tih procesa kadase korisnik odjavi sa sistema. Ukoliko zelimo da neki proces nastavi izvrsavanje i nakonodjavljivanja korisnika sa sistema, koristi se nohup komanda:nohup komanda argumentiNa taj način pokrenuta komanda postaje imuna na neke signale i nastavlja sa izvršava-njem i nakon odjavljivanja sa sistema.

Komande za rad sa procesima:

• jobs (-lnprs) — Lista procese koji se obavljaju u pozadini (-l lista id)• fg — Prebacuje pozadinski posao u terminal — argument je broj pozadinskog posla

37

Page 39: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

(moze se procitati sa jobs). Ukoliko je jedinstveno ime posla, onda moze sa imenom.Ukoliko je samo jedan pozadinski posao, može i bez argumenta.• bg — Prebacuje posao u pozadinu (najpre mora da se zaustavi sa signalom STOP tj.CTRL+Z).• & — prilikom pokretanja pokreće u pozadini.

Vežba:

1. Izlistati aktivne procese komandom ps

2. Izlistati aktivne procese komandom ps sa opcijom -A

3. Pokrenuti proces evince sa argumentom ime.pdf (pod pretpostavkom da postojitakav dokument u tekućem direktorijumu) u pozadini

4. Izlistati sve pozadinske procese (komanda jobs)

5. Prebaciti pozadinski proces evince u terminal

6. Poslati procesu SIGSTOP signal

7. Izlistati sve pozadinske procese i obratiti paznju na status procesa

8. Prebaciti proces ponovo u pozadinu

9. Izlistati pozadinske procese i obratiti paznju na status procesa

10. Pratiti stanje sistema koristeći komandu top

9.4 Pitanja1. Šta je proces?

2. Koja su četiri osnovna stanja procesa?

3. Koji se proces prvi pokreće prilikom pokretanja operativnog sistema?

4. Koji sistemski poziv služi za kreiranje novog procesa?

5. Šta su demonski procesi?

6. Šta su signali?

7. Nabroj imena i brojeve tri signala.

8. Koji signali se ne mogu ignorisati?

38

Page 40: NikolaAjzenhamernikolaajzenhamer.rs/pdf/OS.pdf · uređaja radi bolje iskorišćenosti procesora dovodi do pojave sistemskog softvera (batch obrada,multiprogramiranje,timesharing,multitasking...)

9. Kako se šalje SIGSTOP?

10. Kako se šalje SIGINT?

39