Razvoj operativnih sistema i istorijat

Razvoj operativnih sistema i istorijat

Prvi računari koji su se pojavili 40-tih godina dvadesetog veka bili su zasnovani na elektronskim (vakuumskim) cevima. Zbog velikog broja glomaznih elektronskih cevi (bilo ih je i do 20.000) ovi računari su bili ogromnih dimenzija, trošili su puno struje i veoma se grejali (slika 1.15.).

Prvi računari su bili neefikasni i podložni kvarenju. Ulazne tehnologije su se zasnivale na bušenim karticama (slika 1.16.) i magnetnim trakama (slika 1.17.). Bušene kartice je koristio Herman Holerit (Herman Hollerith) za potrebe popisa u Sjedinjenim Američkim Državama. Za programiranje, na prvim računarskim sistemima, koristio se mašinski ili simbolički jezik, a programeri su morali da imaju pripremljen program i podatke pre početka rada na računaru.

Pošto su računari postajali sve moćniji, vreme potrebno za obavljanje zadatih instrukcija je postalo veoma kratko u odnosu na vreme potrebno da se izvrši promena programera koji koristi računar. Iz tog razloga dolazi do angažovanja obučenih operatera koji su bili zaduženi za upravljanje računarskim sistemima (slika 1.18.). Operater je bio osoba koja opslužuje računarski sistem i njegov zadatak je bio da pripremi sve što je potrebno da se zadatak može obaviti. Tadašnji sistemi su bili spori i imali su mogućnost izvršavanja samo jedno programa, tako da je operater bio u mogućnosti da sve potrebne radnje obavi na vreme. Najveći deo vremena trošio se na poslove operatera i ulazno-izlazne operacije, a mnogo manji deo na rad centralnog procesora.

Pošto je ovakav način manipulisanja podacima bio veoma neudoban, ali i dovodio do slabe iskorišćenosti procesora, kao najvažnijeg (i najskupljeg) dela računarskog sistema, došlo je do potrebe da se sistemi učine efikasnijim. Prvi korak ka tom cilju 50-tih godina dvadesetog veka bilo je automatsko punjenje i pražnjenje memorije koje predstavija i začetak operativnih sistema. U to vreme razvili su se programi koji su imali zadatak da vrše automatske konverzije binarnih i dekadnih podataka. Takođe, računarski centri počeli su da posvećuju pažnju čuvanju podataka kako se oni ne bi izgubili usled računarskih grešaka, trudili su se da prošire sistemske biblioteke kako bi sprečili pogrešno korišćenje resursa, uvedeni su automatski signali za potrebe komunikacije sa operaterom, uvedene su bezbednosne mere itd. Sve prethodno pomenute inovacije dovele su do pojave operativnih sistema. Osnovni programi koji se izvršavaju u pozadini a služe za planiranje i izvršavanje poslova i upravljanje računarskim resursima predstavljaju prethodnike korisnički orijentisanih operativnih sistema.

Sistem GM-NAA /IO koji je 1956. godine isprogramiran za računar IBM 704 smatra se prvim operativnim sistemom. On je omogućavao automatizovano izvršavanje programa napisanih na simboličkom jeziku.

Sledeća generacija računara, zasnovana na tranzistorima, dovela je i do ekspanzije novih koncepata kada je računarstvo u pitanju. Jedan od koncepata koji postoji i danas je paketna obrada (Batch processing).

Ovakav način izvrsavanja programa podrazumeva da se oni nadovezuju jedan na drugi, tj. da se blokovi kartica korisničkih programa ređaju jedan za drugim. Računari specijalizovani za ulazno-izlazne operacije bi se koristili za prenos podataka sa uredno složenih bušenih kartica (slika 1.19.) na magnetne trake. Potom bi se magnetna traka prenosila na računar specijalizovan za obradu sa posebno podržanim matematičkim operacijama.

Operativni sistem specijalizovanog računara vodio je računa o punjenju i pražnjenju memorije. Prvo bi sa ulazne trake učitavao program,a zatim program za izvršavanje učitanog korisničkog programa, onda izvršavao program na kraju zapisivao rezultat na izilaznu magnetnu traku. Postupak bi se ponavljao sve dok se ne izvrše svi programi sa ulazne magnetne trake. Izlazna traka bi se na kraju prenosila na računar specijalizovan za ulazno-izlazne operacije kako bi se rezultati odštampali.

