24
Prof. dr Milorad K. Banjanin

Operativni_sistemi_-_1._Deo__2011.ppt

Embed Size (px)

Citation preview

Prof. dr Milorad K. Banjanin

softver za upravljanje softver za upravljanje kompjuterskim kompjuterskim sistemom na osnovnom sistemom na osnovnom nivou, nezavisno od nivou, nezavisno od konkretne primene konkretne primene kompjutera od strane kompjutera od strane korisnika i od korisnika i od konkretnog konkretnog kompjuterskog sistema. kompjuterskog sistema.

softver za upravljanje softver za upravljanje kompjuterskim kompjuterskim sistemom na osnovnom sistemom na osnovnom nivou, nezavisno od nivou, nezavisno od konkretne primene konkretne primene kompjutera od strane kompjutera od strane korisnika i od korisnika i od konkretnog konkretnog kompjuterskog sistema. kompjuterskog sistema.

softver namenjen softver namenjen specifičnim upotrebama od specifičnim upotrebama od

strane korisnika za strane korisnika za rešavanje konkretnih rešavanje konkretnih

problema.problema.

softver namenjen softver namenjen specifičnim upotrebama od specifičnim upotrebama od

strane korisnika za strane korisnika za rešavanje konkretnih rešavanje konkretnih

problema.problema.

može daskladišti, obrađuje i pronađe informacije; reprodukuje muziku i video; šalje e-mail, pretražuje Internet; obavlja mnoge druge aktivnosti

Bez svog softvera, kompjuter je beskorisna gomila metala.

KOMPJUTER

SOFTVER

Moderni kompjuterski sistem Procesori MemorijaDiskoviŠtampačMonitorTastaturaMrežni intrfejsi

Pisanje programa koji prate sve ove komponente i koriste ih korektno, a kamoli optimalno, je

ekstremno težak posao.

Postalo je jasno da se mora pronaći neki način da se programeri sačuvaju od kompleksnosti hardvera. Način koji se konačno pojavio je da se postavi jedan sloj softvera preko golog hardvera, da upravlja svim delovima sistema, i da se

predstavi korisniku interfejs ili virtuelna mašina koju je lakše razumeti i programirati. Ovaj sloj softvera je operativni sistem.

APLIKATIVNIPROGRAMI

SISTEMSKIPROGRAMI

HARDVERFizički uređaji

Mikroarhitektura

Mašinski jezik

Operativni sistem

Kompajleri Editori Komandni interpreter

Bankarski sistem Rezervacija avio karata Web pretraživač

Sastoje se od čipova integrisanih kola, žica, električnog napajanja, katodnih cevi, i sličnih fizičkih uređaja.

Fizički uređaji se grupišu i formiraju funkcionalne jedinice. Ovaj nivo sadrži neke registre interne za centralnu procesorsku jedinicu (engl. Central Processing Unit-CPU) i stazu podataka koja sadrži aritmetičku logičku jedinicu.

U svakom taktu, jedan ili dva operanda se uzimaju od registara i kombinuju u aritmetičkoj logičkoj jedinici. Rezultat se skladišti u jednom ili više registara. Na nekim mašinama, operacije staze podataka se kontrolišu softverom, koji se naziva mikroprogram. Na drugim mašinama, kontrolišu se direktno hardverskim kolima.

Svrha staze podataka je da izvršava neki set instrukcija. Neke od njih se mogu izvršiti u jednom ciklusu staze podataka; druge mogu zahtevati višestruke cikluse staze podataka. Ove instrukcije mogu koristiti registre ili druge hardverske kapacitete. Zajedno, hardver i instrukcije su vidljive za programera asemblerskog jezika iz arhitektura instrukcijskog seta (engl. Instruction Set Architecture - ISA ). Ovaj nivo se često naziva mašinski jezik.

Mašinski jezik obično ima između 50 i 300 instrukcija, većinom za pomeranje podataka kroz mašinu, vršeći aritmetiku, i poredeći vrednosti. Na ovom nivou, ulazno/izlazni uređaji se kontrolišu unošenjem vrednosti u specijalne registre uređaja.

Na primer, disku se može izdati komanda da očitava unošenjem vrednosti adrese diska, adrese glavne memorije, brojem bajtova, i usmerenjem (očitavanje ili pisanje) u njegove registre. Praktično, mnogo više parametara je potrebno, i status koga vrati drajv nakon operacije može biti kompleksan. Pored toga, za mnogo I/O (Input/Output-ulazno/izlazni) uređaja, tajming ima značajnu ulogu kod programiranja.

