Andrey Annenkov
Akademik Ruske akademije nauka, direktor Instituta za sistemsko programiranje Ruske akademije nauka, šef Odeljenja za sistemsko programiranje VMC MSU, predsednik Ruske asocijacije slobodnog softvera (RASPO) Viktor IVANNIKOV rekao je našem dopisniku o nivou ruske fundamentalne nauke, problemima obuke kadrova za IT industriju i izneo svoja razmišljanja o budućnosti operativnih sistema.
-- Po mišljenju laika, sistemsko programiranje su operativni sistemi, kompajleri...
Više sistema za upravljanje bazama podataka (DBMS) i razvojnih okruženja. Neću reći da je "sistemsko programiranje" ustaljeni termin. 60-ih smo to zvali ono što smo radili, ali smo radili ono što ste naveli. Kada je Andrej Nikolajevič Tihonov osnovao Fakultet za računarsku matematiku i kibernetiku (VMiK) na Moskovskom državnom univerzitetu, stvorio je tri odseka za programiranje. Jedan od njih zvao se Odsjek za sistemsko programiranje, a vodio ga je Mihail Romanovič Šura-Bura. Početkom 90-ih zamolio me je da ga zamijenim na ovom mjestu. Šta radi odjel? Tacno ono sto si naveo.
Da li je tačna još jedna ideja: sistemsko programiranje kod nas je postalo beznadežan posao nakon što je doneta odluka da se napravi ES računar, tj. o kopiranju IBM/360?
Delimično ste u pravu. Ovo se ne odnosi samo na ES računare, već i na SM računare koji su kopirali DEC mašine. Ovo je ozbiljno ograničilo naše inženjere i stisnulo opseg sistemskih programera. Iako moram reći da su naše škole na kompajlerima i operativnim sistemima bile jako jake. Tehnologije programiranja su također uvelike razvijene, posebno za odbrambene aplikacije. To su bili veoma veliki programi i morali ste biti u stanju da ih uradite. Što se tiče sistema upravljanja bazama podataka, nema mnogo toga.
- Zašto Rusija nema svoj operativni sistem?
Bilo je istraživačkih projekata, naravno. Ali domaće potražnje nema. Linux je posljednjih godina sve popularniji, a mi imamo timove uključene u ovaj projekat. Razvojna infrastruktura postoji, u njoj se može raditi. Zato što morate poći od stvarnosti: rusko tržište operativnih sistema (OS) je malo i nema razloga da razvijate sopstveni OS.
Linux je glavni pravac razvoja operativnih sistema i tu treba da zauzmemo mesto, jesam li vas dobro razumeo?
Da. Operativni sistem je mali program. Pa, sedam miliona redova. Ali sadrži aplikativni softver. Novi OS znači potrebu za prepisivanjem aplikacija. Koja je poenta ovoga? Industrijski možete koristiti Linux, sasvim je moguće raditi u njemu. Za istraživačke projekte možete napraviti vlastite operativne sisteme - na primjer, da podučavate studente na nekom malom operativnom sistemu.
Operativni sistemi su sada na rubu promjene. Previše je pokušaja da se napravi nešto inovativno. Da li dijelite ovaj utisak? Imamo li priliku da sami uradimo nešto u oblasti budućih operativnih sistema?
Da, takvi radovi se dešavaju u svijetu. One se, između ostalog, odnose na činjenicu da je potrebno napraviti mikrokernel operativnog sistema koji bi se sastojao ne od sedam miliona linija, već, recimo, od nekoliko desetina hiljada, ali tako da ovaj kod zaista ne sadrži greške. . To je lud zadatak. Ali za male programe to se može riješiti.
Takođe se dešava da osoba samo želi da napravi operativni sistem. Iz estetskih razloga. Zašto ne? Zašto ne smislite nešto novo? Naišao sam na ovo par puta. Dva dečaka, iz različitih gradova, ali ne iz Moskve, napravili su sopstvene operativne sisteme. Ovo je izuzetno zanimljivo. Oni su, naravno, dobili neku vještinu, dobili neku vrstu unutrašnjeg zadovoljstva. Jedan od njih je iz Omska, sada student.
- Kakva je uloga vašeg instituta u industriji?
Ne mogu reći da sam zadovoljan ovom ulogom, ali nivo je pristojan. Mnogi zajednički grantovi sa naučnim institucijama u Evropi i SAD. Naši momci nastupaju na najprestižnijim međunarodnim konferencijama. Nemam osećaj inferiornosti - igra je ravnopravna, a negde pobeđujemo. Pokazujemo dobar međunarodni nivo.
Dosta ugovora sa vodećim IT proizvođačima: Intel, Microsoft, IBM, Samsung. Svi projekti su vezani za razvoj novih tehnologija.
- A šta se dešava sa kadrovima u industriji?
Teška pozicija. Vrlo teško. Tržište zahtijeva znatno više ljudi - jednostavno ih nema dovoljno. I širom svijeta, i ovdje.
Ovo je specifično polje djelovanja, studentska takmičenja u programiranju. To je kao profesionalni sport. To je kao univerzitetska košarka u SAD -- igraju je profesionalci, a ne studenti amateri. Svako takmičenje u programiranju je prilično ograničen skup zadataka u određenoj oblasti: dinamičko programiranje, rad sa super velikim brojevima itd. Brzo shvatite značenje problema i brzo ga riješite. Potrebno je mnogo sati dnevnog treninga, što je slučaj sa pobjednicima.
Za državu je ovo, naravno, veliki prestiž. Ali pobjede na studentskim takmičenjima ni na koji način ne utiču na profesionalnu programersku aktivnost. Takmičenja - posebno, profesionalni nivo programera - posebno.
Uvek smo imali dovoljno talentovanih ljudi, a programiranje je veoma zgodna oblast da se izrazite. Jer Bog zna šta je za ovo potrebno. Kako u poeziji, tako i u matematici. Nema potrebe da se čekaju, na primer, testovi letenja, kao što to mora da uradi aeronautički inženjer. Pogotovo sada kada postoji internet. Moja generacija je iskusila pravu glad za informacijama - bilo je teško doći do naučnih članaka, komunicirati sa kolegama. Danas nema problema sa informacijama. Promijenjen je stil rada. Uradili smo sve od nule. A sada postoji softver otvorenog koda i možete učestvovati u njegovom razvoju. Mnogo mogućnosti za samoizražavanje.
"Pa zašto nema dovoljno ljudi?" Uostalom, najatraktivnije područje aktivnosti ... Koji je razlog?
Vjerovatno postoji nekoliko razloga. To je, naravno, i užasan nedostatak visokokvalifikovanog nastavnog kadra. Osoba koja predaje studentima mora imati vlastito profesionalno iskustvo u oblasti koju predaje. Nastavnik koji samo tumači udžbenike pa predaje ne može stvoriti školu.
Tradicije našeg - sovjetskog, ruskog - obrazovanja sastoje se u činjenici da nastavnik prenosi lično, čak i životno iskustvo. To je bila snaga našeg stila podučavanja. Ne govorim o Phystech modelu (Moskovski institut za fiziku i tehnologiju. -- Ed.), kada su pokušali da uključe studente u istraživački proces od mlađih godina.
U našem institutu radi oko stotinu studenata Fizičko-tehničkog instituta i Moskovskog državnog univerziteta, 40 diplomiranih studenata. Ali ko od njih ostaje u struci? Oko 20% (i ovo je dobar pokazatelj). Razlog je što momci rano počinju sa radom. Upravo su naučili samo da pišu programe i odvedeni su na posao sa punim radnim vremenom. Od treće godine. Ali oni i dalje moraju da uče i uče!
Neko je, naravno, primoran na to. U naše vrijeme, podučavanje, građevinski timovi i vagoni za istovar bili su sredstva za zaradu učenika. Sada ima više mogućnosti. To se odugovlači. Student vidi kako njegov drug zarađuje, recimo, hiljadu dolara, pa pomisli: zašto sam ja gori, i ja ću ići na posao. Iako ovo ne morate da radite, morate naučiti! Novac će doći s vremenom, a biće ih više ako sada provedete vrijeme učeći.
Možete li navesti imena ljudi koji su u našoj zemlji najviše uticali na razvoj oblasti znanja u kojoj radite?
U moje vrijeme bilo je malo programera, svi su se poznavali. Već sam spomenuo Mihaila Romanoviča Šura-Bura i Andreja Nikolajeviča Tihonova. I Andrej Petrovič Eršov, Svjatoslav Sergejevič Lavrov, Nikolaj Nikolajevič Govorun, Lev Nikolajevič Koroljov.
Naveo sam ljude koji su dobili akademska zvanja (Shura-Bura, inače, nije postao akademik). Ali bilo je mnogo zanimljivih ljudi, neverovatno talentovanih. Eduard Zinovijevič Ljubimski. Igor Borisovič Zadykhaylo. Bili su odlični programeri.
Zaista želim da uzmem knjigu sa natpisom "Ruska akademija nauka" na koricama, koja leži na vašem stolu.
Molim te. Ovo je priručnik.
Nije li za našu zemlju mnogo sedam i po stotina članova Ruske akademije nauka, a kako ocjenjujete sadašnji nivo naše fundamentalne nauke?
Tokom 1990-ih izgubili smo vojno-industrijski kompleks i čitave industrije. I nisam siguran da će to biti moguće sustići. Naravno, ima gubitaka i u Akademiji nauka. Ne govorim o broju akademika – to nije toliko bitno.
Izgubili smo nekoliko generacija naučnika. Sjećam se ranih 90-ih. Naši studenti, postdiplomci su otišli. Krenuli smo. Sloj specijalista je vrlo tanak, i ispire se. Ali bilo je jedinstvenih ljudi... Oni su i dalje ostali, ali oni su već stari ljudi. Akademija je izgubila nekoliko generacija i to je veoma ozbiljno. šta vidimo? Predavanja čitaju ljudi od 70-75 godina. Možete li zamisliti kakvo je opterećenje? Posao dobrog predavača sličan je radu umjetnika, veliki je fizički i emocionalni teret. A kada 75-godišnjaci čitaju predavanja nizu od 200 studenata, nije baš cool.
Dozvolite mi da se vratim na noviju istoriju Instituta. Nije bilo unutrašnje potrebe za radom, mislim na nove programske tehnologije, u zemlji. Nije bilo ni novca. Ljudi su emigrirali ili odlazili u banke. Tada sam postao direktor instituta.
Za mene je trening jedna od svetih krava. Nisam uzalud imenovao kompanije sa kojima imamo ugovore. Ovo su skupi sporazumi. Omogućavaju isplatu pristojne plate našim zaposlenima.
Ali situacija je zabrinjavajuća. A ono što zabrinjava nije koliko ima članova akademije. Da, čak i da ih ima bar pet hiljada, nije me briga. Nije to poenta, već činjenica da nema mladih momaka. Iako među članovima akademije još uvijek ima ljudi na koje može biti ponosna.
Vi ste predsednik RASPO (Rusko udruženje slobodnog softvera). Šta se danas dešava u organizaciji?
RASPO je stekao uznemirujuću slavu. Voleo bih da aktivnosti RASPO-a budu bliže stvarnim stvarima, tehničkim stvarima. Tako da se organizacije uključene u RASPO bave uspješnim razvojem softvera. Ili uspješna integracija, pošto u RASPO-u postoje kompanije integratori. Tako da rade komisije koje su stvorene u RASPO-u: pravne, tehničke itd. Sada je period kada svako treba da shvati zašto treba da bude u udruženju, šta može dati, dati društvu. Postoji mljevenje, i to vrlo teško. Postoji proces razvijanja međusobnog povjerenja – etičkog, profesionalnog. Nadam se da će se rezultati aktivnosti RASPO pojaviti za šest mjeseci ili godinu dana.
Ni kod nas ni na Zapadu ne nedostaje talentovanih programera.
Međutim, među njima je samo nekoliko ljudi u statusu gurua - kao, uostalom, i u bilo kojem drugom
oblasti. Takve majstore svog zanata morate poznavati iz viđenja (ili barem po imenu),
jer oni to definitivno zaslužuju. Danas vam predstavljam Marka
Russinovich, stručnjak za Windows i dalje.
Ko je gospodin Rusinovič?
U procesu rada na članku, došao sam do čudnog otkrića -
Ispostavilo se da je ime Marka Rusinoviča (Mark Russinovich) većini ljudi na
Danas ne govori apsolutno ništa. Dva koja su me najviše pogodila
programeri koji nikada nisu čuli za ovo. Bilo je to nakon razgovora sa
postalo im je jasno da je zaista potrebno pisati o Rusinoviču, jer
sramota, gospodo, sramota!
Dakle, Mark Rusinovič je američki programer i pisac, stručnjak za
svjetski poznat, jedan od vodećih stručnjaka u oblasti arhitekture i dizajna
operativni sistemi, a posebno Windows interne komponente. Godine 2006
ušao je u top 5 hakera na planeti, prema magazinu eWeek, zajedno sa Zhannom
Rutkowska i David Minor.
Na osnovu navedenog, lako je pretpostaviti da je Markovo obrazovanje najviše
da ni jedno ni drugo nije profil (međutim, istorija poznaje izuzetke čak i u takvim
sfere) - diplomirao je na Univerzitetu Carnegie Mellon, vlasnik dvije diplome:
diplomirao i doktorirao računarstvo.
Nakon što je diplomirao na univerzitetu, Russinovich nije ni razmišljao da se vrati od onoga što je preuzeo.
naravno, nakon što je neko vrijeme radio u istraživačkom centru IBM korporacije (u
stručnjak za operativne sisteme). Nije dugo ostao tamo,
ubrzo otišao na slobodno putovanje. 1996. godine zajedno sa drugim
programer softvera - Bryce Cogswell, Russinovich organizovao
njegovo preduzeće, koje je dobilo ime Winternals Software LP. Markova aktivnost
fokusiran na pisanje raznih besplatnih alata za administraciju i
MS Windows dijagnostika. Njegova kompanija je slijedila isti smjer, s jednim
samo mala razlika - proizvodi kompanije, u kojoj je Russinovich bio dugi niz godina
mjesto glavnog softverskog arhitekte je već plaćeno.
Russinovich i kolege distribuirali su svoje uslužne programe putem web stranice Sysinternals.com.
(ranije - ntinternals), a kako očito nisu iskusili nedostatak ideja, oni
danas iza njihovog autorstva stoji već više od 60 korisnih softballa. IN
kao najpoznatiji, možda, možete navesti Process Monitor (ranije
- Filemon i Regmon), Process Explorer, RootkitRevealer i uslužni programi poput NTFSDOS,
pomaže u radu i, zapravo, popunjava praznine u Windows-u (na primjer, NTFSDOS
čini sve NTFS particije vidljivim kada se radi pod MS-DOS). Iz najnovijeg uslužnog programa
slijedi jednostavnu činjenicu da je Russinovich napisao drajver NTFS sistema datoteka
pod DOS-om. Ovo je, naravno, daleko od glavnih njegovih zasluga, ali ne i posljednje.
Sve ove male pogodnosti možete preuzeti pojedinačno i
gotovi setovi. Na primjer, paket ispod
jednostavno ime Winternals Administrator Pak. I što je posebno zanimljivo
stranica je čak objavila verzije za Linux, što se sviđa stručnjacima za Windows
začudo, nisu zaboravili. I u kasnijim izdanjima postojale su verzije za
64-bitni sistemi. Jednom riječju, sve je išlo dobro dok se na horizontu nije pojavio Microsoft,
sjajno i strašno.
"Mali-mekani" ljudi jednostavno nisu mogli proći pored tako talentovanih stručnjaka. TO
U 2006. godini Winternals Software je bio zaista respektabilan, i
na Sysinternals možete pronaći uslužne programe za sve prilike. Ponuđena stranica
toliko zgodne i praktične stvari da čak i kratko upoznavanje s njima
bilo dovoljno da se razume - u Windows-u, zapravo, svega ovoga primetno nedostaje.
Logičan rezultat interesovanja Microsofta bila je kupovina
Winternals Software. Nakon transakcije je praznik života na Sysinternalsu
malo usporio. Na primjer, izvorni kod je nestao sa stranice, ranije besplatan
objavljene za mnoge softvere, verzije za Linux su nestale i odmah su se pojavile
uklonjeni uslužni programi poput NT Locksmith, koji su omogućili oporavak lozinke sa sistema
u skoro svim uslovima. Inače, Microsoft nije imao primjedbi.
protiv postojanja stranice i metoda distribucije softvera. U svakom slučaju, odmah
nakon spajanja, Russinovich je uvjerio javnost da će Sysinternals nastaviti sa radom
"skoro kao i obično."
U Microsoftu, Mark je dobio ponosnu titulu Technical Fellow, što je, zapravo,
označava člana tehničkog saveta korporacije. On je na ovoj poziciji do danas.
dan, radeći u korist odjela za platforme i usluge (Platform and Services
divizija). Na novom mestu, Rusinovichove dužnosti uključivale su rad na problemu
otkrivanje rootkita i kreiranje odgovarajućih alata za to, kao i
razvoj uslužnih programa za eliminaciju svih vrsta malware-programa. Ti možeš reći
da Mark Rusinovič čuva naše kompjutere od 2006 :).
Popularnost
Činjenica da se danas Mark posebno bavi pitanjima rootkita je prilično
radoznalo, jer su široke mase upoznale samu riječ "rootkit" tokom
puno mu hvala. To se dogodilo 2005. godine, čak i prije prelaska Rusinoviča u
Microsoft. Zatim naš heroj, u toku testiranja svog potomstva sa zvučnikom za
sam nazvao RootkitRevealer, otkrio je to na svom kompjuteru
dešava se neka sumnjiva aktivnost. Iskreno iznenađen, Mark kasnije
napisao je na svom blogu: “S obzirom na to da sam prilično oprezan pri korištenju
Internet i softver koji instaliram samo iz pouzdanih izvora, nisam imao pojma
gdje bi mogao pokupiti pravi rootkit, i, ako ne zbog sumnjivih imena datoteka,
Griješio bih za greške u RKR kodu.
Međutim, pokazalo se da to nisu greške RootkitRevealer-a, već u kojima je Russinovich neposredno prije
kupljeno na Amazon.com. Internet prodavnica je iskreno upozorila da je disk
zaštićeno od kopiranja pomoću DRM-a (upravljanje digitalnim pravima), ali ne
rekao šta tačno. Morao sam da uradim svoje istraživanje.
tokom kojih je postalo jasno da Sony ide dalje od svega razumnog i uklanja
nemoguće je rutkitirati drugačije nego ručno - čak je ušao u HKLM\System\CurrentControlSet\SafeBoot,
odnosno nastavio funkcionirati čak iu sigurnom načinu rada. Ogorčen
U dubini duše, Russinovich je, naravno, na kraju uspeo da se izbori sa infekcijom, ali
O ovoj epizodi nije prećutao, na svom blogu detaljno opisujući šta se dogodilo.
Informatička zajednica se uzburkala i za nekoliko sati ova informacija
pokupilo pola interneta, a potom i mejnstrim mediji. Kasnije on kao
ekspert je govorio na suđenju protiv Sonyja, dao brojne
intervjua i komentara za štampu i generalno su privukli povećanu
Pažnja. Mase su, zahvaljujući ovom incidentu, naučile šta je rootkit i
koliko je to loše, a i saznao za postojanje takve osobe kao što je Mark
Russinovich. Ispostavilo se da je Mark, neočekivano i za sebe, postao poznat.
Još jedno Rusinovičevo lice, koje mu je donelo određenu slavu -
Pisac. Između ostalog, Mark je koautor nekoliko knjiga, uključujući i ovu
bestseler, poput Microsoft Windows Internals („Interna struktura Microsoft OS-a
prozori"). Napisao je mnogo različitih članaka i priručnika, redovno.
baziran na TechNet Magazine i Windows IT Pro (ranije Windows
NT Magazine). Osim toga, Russinovich nastavlja da vodi blog, da pronađe koji
možete pratiti link blogs.technet.com/MarkRussinovich . Ovo je treća godina Markovog bloga
drži poziciju jednog od najboljih blogova među svim zaposlenima Microsofta.
Uvod
1. Operativni sistem
1.2 Struktura i funkcije OS-a
1.3 Istorija razvoja OS-a
2. Alternative Windows-u
2.1.1 Istorija razvoja
2.1.3 Upotreba
2.2.1 Istorija stvaranja
2.2.3 Upotreba
2.3.1 Istorija razvoja
2.3.3 Upotreba
Zaključak
Spisak korišćene literature
Uvod
U naše vrijeme informatička tehnologija sve više postaje dio svakodnevnog života, a kompjuter je već postao njen uobičajeni dio. Većini ljudi koji su imali iskustva sa računarom, riječi "ikona", "prozor", "desktop", "start meni" postale su poznate i razumljive, a logo četverobojne zastavice koja maše ne čudi. Želim da kažem da su mnogi korisnici personalnih računara toliko navikli na Windows da ponekad i ne znaju za postojanje drugih, alternativnih, operativnih sistema, a još više ne postavljaju sebi pitanje: „Šta je operativni sistem i kako on funkcionira?" Ali poznavanje svega ovoga neće biti korisno samo u modernom društvu, već može pomoći i u odabiru najprikladnije i najproduktivnije „ljuske“ za vaš računar. Zato sam odlučio da napravim kratak pregled operativnih sistema koji se danas koriste umjesto svima nama poznatih Windows-a.
U svom radu uglavnom sam koristio tri književna izvora. U udžbeniku E. Tanenbauma "Moderni operativni sistemi" uzeo sam informacije uglavnom o istoriji razvoja operativnih sistema. Knjiga "Operativni sistemi, okruženja i ljuske", čiji su autori Partyka T.L. i Popov II, koristio sam da definišem koncept operativnog sistema i karakteristike UNIX OS-a. I na kraju, knjiga V.G. Olifer, N.A. Olifer. "Mrežni operativni sistemi" su mi pomogli da okarakterišem glavne funkcije operativnog sistema i njegovu strukturu. Korišćeni su i različiti internet resursi, na primer, besplatna internet enciklopedija Wikipedia.
Moj apstrakt se sastoji od dva glavna poglavlja: operativni sistemi, gde sam pokušao da objasnim šta je operativni sistem, kako funkcioniše i čemu služi, i alternative Windows-u, gde direktno razmatram operativne sisteme koji se koriste umesto Windows-a. Treba napomenuti da sam, kako se tekst ne bi opterećivao ponavljanjima i radi jednostavnosti prezentacije, u svom sažetku koristio riječi "kompjuter", "mašina", "računar" kao sinonime za označavanje računara u našem današnjem razumijevanju. Smatrao sam prikladnim praviti fusnote izvorima samo u slučaju tačnog kopiranja ili uzimanja posebnih informacija, kao što su definicije ili klasifikacije. U svim ostalim slučajevima oslanjao sam se samo na informacije iz literarnih ili internetskih izvora, prepričavajući ih svojim riječima i izvodeći određene zaključke.
Moj sažetak nema za cilj da otkrijem koji je od operativnih sistema bolji. Svrha mog rada nije poređenje, već pregled operativnih sistema. Ovim sam se vodio pri pisanju sažetka. Prilikom karakterizacije svakog operativnog sistema, pokušao sam da obratim pažnju na njegove glavne prednosti i nedostatke, oblasti današnje upotrebe i izvučem zaključak o njegovoj konkurentnosti sa Windows-om.
1.Operativni sistem
1.1 Šta je operativni sistem?
Prije svega, vrijedi razumjeti šta je operativni sistem (OS).
Operativni sistem je skup programa koji obezbeđuje organizaciju računarskog procesa na računaru. Jednostavno rečeno, ovo je program dizajniran da sakrije od korisnika svu složenost "komunikacije" sa računarom. A poteškoća je mnogo više nego što se čini na prvi pogled. Bez pomoći OS-a, čak i tako jednostavna operacija kao što je pisanje datoteke na tvrdi disk, na koju smo navikli pritiskom na nekoliko tipki na tastaturi, za neupućenu osobu izgleda nemoguća. Moramo da upišemo na hard disk registruje adresu lokacije na kojoj želimo da sačuvamo naš fajl, adresu u glavnoj memoriji, broj bajtova za čuvanje, smer delovanja, u ovom slučaju pisanje. I to samo za snimanje jednog fajla!
Mislim da je čitava važnost pronalaska čak i prvih operativnih sistema postaje jasna, jer su omogućili da se osoba spasi od direktne komunikacije sa opremom, dajući programeru pogodniji sistem komandovanja.
OS služi kao veza između čovjeka i računara, pružajući korisniku jednostavan interfejs orijentisan na fajlove. Čini se da je čin pisanja datoteke na disk lakši nego da se brinete o pomicanju glava tvrdog diska, čekanju da se smjeste na svoje mjesto itd.
Ovo je samo opšta ideja operativnog sistema. Zatim predlažem da detaljnije razmotrimo OS.
1.2 Struktura i funkcije OS-a
Većina modernih operativnih sistema su modularni sistemi (tj. podijeljeni na zasebne funkcionalne dijelove). Naravno, ne postoji jedinstvena arhitektura OS-a, ali postoje univerzalni pristupi strukturiranju operativnih sistema. Najopćenitiji pristup je podijeliti sve njegove module u dvije grupe:
kernel - moduli koji obavljaju glavne funkcije OS-a;
moduli koji obavljaju pomoćne funkcije OS-a.
Moduli kernela upravljaju procesima, memorijom, I/O uređajima i tako dalje. Najčešće se koriste funkcije koje obavljaju moduli kernela, pa brzina njihovog izvršavanja određuje performanse cijelog sistema u cjelini. Da bi se osigurala velika brzina OS-a, većina modula kernela je stalno u RAM-u, tj. su rezidenti
Preostali OS moduli (pomoćni) obavljaju korisne, ali ne toliko bitne funkcije, na primjer, provjeru ispravnosti računalnih blokova, otkrivanje kvarova uređaja itd.
Često je vrlo teško povući granicu između programa uključenih u OS i jednostavnih aplikacija. Smatra se da su oni programi koji rade u kernel modu (tj. korisnik im nema hardverski pristup) uvijek dio OS-a, dok pomoćni programi rade u korisničkom modu (odnosno, korisnik ih može mijenjati po želji ).
Kernel je pokretačka snaga svih računarskih procesa, a kolaps kernela jednak je kolapsu čitavog sistema, zbog čega programeri posebnu pažnju posvećuju pouzdanosti kodova i štite ih od besplatne intervencije korisnika.
Pa, sada prijeđimo na glavne funkcije koje OS kao cjelina obavlja. Općenito se mogu podijeliti na dva najvažnija, a to je veza između osobe i mašine i upravljanje resursima same mašine. Već smo gore govorili o važnosti prve funkcije, ali vrijedi se detaljnije zadržati na drugoj.
Moderni računari se sastoje od procesora, memorije, senzora vremena, diskova, miševa, mrežnog interfejsa, štampača i ogromnog broja drugih uređaja. Dakle, funkcija OS je organizirana i kontrolirana distribucija računarskih resursa između različitih programa koji se takmiče za pravo korištenja. Zaista, zamislite šta bi se dogodilo da tri programa rade na istom računaru i da svi istovremeno pokušaju da odštampaju svoje podatke na istom štampaču. Najvjerovatnije bi prvih nekoliko redova na listu dolazilo iz prvog programa, sljedećih nekoliko iz drugog, itd. Rezultat je potpuna konfuzija. OS dovodi stvari u red u takvim situacijama. Operativni sistem dozvoljava pristup prvo samo jednom programu, a izlaz drugog sprema ga u privremenu datoteku i stavlja u red za štampanje. U ovom trenutku, drugi program nastavlja da radi, ne primjećujući da zapravo ne šalje podatke na pisač. Ispostavilo se da OS, takoreći, "prevari" program. Ovo je bio primjer privremene dodjele resursa. Jednako je važna i prostorna distribucija. Ona leži u činjenici da OS svakom programu dodjeljuje samo dio određenog resursa, a ne cijeli resurs. Najupečatljiviji primjer, po mom mišljenju, je distribucija nekoliko programa u RAM-u računara. Teško je i zamisliti koliko bi vremena bilo potrebno za obradu komandi kada bi svaki program dobio cjelokupnu količinu RAM-a, a svi ostali čekali svoj red!
Prisustvo svih ovih funkcija još jednom dokazuje neophodnost i važnost operativnih sistema. Bez operativnog sistema, računar je za korisnika samo gomila metala kojoj se ne može prići.
Na osnovu glavnih funkcija OS-a, određeni zahtjevi su vođeni njegovim razvojem:
· Modularnost;
· Mogućnost razvoja softverskog sistema;
· Lakoća učenja;
· Fleksibilnost i prilagodljivost;
· Kompatibilnost softvera različitih računara u okviru jedne hardverske platforme;
Minimalna ljudska intervencija;
· Parametrijska svestranost;
Funkcionalna redundantnost (prisustvo u sistemu nekoliko programa koji implementiraju istu funkciju);
· Funkcionalna selektivnost (mogućnost konfigurisanja sistema za određenog korisnika).
Može se lako zamisliti kroz koji dug i zanimljiv put je OS prošao u svom razvoju i sa kakvim su se problemima suočili programeri da bi zadovoljili sve gore navedene zahtjeve.
1.3 Istorija razvoja OS-a
Naravno, razvoj OS je usko povezan sa razvojem samih računara. Rani računari nisu predviđali operativne sisteme, pa su se svi procesi pokretanja i zaustavljanja programa, povezivanja eksternih uređaja obavljali ručno. Programiranje je vršeno isključivo na mašinskom jeziku. U to vrijeme mašine su se više koristile u istraživačke svrhe, a ne za rješavanje konkretnih praktičnih problema. Početkom 1950-ih, pronalaskom bušenih kartica - posebnih kartica na koje je prenošen algoritam za izvršavanje programa - situacija se donekle promijenila, ali općenito, održavanje i korištenje računara ostalo je neprihvatljivo teško.
Prvi korak ka olakšavanju komunikacije sa mašinom napravljen je kasnih 50-ih sa izumom batch obrade. Ideja je bila sastaviti kompletan paket zadataka (špil bušenih karata), prenijeti ih na magnetnu traku, a zatim, koristeći poseban program (prototip modernog OS), uzastopno ih pokrenuti za izvršenje bez sudjelovanja operater. Takva obrada zadataka značajno je smanjila vrijeme za pomoćne aktivnosti organizacije samog procesa proračuna. Ljudi više nisu morali trčati po prostoriji kako bi prenijeli rezultate obrade podataka: sada su izlazili na štampač van mreže (tj. bez komunikacije sa glavnim računarom). Međutim, postojao je i značajan nedostatak: zbog činjenice da su programeri izgubili direktan pristup računarima, bilo je potrebno mnogo više vremena da se isprave greške u programima.
Sljedeći korak ka modernim operativnim sistemima bio je pronalazak principa multitaskinga. Ranije je glavni procesor većinu vremena mogao biti neaktivan, čekajući I/O naredbu s trake ili drugog uređaja. Naravno, to je bilo vrlo nezgodno, a u slučaju komercijalne obrade informacija, takav zastoj bi mogao zauzeti 80% radnog vremena. Rješenje problema je bilo podijeliti memoriju na nekoliko dijelova, od kojih je svaki dobio poseban zadatak. Sada procesor nije čekao završetak I/O operacije, već je prešao na program koji je već bio spreman za izvršenje.
Nakon multitaskinga došao je način podjele vremena. Ovaj način rada je dizajniran za multiterminalne sisteme, kada svaki korisnik može raditi na svom terminalu. Na primjer, na sistemu se moglo registrovati dvadeset korisnika, a ako je njih sedamnaest razmišljalo, pilo kafu ili se bavilo svojim poslom, centralna procesorska jedinica je dobila tri korisnika koja su željela raditi na mašini. Međutim, u ovakvim sistemima efikasnost korištenja opreme je bila niža, što je bila cijena za praktičnost.
Sve ove inovacije su, naravno, zahtevale pisanje operativnih sistema koji bi se mogli koristiti i na velikim i na malim mašinama, kako sa velikim brojem perifernih uređaja tako i sa malim brojem, u komercijalnom polju i na polju naučnih istraživanja. Bilo je veoma teško ispuniti sve ove zahtjeve. Operativni sistemi koji su tada napisani sadržavali su milione redova, bili su veoma složeni i sadržavali su hiljade grešaka. Međutim, oni su takođe doprinijeli razvoju OS-a: neke od tehnika koje su korišćene u prvim operativnim sistemima su još uvek žive i prisutne u modernim OS.
Do sredine 1970-ih, miniračunari su postali široko rasprostranjeni. Njihova arhitektura je znatno pojednostavljena, a resursi ograničeni. Sve se to odražava na OS za takve računare. Postali su kompaktniji i mnogo bliži konceptima modernih operativnih sistema. Najčešći operativni sistem tog vremena bio je UNIX, čiju ćemo povijest razmotriti kasnije.
Prava revolucija je bio izum ranih 80-ih silicijumskih mikrokola i, kao rezultat, pojava prvih personalnih računara (PC). Što se tiče arhitekture, računari se nisu razlikovali od mini računara, ali je njihova cena bila mnogo niža. To je omogućilo da ih kupuju ne samo univerziteti, preduzeća ili vladine agencije, već i obični ljudi. Tada popularni UNIX operativni sistem bio je previše složen da bi ga neprofesionalci koristili. Zadatak je bio stvoriti prijateljski interfejs, tj. namijenjeno korisniku koji ništa ne zna i ne želi ništa znati. Tu se pojavio dobro poznati MS-DOS (MicroSoftDiskOperatingSystem). Treba napomenuti da je u početku MS-DOS imao interfejs komandne linije, što nije bilo baš zgodno. I mnogo kasnije, stvoreno je grafičko okruženje za MS-DOS, nazvano Windows, koje se kasnije formiralo u nezavisan OS. Ona je tada utjelovila ideju grafičkog interfejsa, koji se sastoji od prozora, ikona, raznih menija i miša.
Iz istorije razvoja OS-a, može se videti da je glavni zadatak operativnog sistema uvek bio da obezbedi pogodnu interakciju između osobe i mašine. Čini se da savremeni operativni sistemi rade najbolje što mogu sa ovim zadatkom. Međutim, iz godine u godinu pojavljuje se sve više novih verzija OS-a, naprednijih i sa novim karakteristikama, a istorija razvoja operativnih sistema se sve više nastavlja.
2. Alternative Windows-u
2.1 UNIX OS
2.1.1 Istorija razvoja
UNIX je prvobitno razvio Ken Thompson iz Bell Laboratories 1969. godine kao multitasking sistem za mini računare i mainframe (računare velike sobe).
Vjerujem da je veliki dio zašto je UNIX postao toliko popularan bila mogućnost prijenosa sistema na različite računare. Prije toga, za svaku konkretnu mašinu, programeri su morali iznova pisati sisteme, što, naravno, nije bilo zabavno. U UNIX-u je ovaj problem riješen. Napisan je na jeziku visokog nivoa - C. Ovo je omogućilo izdavanje samo jedne verzije OS-a, koja se potom mogla kompajlirati (prevesti) na različitim mašinama.
1974. godine UNIX je dat univerzitetima u "obrazovne svrhe". Štaviše, dobio je kompletan set izvornih tekstova, što je omogućilo vlasnicima da ga beskonačno ispravljaju. Tako je UNIX našao komercijalnu upotrebu i postao jedan od najčešćih operativnih sistema. Jedini problem je bio u tome što je svaki proizvođač dodao svoja nestandardna poboljšanja, tako da dugo vremena nisu mogli napisati softverski paket za UNIX kako bi se mogli pokrenuti na bilo kojoj verziji istog. Rješenje ovog problema bilo je stvaranje POSIX standarda, koji je uključivao najčešće procedure koje se nalaze u većini verzija UNIX-a. Ovo je donekle pojednostavilo situaciju i donelo jedinstvo u razvoju UNIX verzija.
Do danas postoji ogroman broj klonova UNIX sistema, uključujući Linux, MINIX, SystemV, Solaries, XENIX, ali svi ovi operativni sistemi zadržavaju osnovne principe implementacije algoritama, struktura podataka i sistemskih poziva.
Najzanimljiviji od navedenih operativnih sistema je Linux. Posebnost ovog klona UNIX-a je njegov poslovni model: to je besplatan softver. Za razliku od Windowsa, Mac OS-a i komercijalnih sistema sličnih UNIX-u, Linux nema centar za geografski razvoj. Ne postoji organizacija koja bi posjedovala ovaj sistem. Programi za Linux rezultat su rada hiljada projekata. Mnogi projekti okupljaju hakere iz cijelog svijeta koji se poznaju samo iz prepiske. Svako može kreirati vlastiti projekat ili se pridružiti postojećem, a ako bude uspješan, rezultati rada će postati poznati milionima korisnika. Korisnici učestvuju u testiranju besplatnog softvera, komuniciraju direktno sa programerima, što im omogućava da brzo pronađu i poprave greške i implementiraju nove funkcije. Ovaj pristup određuje ekonomsku efikasnost i popularnost Linuxa. Danas se ovaj OS koristi u mnogim uređajima, počevši od mobilnih telefona, rutera pa sve do bespilotnih vojnih vozila.
Na osnovu raznolikosti ove porodice OS-a, možemo zaključiti da je UNIX odigrao važnu ulogu u razvoju operativnih sistema i, bez preterivanja, nazvati ga istorijski jednim od najvažnijih.
2.1.2 Glavne prednosti i nedostaci
Glavne prednosti UNIX-a prvobitno su bile postavljene u ideji koja je slijedila kada je stvoren. "Operativni sistem se mora oslanjati na mali broj nehardverskih koncepata koji zajedno pružaju mobilno okruženje za razvoj i pokretanje aplikacija." Na osnovu toga možemo razlikovati dva glavna "plusa" UNIX OS-a: jednostavnost i mobilnost. Ovo je možda glavna stvar koja ga razlikuje od ostalih operativnih sistema.
Jednostavnost znači da je UNIX, zbog kompaktnosti kernela, nezahtjevan za računalne resurse (za razliku od istog Windowsa). Osim toga, UNIX sadrži mnoge druge prednosti.
Prvo, pojednostavljeni model datoteke koji vam omogućava da kreirate neograničen broj poddirektorija na vašem čvrstom disku.
Drugo, koristi samo šest osnovnih naredbi. Rad proizvodnje viljuške. Po "fork", proces stvara tačnu kopiju samog sebe. Na ovaj način dobijate dva identična primerka. Pokrenuta kopija najčešće izvršava drugi proces - zamjenjuje se novim programom. Ovo je druga osnovna operacija. Preostala četiri poziva - open (open), close (close), read (čitaj) i write (write) - služe za pristup datotekama. Ovih šest sistemskih poziva su jednostavne operacije od kojih je napravljen Unix. Postoji, naravno, bezbroj drugih komandi, ali poznavajući ovih pet, lako možete izvoditi osnovne operacije u UNIX okruženju.
Treće, značajno pojednostavljenje UNIX-a bila je upotreba dovoljno razvijenog komandnog jezika u osnovnom interfejsu sistema. Čak i danas, sa pojavom brojnih grafičkih ljuski (kao što je XWindowSystem), postoji mnogo korisnika koji preferiraju primarni interfejs komandne linije.
UNIX prenosivost znači da se može koristiti na različitim hardverskim platformama. Osim toga, postoji mogućnost pokretanja programa od strane više korisnika odjednom sa jedne mašine, što olakšava kreiranje mreža. Inače, zahvaljujući ovom principu multiterminalnosti, UNIX je odigrao veliku ulogu u razvoju Interneta.
Naravno, UNIX operativni sistem nije savršen. Možete pronaći primjere desetina drugih operativnih sistema koji su pametniji, pružaju moćnije alate za programiranje itd. Glavni nedostaci sistema uključuju:
· Nije podržan režim u realnom vremenu (vrsta multitaskinga, u kojem sam operativni sistem prenosi kontrolu sa jednog izvršnog programa na drugi);
Slaba otpornost na kvarove hardvera;
Smanjena efikasnost u rješavanju iste vrste zadataka;
Slabo razvijena sredstva interakcije i sinhronizacije procesi.
Osim toga, primjećeno je da su nedavne verzije UNIX-a pretjerano zagušene.
Međutim, uprkos svim svojim nedostacima, UNIX porodica ostaje jedna od najpopularnijih na tržištu iu budućnosti može se dobro takmičiti sa Windowsima.
2.1.3 Upotreba
Prvobitno dizajnirani da opslužuju mainframe, danas se operativni sistemi slični UNIX-u uglavnom koriste za opsluživanje servera, ali postoje verzije koje su sasvim prikladne za kućnu ili kancelarijsku upotrebu. Također, UNIX je, zbog svoje moćne kombinacije standardnih naredbi, idealan za kreiranje aplikacija.
UNIX je dobar za napredne korisnike jer zahtijeva poznavanje principa funkcionisanja procesa koji se u njemu odvijaju. Stoga je teško pogodan za "početnike". Međutim, pravi multitasking i usko dijeljenje memorije čine sistem izuzetno pouzdanim, a ako vam je potreban pouzdan, fleksibilan operativni sistem, UNIX će vam odgovarati sto posto. Zato je UNIX linija toliko popularna ovih dana. Što se tiče pouzdanosti, većina modernih operativnih sistema teško se može porediti sa njim. Nije slučajno da vojne snage i vladine organizacije često daju prednost operativnim sistemima sličnim UNIX-u.
Dakle, nastao gotovo kao projekat igračke, danas se UNIX porodica operativnih sistema uspješno implementira u različitim oblastima djelovanja: od banaka i državnih struktura, do ureda i supermarketa.
2.2 OS/2
2.2.1 Istorija stvaranja
OS/2 operativni sistem je započeo kao zajednički razvoj između IBM-a i Microsofta (1984). Međutim, projekat se kasnije raspao, a Microsoft je prepravio svoju verziju OS / 2 u WindowsNT, a sam OS / 2 je nastavio da razvija IBM, koji još uvek nije posvetio dužnu pažnju ovom operativnom sistemu. Generalno, konkurencija za liderstvo na tržištu OS između ovih kompanija uveliko je uticala na dalji razvoj operativnih sistema koje su razvili i Microsoft i IBM.
OS/2 je prvobitno zamišljen kao zamjena za MS-DOS. Već tada je bilo jasno da MS-DOS ima niz značajnih nedostataka povezanih sa ograničenom memorijom i sistemom datoteka, te nije mogao iskoristiti puni potencijal kompjutera tog vremena. Koncepti koji stoje iza novog OS-a bili su obećavajući: OS/2 bi podržavao preventivni multitasking, virtuelnu memoriju, grafičko korisničko sučelje i pokretanje DOS aplikacija. Međutim, većina ovih planova nije se ostvarila.
Prva verzija OS/2, 1.0, objavljena 1987. godine, sadržavala je većinu funkcija potrebnih za višezadaćni OS. Međutim, nije imao grafički prikaz, a nedostajali su i drajveri za mnoge popularne štampače i druge uređaje. Osim toga, bila je prilično zahtjevna za kompjuterske resurse; izvršenje i interakcija DOS aplikacija je bila veoma spora, a ponekad i nemoguća; korisnik je istovremeno mogao raditi samo sa jednom aplikacijom, dok su ostali procesi bili pokrenuti u pozadini. Svi ovi nedostaci nisu dozvolili OS / 2 da "raznese" tržište operativnih sistema poput UNIX-a. Većina korisnika se odlučila za poznati, iako ne idealan, MS-DOS, ili je prešla na Windows 3.1, koji je Microsoft objavio otprilike u isto vrijeme.
Mislim da je IBM samo žurio da objavi prve verzije OS/2. Inače bi ovaj operativni sistem mogao da se takmiči sa Windows i MS-DOS linijom.
Naravno, sa svakom novom verzijom OS/2 postajalo je sve bolje i bolje. Već u OS/2 v2.00 (1992) otklonjeni su glavni nedostaci prve verzije, osim toga, to je bio prvi dostupan i funkcionalan 32-bitni operativni sistem za personalne računare, što je nesumnjivo privuklo pažnju na njega na OS tržištu . Nakon toga uslijedilo je izdavanje prilično uspješnih mrežnih verzija OS / 2 (na primjer, Warp 3, WarpConnect, Warp 4). Od tada su operativni sistemi slični OS/2 dizajnirani više kao mrežni operativni sistemi.
Godine 1997. postojali su dobri razlozi da se kaže da OS/2 živi svoj život kao operativni sistem. Na primjer, IBM službeno najavljuje povlačenje OS/2 sa potrošačkog tržišta, OS/2 razvojni odjel je raspušten, a korisnicima je savjetovano da pređu na druge operativne sisteme. Međutim, vidjevši da je svijet sve više uronjen u sferu poslovanja i Interneta, IBM se i dalje vraća podršci OS / 2 sistemima i 1999. uvodi novu verziju: Warp4.5 ServerforE-business (Aurora).
Dakle, porodica OS/2 sistema ima vrlo realne razvojne izglede, a o nestanku ovog OS-a sa tržišta je u najmanju ruku preuranjeno govoriti.
2.2.2 Glavne prednosti i nedostaci
Prilično je teško izdvojiti neke opšte prednosti sistema OS/2 porodice, budući da svaka verzija ima svoje prednosti i nedostatke, koje možda neće biti prisutne u narednim nadogradnjama. Međutim, mislim da se sljedeće može smatrati zajedničkim za sve verzije:
· moćna podrška za Internet i umrežavanje (posebno za mrežne verzije);
stabilan rad jezgra sistema, što znači i pouzdanost.
Glavni i najveći nedostatak OS/2 je vrlo mala količina softvera i aplikacija napisanih za ovaj operativni sistem. Djelomično, mislim da to ima veze s vlastitom politikom IBM-a. Na početku razvoja OS/2, IBM nije shvaćao sistem dovoljno ozbiljno i nije sarađivao sa programerima softvera. Također je iznenađujuće da danas nema drajvera za ovaj sistem na službenoj web stranici IBM-a. Osim toga, nijedna verzija OS/2 ne dolazi sa primarnim kodovima, tj. IBM im, uprkos brojnim zahtjevima korisnika, uskraćuje mogućnost da samostalno razvijaju sistem, kao što je to učinjeno u slučaju Linuxa. (Iako pošteno radi, treba napomenuti da je trenutno u pripremi za izdavanje nova verzija OS/2, nazvana osFree, što samo podrazumijeva otvoreni izvorni kod.) Šta je razlog tako čudnog stava IBM-a prema njegovom stvaranju ostaje pitanje misterija za mene.
Relativni nedostatak sistema može se nazvati prilično teškim i zbunjujućim procesom instaliranja OS-a na računar. Iako, za iskusne korisnike, malo je vjerovatno da će to biti problem.
Inače, OS/2 je stabilan sistem koji samouvjereno zauzima svoju (iako malu) nišu na tržištu operativnih sistema.
2.2.3 Upotreba
Danas mnoge od najvećih korporacija u Evropi veruju OS/2 za upravljanje svojim računarskim mrežama, ali treba napomenuti da se OS/2 ne koristi široko u Rusiji. OS/2 nikada nije bio posebno popularan kao kućni operativni sistem, ostajući u senci Windows-a.
Naravno, OS / 2 se koristi kao server, gdje se od njega zahtijevaju pouzdanost i performanse. Zbog svoje stabilnosti OS/2 se koristi u bankarstvu kao operativni sistem za bankomate. OS / 2 je također pogodan za korištenje gdje trebate obraditi velike količine informacija, na primjer, na meteorološkim stanicama ili u polju naučnih istraživanja. Ređe se ovaj sistem koristi za razvoj aplikacija. Zanimljivo je napomenuti da je OS/2 od tada stekao određenu popularnost među igračima njen konflikt aplikacija je mnogo manji nego kod iste Windows linije.
Dakle, upoznali smo se sa još jednom alternativom Windows porodici. Međutim, sumnjam da OS/2 porodica može snažno pritisnuti Windows na OS tržištu, barem danas. Prije svega, to je zbog male količine softvera za ovaj OS, a samim tim i niske popularnosti među vlasnicima PC-a. Međutim, nemojte olako shvaćati OS/2 i bacati ga s vage, jer. kada IBM posveti dovoljno pažnje svom razvoju, odmah će otkriti svoj puni potencijal.
2.3 macOS
2.3.1 Istorija razvoja
Vrijedi odmah napomenuti da je MacOS namijenjen instalaciji na računare proizvođača Apple. Karakteristika ovih računara je da i softver i „unutrašnjost“ samog računara sklapa jedna kompanija, odnosno Apple. Ovakav pristup omogućava postizanje maksimalne ravnoteže između softvera i hardvera koji će se uz njega koristiti, što, zauzvrat, praktički eliminira mogućnost hardverskih sukoba sa kojima se često susrećemo prilikom korištenja IBMPC-a. Međutim, takvi računari se ne mogu nazvati idealnim. Činjenica je da se radi o monolitnim računarima, tj. gotovo je nemoguće povezati nove uređaje ili nadograditi stare u njima. Ovo, vjerujem, može biti ozbiljan nedostatak za neke korisnike, posebno one koji su navikli da sami prave kompjuter.
Važno je napomenuti da su upravo Macintosh (naime, tako se zovu Appleovi računari) bili prvi personalni računari, a MacOS je bio prvi komercijalni operativni sistem koji je korisniku nudio ne interfejs komandne linije, već takav grafički koji nam je poznat danas, sa prozorima, fasciklama, ikonama i pokazivačem miša. Izdavanje ovog operativnog sistema predstavljalo je pravu revoluciju u svetu PC računara, a mnoge tehnike korišćene u njemu postale su osnova za razvoj budućih operativnih sistema. Na primjer, OCWindows GUI je skoro identičan MacOS GUI. Dakle, možemo sa sigurnošću reći da je MacOS svojevrsni rodonačelnik Windows-a.
Prva verzija MacOS-a objavljena je 1984. zajedno sa prvim Appleovim Macintosh personalnim računarom. Zauzeo je samo 216 KB prostora na disku i radio je čak i uz uobičajeno kopiranje sa jednog računara na drugi. Ali takav proizvod je bio potpuno nezaštićen od krivotvorenja, pa su programeri sve svoje vrijeme posvetili ne samo njegovom tehničkom poboljšanju, proširenju funkcionalnosti i stabilnosti, već i zaštiti. Glavni nedostatak prve verzije bio je to što je samo jedan „viseći“ program doveo do kvara cijelog sistema, tj. nije bilo preventivnog multitaskinga. Ovaj nedostatak je ispravljen u sljedećim verzijama OS-a. Nakon prve verzije MacOS-a, izašlo je devet njegovih modifikacija. Sa svakom verzijom MacOS-a, postao je šareniji, efektniji, praktičniji za korištenje i pouzdaniji.
Do danas, najnovija verzija ovog operativnog sistema je MacOSX, koji je upio sve najbolje od prethodnih verzija, i po mom mišljenju se s pravom može nazvati jednim od najpovoljnijih operativnih sistema.
2.3.2 Glavne prednosti i nedostaci
Sporovi o tome šta je bolje od IBMPC platforme ili Macintosha traju već duže vrijeme. Sa moje tačke gledišta, pitanje prednosti i nedostataka Macintosh računara, a samim tim i MacOS operativnog sistema, prilično je relativno.
Tradicionalno, nedostaci MacOS-a uključuju visoku cijenu. Da, zaista, cijena Apple računara je skoro dvostruko veća od cijene običnih IBMPC-a. Ali za ovaj novac dobijate prelep, sa svojom posebnom ličnošću računar odličnog kvaliteta i savremenim operativnim sistemom, dizajniran sa svim najnovijim tehnologijama i naučnim dostignućima. U isto vrijeme, MacOS OS je kreiran posebno za Macintosh računare, koji vam omogućava da koristite mogućnosti željeza sto posto, a ne preplaćujete novac za nove artikle za koje ne znate kada i čime možete procijeniti.
Drugi nedostatak je ograničen raspon Macintosh računara. Ispostavilo se da Apple tjera korisnika u određeni okvir: na kraju krajeva, da bi uživao u svim prednostima MacOS-a, on jednostavno mora kupiti Macintosh. Ali s druge strane, kada dođete u prodavnicu, ne morate dugo razmišljati koji Macintosh vrijedi odabrati, dok će kvalitet svakog od njih biti na najvišem nivou.
Još jedan neprijatan problem je bliskost MacOS-a, što prvenstveno utiče na nedostatak softvera za njega od strane programera treće strane. Do sada postoje još neki važni softverski proizvodi napisani za Macintosh, a igrači neće moći da lutaju, jer su igre razvijene prvenstveno za Windows, a zatim i za MacOS, a neke igračke uopšte nećete naći. Ali vrijeme ne stoji i pojavljuju se organizacije koje razvijaju softverske proizvode za MacOS, a poznati programeri softvera zainteresirani su da njihov proizvod radi na Macintosh računarima. Ali što je najvažnije, Apple je uključio aplikaciju BootCamp u najnoviju verziju MaOS-a, što olakšava instalaciju Windows operativnog sistema na Macintosh računare i korištenje bilo kojeg softvera na njima.
Također, među nesumnjive prednosti MacOS-a, mislim, spada i odsustvo softverskih i hardverskih sukoba, čime se isti Windowsi uopće ne mogu pohvaliti, te gotovo potpuna zaštita od virusa, crva i drugih zlih duhova, jer je broj malvera koji može zaraziti MacOS je skoro jednak nuli. Stoga smatram da ovaj operativni sistem ipak ima više prednosti nego nedostataka.
Rasprava o tome šta je bolje može se nastaviti u nedogled, ali ako pitate one koji su se odlučili i kupili Macintosh računar da li pristaju da ga zamijene za drugi, najvjerovatnije ćete dobiti negativan odgovor. Macintosh ljudi vole svoje računare. To se može objasniti činjenicom da Apple-ov menadžment svoje proizvode stvara prvenstveno za ljude. Njihova glavna strategija je ljepota i praktičnost. Uz to, sav njihov razvoj ide u korak s vremenom, pa čak i malo ispred njega. Kada kupujete Macintosh računar sa MacOS-om, možete biti sigurni da neće zastareti za šest meseci, ali će biti relevantan još dugo.
.3.3 Upotreba
S obzirom na sve prednosti MacOS-a, odmah se postavlja pitanje zašto on još uvijek nije toliko rasprostranjen kao njegov glavni konkurent, dobro poznati Windows OS. Odgovor na njega proizlazi iz gore navedenih nedostataka: visoka cijena, nedostatak softvera, ograničeni modeli itd. Stoga većina korisnika preferira poznatu IBMPC konfiguraciju sa poznatim Windowsima.
Međutim, uprkos tome, MacOS je i dalje stekao značajnu popularnost u poslovnom polju i među profesionalcima koji se bave kompjuterskom grafikom i štampanjem.
Na osnovu toga, mislim da nije daleko vrijeme kada će Apple računari sa MacOS operativnim sistemom postati toliko popularni (a za to imaju sve preduslove) da će konkurirati Microsoftu sa njegovim Windows OS-om.
Zaključak
Dakle, ovdje smo završili pregled alternativa Windows-u. Naravno, postoji mnogo drugih operativnih sistema, osim onih u mom radu, koji mogu zamijeniti Windows. Pokušao sam da razmotrim samo one koje se najčešće koriste. Možemo sa tačnošću reći da među njima nema „loših“ ili „dobrih“. Svaki od razmatranih operativnih sistema ima svoje prednosti i nedostatke. Njihova upotreba ovisi o obimu primjene, a shodno tome i zadacima koji se pred njih postavljaju. Neki operativni sistemi su idealni za obradu velikih količina informacija i pouzdani su, na primjer, OS/2 linija sistema. Drugi se razlikuju po dostupnosti, kao što je Linux. Drugi pak oduševljavaju svojom šarenilom i upadljivošću, na primjer, MacOS.
Naravno, teško je ne složiti se da će zamisao Microsofta još dugo biti lider među softverima na OS tržištu, posebno među „kućnim“ operativnim sistemima. Za to postoje sasvim razumljivi razlozi: masovnost, pristupačnost, jednostavnost korištenja itd. Međutim, ima dosta vrijednih konkurenata, pogodnih i za kućnu upotrebu. Vjerujem da je najupečatljiviji od ovih sistema MacOS. Ovaj sistem ima svoje nedostatke, ali se svi oni gube u pozadini njegove pogodnosti i pouzdanosti. Osim toga, Windows također nije idealan sistem. Sami sukobi aplikacija nešto vrijede, a zahtjevi Windowsa za hardverskim resursima ne mogu se nazvati niskim.
U svakom slučaju, pri odabiru operativnog sistema ne treba se voditi modnim trendovima. Kao što sam rekao, morate prije svega krenuti od zadataka koje OS treba da obavlja. Uostalom, kako smo saznali na samom početku rada, operativni sistem je glavna karika kada osoba radi sa računarom. Uspjeh ovog rada, i samo njegova pogodnost, može uvelike ovisiti o izboru OS-a.
1. Olifer V.G., Olifer N.A. mrežni operativni sistemi. - Sankt Peterburg: Peter, 2002 -544 str.
2. - 400s.
3. Tanenbaum E. Moderni operativni sistemi. 2nd ed. - Sankt Peterburg: Petar, 2002. - 1040-e.
4. Kuznjecov S. "UNIX je mrtav, ali ja sam živ" - članak na Internetu (http://www.citforum.ru/database/articles/art_7.shtml)
5. SVRHA I FUNKCIJE OPERATIVNOG SISTEMA. – Članak na Internetu (http://sapr.mgsu.ru/biblio/ibm/contents/nazn.htm#UNIX)
6. www.maclinks.ru - stranica posvećena MacOS-u
7. Wikipedia - besplatna enciklopedija (www.wikipedia.org)
Partyka T.L., Popov I.I. Operativni sistemi, okruženja i školjke: Vodič. - M.: FORUM: INFRA - M, 2003.
V.G. Olifer, N.A. Olifer. mrežni operativni sistemi. - Sankt Peterburg: Petar, 2002
Tanenbaum E. Moderni operativni sistemi. 2nd ed. - Sankt Peterburg: Petar, 2002
Partyka T.L., Popov I.I. Operativni sistemi, okruženja i školjke: Vodič. - M.: FORUM: INFRA - M, 2003.
Kuznjecov S. "UNIX je mrtav, ali ja sam još uvek živ." - Online članak. (http://www.citforum.ru/database/articles/art_7.shtml)
Wikipedia - besplatna enciklopedija (www.wikipedia.org)
NAMENA I FUNKCIJE OPERACIJSKOG SISTEMA. – Članak na Internetu (http://sapr.mgsu.ru/biblio/ibm/contents/nazn.htm#UNIX)
Operativni sistemi
Operativni sistemi
Predavanje #5
Operativni sistem
1. Svrha i glavne funkcije operativnog sistema.
Pod pojmom "operativni sistem" podrazumijevamo kompleks
programe čije su funkcije kontrola upotrebe i
distribucija resursa računarskog sistema. Rekli smo to u
kompjuterski sistem ima fizičke resurse, odnosno one resurse koji
povezan sa stvarnim hardverom (magnetni diskovi, RAM,
procesorsko vreme). Također smo rekli da je u sistemu za uspješno
funkcioniranja, postoje logički (ponekad se nazivaju virtualnim)
resurse, odnosno resurse koji u obliku stvarne opreme nisu
postoje, ali se sprovode u obliku nekih sredstava koje obezbeđuje
korisnik. Fizičke i logičke resurse ćemo jednostavno pozvati kao
resursi računarskog sistema.
Bilo koji operativni sistem (OS) radi sa nekim entitetima,
koji zajedno sa načinima upravljanja njima u velikoj meri karakterišu njenu
svojstva. Takvi entiteti mogu uključivati koncepte fajla, procesa,
objekat itd. Svaki OS ima svoj skup takvih entiteta. Na primjer, u OS
Windows NT takvi entiteti uključuju koncept objekta, i to već kroz
upravljanje ovim subjektom ima sve moguće funkcije. Ako
pogledajmo UNIX, onda je u njemu takav entitet, prije svega
koncept datoteke, i sekundarno, koncept procesa.
Proces je neki entitet koji je praktično prisutan
svi OS. Proces je program koji ima vlasništvo nad resursima.
Razmotrimo dva programa (tj. kod i podatke koji se koriste) i
razmotrite sve resurse koji pripadaju programu (to mogu biti:
RAM prostor, podaci na eksternom uređaju za pohranu,
vlasništvo nad drugim resursima, kao što su komunikacione linije). Ako setovi
resursi koji pripadaju dva programa su isti, u ovom slučaju mi to ne činimo
o ovim programima možemo govoriti kao o dva procesa – ovo je jedan
proces. Ako svaki program ima svoj skup resursa, štaviše, ove
skupovi se mogu seći, ali se ne poklapati, onda govorimo o dva
procesi.
U slučaju kada skupovi resursa više procesa imaju
neprazna raskrsnica, onda imamo pitanje o upotrebi, pošto
imenovani, zajednički resursi. Djelomično smo o ovome razgovarali posljednje
predavanja: prisjetite se primjera sa uređajem za štampanje. Možda ih imamo nekoliko
procesa, od kojih svaki ima uređaj kao svoj resurs
štampanje i u bilo kom trenutku se mogu obratiti na ovaj izvor uz narudžbu
za štampanje nekih informacija. Sinhronizacija procesa na primjeru
uređaji za štampanje su nam ilustrovali jednu od funkcija OS-a koja se sastoji u
upravljanje procesima. Da vidimo na šta se misli
pod kontrolom procesa.
Upravljanje procesima:
1. Centralno upravljanje vremenom
procesor.
2. Upravljanje "pagingom" i ulaznim baferom.
3. Upravljanje zajedničkim resursima.
Glavni problemi upravljanja procesima.
Prvi je kontrola upotrebe CPU vremena
(CPU), ili se ovaj problem ponekad naziva CPU scheduling, odnosno kontrola
u kom trenutku će koji od zadataka ili koji od procesa
vlastita CPU aktivnost: na kojem će od procesa CPU raditi.
Drugi je upravljanje "pagingom" i ulaznim baferom. Pretpostavimo situaciju
kada veliki broj ljudi, na primjer, cijeli kurs sjedi za kompjuterima,
a svi su istovremeno pokrenuli neke zadatke u vidu procesa. U sistemu
formirano je dosta zadataka (garantovano više od sto). I sve računarstvo
sistem ne može prihvatiti sto zadataka za rad u multiprogramskom modu -
previše je. U tom slučaju se formira tzv. ulazni bafer.
zadataka, ili ulazni bafer procesa, odnosno bafer u kojem
oni procesi koji čekaju da ih procesor obradi. Ustaje
problem redoslijeda po kojem se procesi biraju iz ovog bafera za početak obrade.
Ovo je zadatak planiranja bafera.
Sada razmotrite zadatak zakazivanja "paginga". Procesor
nekoliko procesa se obrađuje, a pred nama je zadatak oslobađanja
pravi RAM za druge zadatke. U ovom slučaju postoji
potreba da se neki od obrađenih zadataka ispumpaju eksternom
Memorijski uređaj. I po kom algoritmu ćemo ih ispumpati
zadataka? Kakva će biti strategija uvođenja? Moguće je ispumpati, na primjer, svaki
čak i zadatak. Kako je manje-više isplativo organizirati proces pumpanja -
Ovo je problem.
Treći je upravljanje zajedničkim resursima. Postoji skup resursa
pristup kojem je u određeno vrijeme organiziran u ime
razne procese. Ovo je isti sudar sa uređajem za štampanje. Jedan od
funkcije, koje u velikoj mjeri određuju svojstva OS-a, ovo je funkcija,
osiguranje organizacije interakcije procesa i korištenje zajedničkih
resurse. Problem iz primjera uređaja za štampanje je lako riješen, ali ovdje
ako dva programa imaju zajednički dio RAM-a, onda kontrola
takav zajednički resurs je težak zadatak.
Pogledajmo sada dizajn OS-a. Gotovo svaki OS ima
koncept jezgra. Kernel OS-a je obično njegov rezidentni dio, tj
dio OS-a koji ne učestvuje u swap procesima (uvijek je
prisutan u RAM-u) i radi u OS modu, ili u
supervizor (u istom specijalizovanom režimu o kojem smo pričali
poslednje predavanje). Jezgro uključuje osnovne kontrole za glavni
entitete specifične za dati OS, a mogu uključivati i skup
programe koji omogućavaju kontrolu nad nekim fizičkim uređajima. IN
funkcije kernela, posebno, uključuju rukovanje prekidima.
Ponekad ćemo programe koji upravljaju resursima nazivati upravljačkim programima.
uređaje (fizičke ili logičke). Na primjer, OS kernel bi trebao uključivati
RAM drajver.
računarski sistem. Prvi nivo se uglavnom sastoji od vozača
fizičkih uređaja. Sljedeći nivo je upravljanje logičkim
tada se u našoj šemi mogu pojaviti upravljački programi za upravljanje datotekama, koji, na
u stvari, odnose se na drajvere za logičko upravljanje diskom i one u
su zauzvrat povezani sa stvarnim fizičkim drajverima uređaja i tako
Uopšte nije neophodno da sve komponente OS-a rade u režimu
supervizor, ili u OS modu. Mnoge komponente koje su logične
dovoljno uklonjen iz kernela, može raditi kod običnog korisnika
način rada. Takođe nije neophodno, sve ove komponente OS rade u rezidentu
način rada. Obično to nije potrebno za mnoge funkcije.
Sada pređimo na detaljnije razmatranje glavnih funkcija OS-a.
Kontrola upotrebe CPU vremena.
Zapravo, ovisi o tome koji algoritam za odabir zadatka treba prenijeti na njega
CPU aktivnost implementirana u OS ovisi o mnogim stvarnim operativnim
svojstva ovog OS-a. Izbor algoritma je gotovo u potpunosti određen
kriterijumi performansi koji se koriste za evaluaciju učinka
OS radi. Stoga smo uz vas da upravljate korištenjem CPU vremena.
Razmotrimo u pozadini razmatranja tipova OS-a.
Prva situacija. Imam veliki broj zadataka ili programa
zahtijevaju veliku količinu računarske snage sistema. Ovo su zadaci
koji se nazivaju problemi sa brojanjem; zahtijevaju mnogo računanja
i mali pristup vanjskim uređajima. Ovi zadaci se moraju izvršiti na
jedan računarski sistem. Šta će biti kriterijum efektivnosti
da sistem radi dok izvršava ovu grupu zadataka? Koji set
parametri se mogu uzeti i reći: ako su veliki, onda je dobro ako
obrnuto, da li je loše? Za takvu situaciju, kriterij učinka
računarski sistem je stepen iskorišćenosti CPU-a. Ako je mali
neaktivan (tj. radi u stanju pripravnosti, a svi procesi su zauzeti
razmjenu, ili OS preuzima vrijeme), onda možemo reći da je takav
sistem radi efikasno. To se može postići upotrebom
odgovarajući algoritam raspoređivanja, koji je kako slijedi.
Pokrećemo se za obradu skupa zadataka koje imamo
Mogućnosti OS-a (maksimalni ili svi zadaci), koji su obezbeđeni
multiprogramski režim. CPU algoritam raspoređivanja vremena u ovom
slučaj će biti sljedeći: ako je CPU dodijeljen jednom od procesa, onda ovo
proces će zauzeti CPU sve dok se ne dogodi jedna od sljedećih situacija:
1. Pristup vanjskom uređaju.
2. Završetak procesa.
3. Fiksna činjenica petlje procesa.
Čim se dogodi jedna od ovih situacija, kontrola se prenosi
na drugi proces. Broj prijenosa kontrole sa jednog procesa na
drugi je minimiziran. Od kada prenosite kontrolu sa jednog procesa
na drugom OS-u mora izvršiti skup određenih radnji, a to je gubitak
vremena, onda se ovi gubici ovdje minimiziraju. Ovaj OS režim
nazvan burst mod. OS koji radi u ovom načinu rada,
zove se paket OS.
Sada zamislite situaciju u kojoj je značajan broj ljudi
je u kompjuterskoj klasi i svako od njih uređuje ponešto
tekst. Svaki terminal ima svoju kopiju uređivača teksta koji je povezan s njim.
Hajde da vidimo šta će se desiti sa sistemom ako primenimo algoritam planiranja,
navedeno za prvi slučaj. Pretpostavimo da je jedan od korisnika neznatan
zadremao na terminalu i ne pokazuje nikakvu aktivnost. CPU vrijeme će biti
povezan sa ovim procesom jer ovaj proces ne razmjenjuje ili
završeno jer je uređivač spreman za rad. U ovom trenutku, svi preostali
korisnici će biti primorani da čekaju da se spavač probudi. Razvijaće se
lebdeće stanje. To znači da je algoritam koji je dobar za prvi
slučaju, za ovaj sistem nije prikladan čak ni sa najjačom mašinom.
Dakle, za zadatke koji rješavaju probleme obezbjeđuje se veliki broj
korisnici računarskih usluga (interaktivni zadaci), prijaviti se
drugi algoritmi zasnovani na drugim kriterijumima performansi.
Za takav sistem je prikladan kriterij vremena čekanja korisnika: s
onog trenutka kada je poslao naređenje da se izvrši neka radnja, do trenutka
odgovor sistema na ovu naredbu. Što je sistem efikasniji, to više
prosječno vrijeme čekanja u sistemu je manje.
Razmotrite situaciju za drugi slučaj. Sistem ima neke
broj procesa, a zadatak planera je da na taj način dodijeli CPU vrijeme
tako da je vrijeme odgovora sistema na zahtjev korisnika
minimalno, ili barem zagarantovano. Sljedeće
shema. Sistem koristi neki parametar (t, koji se zove
kvant vremena (općenito, kvant vremena je neka vrijednost,
što se može promijeniti tokom podešavanja sistema). Svi mnogi procesi
koji je u višeprogramskoj obradi, podijeljen je na dva
podskupovi. Prvi podskup se sastoji od onih procesa koji još nisu
spremni za nastavak izvršavanja: na primjer, oni procesi koji su naručili
razmjenjuju i čekaju njegove rezultate. A postoje procesi za koje su spremni
implementacija. Radovi će se izvoditi na sljedeći način. Taj proces
koji trenutno zauzima CPU će ga posjedovati do
dogodi se jedan od sljedećih događaja:
1. Rukovanje nalogom za razmjenu.
2. Završetak procesa.
3. Iscrpljivanje kvanta koji je dodijeljen ovom procesu
vrijeme (t.
Kada se dogodi jedan od ovih događaja, OS planer bira između
procesi spremni za izvršenje, neki procesi i prenose resurse na njega
CPU. I on bira ovaj proces u zavisnosti od algoritma
raspoređivanje koje je korišteno u ovom konkretnom OS. Na primjer,
proces se može birati nasumično. Drugi način je to
postoji, takoreći, uzastopno zaobilaženje procesa, to jest, u koje smo ušli
prvo radi jedan od procesa, zatim se oslobađa, a CPU vrijeme će biti
predati sljedećem procesu redoslijedom koji je spreman za pokretanje.
Treći kriterij po kojem se bira sljedeći zadatak može biti
vrijeme kada CPU nije servisirao proces. U ovom slučaju sistem
može izabrati proces koji ima najduže vrijeme. Ovi algoritmi
moraju biti implementirani u OS, što znači da u suprotnom moraju biti jednostavni
sistem će raditi neefikasno, sam (iako postoje takvi sistemi:
posebno, Windows porodica pati od ovoga).
Ovaj tip OS-a se naziva OS sa dijeljenjem vremena. Ona radi u modu
što minimizira vrijeme odgovora sistema na zahtjev korisnika. IN
idealno, zbog činjenice da je vrijeme odgovora na zahtjev minimalno,
korisnik bi trebao stvoriti iluziju da su svi sistemski resursi
dato samo njemu.
Pogledajmo sada sljedeći problem. Pretpostavimo da imamo avion
upravlja autopilotom, koji radi na autopilotu
odbiti. Svaki avion ima instrument koji meri visinu
aviona na zemlju. Način rada aviona je takav da je kontrola
njegove funkcije prema nekom datom programu obavlja kompjuter.
Dakle, ako imamo sistem autopilota i avion se spušta, ovo je sistem
treba da kontroliše visinu leta. Centralni kompjuter ovog aviona
može riješiti nekoliko zadataka: može kontrolirati visinu leta,
nivo goriva u rezervoarima, neki indikatori rada motora itd.
Svakom od ovih funkcija upravlja poseban proces. Pretpostavimo da imamo
imamo paket OS, i pažljivo kontrolišemo nivo goriva u rezervoarima. At
ovo, očigledno, nastaje vanredna situacija, jer se avion nastavlja dalje
smanjiti, a da OS to ne primijeti.
Pretpostavimo da imamo sistem podjele vremena. Jedan od kvaliteta
sistem podjele vremena je neefikasan zbog činjenice da u
sistem omogućava veliki broj prebacivanja sa procesa na proces
proces, a ova funkcija je prilično naporna. Ista situacija: visina
ide na nulu, a OS ponovo instalira kućne tablice. Takve
ni opcija ne radi.
Da biste riješili takve probleme, potrebni su vam vlastiti alati za planiranje. IN
U ovom slučaju koriste se takozvani operativni sistemi u realnom vremenu, glavni
čiji je kriterij vrijeme garantovanog odgovora sistema na
pojava događaja iz skupa unapred određenih
događaji. To jest, sistem ima skup događaja za koje je sistem u bilo kojem
situacije će reagovati i procesuirati ih neko unapred određeno vreme.
Za naš primjer, takav događaj bi mogao biti prijem informacija od
senzor visine. U stvarnosti, za OS ove klase, prilično jednostavno
algoritmi. Sve planiranje leži u ovom kriterijumu, tj
obrada događaja je zagarantovana u vremenu koje ne prelazi određeno
granična vrijednost. Ali OS u realnom vremenu obično ima svoje
specifičan uređaj, koji se ne određuje samo ovim jednostavnim
algoritam planiranja, ali i internu reorganizaciju sistema.
Povlačenje neke linije ispod funkcije upravljanja upotrebom
CPU vrijeme i CPU raspoređivanje, skrećem pažnju na dvije činjenice. Prva činjenica
je da su oni algoritmi koji se implementiraju u sistem planiranja
Raspodjela CPU vremena u velikoj mjeri određuje svojstva performansi
računarski sistem. Ja sam konkretno naveo primjere, sugerirao
koristiti različite OS za različite svrhe. Druga činjenica. Razmotrili smo tri
tipični tipovi OS: sistemi za grupnu obradu, sistemi za odvajanje
vremenski i sistemi u realnom vremenu. Danas možemo razgovarati o tome
da je sistem u realnom vremenu posebna klasa OS-a. Garantovano
Windows OS neće upravljati nijednim objektima koji imaju ovo stvarno
vrijeme je veoma kritično. Također neće upravljati takvim objektima i OS
SOLARIS ili LINUX itd., jer ovi sistemi nisu sistemi
realnom vremenu.
Prva dva načina rada, burst i timesharing, mogu se emulirati
na takvim uobičajenim operativnim sistemima. Zaista, veliki i ozbiljni operativni sistemi jesu
mješoviti sistemi, tj. imaju ga u elementima planiranja CPU-a
kako algoritme koji vam omogućavaju da upravljate zadacima brojanja, tako i algoritme koji
omogućavajući vam upravljanje interaktivnim zadacima ili zadacima otklanjanja grešaka,
za koji vam treba malo CPU-a.
Primjer takve organizacije planiranja CPU-a bi bio sljedeći
shema. Planer je izgrađen na dvostepenoj šemi. Vjerujemo u to
skup problema može sadržavati, pretpostavimo, probleme brojanja i
interaktivni zadaci. Prvi nivo određuje prioritet između dva
klase zadataka i ili daje CPU prvo zadatku brojanja, ili interaktivnom
zadatak. A drugi nivo definiše ono o čemu smo ranije govorili, tj.
kako odabrati zadatak u okviru istog razreda i kako ga prekinuti. Takve
mješoviti sistem može raditi na sljedeći način. Prvi nivo
planiranje će raditi po ovom principu: ako u ovom trenutku nema
niti jedan interaktivni zadatak spreman za izvršenje (a ovo je vrlo stvaran
situacija, ako korisnici uređuju tekst), onda CPU
prebačen na probleme sa brojanjem, ali se dodaje jedan uslov: čim
pojavi se barem jedan interaktivni zadatak, zadatak brojanja je prekinut i
kontrola se prenosi na blok interaktivnih zadataka. To je ono što brine
prva funkcija kontrole procesa.
Upravljanje zamjenom i ulaznim baferom.
Ovdje su algoritmi planiranja neophodni, ali ne toliko kritični. IN
stvarni sistemi često kombinuju swap bafer, tj. taj prostor
na eksternim medijima, gdje se informacije crpe iz operativnog
memoriju i ulazni bafer procesa. Ovo je prva napomena.
Druga napomena. Moderni operativni sistemi su prilično "lijeni" i pumpajući
često se ne izvode od strane jedinica procesnih memorijskih blokova, već se ispumpavaju
cijeli proces. Ovdje se postavljaju dva pitanja: koji je kriterij zamjene
procesa i koji je kriterij odabira iz bafera procesa koji mi
potrebno za višeprogramsku obradu. Najjednostavnija opcija
je korištenje vremena provedenog u određenom stanju. IN
prvi slučaj, ako se odlučimo za pitanje pumpanja procesa iz aktivnog
stanja među onima koji su obrađeni u swap područje, onda to možemo uzeti
proces koji je najduže u stanju obrade
astronomsko vrijeme. Obrnuti proces može biti simetričan, tj. mi
možemo uzeti iz ulaznog bafera procesa proces koji je tamo najduži
nalazi. U stvari, ovo su jednostavni i stvarni algoritmi za zakazivanje, i
mogu se modifikovati prema različitim kriterijumima. Jedan od
kriterijuma, ako su svi zadaci podeljeni u različite kategorije, odnosno mogu
biti OS zadaci - u tom slučaju se oni razmatraju prvi (i
među njima postoji algoritam za procjenu vremena koje su tamo proveli) i sve
ostali zadaci. Ovaj model je sličan modelu životne nepravde.
u društvu gde postoje svemoćni ljudi kojima je sve dozvoljeno, ali ih ima
ljudi koji mogu da čekaju.
Zajedničko upravljanje resursima.
Ovdje samo označavamo problem, jer konkretna rješenja za njega
kao primjer ćemo razmotriti UNIX operativni sistem.
Pretpostavimo da postoje dva procesa koja dijele zajedničko
RAM prostor. U ovom slučaju, zajednički resursi mogu
rad u različitim režimima, tj. moguće je da dva procesa
zapravo se nalaze na različitim mašinama, ali su povezani zajedničkim operativnim poljem
memorija. U ovom slučaju postoji problem sa memorijskim baferovanjem,
jer svaka od mašina ima svoje mehanizme za čitanje međuspremnika -
evidencije. Ovdje nastaje loša situacija kada je stanje fizičkog
memorija ne odgovara njenom stvarnom sadržaju. Takođe, postoje
neki problemi za OS koji radi na dvije mašine.
Sledeći problem. Neka postoje dva procesa koja se pokreću
jedan auto. Mora postojati neka sredstva za to
sinhronizirati pristup zajedničkoj memoriji, odnosno omogućiti vam kreiranje
uslove pod kojima se vrši razmena svakog od radnih procesa sa operativnim
memorija će se pojaviti ispravno. To znači da svaki put kada čitate
informacije iz zajedničke memorije moraju biti zajamčene da sve
korisnici koji su počeli nešto pisati u ovu memoriju već ovaj proces
završeno - mora postojati sinhronizacija razmjenom sa zajedničkom memorijom.
Zapravo, prilikom rješavanja problema često nije potrebno
zajednički resursi, poput zajedničke memorije, ali bih želio procese
koje istovremeno funkcionišu, mogle bi uticati jedna na drugu
na prijatelja. Utjecaj sličan prekidnom aparatu. Za implementaciju ovoga u
onda mnogi operativni sistemi imaju sredstva za signalizaciju između procesa
postoji softverska emulacija prekida. Jedan proces kaže -
proslijediti signal drugom procesu. Do prekida dolazi u drugom procesu
izvršenje ovog procesa i prenošenje kontrole na neke
unaprijed definirana funkcija koja bi trebala obraditi primljeni signal. Ovo
treća funkcija OS-a.
Skrenuo sam vam pažnju na takve karakteristike OS-a koje utiču na njega
svojstva performansi. U stvari, svaki OS također sadrži ogroman skup
druge funkcije koje čine da ovaj sistem funkcioniše.
Predavanje #6
Na prošlom predavanju smo govorili o tome da skoro svaki
operativni sistem obezbeđuje I/O baferovanje. zapravo,
to je jedna od glavnih funkcija operativnog sistema. Po analogiji sa borbom
različite brzine pristupa različitim komponentama računarskog sistema
operativni sistem uvodi softversko baferovanje unutar svojih granica,
koji također rješava probleme i probleme ujednačavanja vremena pristupa
sinhronizacija općenito (primjer s uređajem za štampanje). Problem Smoothing
Pristup leži u činjenici da skoro svaki operativni sistem
ima keš bafere koji akumuliraju pristupe vanjskoj memoriji
uređaj (VDU) je sličan hardverskom baferovanju kada se radi sa operativnim
memorija. Ovo vam omogućava da značajno optimizujete operativni sistem.
Znak takvog baferovanja je zahtjev za zaustavljanjem
pokrenuti operativni sistem prije isključivanja stroja. Na primjer, rad
sa MS-DOS operativnim sistemom, možete isključiti računar u bilo kom trenutku
vrijeme, jer u njemu nema tog bafera. O operativnim sistemima
kao što su Windows i UNIX, smatra se netačnim jednostavno isključiti mašinu kada
pokrenuti sistem, u kom slučaju je vjerovatno da
neki gubitak informacija (jer su, na primjer, trenuci naloga za razmjenu i
direktna razmjena je daleko od iste). Obim ovog puferovanja
određuje stvarnu efikasnost sistema. Kada je počeo naš fakultet
Pojavljuju se Pentiumi, ispostavilo se da pri radu sa Windows 95
postoji mala ili nikakva kvalitativna razlika između toga da li sistem funkcioniše
486 procesor ili Pentium. To znači da je efikasnost
Sistem nije ograničen efikasnošću rada sa eksternim uređajem. Ako
uzmite UNIX operativni sistem, tada će ova razlika biti primjetna, jer
ovdje brzina procesora ima jači uticaj na kvalitet sistema,
nego za Windows 95, jer se u Windows 95 sistemu razmenjuje sa
vanjski medij je mnogo veći zbog neke "gluposti" algoritama
rad međuspremnika sa eksternim uređajima.
2. Sistem datoteka.
Rekli smo da svaki od operativnih sistema radi
neki entiteti, od kojih je jedan proces. Postoji drugi
Entitet koji je takođe važan je koncept fajla. Sistem datoteka je
komponenta operativnog sistema koja obezbeđuje organizaciju za kreiranje,
skladištenje i pristup imenovanim skupovima podataka. Ovi imenovani skupovi
podaci se nazivaju fajlovi.
Osnovna svojstva datoteke
1. Datoteka je objekt koji ima ime i koji vam omogućava da radite s njim
niz nekih znakova, čija dužina zavisi od specifičnosti
operativni sistem.
2. Nezavisnost datoteke od lokacije. Za rad sa određenim fajlom
nije potrebno imati informacije o lokaciji ove datoteke na eksternom
uređaj.
3. Skup ulaznih/izlaznih funkcija. Skoro svaki operativni sistem
jedinstveno definira skup funkcija koje obezbjeđuju razmjenu sa datotekom. obično,
ovaj skup funkcija sastoji se od sljedećih upita:
1. Otvorite datoteku za rad. Možete otvoriti bilo postojeće,
ili novi fajl. Može se postaviti pitanje - zašto otvoriti datoteku?
to je sredstvo za centralno izjašnjavanje
operativni sistem na kojem će datoteka raditi s određenim
proces. I ona već može uzeti neke od ovih informacija
rješenja (na primjer, blokiranje pristupa ovoj datoteci za druge
procesi).
2. Čitanje/pisanje. Obično se dijeljenje datoteka može organizirati
neki blokovi podataka. Blok podataka sa kojim
razmjena nosi dvojaku suštinu. S jedne strane, za bilo koje
kompjuterski sistem poznaje veličine blokova podataka, što
najefikasniji za razmjenu, odnosno softverski je
hardverske dimenzije. S druge strane, ovi blokovi podataka
stvarna razmjena može varirati sasvim proizvoljno
programer. Funkcije čitanja/pisanja obično uključuju veličinu
blok podataka za razmjenu i broj blokova podataka koji
mora se pročitati ili napisati. Od odabrane veličine bloka
podaci mogu zavisiti od efikasnosti stvarne razmene, jer
to, pretpostavimo za neku mašinu veličine efektivne
blok podataka je 256Kb, a želite da izvršite razmjenu do
128Kb, i napravite dva pogotka za čitanje
logički blokovi od 128Kb. Vrlo je vjerovatno da će umjesto
da biste pročitali blok od 256Kb u jednoj razmjeni, morate primijeniti dvije
puta na jedan blok i pročitajte prvo polovinu, a zatim
drugi. Ovdje postoje elementi neefikasnosti, iako mogu
biti izglađen "pametnim" operativnim sistemom, a ako nije
izgladi, onda si ti kriv.
3. Upravljanje pokazivačem datoteke. Sa skoro svakim otvaranjem
koncept pokazivača fajla je povezan sa fajlom. Ovaj pokazivač
po analogiji sa registrom programskog brojača, u svakom trenutku vremena
ukazuje na sljedeću relativnu adresu datoteke s kojom
može se izvršiti zamjena. Nakon razmjene sa ovim blokom, pokazivač
se prenosi na poziciju kroz blok. Za organizaciju rada sa
fajl treba da može da upravlja ovim pokazivačem. Dostupan
funkcija upravljanja pokazivačem datoteka koja omogućava
proizvoljno (unutar dostupnog) pomjerite pokazivač
fajl. Pointer je neka varijabla dostupna programu,
koja se odnosi na funkciju otvaranja datoteke (kreiranje ovog
varijabla).
4. Zatvaranje datoteke. Ova operacija se može izvesti sa dva
sadržaj datoteke. 2) Uništite datoteku.
Nakon što se datoteka zatvori, sve veze s njom se prekidaju i ona dolazi
u neko kanonsko stanje.
4. Zaštita podataka. Mnoge strateške odluke se ponavljaju kao i dalje
na nivou hardvera kao i na nivou operativnog sistema. Ako se setimo
multiprogramski način rada, tada jedan od neophodnih uslova za njegovo postojanje
je pružanje zaštite (memorije i podataka). Ako uzmemo u obzir fajl
sistem, onda to, kao i operativni sistem, može biti
single user. U ovom slučaju problem zaštite podataka ne postoji,
jer osoba koja radi sa ovim operativnim sistemom je
gospodar svih fajlova. Primjeri jednokorisničkih sistema su MS-DOS ili
Windows 95. Možete pokrenuti mašinu i uništiti sve datoteke drugih
korisnika koji se nalaze na disku, jer u ovim sistemima
nema zaštite. Višekorisnički sistem pruža ispravan
rad mnogih korisnika. MS-DOS se također može pokrenuti
multiprogramiranje, ali nije dovoljno ispravno, jer je greška u
jedan proces može prepisati operativni sistem i susjedni
proces. Takođe u operativnom sistemu Windows 95 može dosta raditi
korisnika, ali ovaj rad je netačan, jer ovaj operativni
sistem ne pruža sva prava zaštite. Dakle, multiplayer
Sistem mora osigurati zaštitu informacija od neovlaštenih
pristup. Zapravo, problem zaštite nije povezan samo sa fajlom
sistem. U stvarnosti, operativni sistem osigurava zaštitu podataka u svemu
područja: to su datoteke, procesi i resursi koji pripadaju procesima,
radi u ime jednog korisnika. Ovdje vam skrećem pažnju
ovu činjenicu, jer je za fajlove ovo najkritičnija tačka.
Osnovna svojstva sistema datoteka.
Sistem datoteka prirodno uključuje sva ona svojstva koja
su navedeni za fajlove, ali dodaje još neke. Ova svojstva
vezano za strukturnu organizaciju sistema datoteka.
Hajde da pogledamo neki OVC prostor i vidimo kako to radimo
možemo organizovati postavljanje fajlova unutar ovog prostora.
1. Organizacija datoteka na jednom nivou po kontinuiranim segmentima. Termin
"single-level" znači da sistem omogućava rad sa fajlovima
jedinstveno nazvana. Unutar OCD prostora, neki
područje za pohranjivanje podataka koje se zove imenik. Katalog ima
sljedeća struktura:
| naziv | početni blok | završni blok |
"Početni blok" se odnosi na neku relativnu adresu
VZU prostor iz kojeg počinje datoteka sa datim imenom. „Konačno
blok" definira posljednji blok date datoteke. Funkcija otvaranja datoteke
svodi se na pronalaženje naziva datoteke u direktoriju i određivanje njegovog početka i
kraj (u stvarnosti, podaci mogu zauzeti nešto manje prostora, to će biti
rečeno kasnije). Ova radnja je vrlo jednostavna, osim toga, direktorij se može pohraniti
u memoriji operativnog sistema, i time smanjiti broj razmjena.
Ako se kreira nova datoteka, upisuje se u slobodan prostor.
Slično direktoriju imena, može postojati tabela slobodnih prostora
(fragmenti).
Čitanje/pisanje se odvija gotovo bez dodatnih razmjena, od kada
otvaranjem dobijamo raspon postavljanja podataka. Čitanje se odvija u
prema ovoj blok strukturi i bez dodatnih informacija
nije potrebno, tako da je razmjena vrlo brza.
Šta će se dogoditi kada budete trebali napisati dodatni
informacije, ali iza ove datoteke nema slobodnog prostora? U ovom slučaju
Sistem može da uradi dve stvari. Prvo će ona reći da nema mjesta i tebe
moraju sami nešto učiniti, na primjer, pokrenuti određeni proces koji
će prenijeti ovu datoteku na drugu lokaciju i dodati potrebne informacije. Ovo
prijenos je prilično skupa funkcija. Druga mogućnost je u razmjeni
će biti odbijen. To znači da je prilikom otvaranja fajla bilo potrebno
rezervisati dodatno mjesto; dok sistem datoteka provjerava
veličina slobodnog bafera, a ako nije dovoljna, onda traži slobodan prostor gdje
ovaj fajl će biti postavljen.
Dakle, vidimo da je ova organizacija jednostavna, efikasna u razmenama, ali
u slučaju nedovoljnog prostora za fajl, počinje neefikasnost. Osim toga
Međutim, tokom dugotrajnog rada takvog sistema datoteka, nešto se dešava na disku
ista stvar koja nam se desila sa RAM-om - fragmentacija. tj
situacija u kojoj ima slobodnih fragmenata, ali među njima nema nijednog gdje
fajl može biti postavljen. Fragmentacija za takvu organizaciju
sistem datoteka je periodična kompresija kada dugo,
proces koji je težak i opasan za sadržaj sistema datoteka, koji
čvrsto pritišće sve datoteke jedna uz drugu.
Takva organizacija može biti prikladna za jednog korisnika
sistem datoteka, jer je kod velikog broja korisnika veoma
brzo će doći do fragmentacije, a stalni početak kompresije je smrt za
sistemi. S druge strane, sistem je jednostavan i ne zahtijeva gotovo ništa
iznad glave.
2. Sistem datoteka sa blok organizacijom datoteka. OVC prostor
podijeljeni na blokove (isto blokove koji su efikasni za razmjenu). IN
sistema datoteka ovog tipa, distribucija informacija se odvija na sličan način
distribucija procesnih informacija u RAM-u sa stranicom
organizacija. Općenito, svaki naziv datoteke ima skup brojeva povezanih s njim.
blokovi uređaja u koje se nalaze podaci ove datoteke. Štaviše, brojevi
Ovi blokovi imaju proizvoljan redoslijed, tj. blokovi se mogu raspršiti
kroz uređaj nasumično. Sa takvom organizacijom nema
fragmentacija, iako može doći do gubitaka u višestrukim blokovima (ako je datoteka barem potrajala
jedan bajt po bloku, smatra se da je cijeli blok zauzet). Dakle, ne
problemi sa kompresijom, a ovaj sistem se može koristiti kada
višekorisnička organizacija.
U ovom slučaju, svaka datoteka ima skup atributa povezanih s njom: naziv datoteke, naziv datoteke
korisnik kojem se pristupa datoteci. Takva organizacija
omogućava vam da se udaljite od jedinstvenosti imena, koja je bila potrebna u prethodnom
slučaj. U takvom sistemu, jedinstvena imena su potrebna samo među datotekama.
jedan korisnik.
Organizacija takvih datoteka može biti putem direktorija. Struktura imenika
mogao bi biti sljedeći. Direktorij sadrži nizove; svaki i-ti red
odgovara i-tom bloku sistema datoteka. Ova linija sadrži
informacije o tome da li je ovaj blok slobodan ili zauzet. Ako on
je zauzet, onda ovaj red sadrži naziv datoteke (ili vezu do njega), ime
korisnika, a može sadržavati i neke dodatne informacije.
Tokom razmene sistem može da deluje drugačije. Ili prilikom otvaranja
fajl, sistem prolazi kroz ceo direktorijum i pravi tabelu korespondencije
logičke blokove datoteke, njihovo postavljanje na disk. Ili sa svakom razmjenom
potražite ovu utakmicu.
Ova organizacija sistema datoteka je jednostepena u okviru
jedan korisnik, odnosno svi fajlovi su povezani u grupe prema njihovoj pripadnosti
neki korisnik.
3. Hijerarhijski sistem datoteka. Sve datoteke u sistemu datoteka
ugrađen u strukturu koja se zove drvo. U korenu drveta
je takozvani korijen sistema datoteka. Ako čvor stabla
je list, onda je ovo datoteka koja može sadržavati korisničke podatke,
ili biti datoteka direktorija. Čvorovi drveta osim lista su
datoteke direktorija. Imenovanje u takvom hijerarhijskom sistemu datoteka može
dešavaju na različite načine. Prvi tip je relativno imenovanje datoteka
najbliži direktorij, tj. ako pogledamo fajlove koji su
najbliži direktorijumu F0 je fajl F1, koji je takođe
direktorijum i fajl F2. Za uspješno imenovanje u ovakvom sistemu na jedan
nazivi nivoa se ne mogu ponavljati. S druge strane, pošto svi fajlovi
povezano sa stablom, možemo govoriti o tzv. punom nazivu
fajl, koji se sastoji od svih imena datoteka koja čine putanju od
root sistema datoteka na određenu datoteku. Puno ime F3 datoteke će biti
označeno kao: /F0/F1/F3. Takva organizacija je dobra zato što
omogućava vam da radite i sa kratkim imenom datoteke (ako je sistem
pretpostavlja se da radimo u ovom direktoriju), i to punim imenom
fajl. Puni nazivi datoteka su staze, iu bilo kojem stablu od njegovog korijena do
postoji samo jedan put za bilo koji čvor, dakle, ovo rješava
problem objedinjavanja imena. Ovaj pristup je prvi put korišten u
operativni sistem Multix, koji je razvijen na Univerzitetu Berkli
krajem 60-ih godina. Ovo prekrasno rješenje počelo se pojavljivati kasnije u
mnogi operativni sistemi. Prema ovoj hijerarhiji, svaki od fajlova
možete vezati neke atribute koji se odnose na prava pristupa. Prava
pristup može imati i korisničke datoteke i direktorije.
Struktura ovog sistema je dobra za organizovanje višekorisničkog rada,
zbog odsustva problema imenovanja, a takav sistem može vrlo dobro
izgraditi.
4. Personalizacija i zaštita podataka u operativnom sistemu. Ova nijansa
koje ćemo sada razmotriti, i jednostavne i složene. Jednostavno - jer mi
recimo samo nekoliko fraza o tome, ali složenih, jer ih ima
problemi o kojima se može dugo pričati.
Personalizacija je sposobnost operativnog sistema da identifikuje
određenog korisnika i u skladu s tim prihvatiti određene
aktivnosti, posebno na zaštiti podataka.
Ako pogledamo naš omiljeni MS-DOS operativni sistem,
tada nije postojao koncept korisnika sa svim posljedicama koje iz toga proizlaze -
to je jedan korisnik.
Drugi nivo operativnih sistema su operativni sistemi koji
dozvoljavaju registraciju korisnika, ali svi korisnici su predstavljeni
u obliku jedinstvenog skupa nekih predmeta i nisu ni na koji način međusobno povezani.
Neki operativni sistemi su primjeri takvih operativnih sistema.
IBM sistemi za mainframe računare. Na primjer, predavač ne zna ko
svojih slušalaca kojoj grupi pripada, ali svi sjede ispred njega,
korisnici kurseva. Ovo je i dobro i loše. U smislu slušanja
tok predavanja je dobar, ali da ovaj predavač uradi neku anketu
ovo je loše, jer za jedan dan neće imati vremena da sve intervjuiše. On treba
će nekako podijeliti sve slušaoce, ali se ne zna kako.
Shodno tome, sa takvom jednodimenzionalnom personifikacijom, sve
one funkcije o kojima smo govorili (posebno zaštita), ali takve
organizacija korisnika ne podrazumijeva formiranje korisničkih grupa.
I meni je zgodno da, recimo, na našem fakultetskom serveru, moj
laboratorija je dodijeljena iu okviru ove laboratorije bilo bi moguće
daju jedno drugom prava pristupa fajlovima, itd.
Shodno tome, slično sistemu datoteka, hijerarhijski
organizacija korisnika. Odnosno, imamo koncept "svih korisnika"
i koncept "grupe korisnika". U grupi ima pravih korisnika.
Takva hijerarhijska organizacija personifikacije podrazumijeva sljedeće
momente. Prilikom registracije korisnika, prvo morate
vezati ga za neku grupu - to može biti laboratorija, odjel ili
studijska grupa. Pošto su korisnici kombinovani u grupe, pojavljuje se
mogućnost odvajanja prava pristupa korisničkim resursima. tj
korisnik može, na primjer, izjaviti da su mu svi njegovi resursi dostupni
svi korisnici grupe. Takva šema može biti na više nivoa (grupe
dijele se na podgrupe i sl.) sa odgovarajućom raspodjelom prava i
mogućnosti. Sada postoje operativni sistemi u kojima su prava
pristup može biti određen ne samo takvom hijerarhijskom strukturom, već i
može biti složeniji, tj. mogu se dodati prava pristupa, kršeći ovo
hijerarhija.
Predavanje #7
3. UNIX operativni sistem.
Okrećemo se proučavanju UNIX operativnog sistema, od mnogih
odluke koje se donose u operativnim sistemima, mi ćemo
Razmotrite ovaj operativni sistem kao primjer.
Sredinom 1960-ih izvršila je AT&T Bell Laboratories
istraživanje i razvoj jednog od prvih operativnih sistema u modernom
njegovo razumevanje - operativni sistem Multix. Ovaj operativni sistem
imao svojstva operativnog sistema za dijeljenje vremena,
predloženi su višekorisnički sistem, kao iu ovom sistemu
Glavne odluke o organizaciji sistema datoteka, posebno su bile
predlaže se hijerarhijski sistem datoteka nalik stablu. Iz ovog razvoja
nakon nekog vremena pokrenut je UNIX operativni sistem. Jedan od
Istorija razvoja ovog sistema govori da je kompanija imala nepotreban
računar PDP-7 sa veoma nerazvijenim softverom i potreban
mašina koja bi omogućila organizovanje udobnog rada za korisnika,
posebno obrada teksta. Dobro poznata grupa ljudi je
Ken Thompson i Dennis Ritchie, preuzeli su razvoj nove operacione sale
sistemi. Druga verzija ove priče kaže da su se navodno bavili
implementaciju neke igre i sredstva koja su im bila na raspolaganju,
ispalo je neprijatno - onda su odlučili da se igraju sa ovom mašinom. Kao rezultat
operativni sistem UNIX.
Posebnost ovog sistema bila je u tome što je to bio prvi sistem
program koji je napisan na jeziku koji nije
mašinski jezik (assembler). Za potrebe pisanja ovog sistema
softver, posebno UNIX operativni sistem, takođe
obavljen je rad koji je započeo sa BCPL jezikom. Od njega je nastala
jezik B, koji je operisao mašinskim rečima. Dalja apstrakcija mašine
riječi - BN, i na kraju C jezik. Od 1983. godine operativni sistem UNIX (njeg
originalna verzija) je prepisana u C jezik, a ispostavilo se da je oko
90% operativnog sistema je napisano na jeziku visokog nivoa, ne
zavisno od arhitekture mašine, a 10% ovog sistema je upisano
asembler. Ovih deset posto uključivalo je vremensko najkritičnije
dijelovi operativnog sistema.
Dakle, prvi važan i revolucionaran rezultat bila je upotreba
jezik visokog nivoa. Ova činjenica je izazvala diskusiju, jer niko
vjerovali da bi to moglo biti dugoročno, jer je jezik visokog
nivo je bio povezan sa visokom neefikasnošću. C jezik je bio
dizajniran na takav način da je s jedne strane omogućavao pisanje
prilično efektni programi, s druge strane, to emituju
efikasan kod.
Prva karakteristika jezika C koja ga je učinila efikasnijim bila je
rad sa pokazivačima. Drugo svojstvo je to
U programiranju asemblerskog jezika često koristimo nuspojave.
Na primjer, učinak kada je rezultat evaluacije nekog izraza
ne samo pisanu vrijednost, već i neke međuvrijednosti,
koji se može zapisati za kasniju upotrebu. Ove
karakteristike su postale dostupne i u C-u, jer je pojam izraza u
C jezik je mnogo širi nego u onim jezicima koji su bili dostupni u to vrijeme.
vrijeme. Konkretno, pojavio se operator dodjeljivanja umjesto operatora
zadatak, koji je omogućio programiranje nuspojava. Ove
svojstva i određivala "preživljivost" jezika, pogodnost za programiranje
komponente sistema i mogućnost optimalnog prevođenja koda raznih
Sa profesionalne (kanonske) tačke gledišta, jezik C je užasan
jezik. Glavni uslov za jezike
programiranje, je osigurati sigurnost programiranja.
Jezičke karakteristike treba da minimiziraju mogućnost unošenja grešaka
program, a svakako takva sredstva modernih jezika uključuju
sljedeće: stroga provjera tipa (tj. ne možete, na primjer, dodati
cjelobrojna varijabla sa realnom bez prethodnog pretvaranja tipa
jedan od njih tipu drugog). C jezik ima mogućnost konverzije
zadani tipovi. Još jedna kriminalna stvar je osigurati kontrolu nad
pristup memoriji programa (tj. ako memorijska ćelija pohranjuje
realan broj, onda ga ne možemo tumačiti na drugi način).
Mogućnost nekontrolisane upotrebe ovih vrednosti je obezbeđena
pokazivači. Štaviše, preko pokazivača možete "prevariti" funkcije
usklađenost i neusklađenost stvarnih parametara sa formalnim parametrima
itd. Treće svojstvo je kontrola nad interakcijom modula. Mnogi
greške se pojavljuju ako funkcija deklarira jedan skup
formalnih parametara, a pristupa se pomoću drugog skupa
(štaviše, razlike mogu biti i u broju parametara iu tipovima). IN
u C jeziku uvek možete prevariti program - umesto formalnog parametra
jednog tipa, dajte parametar drugog tipa, a umjesto deset parametara, prođite
jedan. To dovodi do grešaka.
Evo tri mjesta na kojima C jezik ne ispunjava zahtjeve
sigurnost. Međutim, iskustvo pokazuje da su najuporniji
loših (sa ove tačke gledišta) jezika.
Dakle, 1973. je godina pojavljivanja operativnog sistema napisanog na C jeziku.
UNIX sistemi. Koje su glavne karakteristike ovog sistema? Prvo
svojstvo je koncept fajlova. Glavni objekt kojim upravlja
operativni sistem, je datoteka. Fajl, operativna perspektiva
UNIX sistem je eksterni uređaj. Datoteka je direktorij koji
sadrži informacije o datotekama koje sadrži. I tako dalje, dalje
koji mogu da rade.
Drugo svojstvo je posebna struktura operativnog sistema. Za razliku od
iz prethodnih operativnih sistema u kojima je svaka naredba bila "žičana"
unutar operativnog sistema, tj. nije se moglo modificirati ni na koji način.
komandni problemi se rješavaju vrlo elegantno u UNIX-u. Prvo, UNIX
deklarira standardni interfejs za prosleđivanje parametara spolja ka unutra
proces. Drugo, sve komande su implementirane kao fajlovi. To znači,
da možete slobodno dodavati nove komande sistemu, kao i uklanjati i
modificirati ih. To jest, UNIX sistem je otvoren i može se lako razviti.
Počnimo s razmatranjem specifičnih svojstava operativnog sistema.
Sistem podataka. Organizacija fajlova. Rad sa fajlovima.
UNIX sistem datoteka je višekorisnički hijerarhijski
sistem podataka. Njegovu strukturu smo nacrtali u prošlom predavanju. Ona
predstaviti kao stablo čiji je korijen tzv
katalog. Čvorovi osim listova stabla su direktoriji. Lišće
mogu biti ili datoteke (u tradicionalnom smislu) ili prazni direktoriji.
Koncept imena datoteke je definiran u sistemu - ovo je ime koje je povezano s
skup podataka unutar direktorija kojem ova datoteka pripada. osim
Osim toga, postoji koncept punog imena - ovo je jedinstvena putanja iz korijena datoteke
sistema na određenu datoteku. Dozvoljeni su odgovarajući nazivi datoteka.
u različitim imenicima.
U stvari, sistem datoteka nije baš stablo. Dostupan
mogućnost razbijanja hijerarhije na račun sredstava koja vam omogućavaju udruživanje
nekoliko imena (punih imena) sa istim sadržajem datoteke, je, dakle
hijerarhijski i drvoliki.
UNIX operativni sistem koristi hijerarhiju na tri nivoa
korisnika (svi korisnici su podijeljeni u grupe), čija je struktura u
opšti slučaj je razmatran u prethodnom predavanju. S tim u vezi, svaki
Datoteka sistema datoteka ima dva atributa. Prvi atribut je
pozvani, vlasnik fajla. Ovaj atribut je povezan s jednim specifičnim
korisnik koji je vlasnik fajla. Vlasnik fajla može
postaje zadano ako kreirate ovu datoteku, a postoji i komanda koja
omogućava vam da promijenite vlasnika datoteke. Drugi atribut je atribut povezan s
zaštita pristupa datotekama (više o tome kasnije).
Pristup svakom fajlu je regulisan u tri kategorije. Prvo
može raditi šta god želi sa ovim fajlom. Druga kategorija je
prava grupe kojoj pripada vlasnik fajla (različito od prava
isključenje relevantne grupe. Za ove tri kategorije
regulirane su tri radnje - čitanje iz datoteke, pisanje u datoteku i izvršavanje
fajl. Svaki fajl definira može li korisnik ove kategorije
proces.
Rad sa fajlovima
Razmotrite strukturu sistema datoteka na disku. Za bilo koje
računarskog sistema, definisan je koncept sistemske eksterne memorije
uređaja (SVZU). SVZU je uređaj kojem se pristupa putem
hardverski bootloader mašine u svrhu pokretanja operativnog sistema. Skoro
svaki računar ima raspon memorijskog adresnog prostora,
nalazi se u takozvanoj memoriji samo za čitanje (ROM). IN
ROM sadrži mali program (hardverski učitavač) koji, kada
uključenje ili hard reset mašine, odnosi se na fiksno
blokira SVZU, stavlja ga u RAM i prenosi kontrolu na
fiksna adresa koja pripada očitanim podacima. Vjeruje se da je ovo
Čitani blok podataka je takozvani programski učitavač.
Treba napomenuti da je hardverski učitavač nezavisan od operativnog sistema.
sistem, a učitavač softvera je komponenta operativnog sistema.
Već zna gdje se nalaze podaci potrebni za pokretanje operativnog sistema.
U bilo kom sistemu je uobičajeno da se prostor VZU podeli na neke
područja podataka koja se nazivaju blokovi. Logička veličina bloka
je fiksni atribut operativnog sistema. U operacionoj sali
Na UNIX sistemu, veličina bloka definira neki parametar koji može
variraju u zavisnosti od verzije sistema. Radi definicije, hoćemo
recimo da je logički blok VRAM-a 512 bajtova.
Hajde da predstavimo SVZU adresni prostor kao sekvencu
blokova. SVZU blok nula je bootstrap blok, ili blok, u
gdje se nalazi učitavač softvera. Postavljanje ovog bloka u nulu
SVRAM blok je određen hardverom, jer hardverski učitavač
uvijek se odnosi na nulti blok. Ovo je posljednja komponenta datoteke
sistema, što zavisi od hardvera.
Sljedeći blok je super blok sistema datoteka. Sadrži
operativne informacije o trenutnom stanju operativnog sistema, kao i
informacije o postavkama sistema datoteka. Konkretno, superblok
sadrži informacije o broju takozvanih inoda u
sistem podataka. Superblok također sadrži informacije o broju blokova,
koji čine sistem datoteka, kao i informacije o slobodnim blokovima
datoteke, slobodne inode i druge podatke
karakterizira vrijeme, datum izmjene i druge posebne parametre.
|Blok |Superblok|Regija |Blokovi |Regija |
| početni | u | indeks | datoteke | sačuvaj |
|učitavanje |datoteka|deskriptor| | |
| |sistem | s | | |
Nakon superbloka slijedi područje (prostor) inoda.
Inode je posebna struktura podataka sistema datoteka
koji se stavlja u korespondenciju jedan na jedan sa svakim fajlom.
Veličina inode prostora je određena parametrom
generisanje sistema datoteka prema broju inoda koji
naveden u superbloku. Svaki inode sadrži sljedeće
informacije:
2. Polje sigurnosnog koda.
4. Dužina datoteke u bajtovima.
Sljedeći prostor sistema datoteka su blokovi datoteka. Ovo
prostor na sistemskom uređaju u kojem se nalaze sve informacije,
pohranjene u fajlovima i o datotekama koje se ne uklapaju u prethodne blokove
sistem podataka.
Posljednje područje podataka se različito implementira u različitim sistemima, ali
izvan blokova sistema datoteka nalazi se područje za spremanje.
Ovo je konceptualna struktura sistema datoteka. Sada razmislite
Superblock. Najzanimljivija u superbloku su posljednja dva
polja: polja informacija o besplatnim blokovima datoteka i slobodnom indeksu
deskriptori. U UNIX sistemu datoteka primetan je uticaj dva faktora.
Prvi faktor je da je sistem datoteka razvijen u to vrijeme
kada se volumen hard diska od 5-10MB smatrao veoma velikim. Unutrašnja struktura
prostor eksternog uređaja. Drugi faktor je svojstvo sistema datoteka
optimizacija pristupa. Kriterij optimalnosti pristupa - broj razmjena
sistem datoteka sa eksternim uređajem za koji proizvodi
obezbeđivanje potreba.
Lista (niz) besplatnih blokova datoteka sastoji se od pedeset
elemenata i zauzima 100 bajtova. U tamponu od pedeset
elemenata, bilježe se brojevi slobodnih blokova prostora memorijskih blokova. Ove
brojevi se pišu od drugog elementa do četrdeset devetog. Prvi element
niz sadrži broj posljednjeg unosa u tom nizu. Nulti element
ova lista se nastavlja i tako dalje.
Ako neki proces treba da proširi veličinu svoje datoteke
dodatni slobodni blok, tada je sistem označen brojem bloka (NB)
odabire element niza (kopija superbloka je uvijek prisutna u
RAM, tako da za skoro sve takve radnje sistem nema
treba upućivati na SVZU) i ovaj blok je dostavljen odgovarajućim
fajl za ekstenziju (u ovom slučaju, NB pokazivač je podešen). Ako
tada se veličina datoteke smanjuje ili se cijeli fajl briše
oslobođeni brojevi se upisuju u niz slobodnih blokova, dok
NB pokazivač je također ispravljen.
Pošto je veličina niza pedeset elemenata, moguća su dva
kritične situacije. Prvi je kada, kada se puštaju novi blokovi, ne
ne mogu staviti svoje brojeve u ovaj niz jer je već pun. U tome
U slučaju, jedan slobodni blok se bira iz sistema datoteka (u ovom slučaju to
je uklonjen sa liste slobodnih blokova) i popunjeni niz slobodnih blokova
kopirano u ovaj blok. Nakon toga, vrijednost NB pokazivača se resetuje na nulu i in
nulti element niza zapisuje se broj bloka za koji smo odabrali
kopiranje našeg niza u njega. Kao rezultat, uz stalno oslobađanje
blokova, formira se lista u kojoj su brojevi apsolutno svih
slobodni blokovi sistema datoteka.
Druga kritična situacija je kada trebate dobiti besplatni blok, ali
sadržaj niza je iscrpljen. U ovom slučaju, sistem funkcionira ovako: if
nulti element liste je jednak nuli, to znači da je sve iscrpljeno
prostor sistema datoteka i prikazuje se poruka u tom smislu. Ako ne
je nula, tada je njegov sadržaj jednak adresi nastavka niza, i
operativni sistem čita odgovarajući blok i postavlja ga
nastavak umjesto niza u superbloku.
Drugi niz, koji se nalazi u superbloku, je niz koji se sastoji od
od stotinu elemenata i koji sadrži brojeve slobodnih inoda.
Rad sa ovim nizom je jednostavan. Sve dok ima prostora za ovo
niz, onda kada se inode oslobode, slobodne inode
deskriptori se zapisuju na slobodna mjesta u nizu. Ako je niz pun
potpuno, tada se upisivanje u ovaj niz zaustavlja. Ako je, s druge strane, sadržaj
niz je iscrpljen, tada se pokreće proces koji
skenira inode područje i popunjava u skladu s tim
niz sa novim vrijednostima. Može doći do situacije kada treba da kreirate fajl, tj.
potreban je novi inode, a u nizu nema elemenata i
pokrenuti proces također nije pronašao slobodne inode. Ovo
druga situacija, kada je sistem primoran da izjavi da je resurs iscrpljen
(prvi je kada ponestane slobodnih blokova sistema datoteka).
Predavanje #8
deskriptori indeksa. Inode se prostiru nekoliko za redom
pokretanje blokova na disku. Veličina inode područja je određena pomoću
parametar (koji je definisan tokom instalacije sistema) koji određuje
broj inoda za taj određeni sistem datoteka.
Veličina površine jednaka je proizvodu ovog broja i veličine indeksa
deskriptor.
Inode je UNIX objekat koji se stavlja u mutual
jedan-na-jedan podudaranje sa sadržajem datoteke, osim kada
datoteka je neka posebna datoteka povezana s vanjskim uređajem. IN
Deskriptor indeksa ima sljedeća polja:
1. Polje koje definira tip datoteke (direktorij ili ne).
2. Polje sigurnosnog koda.
3. Broj veza na dati inode od svih mogućih
direktorije sistema datoteka (u situaciji kršenja stabla datoteka
sistemi). Ako je vrijednost ovog polja nula, onda se smatra da je to
ovaj inode je besplatan.
4. Dužina datoteke u bajtovima.
5. Statistika: polja koja karakterišu datum i vreme kreiranja, itd.
6. Polje za adresiranje bloka datoteke.
Imajte na umu da nema naziva datoteke u inode-u,
iako ovaj objekt karakterizira sadržaj datoteke. Da vidimo kako
organizirano je adresiranje blokova u koje se nalazi sadržaj datoteke.
Polje adrese sadrži brojeve prvih deset blokova datoteka. Ako
datoteka je mala, onda se u njoj nalaze sve informacije o smještaju njegovih blokova
inode. Ako datoteka prelazi deset blokova, tada se pokreće
raditi neku strukturu liste. Jedanaesti element adresnog polja
sadrži broj bloka iz prostora bloka datoteke koji sadrži 128
reference na blokove u ovoj datoteci.
U slučaju da je fajl još veći, onda dvanaesti
element polja adrese. Sadrži broj bloka koji sadrži 128
blok brojeva zapisa koji sadrže 128 brojeva blokova datoteke
sistemi, odnosno ovdje se koristi dvostruka indirektnost. Ako je datoteka još uvijek
više, tada se koristi trinaesti element i trojka
indirektno (slično duplom, ali se dodaje još jedan nivo).
Ograničenje veličine datoteke (sa veličinom bloka od 512) bit će jednako (128 + 1282 +
1283) * 512 bajtova = 1Gb + 8Mb + 64Kb > 1Gb.
Dogovorili smo se sa vama da ćemo tokom našeg kursa platiti
obratite pažnju na neusklađenost između brzina i izglađivanje. Prvo
problem - ako sistem datoteka nije imao niz slobodnih
blokova, morali biste nekako besplatno tražiti
blokova, i ovaj posao bi bio lud, a sistem datoteka bi se srušio
ideološkom nivou. Slično sa listom slobodnih inoda,
iako bi ovdje pretraga bila lakša nego za besplatne blokove, ali ipak,
tu su i elementi optimizacije. Indirektno blok adresiranje
datoteke vam omogućava da povećate troškove čitanja blokova datoteka
proporcionalno veličini ove datoteke. Odnosno, ako je datoteka mala, onda iznad glave
nema troškova, jer kada otvorite datoteku u RAM-u, ona se stvara
kopiju inode datoteke i nema dodatnih VSD pristupa
može se pristupiti bilo kojem od deset blokova datoteke odjednom. Ako je potrebno
zatim rad sa blokovima koji se nalaze na prvom nivou indirektnog adresiranja
pojavljuje se još jedna razmjena, ali se može pristupiti
već na 128 blokova. Slično obrazloženje za drugi i treći blok
red. Čini se da je loša stvar to što kada razmjenjujete s velikim fajlom, morate
mnogo dodatnih razmjena, ali UNIX sistem je lukav -
koristi duboku baferovanu razmenu sa OVC. tj
ako dobijemo neke režije na istom nivou, onda oni
kompenziraju se na drugom nivou optimizacije interakcije sistema sa
eksternu memoriju.
Blokovi fajlova. Veličina blok prostora datoteke je nedvosmisleno definirana
način nauštrb informacija u superbloku.
Područje za spremanje procesa. Iako je ovo područje prikazano iza blokova
datoteke, ali se može staviti iu neki fajl sistema datoteka
ili na proizvoljnoj lokaciji drugih VZU. Zavisi od konkretne implementacije.
sistemi. U stvari, ovo područje je korisna oblast u kojoj
procesi se ispumpavaju, a ovo područje se također koristi za
optimizirati pokretanje najčešće korištenih procesa koristeći,
takozvani t-bit datoteke (više o tome kasnije).
Dakle, razmotrili smo strukturu sistema datoteka i njegovu
organizaciju na sistemskom uređaju. Kao i svaki dizajn sistema,
struktura fajl sistema i algoritmi povezani sa njim su jednostavni
tako da kada radite s njima, režijski troškovi ne prelaze više od toga
razumno. UNIX sistem datoteka u stvarnom radu je očigledno optimalniji
sistem datoteka Windows NT (uporedi datume razvoja !!!), zbog jednostavnosti
i optimizacija, koja se dešava na svakom koraku.
Katalozi
Rekli smo da je jedno od svojstava UNIX operativnog sistema
je da se sve informacije stavljaju u fajlove, tj. ne postoje
posebne tabele koje koristi operativni sistem, za
sa izuzetkom onih tabela koje kreira, u kojima već funkcionišu
RAM prostor. Direktorij, u smislu sistema datoteka,
Ovo je datoteka koja sadrži podatke o tim datotekama kojima pripadaju
imenik.
Direktorij A sadrži datoteke B, C i D, iako
da datoteke B i C mogu biti ili datoteke ili direktoriji, i
datoteka D je direktorij.
Imenik se sastoji od stavki koje sadrže dva polja. Prvo polje -
inode broj, drugo polje je ime datoteke koja
povezan sa datim inodom. Indeksni brojevi
deskriptori (u inode prostoru) počinju od jedan.
Prvi inode je inode direktorija. Uglavnom
mogu postojati unosi u direktoriju koji se odnose na isti inode
deskriptor, ali ne može biti unosa u direktoriju koji imaju isto ime.
Ime unutar direktorija je jedinstveno, ali sa sadržajem datoteke može
biti povezan sa proizvoljnim brojem imena. Stoga ih ima
dvosmislenost u definiciji koncepta datoteke u UNIX operativnom sistemu.
Ispostavilo se da je fajl više od samo imenovanog skupa podataka: ima
inode i može biti više imena (tj. ime je sekundarno
komponenta).
Kada se kreira direktorij, u njemu se uvijek kreiraju dva unosa: unos za
posebna datoteka pod nazivom "." (tačka) s kojom je indeks povezan
ručicu za sam direktorij, i datoteku ".." (dvije tačke) s kojom
pridruženi inode (ID) roditeljskog direktorija. Za naš
na primjer, imenik A ima, na primjer, ID broj 7, a imenik D ima ID broj
broj 5. Fajl F ima ID #10, fajl G ima ID #101. U ovom slučaju fajl je
direktorij D će imati sljedeći sadržaj:
|Ime |№ID |
|«.» |5 | Prvi unos je unos u sebe. |
|«..» |7 | Drugi unos je za nadređenog (direktorij A). |
| | | imenik | |
| "G" | 101 | Ovako će izgledati sadržaj direktorija D. |
Razlika između datoteke direktorija i običnih korisničkih datoteka je
sadržaj polja tipa datoteke u ID-u. Za korijenski direktorij, roditeljsko polje će biti
odnosi se na sebe.
Hajde sada da šematski pogledamo kako se mogu koristiti puna imena.
i strukturu imenika. U sistemu, u svakom trenutku rada
korisnički definiran trenutni direktorij, tj. direktorij i sve staze iz
root povezan sa ovim direktorijumom, koji je podrazumevano postavljen na
svi nazivi datoteka koji ne počinju znakom "/". Ako je trenutni direktorij D,
onda možete samo pričati o fajlovima F i G, a ako treba da dođete do fajla B,
tada morate koristiti puno ime ili posebnu datoteku "..", tj
U ovom slučaju, konstrukcija "../B". Pozivamo se na fajl ".." - ovo je
znači da morate pročitati roditeljski ID i koristiti ga da dođete do sadržaja
direktorij A. Zatim u datoteci direktorija A odaberite red s imenom B i
odredite ID datoteke B, a zatim otvorite datoteku. Cela ova operacija
prilično naporno, ali s obzirom da se fajlovi ne otvaraju često, ovo
neće uticati na brzinu sistema.
Rekli smo da se isti sadržaj može povezati
više imena, tj. datoteke sa istim imenom mogu se otvoriti u isto vrijeme
ID. Pojavljuje se problem - kako se sinkronizira rad sa sadržajem datoteke
ako ga otvaraju različiti procesi ili s različitim imenima. U UNIX-u je to
je riješeno sasvim ispravno (ovo ćemo razmotriti malo kasnije).
Datoteke specifične za uređaj
Već poznajemo dvije vrste datoteka: datoteke direktorija i radne datoteke, in
u kojoj se pohranjuju podaci. Postoji i treća vrsta - datoteke uređaja. Ovo
sorta se odlikuje vrstom navedenom u ID-u. Sadržaj datoteke
nema uređaja, već samo ID i ime. ID sadrži informacije o
koji tip uređaja je povezan sa ovom datotekom: bajt-orijentisan
uređaj ili blok orijentisan uređaj. Bajt orijentisan
uređaj - ovo je uređaj s kojim se razmjena vrši jedan po jedan
bajt (npr. tastatura). Blok orijentisan uređaj je
uređaj sa kojim se blokovi mogu razmjenjivati.
Takođe postoji polje koje navodi broj drajvera koji je povezan sa ovim
uređaj (jedan uređaj može imati više drajvera, ali ne
obrnuto). Ovo polje je zapravo broj u tabeli drajvera
odgovarajuću klasu uređaja. U sistemu postoje dvije tabele: za blok
i za bajt orijentisane uređaje. Također, ID definira neke
numerički parametar koji se može proslijediti vozaču kao
pojašnjavanje informacija o poslu.
Organizacija razmjene podataka sa fajlovima
Hajde da prvo definišemo šta je to niskorazinski ulaz/izlaz
sistem. UNIX sistem datoteka definira neke posebne
funkcije koje se nazivaju sistemski pozivi. Sistemski pozivi
direktno pristupiti operativnom sistemu, odnosno njemu
funkcije koje obavljaju neke operacije operativnog sistema. Implementacija
sistemske i bibliotečke funkcije (npr. matematika) u korijenu
je drugačije. Ako je funkcija biblioteke učitana u tijelo procesa,
ko koristi ovu biblioteku, tada sve radnje u većini slučajeva
će se izvršiti unutar ovog procesa, a sistemski poziv će se odmah
prenosi kontrolu na operativni sistem i on izvršava naređeno
akcija. U UNIX-u, za obezbjeđivanje I/O niskog nivoa, tj.
I/O, koji se implementira putem sistemskih poziva, postoji
skup funkcija. Evo glavnih:
1. open - Otvaranje postojeće datoteke. Jedan od parametara ove funkcije
je niz sa imenom datoteke i vraća neki broj,
koji se naziva deskriptor datoteke. U tijelu korisničkog procesa,
a takođe i u podatke koji su povezani sa ovim procesom
(osim koda i podataka, naravno) neke servisne informacije, u
posebno, tabela deskriptora datoteke. Ona, kao i svi stolovi
UNIX sistem, pozicioni, tj. broj deskriptora odgovara
broj zapisa u ovoj tabeli. Sa deskriptorom fajla (FD)
povezan s imenom datoteke i svim potrebnim atributima za rad s njim.
FD brojevi su jedinstveni unutar jednog procesa. Postoji sličan
funkcija kreiranja je funkcija za otvaranje nove datoteke.
2. read/write - čitanje/pisanje sistemskih poziva, čiji parametri
je FD broj i neki atributi za koje nisu toliko bitni
naše razmatranje.
3. zatvori - sistemski poziv za završetak rada sa fajlom, parametrom
što je FD broj. Nakon pozivanja ove funkcije, FD
postaje slobodan, a rad ovog procesa sa datotekom se završava.
Evo nekoliko sistemskih poziva koji pružaju ulaz/izlaz (usput rečeno, jesu
skoro da ne dodajete kod u svoj program). Pogledajte detalje
na svoju ruku. Skrenuo sam vam pažnju da se radi o sistemskim pozivima, jer
da se I/O može obaviti i preko I/O biblioteka. Za
postoji takozvana razmjena datoteka i funkcije fopen, fread i
itd. (sa prefiksom f). Ovo su funkcije biblioteke. Ove funkcije nazivaju same sebe
na funkcije niskog nivoa u sebi.
Razmotrite organizaciju razmjene sa sistemske tačke gledišta u operacionoj sali
UNIX sistem. Prilikom organizovanja razmene, operativni sistem se deli
i podatke povezane sa operativnim sistemom.
Tabela inoda otvorenih datoteka. Prva tabela podataka,
povezan sa operativnim sistemom - inode tabela
otvorene datoteke (TIDOF). Ova tabela sadrži unose, od kojih svaki
sadrži kopiju inode za svako otvaranje u sistemu
fajl. Preko ove kopije pristupa se blokovima datoteka. Svaki
Zapisi tabele takođe sadrže polje koje karakteriše broj otvorenih in
sistem datoteka koristeći dati deskriptor (brojač). Odnosno, ako
isti fajl je otvoren u ime dva procesa, zatim unos u TIDOF
jedan se kreira, ali se svako dodatno otvaranje ove datoteke povećava
brojač po jedinici.
Tabela fajlova. Tabela datoteka (TF) sadrži informacije o imenu
Predavanje #9
Rekli smo da sistem može raditi sa sadržajem datoteke u oba
samo ako je proces registrovao svoju želju za radom
ovaj fajl. Činjenica takve registracije naziva se otvaranjem datoteke. At
otvaranje datoteke unutar procesa za svako ime datoteke koja se otvara
(može se otvoriti postojeći fajl ili novi) se stavlja u njega
podudara se sa jedinstvenim cijelim brojem koji se zove datoteka
deskriptor (FD). U okviru procesa, PD su numerisani od 0 do k-1.
Vrijednost k je postavka operativnog sistema koja određuje da li
koliko istovremeno otvorenih datoteka proces može imati. Evo
treba napomenuti da je riječ o broju istovremeno otvorenih datoteka
(takođe napisano u bilo kojoj knjizi o UNIX-u), međutim, u stvari, k je
maksimalan broj FD-ova koji se mogu pridružiti jednom
fajl, jer se isti fajl u okviru procesa može otvoriti dva puta
puta i formiraju se dva FD. Gdje će to dovesti, razmotrit ćemo nekoliko
kasnije, ali je sasvim tačno. Nakon otvaranja datoteke, sve operacije razmjene
se izvode preko indikacija deskriptora fajla (tj. ime nije nigdje drugdje
nije određeno). Svaki deskriptor datoteke ima skup parametara povezanih s njim.
(o njima malo kasnije).
Pogledajmo kako je organiziran ulaz/izlaz, odnosno obrada
razmjena niskog nivoa, sa stanovišta operativnog sistema. Sada će biti
govori se o logičkoj šemi organizacije ulaza/izlaza, jer je prava šema
malo drugačije uređeno, ali to nama nije toliko bitno.
Svi podaci sa kojima sistem radi podijeljeni su na dva
klasa. Prva vrsta podataka su podaci povezani sa operacijom
sistem, tj. podaci u cijelom sistemu. Ovi podaci uključuju TIDOF.
Veličina stola je fiksna i određena je brojem istovremeno otvorenih
FD. Svaki unos u ovoj tabeli sadrži neke informacije, među
u kojem će nas zanimati sljedeće:
1) Kopija ID-a otvorene datoteke. Za bilo koju otvorenu datoteku, ID koji
karakterizira sadržaj ove datoteke, kopira se i stavlja u
TIDOF. Nakon toga, sve manipulacije s datotekom (na primjer, promjena
adrese datoteka) pojavljuju se s kopijom ID-a, a ne sa samim ID-om na disku.
TIDOF se nalazi u RAM-u, tj. pristup informacijama u
izvodi se brzo.
2) Brojač trenutno otvorenih fajlova povezanih sa datim ID-om. Ovo
znači da za bilo koji broj puta fajl povezan sa
dajući ID, sistem radi sa jednom kopijom tog ID-a.
Sada pređimo na takozvanu tabelu datoteka (TF). Tabela fajlova
sastoji se od fiksnog broja unosa. Svaki TF zapis
odgovara otvorenoj datoteci u sistemu ((ili bolje rečeno FD)). Istovremeno, u
U velikoj većini slučajeva, ovo je prepiska jedan na jedan.
Slučaj kada ovo nije prepiska jedan na jedan, mi
razmotrite u nastavku. Svaki TF zapis sadrži pokazivače za čitanje/pisanje
fajl. To znači da ako je isti fajl otvoren u dva procesa
ili dva puta u istom procesu, svaki otvor ima svoj pokazivač povezan s njim, i
nezavisne su jedna od druge (skoro uvijek, sa izuzetkom nekih
slučajevima). Svaki TF zapis sadrži takozvani indeks
nasljeđe je neki cijeli broj.
Ovo su podaci na nivou operativnog sistema, tj. podatke koji opisuju
stanje problema u sistemu u celini.
Svaki proces ima takozvanu otvorenu tabelu datoteka koja je povezana s njim.
(TOF). Broj zapisa u ovoj tabeli je FD broj. Svaki red ovoga
informacije o pokazivačima povezanim sa FD-om su, takoreći, pokvarene. Od jednog
ruku, deskriptori datoteka su podaci koji su atribut procesa,
s druge strane, pokazivač je podatak koji je atribut operacije
sistemi. Činilo bi se nelogično, a sada ćemo razmotriti šta je ovo
javlja se nelogičnost. Za to ćemo ukratko pregledati konceptualnu
pitanja vezana za formiranje procesa. UNIX operativni sistem
ima funkciju fork(). Ovo je sistemski poziv. Prilikom pristupa ovom sistemu
poziva, neka akcija se dešava u sistemu, što je za većinu
možete izgledati besmisleno - postoji kopija procesa, u
na koje je ova funkcija naišla, tj. kreira se proces blizanaca. Za što
potrebno je, reći ću malo kasnije.
Formiranje procesa blizanaca ima sljedeća svojstva. Prvo
svojstvo: podređeni proces koji će se formirati nakon poziva funkcije
fork() ima sve one datoteke koje su bile otvorene u nadređenom procesu. Sekunda -
sistem dozvoljava, na neki od svojih načina, da identifikuje gde
proces-otac, a gde je proces-sin, iako su u opštem slučaju apsolutno
su isti.
Pretpostavimo da postoji proces broj 1 i tabela otvorenih
fajlovi #1. Ovaj proces ima otvorenu datoteku pod nazivom Ime i ovu datoteku
mapirano u deskriptor datoteke I. To znači da u
odgovarajući red TOF-a će imati zapis sa vezom na TF. U TF
neki atributi povezani sa otvaranjem fajla su definisani, a postoji i
pokazivač čitanja/pisanja, tj. pokazivač na kojem radimo,
razmjenu informacija sa fajlom. Unosi u TF imaju link na TIDOF, in
koji sadrži kopiju ID-a koji odgovara datoteci pod nazivom Ime.
Pretpostavimo da ovaj proces još jednom otvara fajl pod imenom Name.
Sistem mu je dodijelio deskriptor datoteke J. ovo
otvor odgovara J-toj liniji TOF-a prvog procesa. U ovom unosu
otvaranje datoteke Ime. I dok su indeksi nasljeđa za oba slučaja
će biti jednaka jedan. Ovaj unos će imati svoje veze sa ovim otkrićem,
pokazivači čitanja/pisanja. Pokazivači deskriptora datoteke I i J su nezavisni
jedno od drugog, tj. kada čitate/pišete kroz deskriptor fajla I,
pokazivač deskriptora datoteke J se neće promijeniti. Ovaj post će povezati
na isti inode iz TIDOF-a, a vrijednost brojača će biti
jednako dva.
Pretpostavimo da je proces #1 uputio poziv funkciji fork(),
formirana je kopija procesa, štaviše, obje kopije počinju raditi na izlazu
iz fork(), a TOF #2 će biti povezan sa drugim procesom. Bit će isto
Ime datoteke otvaraju ID I i ID J. Ali u ovom slučaju, kada je proces primljen
otvorite datoteke naslijeđene od roditelja, zatim veze iz odgovarajućih linija
Pacifička flota se neće pojaviti na novim TF zapisima, već na istim, kojima
referencirao odgovarajući FD od roditelja. Ovi procesi imaju pokazivače čitanja
evidencija će biti ista, tj. ako pomjerite pokazivač u jednom procesu,
tada će se automatski preći i na drugi proces. Ovaj slučaj je kao
vremena kada ne postoji korespondencija jedan-na-jedan između nizova TF i
linije TOF-a. Kada se ove reference generiraju, brojač se povećava za dva. I,
shodno tome, iz ID-a, zbog adresiranja blokova, pristupa se
blokovi fajlova. Ova organizacija razmene informacija znači da razmena
sa sadržajem svake datoteke vrši se centralno, tj. na kraju
kao rezultat, svi nalozi za razmjenu prolaze kroz jedan jedini unos, bez obzira na količinu
nijedna datoteka povezana s ovim ID-om nije otvorena na sistemu. Ne postoje
kolizije, kada zabuna počinje u vremenu u izvršenom, ili
neuspjele razmjene povezane s jednom ručkom.
Sa bilo kojim formiranjem novog procesa, sistem se a priori postavlja
nula, prvi i drugi deskriptori datoteke iz TOF-a, pridružujući im
unapred definisane datoteke. Nula FD je povezana sa sistemskom ulaznom datotekom, sa
obično je povezan sa eksternim uređajem sa tastaturom. Prvi FD je
standardna izlazna datoteka, obično povezana sa ekranom monitora. Sekunda
FD je standardna izlazna datoteka dijagnostičke poruke, zajedno s njom
obično povezan sa ekranom monitora.
Razmotrite, na primjer, tipične radnje kada pristupate jednom ili drugom
sistemski pozivi.
Pozivanje funkcije fork(). Kao što znate, prilikom pozivanja ove funkcije
sistem kreira kopiju originalnog procesa. Istovremeno, sistem duplira Pacifičku flotu
jedan proces u TOF procesa nasljednika, a također se povećava za jedan
indeks nasljeđivanja u TF redovima povezanim s otvorenim datotekama
originalni proces, a također povećava brojač otvorenih datoteka povezanih s
ID podaci, u TIDOF-u.
Pozivanje funkcije open(). Kada se ova funkcija pozove,
sljedeće:
1. Puno ime određuje direktorij u kojem se nalazi
2. Određuje se ID broj. Za pretragu se koristi ID broj
TIDOF table.
3. Ako se pronađe zapis sa datim brojem, popravite broj
odgovarajući red TIDOF-a i idite na korak 5.
4. Ako niz nije pronađen, formacija
novi red koji odgovara novom ID-u i popravlja ga
5. Ispravljamo brojač referenci (strelice) za TIDOF zapis. Broj
zapisi u TIDOF se upisuju u TF zapis, kao i u TOF
ovim se programom vraća broj termina Pacifičke flote u kojem
U I/O operacijama, akcije sistema su očigledne.
Interakcija sa uređajima. Već smo rekli da su svi uređaji
koje opslužuje UNIX operativni sistem mogu biti
klasifikovani u dva tipa - bajt-orijentisani uređaji i uređaji zasnovani na blokovima
orijentisani uređaji. Treba napomenuti da je isti uređaj u
sistem se može smatrati i bajt-orijentiranim i blok-orijentiranim
orijentisan (primjer - RAM). Shodno tome, postoji
blok orijentisani i bajt orijentisani drajveri. Na prošlom predavanju smo
smatraju posebnim datotekama povezanim s vanjskim uređajima, i
govorili o tome da postoji tabela blok-orijentisanih drajvera uređaja
i tabela bajt orijentisanih drajvera uređaja. Shodno tome, za ove
Glavna karakteristika organizacije rada sa blok-orijentisanim
uređaja je mogućnost baferovanja razmjene. Suština je
sljedeći. Skup bafera je organiziran u RAM-u sistema, gdje
svaki bafer je veličine jednog bloka. Svaki od ovih blokova može biti
povezan sa drajverom jednog od fizičkih blok-orijentisanih
uređaja.
Razmotrite kako se redoslijed radnji izvodi tokom izvršenja
blok sa uređaja broj M.
1. Među međuspremnicima spremišta međuspremnika, vrši se pretraga za navedeni
blok, tj. ako se pronađe bafer koji sadrži N-ti blok Mth
uređaja, onda fiksiramo broj ovog bafera. U ovom slučaju,
stvarnom fizičkom uređaju se ne pristupa, ali
operacija čitanja informacija je predstavljanje informacije
iz pronađenog bafera. Idemo na korak 4.
2. Ako je potraga za specificiranim međuspremnikom neuspješna, onda u spremištu međuspremnika
bafer se traži za čitanje i postavljanje ovoga
blok. Ako postoji slobodan bafer (zapravo, ova situacija
moguće samo pri pokretanju sistema), tada popravljamo njegov broj i
idite na korak 3. Ako nema slobodnog bafera, onda mi
odaberite bafer kojem se nije pristupalo najduže vrijeme
vrijeme. Ako bafer ima postavljenu zastavicu
informacije upisane u bafer, zatim
stvarni zapis baferovanog bloka na fizičkom
uređaj. Zatim popravimo njegov broj i također idemo na
3. N-ti blok uređaja M se čita u pronađeno
4. Brojač vremena u ovom baferu se resetuje i
povećanje brojača u drugim baferima.
5. Prenosimo sadržaj ovoga
Vidite da ovdje postoji optimizacija vezana za minimizaciju
pravi pristup fizičkom uređaju. Ovo je veoma korisno kada
rad sistema. Blokovi se pišu na sličan način. Dakle
baferovanje je organizovano na način za ulaz/izlaz niskog nivoa.
Prednosti su očigledne. Nedostatak je što je sistem u ovom slučaju
je kritična za neovlaštene nestanke struje, tj.
situacija u kojoj sistemski baferi nisu istovareni, već je nenormalna
zaustavljanje izvršavanja programa operativnog sistema, što može dovesti do
gubitak informacija.
Drugi nedostatak je što, zbog puferiranja,
vremenom, činjenica pristupa sistemu za razmjenu i pravu razmjenu. Ovo
nedostatak se manifestuje ako, tokom prave fizičke razmene
dolazi do kvara. One. potrebno je, pretpostavimo, napisati blok, to
se upisuje u međuspremnik, a od sistema se prima odgovor da je razmjena završena
uspješno, ali kada sistem zapravo upisuje ovaj blok u VSD nije poznato. At
U ovom slučaju može nastati nenormalna situacija zbog činjenice da snimanje može
ne prođe, recimo, zbog nedostataka u medijima. Ispostavilo se da je situacija
što je poziv sistemu za funkciju razmjene za proces bio uspješan
(proces je dobio odgovor da je sve snimljeno), ali, u stvari, razmjena nije
Stoga je ovaj sistem dizajniran za pouzdan hardver i za
ispravne profesionalne uslove rada. Da se borim sa izgledima
gubitak informacija u slučaju vanrednih situacija, sistem je dovoljan
pametan i radi pravu stvar. Naime, sistem ima neki parametar,
koji se može brzo mijenjati, što definira vremenske periode,
preko kojeg se sistemski podaci resetuju. Drugo - dostupno
naredba kojoj korisnik može pristupiti je naredba SYNC. Po ovome
Naredba ispušta podatke na disk. I treće, sistem ima
neka redundantnost, koja omogućava da se u slučaju gubitka informacija proizvede
skup radnji koje će vratiti informacije ili kontroverzne blokove koje
ne može se identificirati po pripadnosti datoteci u koju će biti upisano
određenu lokaciju u sistemu datoteka. Na ovom mjestu možete ih isprobati
analizirati i vratiti ručno ili izgubiti nešto. Naš
Univerzitet je bio jedan od prvih u zemlji koji je počeo sa radom operacionu salu
UNIX sistem, a sada već možemo reći da su problemi nepouzdanosti sistema,
u smislu fatalnog gubitka informacija, nije ih bilo.
Danas smo počeli da pričamo o tome da imamo sistemske pozive i
I/O biblioteke. Još jedan alat koji omogućava
optimizira performanse sistema, standardna je ulazno/izlazna biblioteka,
povezan sa stdio.h uključivom datotekom. Suština konceptualne razmjene je ista
isto kao i kod organizovanja I/O niskog nivoa. Razlika je
da ako open() vraća broj deskriptora datoteke, fopen() vraća
pokazivač na neku strukturu posebnog tipa FILE. Drugi i glavni
Ovo je biblioteka funkcija. Mnoge funkcije usluge koje ovo pruža
biblioteka se implementiraju unutar vašeg adresnog prostora. IN
posebno, takva funkcija usluge je drugi nivo baferovanja
ulaz/izlaz. Njegova suština leži u činjenici da na resursima procesa možete
dodijelite međuspremnik koji će raditi slično kao bafer bafera
operativni sistem i koji minimizira poziv vašeg procesa na
I/O sistemski pozivi. Jasno je da ova I/O biblioteka
implementiran programom koristeći sistemske pozive
ulaz/izlaz. To znači da postoji dvostruki faktor puferiranja
ovo povećava nepouzdanost.
Dvostruko baferovanje je očigledno korisna stvar. Omogućava vam da kontaktirate
za čitanje ili pisanje kroz bibliotečke funkcije s polublokiranim volumenima podataka
ili trećina bloka, a ako su ti dijelovi u nizu, onda i sam sistem na štetu
baferovanje, prikuplja ove delove i umesto nekoliko poziva sistemu
poziv obavlja samo jedan poziv. To je isplativo. Nepovoljno je to
baferovanje je organizovano unutar adresnog prostora procesa sa
sve posljedice koje proizlaze (sinhronizacija se gubi zbog razmjena u tome
ako drugi procesi rade s ovom datotekom kroz ovu biblioteku,
jer u tijelu svakog procesa postoji bafer koji može
akumulirati ove podatke i nema uniformnosti, koja je u
shema koju smo razmatrali ne funkcionira). Međutim, standard
I/O biblioteka je zgodan alat; ona takođe ima sredstva
blokiranje ovog baferovanja.
Predavanje #10
U prošlom predavanju razgovarali smo o sljedećim tačkama koje se odnose na
organizacija sistema datoteka. To je sistemska organizacija
razmjena niskog nivoa. Utvrdili smo da organiziranjem podataka,
UNIX operativni sistem na prilično jednostavan i "transparentan" način
rješava probleme mogućih sukoba u slučaju više otvaranja jednog i
isti fajl. Vidjeli smo da su sva otvaranja iste datoteke (pod
fajl, ne razumijemo naziv, već sadržaj) na kraju se baci na posao
sa jednom kopijom lične karte. Saznali smo da su gotovo sva otkrića
datoteke povezane s istim ID-om daju procesima mogućnost pokretanja
sa svojim pokazivačima čitanja/pisanja datoteke, osim kada
kada je fajl u procesu dobijen nasljeđivanjem, tj. fajl je primljen
od oca procesa preko funkcije fork() od strane procesa podređenog.
Saznali smo da sistem dijeli servisirane uređaje
u dvije klase: blok-orijentisanu i bajt-orijentisanu. Isto
Uređaj može biti i bajt orijentiran i blok orijentiran u isto vrijeme.
orijentisan. Zavisi i od samog uređaja i od dostupnosti
drajveri - programi koji kontrolišu ovaj uređaj. Primjer takvog
uređaj je RAM.
Razmotrili smo principe organizovanja razmjene na niskom nivou za
blok-orijentisanim uređajima, au kontekstu toga smo se susreli sa
baferovanje znači koji se koriste u UNIX OS-u, čija je suština
leži u činjenici da, po analogiji sa baferima za čitanje/pisanje iz operativnog
memoriju (hardver), operativni sistem kreira softver
znači minimizirati broj poziva na
fizički uređaj. Ovaj mehanizam dobro razlikuje i razlikuje UNIX OS.
Ovdje treba napomenuti da baferiranje razmjene može biti na više nivoa.
Prvi dodatni nivo može se pojaviti zbog činjenice da je uređaj
može imati vlastite hardverske bafere, implementirane slično kao i baferi
ram memorija.
Razgovarali smo i o tome da pored I/O niskog nivoa, sa
koje su povezane funkcije koje pružaju sistemske pozive (otvaranje, čitanje, pisanje
itd.), postoje pristupnici visokog nivoa - ovo je standard
I/O biblioteka stdio.h, čija veza vam omogućava da koristite
organizirati razmjenu, drugi nivo baferovanja (ovo je optimizacija
sistemski pozivi) koji je povezan sa procesom, tj.
baferovanje se dešava na račun resursa procesa. Cijenili smo ono što je dobro,
šta nije uredu. Očigledno, baferovanje smanjuje broj razmjena sa
spor eksterni uređaj, i što više takvih nivoa, to manje
odvijaju se razmene. Međutim, loša stvar je što je zbog puferiranja
pouzdanost sistema. Na primjer, ako se sistem neočekivano isključi
napajanje, svi baferi gube informacije. Trenutak obraćanja razmjeni je daleko od toga
prava razmjena, pa su stoga moguće i neugodne situacije. Ali uprkos
ovi nedostaci, iskustvo pokazuje da dolazi do fatalnog gubitka informacija
rijetko.
Skrećem vam pažnju na to kako UNIX sprema pozive na VZU.
Superblok je u RAM-u, a stvarne akcije sa informacijama
superblokovi ne dolaze s diska, već iz RAM-a, iako ovdje
postoji isti problem s neovlaštenim isključenjem struje.
Prilikom otvaranja fajla radimo sa ID-om. Saznali smo da radeći sa ID
se odvija kroz rad sa njegovom kopijom smještenom u softveru
tabele u memoriji. To znači skoro da nema režijskih troškova
troškovi povezani s malim datotekama, a ovi troškovi su mali kada
rad sa ogromnim fajlovima. Ispostavilo se da skoro cijela infrastruktura,
podržava rad sistema datoteka, radi zbog dubokog
slojevito puferovanje.
Atributi datoteke
Razgovarali smo o organizaciji korisnika sistema; Ona ima
hijerarhijska struktura na tri nivoa.
Svaki korisnik pripada grupi. Hijerarhija
korisnika, definirana je hijerarhija zaštite datoteka i korisničkih prava.
Definiran je koncept vlasnika datoteke. Originalni vlasnik fajla je
Korisnik (točnije, korisnički proces) koji je kreirao datoteku. Atribut
"Vlasnik datoteke" se može promijeniti naredbom changeown. Svaki fajl ima
sigurnosni atributi povezani sa hijerarhijom. Imati prava pristupa nekima
radnje u fajlu od strane vlasnika fajla. Ovo su prava čitanja,
snimanje, za izvršenje. Svaki fajl, osim prava povezanih sa nivoom
korisnik, postoje prava povezana sa nivoom grupe. To je pravo za svakoga
korisnici grupe kojoj pripada vlasnik datoteke, s izuzetkom
sebe (tj. prava vlasnika i njegove grupe su različita). Treća kategorija
zaštita - sve ostalo. To su prava koja imaju svi korisnici
sistema, osim vlasnika i njegove grupe. Sistem ima komandu
promijenite dozvole changemode.
Pored atributa pristupa, svaka datoteka može imati znakove, in
posebno tzv. t-bit i s-bit, koje također postavljaju neki
tim. Mi, već poznavajući strukturu sistema datoteka, razumijemo da, u principu,
fajl može biti u veoma fragmentiranom obliku. osim toga,
datoteka može biti velika, a kada otvorite veliku datoteku, postoje dodatni troškovi
troškovi povezani sa pristupom udaljenim blokovima datoteke. Dakle, otkriće
fajl je dugotrajan proces. Da biste optimizirali ovu akciju,
sistem ima mogućnost označavanja izvršnih datoteka t-bitom. Poslije toga
dogodi se sljedeće: u slučaju da se pozove izvršna datoteka,
označen sa t-bitom, tada dolazi do prvog poziva u sistemskoj sesiji
kopiranje tijela datoteke u područje za spremanje. Svaki put kada ponovo nazoveš
datoteku, prvo se pregleda direktorij područja za spremanje iu njemu
ako postoji željeni fajl, onda se datoteka ne učitava sa VSD-a,
ali sa ovog područja. Odnosno, ovo je još jedan način da se minimiziraju pozivi na VZU.
Obično je mogućnost postavljanja t-bita prerogativ sistema
administrator, a administrator sistema bira te procese (i
odnosno datoteke) koje moraju biti označene t-bitom. Obično su označeni
oni procesi koji se najčešće koriste (ako npr
praksa, onda ima smisla označiti datoteku kompajlera t-bitom).
S-bit će biti obrađen donekle površno, ali ćemo se na njega vratiti kasnije.
Postoji sljedeći problem. Sva sredstva sistema pripadaju nekome, tk. sve
znači, sve naredbe (osim nekih ugrađenih) u finalu
račun su fajlovi koji imaju vlasnika. Neki od
od ovih naredbi mogu se odnositi na određene sistemske datoteke. Ustaje
problem povezan sa činjenicom da s jedne strane mora postojati zaštita od
neovlaštenog pristupa fajlu. S druge strane, svi timovi imaju
potencijalna prava za sve kategorije. Kako biti? Moguće je označiti
neki fajlovi sa s-bitom. Vlasnik s-bit datoteke ostaje nepromijenjen, ali
kada pokreće ovu datoteku, vlasnik procesa koji pokreće ovu datoteku,
daju se prava pristupa podacima od vlasnika izvorne datoteke.
Pretpostavimo da postoji izvršna datoteka pod nazivom i da se nekako radi
zatim sa datotekom file2, koja sadrži povjerljive informacije.
Pretpostavimo da datoteka ažurira file2, koja sadrži informacije o
svi registrovani korisnici, a posebno fajl se mogu promijeniti
korisničku lozinku u sistemu. Ako ja pokrenem fajl u svoje ime, onda mogu
javljaju se dvije situacije: ili neću moći raditi sa file2, koji ima
podatke o nalogu korisnika, jer je zatvoren za sve
ostalo; ili je otvoren za sve, onda nema zaštite. U ovom slučaju
s-bit radi. Suština njegovog rada je sljedeća. Vlasnik
izvorni fajl je korisnik ROOT. Pretpostavimo da ovaj fajl želi
pokrenite korisnika po imenu MASH. Ako MASH pokrene ovaj fajl i nema s-
bit, ispada da je vlasnik fajla ROOT, a vlasnik
proces je postao MASH. U ovom slučaju, datoteke koje su nedostupne korisniku
MASH, biće nedostupan svom procesu, a MASH neće moći da ga promeni
lozinku u sistemu. S-bit vam omogućava da proširite prava vlasnika (ROOT) datoteke na
vlasnika (MASH) procesa (pokrenutog iz ove datoteke) i za vrijeme trajanja sesije
procesa, imat će pristup svim onim datotekama koje su bile dostupne
vlasnik fajla (ROOT).
Sljedeće pitanje: kako se tumače dozvole direktorija
(jer su direktoriji također fajlovi)? Dozvola za čitanje iz
direktorij znači da vam je dozvoljeno da uđete u direktorij i otvorite datoteke iz njega
imenik. Dozvola za pisanje daje mogućnost kreiranja i
uništite datoteke u ovom direktoriju. Dozvola za izvršenje je
mogućnost pretraživanja u ovom direktoriju (na primjer, korištenjem naredbe ls).
Sistem datoteka sa stanovišta korisnika.
Pogledajmo strukturu sistema datoteka u smislu
korisnik. Ova struktura će se uzeti u obzir za generalizovanu
operativni sistem, jer njegova stvarna struktura može varirati.
U korijenskom direktoriju postoji datoteka koja se zove unix. Ovo je isti fajl
koji pokreće programski učitavač i koji formira kernel
ETC katalog. Ovaj direktorij sadrži standardne datoteke podataka
sistemi i komande koje pružaju određeni nivo kontrole
funkcionisanje sistema. 1. passwd fajl. Svi korisnici u
sistem registrovan preko ovog fajla. To znači da ako
korisnik može raditi, tada je označena linija u datoteci passwd
korisničko ime, koje sadrži skup nekih podataka razdvojenih sa
znak za razdvajanje. Konkretno, red datoteke passwd sadrži broj
grupa kojoj korisnik pripada ponekad može sadržavati
Kodirana lozinka za prijavu korisnika na sistem. Kodirano -
znači da sistem koristi obostrano dvosmislenu mogućnost
preslikavanje niza znakova u neki kod iu sistem
mapiranje ove lozinke je pohranjeno. Moderni UNIX-ovi pohranjuju lozinke u
zasebna sigurna baza podataka (iako je i passwd datoteka prisutna),
jer je passwd datoteka obično otvorena za čitanje, algoritam konverzije
je također obično poznat i moguće je pogoditi lozinku.
karakteriziranje prezimena, imena i patronimika korisnika; oblasti u kojoj
naznačen je status korisnika; polje koje specificira "home" direktorij.
Ista linija označava (ili se može specificirati) s kojim interpretatorom
komande koje će ovaj korisnik raditi. Možda ih ima još
parametri.
2. rc fajl. Ovaj fajl sadrži skup
naredbe koje se izvršavaju kada se operativni sistem pokrene.
Na primjer, prilikom pokretanja, operativni sistem može pokrenuti proces
provjera integriteta sistema datoteka.
Skrećem vam pažnju na činjenicu da UNIX operativni sistem, sa izuzetkom
nekoliko slučajeva, sadrži sve svoje sistemske informacije u običnom
tekstualne datoteke. Ove informacije je lako pregledati i lako ih je pregledati
je ispravljeno. Svojevremeno je to bio revolucionarni korak.
3. U istom direktoriju postoje naredbe koje vam to dozvoljavaju
promijeniti korisničke lozinke (passwd izvršni), dozvoliti
"mount" lokalne sisteme datoteka na sistem datoteka i
bazirati te iste lokalne sisteme, dozvoliti da se proces pokrene
testiranje i korekcija sistema datoteka. Ovaj proces provjerava datoteku
sistem prema određenom skupu karakteristika, na primjer, set besplatnih
fajlovi bi trebali, u kombinaciji sa puno zauzetih fajlova, dati sve
BIN imenik. Ovaj katalog sadrži ogromnu većinu standarda
sistemske komande dostupne korisniku.
MNT imenik. Ovo je direktorij na koji možete lokalno "montirati".
sistemi datoteka. Do danas smo mislili da je sistem datoteka
hostovan na jednom uređaju, ali u stvarnosti nije. Postoji glavni
sistem datoteka na sistemskom uređaju, a postoji proizvoljan (in
razumna ograničenja) broj lokalnih sistema datoteka koji
se montiraju na sistem pomoću neke komande. Korijen lokalnog
sistem datoteka će biti MNT direktorij.
DER imenik. Ovaj direktorij sadrži datoteke povezane sa
specifični upravljački programi eksternih uređaja, kao što su upravljački programi konzole,
linijska štampa itd. Da li se sećate da su fajlovi povezani sa drajverima
vanjski uređaji, u ID-u koji je pridružen njihovom imenu, imaju znak
da je ovo datoteka uređaja, te da imaju veze u ID-u do odgovarajućeg
stolovi vozača. Ovi fajlovi nemaju sadržaj.
USR imenik. Ovaj direktorij ima LIB poddirektorij, što je obično
postoje biblioteke koje implementiraju neke grupne funkcije,
dostavljeno korisniku, uklj. C kompajler sa odgovarajućim
biblioteke podrške.
Također, postoji BIN poddirektorij (/USR/BIN) koji sadrži
sistem administrator dodatne "homespun" komande, jer oni
postavljanje u /BIN direktorij smatra se netačnim.
INCLUDE poddirektorij. Sjećate li se kako izgleda linija uključivanja?
Ova linija nalaže C preprocesoru da preuzme datoteku iz direktorija
/USR/INCLUDE. Ovaj direktorij ima svoje poddirektorije i nama je zanimljiv
SYS poddirektorij (/USR/INCLUDE/SYS). Sadrži uključene datoteke,
povezan sa sistemskim karakteristikama, posebno signal.h je
nabrajanje onih signala koji se mogu razmjenjivati između dva procesa.
Dakle, završili smo opis sistema datoteka i možemo to zaključiti
UNIX sistem datoteka je hijerarhijski, višekorisnički. File
UNIX sistem ima duboko, višeslojno baferovanje u razmjeni sa
pravi uređaji. UNIX sistem datoteka je informativan
osnovu operativnog sistema. Ovo je proširivi fajl
sistema, uz zadržavanje njegovog integriteta, tj. dok uvek
postoji jedan put od njegovog korena do bilo kog čvora (ili lista).
UNIX sistem datoteka, u smislu logičke organizacije datoteka, ima
njegova jasna i transparentna struktura. To nameće određene uslove
na administraciju sistema, jer postoje problemi koordinacije prava pristupa
različitih komponenti sistema datoteka, postoje problemi sa prilagođavanjem novog
informacije unutar sistema datoteka.
-----------------------
Indeks nasljeđa