Ovakav pristup omogućavao je da se u trenutku izvršavanja jednog programa učitava sledeći koji je na redu. Smatra se da je 1962. godine kompanija CSC (ComputerScience Corporation) razvila sistem EXEC II koji je prvi podržavao obradu paketnog tipa a koristio se na računarima UNIVAC 1107.

Treća generacija računara zasnovana na integrisanim kolima, sredinom šezdesetih godina dvadesetog veka, dovela je do još većih razlika između komponenti računara. Dolazi do velikog nesklada kada su brzine u pitanju, prvenstveno između procesora i periferijskih uređaja. Periferijski uređaji su u to vreme bili mehanički uređaji i većina poslova je zahtevala saradnju ovih komponenti jer programi obično naizmenično rade sa ulazno izlaznim uređajima i obrađuju podatke dok se program ne izvrši do kraja. Vremenska jedinica kojom su se merile brzine rada procesora bila je ns, diskova — ms a štampača — s. Iz tih razloga procesor je bio nedovoljno
iskorisćen jer je često morao da čeka na sporije komponente.
Multiprogramiranje, kao bitan koncept u razvoju operativnih sistema, pružalo je rešenje za gore navedene probleme.

Osnovna ideja multiprogramiranja je bila da se u radnu memoriju smesti više programa (procesa) kako bi se poboljšala iskorišćenost procesora (slika 1.20.).

Memorija bi se podelila na delove (particije) u koje bi se učitavali programi. Programi koji imaju potrebu da rade na procesoru bi se smenjivali na njemu tako da on uvek bude zaposlen, a dok se jedan program izvršava na procesoru drugi imaju mogućnost da izvršavaju ulazno-izlazne operacije (slika 1.21.).

Glavni cilj multiprogramiranja je maksimalno povećanje iskorišćenosti sistema, ali je sa druge strane poželjno da vreme izvršavanja programa bude što manje. Iz tog razloga, pri projektovanju operativnih sistema se morao napraviti balans kada su ove dve stvari u pitanju.

Na ideji multiprogramiranja zasnovani su još neki bitni koncepti u računarstvu poput deljenja vremena, multitaskinga i multiprocesiranja.

Deljenje vremena (Time-sharing) je koncept koji se zasniva na deljenju računara između više korisnika Pošto je više korisnika zahtevalo rad na računaru, a procesori su bili dovoljno moćni da obrade zahteve, javio se problem deljenja procesora između više korisnika.

Procesor nije bilo moguće podeliti fizički, pa se došlo na ideju da se podeli ,,vremenski“ tako što bi svaki korisnik dobio određeno vreme u kojem bi imao procesor na
raspolaganju (slika 1.22.). Po isteku dodeljenog vremena procesor bi dobio sledeći korisnik. Mali vremenski intervali koje korisnik često dobija stvarali su iluziju da korisnik na raspolaganju ima procesor koji sve vreme
radi samo za njega.

Multitasking je ,moderniji” pristup u odnosu na multiprogramiranje. Tačnije, on se odnosi na efikasniji način implementacije ideje multiprogramiranja. Izvorno multiprogramiranje podrazumeva da se više procesa konkurentno izvršava na procesoru, tako da se jedan proces izvršava na procesoru sve dok na red ne dodu ulazno-izlazne operacije kada se on prekida i procesor dodeljuje sledećem procesu koji na njega čeka. Multitasking podrazumeva da je jedinica izvršavanja na procesoru posao (task) koji ne mora nužno da obuhvata izvršavanje procesa na procesoru između dve ulazno-izlazne operacije (slika 1.23.). Takođe, ovaj pristup podrazumeva da se sistem organizuje na sličnim principima kao i kada je multiprogramiranje u pitanju tako što će proces po izvršavanju posla osloboditi procesor za sledeći posao procesa koji je na redu.

Pojmovi multiprogramiranja i multitaskinga se često poistovećuju jer su dosta slični.

Multiprocesiranje ili multiprocesorski sistemi su pojam u računarstvu koji doživljava ekspanziju u poslednjoj generaciji računara. Multiprocesiranje se obično odnosi na postojanje više procesora u racunarskom sistemu koji hardverski omogućavaju istovremeno izvršavanje više poslova (različitih ili istih) procesa. Ono se često poistovećuje sa pojmovima multiprogramiranja i multitaskinga što nije pogrešno, ali se vige odnosi na hardverske mogućnosti sistema.