Glavna funkcija operativnog sistema je da sakrije svu tu kompleksnost i pruži programeru pogodniji set instrukcija sa kojima će raditi.

Na vrhu operativnog sistema je ostatak sistemskog softvera. Ovi programi definitivno nisu deo operativnog sistema, iako se obično dobijaju unepred instalirani od strane proizvođača kompjutera, ili u paketu sa operativnim sistemom ako se on instalira nakon kupovine.

Operativni sistem je (obično) onaj deo softvera koji se pokreće u modu jezgra ili supervizor modu. Od korisničkih grešaka je zaštićen hardverom .Nad sistemskim programima dolaze aplikativni programi. Ove programe kupuju (ili

pišu) korisnici za rešavanje svojih problema, kao što je obrada teksta, radne liste, inženjerski proračuni, ili skladištenje informacija u baze podataka.

Operativni sistem kao proširena mašina

Na nivou mašinskog jezika, arhitektura (set instrukcija, organizacija memorije, I/O, i struktura magistrala) većine kompjutera je primitivna i teška

za programiranje, posebno za ulaz/izlaz.

Kako se radi I/O flopi diska koristeći NEC PD765 kompatibilni kontroler čipovi koji se koriste na mnogim personalnim kompjuterima

zasnovanim na Intelu?

Kako se radi I/O flopi diska koristeći NEC PD765 kompatibilni kontroler čipovi koji se koriste na mnogim personalnim kompjuterima

zasnovanim na Intelu?

PD765 ima 16 komandi, gde je svaka specifikovana unošenjem između 1 i 9 bajta u registar uređenja. Ove komande služe za pisanje i čitanje podataka, pomeranje ruke diska, i formatiranje staza, kao i inicijalizaciju, prepoznavanje, resetovanje i rekalibracija kontrolera i drajvova.

Najosnovnije komande su read i write, od kojih svaka zahteva 13 parametara, pakovanih u 9 bajta. Ovi parametri specifikuju stavke kao što su adresa bloka diska koji treba da se pročita, broj sektora po stazi, mod snimanja koji se koristi na fizičkom mediju, raspoređivanje intersektorskih praznina, itd.

Kada se operacija kompletira, čip kontroler pokazuje status 23 i polja grešaka pakovana u 7 bajta.

Bez ulaženja u detalje, jasno je da prosečan programer verovatno ne želi da se previše uključuje u programiranje flopi diskova (ili hard diskova, koji su isto tako kompleksni). Umesto toga, programer želi jasnu apstrakciju visokog nivoa.

Operativni sistem kao proširena mašina

Program koji krije istinu o hardveru od programera i predstavlja fin, jednostavan pregled imenovanih datoteka koje se mogu čitati i pisati je, naravno, OPERATIVNI SISTEM.

Takođe, operativni sistem skriva mnogo napornog posla u vezi sa prekidom, tajmerima, upravljanjem memorijom, i ostalim stavkama niskog nivoa. U svakom slučaju, apstrakcija koju nudi operativni sistem je jednostavnija i lakša za korišćenje nego ona koju nudi osnovni hardver.

Operativni sistem kao menadžer resursa

Šta bi se desilo kada bi za tri programa koja rade na nekom kompjuteru svi pokušali da štampaju svoj rezultat istovremeno na istom štampaču?

Prvih nekoliko redova štampe bi mogli biti od programa 1, sledećih nekoliko od programa 2, onda nešto od programa 3, itd. Rezultat bi bio haos. Operativni sistem

može doneti red za potencijalni haos ispisivanjem svih rezultata namenjenih štampanju na disk. Kada jedan program završi, operativni sistem može zatim

kopirati njegov rezultat sa diska gde je smešten na štampač, dok u isto vreme drugi program može nastaviti da generiše rezultate.

Kada kompjuter (ili mreža) ima više korisnika, potreba za upravljanje i zaštitu memorije, I/O uređaja, i drugih resursa je još veća, jer bi korisnici u

