Operativni sistem free bsd-Seminarski rad-Uvod u informacione sisteme-Fakultet organizacionih nauka
lampapa
lampapa

Operativni sistem free bsd-Seminarski rad-Uvod u informacione sisteme-Fakultet organizacionih nauka

PDF (67 KB)
7 str.
7broj preuzimanja
1000+broj poseta
Opis
Seminarski rad iz predmeta Uvod u Informacione sisteme. Operativni sistem free bsd. FON,seminarski rad,Informacioni sistem,komponente,resursi,podaci,transformacija,hardver,softver,osoblje,klasifikacija sistema,grafika,mu...
20 poeni
poeni preuzimanja potrebni da se preuzme
ovaj dokument
preuzmi dokument
pregled3 str. / 7
ovo je samo pregled
3 prikazano na 7 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 7 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 7 str.
preuzmi dokument
ovo je samo pregled
3 prikazano na 7 str.
preuzmi dokument
www.puskice.co.yu

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

SEMINARSKI RAD IZ PREDMETA “UVOD U INFORMACIONE SISTEME”

NAZIV SEMINARSKOG RADA: “OPERATIVNI SISTEM FreeBSD”

Student: Ime Prezime Ocena: 5 6 7 8 9 10

Broj indeksa: 111/11

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

OPERATIVNI SISTEM FreeBSD

Boris Momčilović, broj indeksa 236/04 FAKULTET ORGANIZACINIH NAUKA, BEOGRAD, JOVE ILIĆA 154

Rezime: U ovom seminarskom radu opisan je operativni sistem FreeBSD. KLJUČNE REČI: FreeBSD, kernel, manipulisanje memorijom, IO sistem, fajl sistem, shell, X Windows.

1. UVOD

Priča o BSD-u, kao i danas najpoznatijim, besplatnim, verzijama istog, FreeBSD, NetBSD i OpenBSD-u počinje još novembra davne 1973-te godine kada su Ken Thompson i Dennis Ritchie na 'Symposium on Operating Systems Principles' održanom na Purdue univezitetu predstavili svoj rad o UNIX operativnom sistemu. Profesor Bob Fabry, sa Berkeley univerziteta, jedan od prisutnih na konferenciji, bio je izrazito zainteresovan za kopiju UNIX operativnog sistema radi eksperimenata na Berkeley univerzitetu. Dolaskom UNIX-a na Berkeley je počeo i rad na INGRES bazi podataka, koja je bila preteča jedne od najboljih baza podataka današnjice, Postgres-a. Prvu zvaničnu distribuciju UNIX-a napravio je Bill Joy, autor vi-a (što je impliciralo i termcap), čovek koji je značajno unapredio tadasnji pascal interpreter, jedan od osnivaca Sun Microsystems-a i jedan od najvecih UNIX hacker-a svih vremena. Od tog trenutka postoji ime BSD - Berkeley System Distribution.

Ubrzo je sledio i razvoj DARPA mreže sa osnovom na Berkeley univerzitetu, čime je usledio i release 3BSD i 4BSD distribucija. Posle izlaska BSD4.1 (koji je u prvom trenutku trebao da se zove 5BSD, ali zbog problema vezanih sa imenom komercijalnog izdanja SystemV UNIX-a, Berkeley je opet morao da učini odredjene ustupke) usledila je pojava revolucionarnog BSD4.2 operativnog sistema sa implementacijom TCP/IP protokola. Uskoro je, logično, posle mnogih peripetija, usledela BSD4.3 distribucija kao i MACH derivat, nakon čega je 1991. usledila i pojava 386/BSD operativnog sistema čiji je razvoj predvodio Bill Jolitz, ali on nije bio u stanju sam da isprati sve popravke bug-ova kao i sve promene koje su vršene u originalnom BSD-u. Njegov rad bio je oživljen sa pojavom NetBSD-a, koji je u svojoj osnovi derivat 4.4BSD i 386/BSD-a.