1.5. Značajni operativni sistemi

U narednom delu bie kratko opisani neki od najvažnijih operativnih sistema koji su obeležili razvoj računarstva. Neki od njih su bili samo dobra zamisao koja je inspirisala neke od kasnijih komercijalno uspešnijih
sistema. Takođe, navedeni su i neki od savremenih operativnih sistema koji su zaslužili da budu pomenuti zbog svoje popularnosti i inovativnosti.

U sisteme koji su obelezili razvoj racunarstva spadaju:
– Multics
– UNIX
– Linux
– DOS i Windows
– Apple OS
– Android

1.5.1. Multics

Operativni sistem Multics (Multiplexed Information and Computing Service) je bio zajednički pokušaj najvećih kompanija i univerziteta u to vreme, poput MIT (Massachusetts Institute of Technology), General Electric i Bel laboratorija (Bell Laboratories), da naprave operativni sistem u koji bi bila implementirana sva najbolja, do tada poznata, rešenja. Učesnici u projektu su želeli da za moćne računare kreiraju operativni sistem koji će biti u stanju da radi sa velikim brojem terminala.

Oni su budućnost računarstva videli tako da u svakom gradu postoji moćan centralni računar, a da građani u svojim domovima poseduju terminale uz pomoć kojih (modemom) pristupaju glavnom računaru.

Na razvoju Multics sistema, od 1964. godine, bili su zaposleni veliki timovi stručnjaka i neki od najboljih programera tog vremena. U ovaj operativni sistem implementirani su svi najbolji do tada poznati algoritmi. Rezultat nije bio onoliko dobar koliko se očekivalo. Multics se u praksi pokazao veoma loše jer je puno procesorskog vremena trošio na donošenje odluka (na svoj rad), a malo ostavljao korisnicima. Osim toga, ovaj projekat je bio i veoma skup. Iz tih razloga Multics nikada nije ozbiljno zaživeo na računarima. lako je u krajnjoj liniji bio neuspešan, ovaj operativni sistem je ostavio dubok trag u kasnijoj evoluciji operativnih sistema. Imajući u vidu osnovnu koncepciju ovog sistema, on se može smatrati pretečom Interneta. Na slici 1.24. moze se videti logo operativnog sistema Multics.

1.5.2. Operativni sistemi UNIX familije

Krajem šezdesetih i početkom sedamdesetih godina dvadesetog veka, programeri iz Bel laboratorija (AT&T Bell Laboratories, Bell Telephone Laboratories) Ken Tompson (Ken Thompson) i Denis Riči (Dennis Ritchie), koji su među poslednjima napustili rad na sistemu Multics, sa svojim kolegama su odlučili da napisu operativni sistem za mali računar PDP-7. Ovaj sistem je bio uprošćena varijanta Multics-a i iz njega se razvio operativni sistem UNIX (Uniplexed Information and Computing System).

Ken Tompson je kreirao programski jezik B na osnovu kojeg je Denis Riči osmislio programski jezik C kako bi na njemu bio isprogramiran deo operativnog sistema. Naime, kritični delovi sistema su bili isprogramirani na asembleru, a ostatak na programskom jeziku C. U drugoj iteraciji kompletan UNIX je napisan na C-u što je značajno doprinelo njegovoj prenosivosti na različite sisteme. Pošto je kompanija Bel imala monopol nad telefonijom i iz tog razloga nije smela da se bavi računarstvom i nastavi rad na UNIX-u, doneta je odluka da se kompletan programski kod ustupi univerzitetima i drugim kompanijama kako bi se dalje razvijao. Ovaj korak je verovatno bio presudan kako za sam UNIX tako i za razvoj operativnih sistema uopšte. Najpoznatije verzije UNIX-a implementirane su na Univerzitetu Berkli, sa oznakom BSD (Berkeley Softvare Distributions) koje su date na korišćenje američkim univerzitetima radi daljeg usavršavanja.