suprotnom smetali jedni drugima. Pored toga, korisnici često imaju potrebu da dele ne samo hardver, nego i informacije (datoteke, baze podataka,

itd.). Ovaj pregled operativnog sistema govori da je njegov primarni zadatak da prati ko koristi koji resurs, da dodeljuje zahtevane resurse i da

posreduje kod konflikta sa zahtevima od različitih programa i korisnika.

Multipleksiranje resursa u vremenu

Operativni sistem kao menadžer resursa

Upravljanje resursima uključuje multipleksiranje (deljenje) resursa na dva načina:

Ako se resursi vremenski multipleksiraju, različiti programi ili korisnici ih po redu koriste. Prvo jedan od njih koristi resurs, onda drugi, itd. Na primer, sa samo jednom CPU i više programa koji žele da se pokrenu sa njom, operativni sistem prvo dodeljuje CPU jednom programu, zatim kada dovoljno dugo radi, drugi dobija da koristi CPU, zatim sledeći, a zatim na kraju prvi ponovo. Određivanje kako se resurs vremenski multipleksira – ko ide sledeći i koliko dugo – je zadatak operativnog sistema.

Multipleksiranje resursa u prostoru

Umesto da korisnici čekaju red, svaki dobija deo resursa. Na primer, glavna memorija se normalno deli između nekoliko programa koji rade, tako da svaki može da ima svoje mesto u isto vreme . Pretpostavljajući da postoji dovoljno memorije da sadrži više programa, efikasnije je sadržati nekoliko programa u memoriji odjednom umesto da se jednom od njih da cela memorija, posebno ako mu je potreban samo mali deo. Naravno, to dovodi do pitanja pravednosti, zaštite itd., i na operativnom sistemu je da ih reši.

Pošto su operativni sistemi istorijski blisko povezani sa arhitekturom kompjutera na kojima rade, dat je pregled generacija kompjutera kako bi se pokazalo kakvi su bili njihovi operativni

sistemi.Prvi pravi digitalni kompjuter je dizajnirao engleski matematičar Čarls Bebidž (Charles

Babbage, 1792-1871). Iako je Bebidž proveo veći deo svog života pokušavajući da napravi svoj „analitički motor“, nikad nije uspeo da napravi da radi pravilno jer je bio čisto

mehanički, a tehnologija njegovog vremena nije mogla da proizvede odgovarajuće točkove, zupčanike i zupce do visoke preciznosti koja mu je bila potrebna. Nije potrebno naglašavati

da analitički motor nije imao operativni sistem.

I generacija (1945-55)

vakuumske cevi i utikačka ploča

II generacija (1955-65) tranzistori i paketni sistemi

III generacija (1965-1980)

integrisana kola i

multiprogramiranje

IV generacija (1980-...)

Personalni kompjuteri

ISTORIJA OPERATIVNIH SISTEMA

I generacija (1945-55)

vakuumske cevi i utikačka ploča

Računari I generacije su bili dostupni velikim organizacijama i državnim agencijama, ali su postali i nezamenljiv alat za naučnike, inženjere i druge profesionalce.

Računari su izgrađeni na bazi vakuumskih elektronskih cevi.

Mašine su bile velike, skupe i nepouzdane; zahtevale su klimatizaciju i obučeno osoblje za rad i programsko upravljanje. Iako su bile ogromne i ispunjavale čitave prostorije sa

desetinama hiljada vakuumskih cevi, mašine su ipak bile milione puta sporije čak i od danas dostupnih najjeftinijih personalnih kompjutera.

II generacija (1955-65) tranzistori i paketni sistemi

Računari su izgrađeni na bazi tranzistora.

Računari druge generacije sadržali su oko 10000 pojedinačnih tranzistora koji su ručno pričvršćivani na ploče i s drugim elementima povezivani žicama.

Kompjuteri su postali dovoljno pouzdani da su mogli da se proizvode i prodaju kupcima sa očekivanjem da će nastaviti da funkcionišu dovoljno dugo da urade neki koristan posao.

Prvi put je postojala jasna odvojenost između dizajnera,

konstruktora, operatera, programera i osoblja za održavanje.

Ove mašine, koje se sada nazivaju mejnfrejmovi (engl. mainframes), su bile zatvorene u posebno klimatizovanim kompjuterskim prostorijama, sa posebno obučenim profesionalnim

operaterima koji su radili na njima. Samo su velike korporacije, vladine agencije ili univerziteti mogli platiti njihovu multimilionsku cenu. Kompjuteri druge generacije su se