Ubrzo (1992. godine) su usledili i pravni problemi sa AT&T-om sa pojavom BSDi-a, prvog komercijalnog BSD operativnog sistema, kao i gubitak prava na korišćenje imena UNIX. Od tada su BSD i UNIX, kontradiktorno, postali dve različite stvari. Tokom 90-tih godina polako je počela da se krištalise situacija vezana za

BSD operativne sisteme i na ovom mestu su se i razdvojile 3 glavne BSD distribucije koje su počele da se odvajaju od glavnog stabla i koje su aktuelne danas (BSDi zaobilazimo, pošto je u pitanju komercijalni BSD operativni sistem): NetBSD, FreeBSD i OpenBSD.

2. FreeBSD

Kako je Berkeley dopuštao distribuciju svojih Net/1 i Net/2 traka pojavili su se mnogi operativni sistemi zasnovani na ovim distribucijama. Jedan od njih je i 386BSD čiji je razvoj počeo kada je 1991. godine William Jolitz počeo sa portovanjem Net/2 (4.3BSD-Lite) trake na 386 računare. Međutim, on nije bio u stanju da isprati sve popravke bug-ova i sve promene koje su vršene, tako da 1993. godine on prestaje sa razvojem. Programeri koji su sa njim radili podelili su se u 2 grupe koje su nastavile započeti posao. Takođe, 1992. godine je osnovana i firma BSDi koja je predstavila svoj komercijalni BSD/OS sistem. Na ovaj način je sa velikim uspehom nastavljen razvoj koji je započeo CSRG i stvoreni su najstabilniji, najportabilniji i najsigurniji sistemi današnjice.

Početkom 1993. godine Jordan K. Hubbard, Rod Grimes i Nate Williams su pokrenuli projekat čiji je cilj bio rešavanje problema koji su postojali u principima razvoja Jolitzovog 386BSD-a. Posle konsultovanja sa tadašnjim korisnicima sistema, uspostavljeni su principi i smišljeno je ime - FreeBSD. Pre nego što je konkretan razvoj i počeo, Jordan Hubbard je predložio je firmi Walnut Creek CDROM (danas BSDi) da pripreme distribuiranje FreeBSD-a na CD-ROM-ovima. Walnut Creek CDROM su prihvatili ideju, ali i obezbedili (tada potpuno nepoznatom) projektu mašinu na kojoj će biti razvijan i brzu Internet konekciju. Bez ove pomoći teško da bi FreeBSD bio razvijen u ovolikoj meri i ovolikom brzinom kao što jeste.

Prva distribucija FreeBSD-a na CD-ROM-ovima (i naravno na netu) bila je FreeBSD 1.0, objavljena u decembru 1993. godine. Bila je zasnovana na Berkeley- evoj 4.3BSD-Lite ("Net/2") traci, a naravno sadržala je i komponente 386BSD-a i mnoge programe Free Software Foundation (fondacija besplatnog-slobodnog softvera).

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

Nakon što je Novell otkupio UNIX od AT&T-a, Berkeley je morao da prizna da Net/2 traka sadrži velike delove UNIX koda. Posle sudskog spora, dogovoreno je da Berkeley pripremi 4.4BSD-Lite distribuciju iz koje će biti izbačeni pojedini delovi koda. Od tada su BSD i UNIX, kontradiktorno, dve različite stvari. Svi korisnici Net/2 traka bili su prinuđeni da pređu na 4.4BSD-Lite. Ovo je uključivalo i FreeBSD, tako da je pred projektom bio zadatak da dovrši sistem bazirajući se na novoj i nepotpunoj 4.4BSD-Lite distribuciji. Veliki delovi sistema su ponovo isprogramirani tako da je u novembru 1994. godine objavljena FreeBSD 2.0 distribucija koja je napokon mogla legalno da se distribuira preko neta i CDROM-ova.

Tekuća -stable grana projekta je 5.x-stable. 5.3-RELASE je objavljen u novembru 2004. godine. Krajem 2005. godine FreeBSD-current će biti objavljen kao FreeBSD 6.0-RELASE.