U ovim verzijama operativnog sistema UNIX prvi put je implementirana podrška za umrežavanje. Ova mrežna rešenja prihvatili su i brojni proizvođači računara koji su razvijali sopstvene varijante operativnog sistema UNIX:
– SunOS — kompanije Sun Microsystems, zasnovan na sistemu BSD
– UNIX v4.2;
– System V UNIX — kompanije AT&T (Bell);
– XENIX – kompanije Microsoft.

System V Release 4 (SVRA4)je verzija UNIX-a koja je nastala 1988. godine kombinacijom dobrih rešenja iz verzija: Sun OS/BSD, AT&T System V Release 3 i XENIX operativnih sistema. Ova verzija je ubrzo postala polazna osnova za dalji razvoj UNIX sistema. Danas postoji veliki broj vrsta UNIX sistema koje su zasnovane ili na industrijskom standardu SVR4 ili na BSD distribuciji. One vrste UNIX sistema koje potiéu od istog standarda međusobno su veoma slične.

X/Open konzorcijum je 1984. godine osnovalo nekoliko evropskih proizvođača UNIX-a, radi promovisanja otvorenih standarda u polju /KT-a (Informaciono komunikacionih tehnologija). Spajanjem OSF (Open Software Foundation) i X/Open-a, 1996. godine se formira Otvorena grupa (The Open Group), koja je i danas prepoznata kao sertifikaciono telo za UNIX.

U tabeli 1.1. se mogu videti najpoznatije verzije UNIX-a kao i godine kada su predstavljene.

1.5.3. GNU/Linux

Ričard M. Stolman (Richard M. Stallman) je 1983. godine pokrenuo inicijativu koja je trebalo da dovede do stvaranja slobodnog operativnog sistema na osnovama UNIX-a. Ovaj projekat nazvan je GNU što je skraćenica od rekurzivnog naziva ,,GNU nije UNIX” (GNU’s Not UNIX). Projekat je dobro napredovao u svim delovima osim kada je u pitanju bilo jezgro. GNU/HURD jezgro se dosta sporo razvijalo a prvo javno testiranje 1996. godine pokazalo je dosta nedostataka ovog jezgra.

Finski programer Linus Torvalds je 1991. godine započeo rad na izradi operativnog sistema za računare koji koriste procesor Intel 80386. Prvo je napisao jednostavan emulator za terminale koji je koristio za povezivanje sa UNIX sistemom na fakultetu, a onda je nastavio da ga razvija i poboljšava. Linus je bio inspirisan operativnim sistemom Minix koji je par godina ranije za potrebe svojih kurseva razvio Endru Tanenbaum (Andrew Stuart ,Andy” Tanenbaum). Za razliku od Minix-a koji je imao mikrojezgro, prva verzija Linusovog jezgra (0.01), koja je u septembru 1991. godine postala javno dostupna, bila je monolitna. Vrlo brzo, javno dostupna je postala i verzija 0.02 sa izvornim kodom. Linus Torvalds je tom prilikom pozvao sve programere da se pridruže projektu.

Linusovo jezgro je dobio ime Linux i spajanjem Linux jezgra i GNU alata kompletiran je operativni sistem GNU/Linux (slika 1.25.). Danas postoji veliki broj različitih distribucija GNU/Linux sistema a neke od najpoznatijih su: Ubuntu, Slackware, Debian, Fedora, SuSE i druge. Sve verzije operativnog sistema GNU/Linux odlikuje stabilnost, brzina i visok stepen bezbednosti. U poslednje vreme umesto GNU/Linux odomaćio se naziv Linux što proizvodi česte polemike između programera širom sveta. Pristalice GNU projekta insistiraju na tome da se naziv Linux može koristiti isključivo kada se govori o jezgru, a ne i o kompletnom operativnom sistemu.

Jezgro Linux operativnog sistema je softver otvorenog koda sa licencom GNU GPL (General Public Licence, verzija 2.0), što znači da su korisnici slobodni da preuzimaju izvorni kod i prave izmene, ali i da su u obavezi da korisnicima daju ista prava koja su i sami koristili ukoliko žele dalje da distribuiraju izmenjeni sistem. U tabeli 1.2. prikazane su najpoznatije distribucije operativnog sistema Linux.

1.5.4. Operativni sistemi kompanije Microsoft