uglavnom koristili za naučne i inženjerske proračune, kao što je rešavanje parcijalnih diferencijalnih jednačina koje se često pojavljuju u fizici i inženjerstvu.

Da bi pokrenuo neki posao (tj. program ili set programa), programer bi prvo napisao program na papiru, a potom ga izbušio na kartici. Zatim bi to odneo do prostorije za

unos i prosledio jednom od operatera. Kada kompjuter završi zadati posao, operater bi otišao do štampača i iscepio rezultat i odneo ga u izlaznu prostoriju, tako da ga

programer kasnije uzme. Zatim bi uzeo jedan dek kartica koje su doensene iz ulazne prostorije i učitao ga. Veći deo vremena se gubilo dok operateri šetaju kroz mašinsku

prostoriju.

S obzirom na velike troškove opreme, ljudi su tražili načine da smanje utrošak vremena. Rešenje koje je usvojeno je bio paketni sistem (engl. batch system). Ideja je bila da se

sakupi nekoliko poslova u ulaznoj prostoriji i zatim da se učitaju na magnetnu traku koristeći mali (relativno) jeftin kompjuter, kao što je IBM 1401, koji je bio veoma dobar

u čitanju kartica, kopiranju traka, i štampanju rezultata, ali uopšte nije bio dobar u numeričkim obračunima. Druge, mnogo skuplje mašine, kao što je IBM 7094, su se

koristile za prave proračune.

III generacija (1965-1980)

integrisana kola i

multiprogramiranje

Do početka 1960-tih, većina proizvođača kompjutera su imali dve odvojene, i potpuno nekompatibilne, proizvodne linije.

na reči orijentisani, veliki naučni kompjuteri, kao što je 7094, koji su se koristili za numeričke proračune u

nauci i inženjerstvu

na znakove orijentisani, komercijalni kompjuteri, kao što je 1401, koji su se

uglavnom koristili za sortiranje traka i štampanje u bankama i osiguravajućim

kompanijama

Razvoj, održavanje i marketing za ove dve potpuno odvojene proizvodne linije je bilo skupo za proizvođače kompjutera. Pored toga, korisnici kompjutera su tražili nove mašine koje su imale istu arhitekturu kao i dotadašnji a na kojima bi mogli pokretati

stare programe, ali brže.

Oba problema je rešio IBM uvođenjem System/360

System/360 je bio serija softverski kompatibilnih mašina (od 1401 pa do 7094). Mašine su se razlikovale jedino po ceni i performansama. Pošto su sve mašine imale istu

arhitekturu i set instrukcija, programi pisani za jednu mašinu su se mogli pokretati na svim ostalim. Pored toga, 360 je bio dizajniran da podrži i naučne (tj., numeričke) i

komercijalne proračune. Tako je jedna porodica mašina mogla da zadovolji potrebe svih korisnika.

360 je bio prva prava kompjuterska linija koja je koristila (mala) Integrisana kola (engl. Integrated Circuits-IC), i tako obezbedio veliku prednost nad

drugom generacijom mašina. Primerci ovih mašina se još uvek koriste u kompjuterskim

centrima. Danas se oni često koriste za upravljanje velikim bazama podataka (npr., za avionske sisteme rezervacija) ili kao serveri za WWW sajtove koji moraju da obrade hiljade

zahteva u sekundi.

Najveća prednost ideje „jedna porodica“ je istovremeno bila i njena najveća slabost. Namera je bila da ceo softver, uključujući operativni sistem, OS/360, mora da radi na svim

modelima. Morao je da radi na malim sistemima i na veoma velikim sistemima. Morao je biti dobar na sistemima sa nekoliko perifernih uređaja i na sistemima sa mnogo perifernih uređaja. Morao je da radi u komercijalnim okruženjima i u naučnim okruženjima. Iznad

svega, morao je biti efikasan za različite upotrebe.

Uprkos svojoj enormnoj veličini i problemima, OS/360 i slični operativni sistemi treće generacije su prilično dobro zadovoljili potrebe većine svojih korisnika. Oni su

popularizovali nekoliko ključnih tehnika koje nisu postojale u operativnim sistemima druge generacije, od kojih je najvažnija multiprogramiranje.

III generacija (1965-1980)

integrisana kola i

multiprogramiranje