3. O FreeBSD-u

FreeBSD je istaknuti operativni sistem za arhitekture računara koje su kompatibilne sa Intel x86, amd64, Alpha/AXP, IA-64, PC-98 i UltraSPARC arhitekturama (druge platforme, npr. Solaris, su u planu razvoja). Cilj projekta je da se razvije softver koji će moći da se koristi u svaku svrhu.

FreeBSD je kompletan operativni sistem - kernel, C biblioteke i kompajler, mrežni serveri i klijenti, X- Windows sistem, mnogi programi - sve što je potrebno za svakodnevni rad na kompjuteru. Izvorni kod celog sistema dostupan je na netu (ftp://ftp.FreeBSD.org/pub/FreeBSD/).

FreeBSD pruža napredne mrežne servise, dobru iskoristivost memorije, visoku stabilnost i performanse rada, tako da predstavlja ekonomičnu alternativu komercijalnim UNIX sistemima. Prilagođen je radu sa velikim brojem desktop i server aplikacija. "Pored dobrog security-a (bezbednosti), odlikuje se i fantastičnim performansama, kao i najboljom implementacijom TCP/IP stack-a što ga čini jednim od omiljenih izbora za web servere. U principu, FreeBSD je najpopularnija BSD distribucija." [www.bsd.org.yu]

Free u imenu znači da se može koristiti besplatno, čak i za komercijalne upotrebe, ali takođe i u smislu slobodno. Sa izvornim kodom FreeBSD-a korisnik može da radi bilo šta: da ga čita, menja, prepravlja, kopira, prodaje... doslovno sve osim da tvrdi da ga je on napisao.

FreeBSD ima mnogo osobina vrednih pažnje:

- 32-bitni operativni sistem (64-bitni na Alpha-ma) koji je od početka bio dizajniran kao takav

- preemptivni multitasking sa dinamičnim podešavanjima prioriteta koji obezbeđuje fer i glatku podelu procesorskog vremena, memorije i drugih resursa računara čak i pri najvećim opterećenjima sistema

- mogućnost da opslužuje više korisnika u isto vreme tako što svi korisnici mogu da koriste resurse računara (štampače, mrežu...), ali takođe i da ograniči njihovu upotrebu

- SMP - podrška za mašine sa više procesora (samo za Intel)

- straničenje na zahtev koje omogućava brzo izvršavanje programa koji zahtevaju dosta memorije

- zaštita memorije koja obezbeđuje da programi (ili korisnici) ne mogu omesti jedni druge; ako se jedan program sruši, to neće uticati na ostale ni na koji način

- jak TCP/IP sa odličnom implementacijom TCP/IP stack-a, podrška za mnoge standarde kao što su SLIP, PPP, NFS, DHCP, NIS, serveri za e-mail, WWW, FTP, DNS, routing, firewall...

- X Window System (X11R6) kojim se pruža grafički korisnički interfejs (GUI)

- hiljade gotovih programa se nalaze u FreeBSD ports&packages kolekciji

- binarna kompatibilnost sa mnogim programima kompajliranim za Linux, SCO UNIX, SVR4, BSD/OS i NetBSD

- kompatibilnost izvornog koda programa sa većinom popularnih komercijalnih UNIX sistema, što omogućava jednostavno portovanje progama sa ovih sistema na FreeBSD

- kompletna zbirka razvojnih alata za mnoge programske jezike kao što su C, C++, Java, Fortran, Perl, Pascal (Delphi-Kylix)...

- izvorni kod celokupnog sistema, od kernela, preko alatki, do igara i način kompajliranja svega toga korišćenjem samo jedne komande

- velika količina veoma dobre dokumentacije

FreeBSD svakodnevno koriste razne kompanije, Internet provajderi, istraživači, studenti, korisnici kod kuće širom sveta. Slogan "The Power to Serve" (snaga da služi) dobija pravo značenje kada se vidi da FreeBSD koriste mnogi veliki sajtovi da opsluže svoje korisnike, kao što su: Yahoo!, Hotmail, Apache, Be,Inc., BSDi i mnogi drugi.

4. Kernel

Kernel je deo sistema koji se izvršava u zaštićenom (protected) modu hardvera i koji posreduje između korisničkih programa i hardvera. Kernel pruža osnovne

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

funkcije sistema; on kreira, izvršava i upravlja procesima, pruža pristup fajl sistemu i mrežnim protokolima i dr. Ove funkcije se nazivaju sistemski pozivi (system calls) i korisniku su dostupne kroz biblioteku rutina koje može pozivati iz svojih programa. Sistemski pozivi su jedini način na koji procesi mogu da pristupe ovim servisima.

Govoreći tradicionalnom terminologijom operativnih sistema, kernel je malo jezgro softvera koje pruža minimalne servise koji su neophodni za implementiranje dodatnih servisa operativnog sistema. U savremenim istraživačkim operativnim sistemima kao što su Chorus, Mach, Tunis i V Kernel, servisi kao što su fajl sistemi, mrežni protokoli i dr. potpuno su izdvojeni iz kernela. No, UNIX kernel je od samog početka bio monolitni, tj. nije bio podeljen u više procesa. Ovakva struktura kernela je odabrana zbog jednostavnosti i performansi.

Najveći deo kernela implementira sistemske servise kojima aplikacije pristupaju kroz sistemske pozive. U 4.4BSD (pa tako i u FreeBSD) on obuhvata:

- osnovne servise kernela: manipulisanje tajmerom i sistemskim satovima, desktriptorima i procesima

- upravljanje memorijom: straničenje (paging) i zamena stranica (swapping)

- opšti sistemski interfejsi: I/O, kontrola deskriptora - fajl sistem: upravljanje fajlovima, direktorijumima,

prevođenje putanja fajlova - manipulisanje terminalima: interfejs terminala i

discipline za procesovanje karaktera - među-procesna komunikacija: pipe i socket - mrežna komunikacija: komunikacioni protokoli,

routing

Većina ovih servisa su nezavisni od mašine i mogu se portovati na druge arhitekture. Delovi kernela koji su zavisni od konkretne mašine su izolovani od ovih delova. To su:

- startovanje sistema - manipulisanje zamkama (trap handling) i greškama

(fault handling) - manipulisanje radnog konteksa procesa (run-time

context) procesa - konfigurisanje i inicijalizovanje hadrverskih uređaja - radna podrška za ulazno/izlazne (I/O) uređaje

Granica između programa koji se izvršavaju u kernel- modu i korisničkom modu se ostvaruje pomoću hardverske podrške ovim servisima. Kernel se izvršava u adresnom prostoru koji je nedostupan korisničkim programima. Privilegovane operacije, kao što su pokretanje ulazno/izlazne operacije ili upravljanje procesorom (CPU) dostupne su samo kernelu. Sistemske pozive koriste korisnički programi (aplikacije) kako bi pristupili ovim operacijama. Sistemski poziv se izvršava sinhronizovano sa aplikacijom koja ga je pozvala; program se ne izvršava dok kernel izvršava akciju koju

mu nalaze sistemski poziv. Ukoliko izvršavanje sistemskog pozva traje dugo (npr. upisivanje podataka na disk), izvršavanje aplikacije se može nastaviti i pre nego što se sistemski poziv završi (podaci će biti snimljeni u bafer, pa kasnije snimljeni na disk).

Postoje tri vrste ulaza u kernel: hardverski interapt, hardverska zamka (trap) i softverska zamka (softwer- initiated trap). Hardverske interapte stvaraju spoljni događaji, kao što je ulazno/izlazni uređaj ili sat koji prijavljuje prolazak vremena. Hardverski interapti se javljaju asinhronizovano i nisu vezani za proces koji se trenutno izvršava. Za manipulisanje hardverskim interaptom odgovoran je odgovarajući device-driver interupt handler u kernelu.

Hardverska zamka je vezana za proces koji se trenutno izvršava i može biti ili sinhronizovana ili asinhronizovana. Javljaju se usled neke greške kao npr. deljenje nulom. Proces sazna za grešku ili tako što primi signal, ili tako što bude ugašen.

Softverske zamke se koriste da zakažu što skorije izvršavanje nekih događaja (mrežna komunikacija, vremensko planiranje izvršavanja...) i javljaju se sinhronizovano. Za softverske i hardverske zamke odgovoran je deo kernela pod imenom trap handler.

Sistemski pozivi su specijalni slučaj softverske zamke i za njih je odgovoran deo kernela pod imenom syscall handler. Nakon izvršavanja sistemskog poziva programu se šalje informacija o tome da li je sistemski poziv uspešno izvršen i identifikator greške ukoliko se javila, posle čega kernel odlučuje koji proces će nastaviti da izvršava.

Svaka aplikacija ima svoj sopstveni adresni prostor koji se razlikuje od adresnog prostora kernela. Kernel određuje koje će procese kada da izvršava, prekine sa izvršavanjem ili suspenduje radi izvršavanja drugog procesa.

5. Manipulisanje memorijom

Centralni deo operativnog sistema zauzima sistem za manipulisanje memorijom (memory management system). On je zadužen za kontrolisanje memorijskih resursa koji su dostupni mašini. Primarna (glavna) memorija je RAM memorija računara, a sekundarna je svaki drugi medijum za čuvanje podataka (hard disk, cdrom...).

Svaki program ima svoj privatni adresni prostor. On se sastoji iz data, text i stack segmenata. Data segment sadrži inicijalizovane i neinicijalizovane podatke programa. Text segment sadrži mašinske instrukcije i dele ga svi procesi koji izvršavaju taj fajl, dok su data i stack segmenti privatni za svaki proces. U stack segmentu se nalazi run-

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

time stack programa i njega kernel automatski proširuje dok se program izvršava. Data segment može biti proširen ili skupljen pozivanjem sistemskog poziva, dok veličina i sadržaj text segmenta mogu jedino biti promenjeni prilikom pozivanja sistemskog poziva execve, kada se postojeća memorijska slika prepisuje nekom drugom i stvara se novi proces.

Prilikom započinjanja izvršavanja nekog programa, kernel prvo učita text segment programa na početak adresnog prostora. Posle toga kernel mapira inicijalizovane podatke data segmenta i nulira ostatak adresnog prostora (koji je veličine neinicijalizovanih podataka i stack-a). Iako to nuliranje nije neophodno (čak je i suvišno jer usporava učitavanje programa) rani UNIX sistemi su to ostavili u nasleđe (mnogi programi računaju na to da je početna vrednost promenljive nula).

Kopiranje celog text segmenta i inicijalizovanih podataka u memoriju mnogo usporava proces inicijalizovanja programa. 4.4BSD ovo izbegava korišćenjem straničenja na zahtev (demand paging) koje obezbeđuje da se program učitava u malim delovima - stranicama prvi put kada one postanu potrebne. Adresni prostor se deli na stranice jednakih veličina, a kernel vodi računa o adresama stranica koje su učitane. Kada program pokuša da pristupi stranici koja nije učitana javi se page-fault trap u kernelu, page-fault trap handler učita dotičnu stranicu i program nastavlja sa izvršavanjem. Ovako se u memoriju učitavaju samo delovi programa koji se koriste.

Usled primene multiprogramiranja neophodno je da operativni sistem efektivno deli memorijske resurse među procesima. Ceo adresni prostor procesa ne mora u svakom trenutku biti prisutan u primarnoj memoriji da bi se proces izvršavao. Ukoliko su memorijski resursi sistema niski, kernel sprovodi neki od mehanizama za oslobađanje resursa. Kernel može izbaciti stranice koje nisu dugo bile upotrebljivane (paging), ili može ceo kontekst procesa prebaciti u sekundarnu memoriju (swapping). Straničenje na zahtev i zamena stranica su transparentni za procese, ali procesi mogu pružiti sistemu informacije o budućim memorijskim zahtevima, radi poboljšanja performansi.

Dobra strana memory management-a je to što se omogućava da postoji više procesa nego što može da se smesti u primarnu memoriju, a loša je ta što se izvršavanje procesa usporava. Sistem mora da se pobrine da minimizuje trashing. To je pojava kada sistem više vremena troši da izvrši zamenu stranica, nego što troši na korišćenje tih stranica. Sistem detektuje trashing tako što posmatra količinu slobodne memorije. Ukoliko postoji mali broj slobodnih stranica, a veliki je broj zahteva za alociranje memorije, sistem blokira izvršavanje određenog broja procesa koji zauzimaju dosta resursa i prebacuje ih u sekundarnu memoriju. Kada zagušenje prođe, blokirani

procesi se vraćaju u glavnu memoriju i nastavljaju sa izvršavanjem.

6. I/O Sistem

Osnovni model UNIX-ovog ulazno/izlaznog sistema je sekvenca bajtova kojoj se može pristupiti bilo nasumično (random access) bilo sekvencijalno (sequential acces).

Različiti programi rade sa različitim strukturama podataka, ali ih kernel ne razlikuje. Uobičajeno je da se tekstualni fajlovi posmatraju kao niz linija ASCII karaktera koje se završavaju karakterom za novu liniju. Što se tiče kernela svi fajlovi predstavljaju ulazno/izlazni tok bajtova (I/O stream).

UNIX procesi koriste deskriptore za pristup I/O stream-u. Deskriptori su mali, neoznačeni celi brojevi koje vraćaju open i socket sistemski pozivi. Deskriptori predstavljaju odgovarajuće objekte koje kernel podržava.

Sistemski poziv open se koristi za kreiranje novog, praznog fajla, ili za otvaranje postojećeg. Prenos podataka iz i u objekat kog deskriptor predstavlja obavlja se pomoću read i write sistemskih poziva, a sistemski poziv close se koristi sa oslobađanje deskriptora. Deskriptori mogu da predstavljaju file, pipe i socket.

Fajl je niz bajtova. On ima svoje ime i postoji dokle god postoji referenca na njega u fajl sistemu ili dok god neki proces ima otvoren deskriptor koji ga predstavlja. I/O uređajima se pristupa kao fajlovima.

Pipe (cev) je takođe niz bajtova, ali se, za razliku od fajlova koristi kao ulazno/izlazni tok podataka u jednom smeru. Nema ime, tako da ne može biti otvoren open sistemskim pozivom. Umesto njega koristi se sistemski poziv pipe. Kernel takođe podržava named pipe (FIFO - First In First Out) - pipe koji postoji u fajl sistemu. Kada dva procesa žele da komuniciraju oni otvore FIFO, jedan za čitanje, jedan za pisanje.

Socket je privremeni objekat koji se, kao i pipe koristi za međuprocesnu komunikaciju. On postoji samo dok postoji otvoren deskriptor kojim je predstavljen. U suštini socket je generalizovan dvosmerni pipe. Socket pruža mogućnost komunikacije između dva procesa koji se izvršavaju na različitim mašinama, čak i pod različitim operativnim sistemima.

Svakom procesu kernel prilikom startovanja obezbeđuje tri deskriptora: standardni ulaz (0), standardni izlaz (1) i standardna greška (2). Obično ova tri deskriptora predstavljaju korisnikov terminal. Program prima podatke čitajući standardni ulaz (tastaturu), a izlaz i greške ispisuje po ekranu. Ovi deskriptori mogu da predstavljaju i druge

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

objekte osim tastature i ekrana, npr. fajlove. Ovo se zove I/O preusmeravanje. Pipe je način preusmeravanja izlaza jednog programa u ulaz drugog. Ako jedan program preusmeri izlaz, a drugi ulaz na pipe dobija se pipeline (cevovod).

Svi hardverski uređaji su predstavljeni fajlovima i programi im mogu pristupiti koristeći iste sistemske pozive kao i za obične fajlove. Terminalima, štampačima i drugim sličnim uređajima pristupa se preko I/O toka. Hardverski uređaji se mogu podeliti na struktuirane i nestruktuirane. Nestruktuirani (character) uređaji obrađuju znak po znak (komunikacione linije), a struktuirani (block) obradjuju vece grupe podataka od jednom, na primer, blokove od 512 bajtova (diskovi, magnetne trake, cdrom-ovi).

7. Fajl sistem

Fajlovi mogu biti: obični fajlovi, direktorijumi i specijalni fajlovi. Obični fajl je niz bajtova. Veličina fajla je jednaka ukupnom broju znakova koje fajl sadrži. Fajlu se može pristupiti (čitati ili pisati) počev od bilo kog bajta. Podaci unutar fajla nemaju nikakvu strukturu osim one koju sam korisnik definiše. U samom fajlu se ne nalaze nikakve informacije o tom fajlu, već su one u fajl sistemu.

Fajl sistem čuva sledeće informacije o fajlovima: ime fajla, jedinstven broj fajla nazvan inode, velicinu u bajtovima, vreme kreiranja, vreme poslednje izmene, vreme poslednjeg pristupa, pristupne dozvole, vlasnika fajla i grupu kojoj pripada vlasnik fajla.

Direktorijumi daju hijerarhijsku organizaciju celog fajl sistema. Direktorijum su obični fajlovi, ali poseduju strukturu. Direktorijum je lista imena fajlova i drugih direktorijuma koji se nalaze u njemu. Kernel ne dozvojava procesima da prepravljaju direktorijume.

Specijalni fajlovi se nalaze u /dev direktorijumu i predstavljaju hardverske uređaje.

Fajl sistem UNIX operativnog sistema je hijerarhijski struktuiran u vidu stabla. Na vrhu stabla je direktorijum koji se naziva korenom (root) i označava se kosom crtom (/).

Procesi identifikuju fajlove po njihovoj putanji i imenu. Putanja (put) je niz imena direktorijuma na čijem se kraju nalazi ime ciljnog direktorijuma ili fajla. Sva imena u putanji su razdvojena kosom crtom. Ako putanja počinje kosom crtom znači da je formirana od korena, to jest od root direktorijuma, i tada se naziva potpunim ili apsolutnim putanjom. Putanja se takođe može kreirati relativno u odnosu na radni (working)-tekući direktorijum i tada se naziva relativna putanja i ne počinje kosom

crtom. Svi direktorijumi i fajlovi, osim root direktorijuma, imaju neposrednog prethodnika (parent directorijum) koji je označen sa "..", dok je radni direktorijum označen sa ".".

Iako postoji više fajl sistema, svi su smešteni pod root fajl sistemom. Root fajl sistem je uvek prisutan, dok se fajl sistemi sa drugih uređaja (diskova, cdrom-ova) montiraju pod neki direktorijum na root fajl sistemu. Montiranje se obavlja eksplicitno, bilo pri startovanju sistema, bilo na korisnikov zahtev. FreeBSD pruža korisnicima jednu olakšicu što se ovoga tiče - fajl sistem se može montirati dinamički svaki put kada mu korisnik pristupi.

Sistemski poziv link stvara još jedno ime kojim se jednom fajlu može pristupiti. Fajl se može ukloniti sistemskim pozivom unlink. Fajl će biti izbrisan kada se ukloni i poslednje ime kojim se on može pristupiti i kada se zatvori poslednji deskriptor koji je neki proces koristio

8. Shell

Shell (ljuska) je omotač, ljuska oko jezgra operativnog sistema, kernela. U UNIX sistemima se dosta posla obavlja iz komandne linije (command line). Korisnički i sistemski programi se (obično) pokreću komandnim interpreterom. U UNIX-u je shell korisnički proces čiji je zadatak da prima komande od korisnika i da ih izvršava.

FreeBSD dolazi sa barem dva shell-a: bash i tcsh, a dosta drugih shell-ova se može instalirati iz kolekcije portova. Evo kratkog opisa najčešćih shell-ova:

- sh (Bourne-Shell) - jedan od prvih shell-ova koji su napisani. I danas se dosta koristi, pogotovo za pisanje skripti (za startovanje i gašenje sistema)

- csh (C-Shell) - standardni shell Berkeley-evih distribucija, prvi shell sa istorijom komandi i sintaksom u stilu C-a. Napisao ga je Bill Joy

- ksh (Korn-Shell) - standardni shell UNIX System V, prvi shell sa editovanjem komandne linije korišćenjem drugih programa (vi, emacs)

- bash (Bourne-Again-Shell) - moderni naslednik sh-a, koristi se za skripte

- tcsh (Turbo-C-Shell) - moderni naslednik csh-a, lako prilagodljiv

Shell je takođe i programski jezik visokog nivoa. U njemu se mogu pisati skripte koje se mogu pokretati kao obične komande.

Na svakom BSD sistemu se javljaju sh i csh. sh se koristi za sistemske skripte kao što je /etc/rc, a csh je zvanični shell koji koristi root. Korn-Shell se javlja jedino u System V UNIX sistemima.

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

www.puskice.co.yu

Komandni interfejs je dosta popularan u UNIX sistemima zbog lakoće obavljanja mnogih zadataka. Skripte omogućavaju automatizovanje tih zadataka.

C shell FreeBSD sistema pruža kontrolu poslova (job control) koja omogućava prebacivanje poslova iz prednjeg u zadnji plan, stopiranje i restartovanje poslova. Ovo je našlo primenu i u X-Windows-u, grafičkom korisničkom interfejsu gde se svaki prozor smatra terminalom i može postojati više programa koji će biti u prvom planu.

9. X Windows

X Window System je veliko i moćno (neki kažu preveliko i previše složeno) grafičko okruženje UNIX sistema. Razvijen je na MIT-u, a komercijalni proizvođači su ga postavili kao standard na UNIX sistemima. Danas velika većina UNIX radnih stanica koristi neku varijantu X Windows-a.

Besplatni port MIT-ovog X Windows-a, verzije 11, izdanja 6 (X11R6) za x86 računare koji rade pod UNIX sistemim se naziva XFree86 i može se instalirati iz kolekcije portova FreeBSD-a.

KDE i GNOME su desktop okruženja koja se najčešće koriste. Oni predstavljaju kolekciju programa, alatki i igara koje korisnici mogu da koriste.

10. Zaključak

Pored dobrog security-a, FreeBSD se odlikuje i fantastičnim performansama, kao i najboljom implementacijom TCP/IP stack-a što ga čini jednim od omiljenih izbora za web servere. U principu, FreeBSD je najpopularnija BSD distribucija i to, osim gore pomenutig razloga, i zbog toga što ima sjajno odrađen ports sistem za update-ovanje i odrzavanje sistema, kao i veoma logično organizovan sistem u celosti (sto je generalno odlika svih BSD baziranih operativnih sistema).

11. Literatura

[1] “The Design and Implementation of the 4.4BSD Operating System” - Kusick, Bostic, Karels, Quarterrman

[2] “The FreeBSD Handbook” - The FreeBSD Docume- ntation Project

[3] “Operating Systems: Internals and Design Principles” - William Stallings

[4] “Design elements of the FreeBSD VM system” - Matthew Dillon

[5] www.freebsd.org/; www.bsd.org.yu/; venus.elfak.ni.ac.yu/unix/html/; www.unix- systems.org/; www.opengroup.org/; www.vmunix.com/fbsd-book/book.phtml

nema postavljenih komentara
ovo je samo pregled
3 prikazano na 7 str.
preuzmi dokument