Operativni sistem CP/M, firme Digital Research, koji je sredinom sedamdesetih godina dvadesetog veka razvio Geri Kildal (Gary Kildall) bio je namenjen osmobitnim računarima koji su imali mikroprocesore Intel 8080 i Zilog Z80. Ovaj sistem je imao višeslojnu arhitekturu što je bio prvi slučaj da kod operativnih sistema postoji nivo apstrakcije koja ga deli u nezavisne celine.

Kompanija Intel je 1981. godine proizvela mikroprocesor 8088 sa 16-bitnom arhitekturom. Iz tog razloga kompaniji IBM je bio potreban novi operativni sistem koji bi je podržao. Medutim, programeri su početkom osamdesetih godina dvadesetog veka smatrali da je 1 MB memorije više nego što će bilo kome biti potrebno, pa je firma Digital Research odlučila da ostane pri svojim 8 bitnim rešenjima i ne razvija 16-bitni operativni sistem. Za razliku od konkurencije, Bil Gejts (Bill Gates), koji je bio na čelu tada skromne firme Microsoft (slika 1.26.), imao je viziju: ,računar na svakom radnom stolu i u svakom domu”. Kompanija IBM sa Microsoft-om sklapa ugovor o kupovini 16-bitnog operativnog sistema MS-DOS (Microsoft Disk Operating System). Taj sistem je razvila kompanija Seattle Computer Products pod nazivom 86-DOS, ali ga je Microsoft otkupio, prilagodio potrebama sistema, licencirao pod novim imenom i prodao IBM-u. IBM je ovaj sistem instalirao na prvi personalni racunar PC 1981. godine pod nazivom PC-DOS. Verzije namenjene isključivo IBM računarima Microsoft je nazivao PC-DOS, dok su verzije namenjene ostatku tržišta nosile oznaku MS-DOS. Primarni zadatak operativnog sistema DOS je bilo upravljanje diskovima. On nije imao grafički korisnički interfejs, već su se komande zadavale iz konzole,tj. iz linijskog korisničkog interfejsa (slika 1.27.) unošenjem teksta sa tastature.

Microsoft kroz partnerstvo sa IBM-om, ali i samostalnim nastupom, počinje da osvaja tržište. Tada i kompanija Digital Research pokušava da se svojim sistemom DR DOS uključi u trku. Međutim, dobar marketing i pravi trenutak za pojavijivanje operativnh sistema kompanije Microsoft bio je presudan za dobijanje bitke.

Tokom skoro dvadeset godina razvoja DOS-a pojavile su se mnoge verzije čiji se pregled može videti u tabeli 1.3.

Kada se 1984. godine pojavio Apple Macintosh, dolazi do naglog porasta interesovanja za grafičkim korisničkim interfejsom. Microsoft je to na vreme shvatio i snage usredsredio na kreiranje grafičkog interfejsa. U novembru 1985. pojavila se prva verzija Windows-a koji je bio grafička nadogradnja na DOS. Ova veza će opstajati sve do verzije Windows-a NT koji je potpuno nezavisan od DOS-a. Nakon toga, u okviru novih operativnih sistema ove familije, ostaje samo emulacija starog sistema koja je bila neophodna kako bi se omogućila kompatibilnost sa starim programima.

Radni naziv operativnog sistema sa grafičkim korisničkim interfejsom bio je Interface Manager, jer je i zamišljen kao dopuna postojećem DOS-u. Na kraju je kao najadekvatnije ime izabran Windows, jer najbolje opisuje okvire ili računarske ,,prozore“ koji predstavljaju temelj ovog operativnog sistema.

U principu, novonapravljeni operativni sistem nije bio najbolje rešenje jer je u tom trenutku mogao da se napravi bolji, koji podržava više memorije, multitasking itd. Međutim, Microsoft je ovim sistemom želeo da napravi brzi prelazni korak kako ne bi izgubio tržište. Sa druge strane, kompanija IBM je želela ozbiljniji operativni sistem, ali i ekskluzivnu podrsku (drajvere) samo za njihov hardver. Iz tih razloga postepeno dolazi do razlaza ove dve kompanije. IBM razvija svoj operativni sistem OS/2, a Microsoft operativne sisteme Windows.

Od prve, ne tako uspešne verzije Windows-a, pa do danas predstavljeno je na desetine manje – više uspešnih verzija koje su kompaniju Microsoft promovisale u lidera kada su operativni sistemi na računarima u pitanju.
U tabeli 1.4. se mogu videti sve verzije Windows operativnog sistema.