Memorija se delila na nekoliko delova, sa različitim poslom na svakoj particiji. Dok jedan posao čeka da I/O završi, drugi posao može da koristi CPU. Ako dovoljno poslova mogu da se drže u glavnoj memoriji u jednom trenutku, CPU bi se mogao koristiti skoro 100 % vremena.

Bezbedno smeštanje više poslova istovremeno zahtevalo je poseban hardver za zaštitu svakog posla od krađe i štete, sa čime su 360 i drugi sistemi treće generacije bili opremljeni.

Multiprograming sistem sa tri posla u memoriji

Particije memorije

MULTIPROGRAMIRANJE

Ostale karakteristike operativnih sistema treće generacije

III generacija (1965-1980)

integrisana kola i

multiprogramiranje

Ostale karakteristike operativnih sistema treće generacije

Jedan od kompjuterskih naučnika u Bell Labs koji je radio na MULTICS projektu, Ken Tompson (Ken Thompson), je kasnije pronašao mali PDP-7 minikompjuter koga niko nije koristio i napisao osiromašenu verziju MULTICS-a za

jednog korisnika. Ovaj posao se kasnije razvio u UNIX operativni sistem, koji je postao popularan u akademskom svetu, sa vladinim agencijama, i sa mnogo kompanija.

Dve glavne verzije UNIX operativnog sistema su System V i BSD, (engl. Barkley Software Distribution). Da bi bilo moguće pisati programe koji bi se mogli pokretati na bilo kom UNIX sistemu, IEEE je razvio standard za

UNIX, koji se naziva POSIX, koga većina verzija UNIX-a podržava.

Još jedan glavni razvoj tokom treće generacije je fenomenalan rast minikompjutera, počinjući sa Digital Equipment Company (DEC) PDP-1, 1961. godine. PDP-1 je imao samo

4K 18-bitnih reči, ali po ceni od 120.000 dolara po mašini, prodavao se odlično. Za određene vrste nenumeričkih poslova, bio je zadovoljavajuće brz i doveo je do rađanja

jedne potpuno nove industrije.

IV generacija (1980-...)

Personalni kompjuteri

Doba mikroprocesorskih personalnih kompjutera je počelo sa razvojem LSI (engl. Large Scale

Integration-integracija visokog stepena) kola, čipova koji sadrže hiljade tranzistora na

kvadratnom centimetru silicijuma. Personalni kompjuteri (u početku nazivani mikrokompjuteri) su omogućili da pojedinci imaju svoje sopstvene

kompjutere.

8-bitni mikroprocesor

16-bitni mikroprocesor

32-bitni mikroprocesor

64-bitni mikroprocesor

IV generacija (1980-...)

Personalni kompjuteri

8-bitni mikroprocesor

8-bitni mikroprocesor (1974. god.) – Intel-ov 8080, namenjen za opštu upotrebu. 8080 je služio kao osnova za dalji razvoj kompletnih sistema, od kojih je najznačajniji

CP/M (engl. Control Program for Microcomputers - Kontrolni program za mikrokompjutere) operativni sistem iz kompanije koja se zvala Digital Research.

8-bitni mikroprocesor kompanije Motorola sa oznakom 6800. Napredna i poboljšana verzija ovog mikroprocesora je 6502 , koji je zasnovan na MOS Technology .

6502 je bio CPU za nekoliko ranih sistema. Jedan od njih, Apple II, je postao glavni konkurent za CP/M sisteme na tržištima kućnih i obrazovnih kompjutera. CP/M kartice je prodavala mala firma koja se zvala Microsoft, koja je takođe imala tržišnu nišu prodajući

BASIC interpretere koje je koristio jedan broj mikrokompjutera koji pokretali CP/M.

16-bitni mikroprocesor

16-bitni sistemi - Intel se pojavio sa 8086, a početkom 1980-tih, IBM je dizajnirao IBM PC oko Intelovog 8088. Microsoft je ponudio IBM-u paket koji je uključivao Microsoftov BASIC i operativni sistem DOS (engl. Disk Operating System) koje originalno bio razvijen od strane druge kompanije (Microsoft je kupio proizvod i zaposlio originalnog autora da

ga poboljša). Revizirani sistem je preimenovan u MS-DOS (engl. MicroSoft Disk Operating System) i ubrzo je počeo da dominira IBM PC tržištem.