1.5.5. Operativni sistemi kompanije Apple

Operativni sistemi kompanije Apple sa grafičkim korisničkim interfejsom pojavili su se 1984. Verzija 7.6 koja se pojavila 1996. godine je prva verzija koja je nosila naziv Mac OS, dok su se prethodne zvale sistemski softver i isporučivale uz hardver. Prve verzije sistema su bile namenjene isključivo Macintosh računarima. Međutim, kada je Apple napravio konfiguraciju
računara sa PC hardverom, onda je i sistem prilagođen takvoj arhitekturi.

Prva izdanja operativnih sistema kompanije Apple su imala mogućnost da pokrecu i izvršavaju samo jedan program (uz operativni sistem) u određenom trenutku. Tek kasnije je verzija System Software 5.0 dopuštala sistemu da pokreće više programa odjednom. Vremenom su realizovane mnoge verzije ovog proizvodača koje su nosile imena velikih mačaka (tabela 1.5.). Međutim, pošto su nazivi vrsta velikih mačaka iskorisćeni, Apple tim je odlučio da se, počevsi od verzije 10.9 (Mavericks), verzije operativnih sistema nazivaju po mestima u Kaliforniji. Mavericks je mesto u Severnoj Kaliforniji čuveno po surfovanju na velikim talasima.

iOS je operativni sistem koji kompanija Apple 2007. godine razvija za pametne telefone iPhone. Kasnije je podržao druge uređaje kompanije Apple (iPodTouch, iPad, iPad mini itd.). Naziv sistema je do juna 2010. godine bio iPhone OS da bi od tada postao samo iOS.Praktično iOS je mobilna verzija sistema OSX. Epohalna novina koju je ovaj sistem doneoje korisnicki interfejs koji se zasniva na multitač (multitouch) pristupu. Ovakav pristup podrazumeva da uređaj ima mogućnost da u istom trenutku prepoznaje više pritisak ekrana. Interakcija sa ekranima osetljivim na dodir se zasniva na potezima prstiju.

Pre pojave iOS-a, telefoni nisu imali ekran osetljiv na dodir ili je on bio rezistivni i zahtevao relativno jako pritiskanje i nije imao mogućnost registrovanja više dodira u istom trenutku. Situacija se promenila ugradnjom kapacitivnih ekrana u iPhone uredaje.

Usavršeno je skrolovanje (pomeranje sadrzaja na ekranu) i omogućeno uveličavanje prstima (pinch-to zoom) to su i bile glavne novine koje je Apple doneo ovim modelom. U tabeli 1.6. mogu se videti prvi nazivi i datumi objavljivanja novih verzija operativnog sistema za mobilne uređaje kompanije Apple.

1.5.6. Android

Android je jedan od najpopularnijih operativnih sistema za mobilne uređaje. Prvenstveno je namenjen za mobilne uređaje osetljive na dodir kao što su pametni telefoni i tablet računari. Zasnovan je na jezgru operativnog sistema Linux. Njegov razvoj je započela kompanija Android, koju je u početku samofinansijski podržavala kompanija Google da bi je 2005. godine i otkupila. Operativni sistem Android je predstavljen javnosti dve godine kasnije, a prvi telefon (HTC Dream) sa Android operativnim sistemom je prodat u oktobru 2008. godine.

Kompanija Google razvija Android u saradnji sa konzorcijumom Open Handset Alliance. Ovaj konzorcijum čine hardverske, softverske i telekomunikacione kompanije koje su pobornici otvorenih standarda za mobilne uređaje. Android je projekat otvorenog koda (open-source) što znači da proizvodačima omogućava da ga menjaju i prilagođavaju
potrebama svojih uređaja. Ovakav način licenciranja omogućio je veliku popularnost ovog sistema jer je privukao pažnju programera koji su dobili
slobodu da razvijaju različite aplikacije.

Interakcija korisnika sa operativnim sistemom se odvija slično kao i kada erske komponente pametnih telefona poput: akcelerometra, ziroskopa, senzora rastojanja itd. koriste se da bi neke aplikacije odgovorile na dodatne korisnicke akcije. U tabeli 1.7. prikazane su verzije operativnog sistema Android dok se na Slici 1.28. mogu videti odgovarajuci logoi.