* Sistemi sa komandnom linijom (korisnici su kucali komande na tastaturi)

* Nekoliko godina kasnije, Dag Engelbart (Doug Engelbart) sa Istraživačkog Instituta Stanford je izumeo grafički korisnički interfejs (engl. Graphical User Interface –GUI) sa prozorima, ikonama,

menijima i mišom.

CP/M, MS-DOS, i Apple DOS Stiv Džobs (Steve Jobs) iz Apple-a je početkom 1984. god. predstavio Apple Macintosh (istinski korisnički personalni kompjuter). Koristio je Motorolin 16-bitni 68000 CPU, i imao

je 64 KB ROM (engl. Read Only Memory) memorije, da bi podržao GUI.

Naredni Motorolini CPU su bili pravi 32-bitni sistemi, a kasnije je Apple prešao na IBM PowerPC CPU, sa RISC 32-bitnom (a kasnije, 64-bitnom) arhitekturom. 2001 Apple je napravio veliku promenu operativnog sistema, predstavljajući Mac OS X, sa novom

verzijom Macintosh GUI-a preko Berkley UNIX-a. 2005. godine Apple je prešao na Intel procesore. Kao konkurencija za Macintosh, Microsoft predstavlja Windows. U početku je Windows

bio samo grafičko okruženje preko 16-bitnog MS-DOS . Međutim, trenutne verzije Windows-a su naslednici Windows NT, punog 32-bitnog sistema.

IV generacija (1980-...)

Personalni kompjuteri

Još jedan glavni takmičar u svetu personalnih kompjutera je UNIX (i njegove verzije). UNIX je najjači na radnim stanicama i drugim jakim kompjuterima, kao što su mrežni

serveri. Posebno je popularan na mašinama pokretanim sa RISC čipovima visokih performansi. Na Pentium-kompjuterima, Linux postaje popularna alternativa za

Windows, za studente i mnoge korporativne korisnike.

Distribuirani operativni sistem

Mrežni operativni sistemi se ne razlikuju fundamentalno od operativnih sistema sa jednim procesorom. Njima

očigledno treba kontroler mrežnog interfejsa i neki softver nižeg nivoa za

upravljanje, kao i programi koji bi postigli daljinsko logovanje i daljinski pristup podacima, ali ovi dodaci ne

menjaju suštinsku strukturu operativnog sistema.

Distribuirani operativni sistem je onaj koji se pojavljuje za svoje

korisnike kao tradicionalni jednoprocesorski sistem, iako je u stvari sastavljen od više procesora. Korisnici ne moraju biti upoznati sa tim gde se njihovi programi pokreću

ili gde su njihove datoteke smeštene; to sve se automatski i efikasno

upravlja sa operativnim sistemom.

Zanimljiv razvoj koji se počeo odvijati sredinom 1980-tih je rast mreža personalnih kompjutera na kojima se pokreću mrežni operativni sistemi i distribuirani operativni

sistemi. Kod mrežnog operativnog sistema, korisnici su svesni iskustva višestrukih kompjutera i mogu se ulogovati na udaljene mašine i kopirati datoteke sa jedne mašine na drugu. Svaka mašina pokreće svoj lokalni operativni sistem i ima svoje korisnike. U osnovi,

mašine nisu zavisne jedna od druge.

Kada je UNIX bio mlad (Verzija 6), izvorni kod je bio široko dostupan, pod AT&T licencom, i često proučavan. Džon Lajons (John Lions), sa Univerziteta Novi Južni Vels u Australiji je napisao malu brošuru sa opisom njegovih operacija, koja je korišćena kao

tekst na mnogim univerzitetskim kursevima iz operativnih sistema. Međutim, kada su u AT&T predstavili Verziju 7, polako su počeli da uviđaju da je UNIX bio vredan

komercijalni proizvod, pa su objavili Verziju 7 sa licencom koja je zabranjivala da se izvorni kod proučava na kursevima, da bi izbegli ugrožavanje njegovog statusa kao

poslovne tajne.

Da bi se prevazišla opisana situacija, autor Tanenbaum je odlučio da napiše novi operativni sistem koji bi, sa korisničkog gledišta, bio kompatibilan sa UNIX-om. Ne koristeći ni jednu liniju od AT&T koda, ovaj sistem je izbegao ograničenja licence, pa se mogao koristiti na

nastavi ili u individualnom proučavanju. Taj sistem je nazvan MINIX i predstavljen je 1987. god. sa svojim potpunim izvornim kodom da ga svako može proučavati i modifikovati.

Naziv MINIX znači mini-UNIX jer je dovoljno mali da čak i laik može shvatiti kako radi.

ISTORIJA MINIX 3

Prednost MINIX -a nad UNIX-om

Uklanjanje pravnih problema u njegovom korišćenju.

Strukturiran je na modularniji način. Na primer, od prvog predstavljanja MINIX-a sistem datoteka i menadžer memorije nisu bili deo operativnog sistema uopšte, nego su pokretani kao korisnički programi. U kasnijim izadnjima (MINIX 3) ova modularizacija je proširena na drajvere I/O uređaja, koji (sa izuzetkom drajvera takta) su takođe pokretani kao korisnički programi.

UNIX bio dizajniran da bude efikasan, dok je MINIX je dizajniran da bude čitljiv. Npr. MINIX kod ima hiljade komentara u sebi.

MINIX je u početku dizajniran da bude kompatibilan sa Verzijom 7 UNIX-a (zbog svoje jednostavnosti i elegancije). Sa pojavom POSIX-a, MINIX se počeo razvijati ka novom standardu, dok je zadržao kompatibilnost sa postojećim programima. Ova vrsta razvoja je uobičajena u kompjuterskoj industriji, jer ni jedan prodavac ne želi da uvodi novi sistem koga ni jedan od njegovih postojećih korisnika ne može koristiti bez velikih promena.

ISTORIJA MINIX 3

Prednost MINIX -a nad UNIX-om

Kao i UNIX, MINIX je bio napisan u C programskom jeziku i bio je namenjen da bude lak za postavljanje na razne kompjutere. Početna upotreba je bila za IBM PC. MINIX je kasnije postavljen na nekoliko drugih platformi.

Za prosečnog korisnika koji sedi za IBM PC-jem, pokretanje MINIX-a je slično pokretanju UNIX-a. Svi osnovni programi, kao što su cat, grep, ls, make su prisutni i obavljaju iste funkcije kao i njihovi UNIX dubleti.

ISTORIJA MINIX 3

MINIX 3 jezgro je pod 4000 linija izvršnog koda, prema miliona izvršnih linija koda za Windows, Linux, FreeBSD,i druge operativne sisteme. Mala veličina jezgra je značajna jer su greške jezgra daleko razornije nego greške u korisničkim programima i više kodova znači više grešaka. To je razlog što su drajveri uređaja pomereni sa jezgra u MINIX-u 3, odnosno što manje štete mogu napraviti u korisničkom modu.

Za ljude koji su malo naučili o MS-DOS-u, postojanje MINIX-a (sa izvornim kodom) kao alternativa je čak bio razlog da konačno kupe PC.

ISTORIJA MINIX 3

Nedugo nakon predstavljanja MINIX-a, formiran je za diskusiju USENET - comp.os.minix. Za nekoliko nedelja, imao je 40.000 potpisnika, od kojih je većina htela da doda mnogo novih

karakteristika MINIX-u da bi bio veći i bolji . Svaki dan, nekoliko stotina njih je dalo predloge, ideje, i često delove izvornog koda. Za ljude koji su malo naučili o MS-DOS-u, postojanje

MINIX-a (sa izvornim kodom) kao alternativa je čak bio razlog da konačno kupe PC.

Jedan od tih ljudi je bio finski student Linus Torvalds. Torvalds je instalirao MINIX na svoj novi PC i proučio pažljivo izvorni kod. Torvalds je hteo

da pročita USENET grupe na svom PC-u umesto na univerzitetu, ali neke stavke koje su mu trebale nisu postojale u MINIX-u, pa je napisao program da to radi. Ubrzo je otkrio da mu treba drugačiji

drajver terminala, pa je i to napisao. Zatim je hteo da preuzme i sačuva komentare, pa je napisao

disk drajver, a zatim sistem datoteka. Do avgusta 1991, napravio je primitivno jezgro. Sve to je

objavio na comp.os.minix. Ova objava je privukla druge ljude da mu pomognu, pa je 13. marta

1994. objavljen Linux 1.0.

ISTORIJA MINIX 3

Prof. dr Milorad K. Banjanin