{"id":30717,"date":"2019-10-31T21:37:05","date_gmt":"2019-10-31T18:37:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-1-intro-perevod\/"},"modified":"2019-10-31T21:37:05","modified_gmt":"2019-10-31T18:37:05","slug":"operating-systems-three-easy-pieces-part-1-intro-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"Operativni sustavi: Tri jednostavna dijela. Dio 1: Uvod (prijevod)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Uvod u operacijske sustave<\/h1>\n<p>Pozdrav, Habr! \u017delim vam predstaviti seriju \u010dlanaka-prijevoda jedne zanimljive literature \u2014 OSTEP. Ovaj materijal duboko razmatra rad unix-sli\u010dnih operativnih sustava, naime \u2014 rad s procesima, raznim planerima, memorijom i sli\u010dnim komponentama koje \u010dine moderni OS. Original svih materijala mo\u017eete pogledati ovdje <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">ovdje<\/a><\/noindex>. Molim vas, imajte na umu da je prijevod izveden neprofesionalno (dovoljno slobodno), ali se nadam da sam zadr\u017eao op\u0107i smisao.<\/p>\n<p>Laboratorijske vje\u017ebe vezane uz ovu temu mo\u017eete prona\u0107i ovdje:<br \/>\n \u2014 original: <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html\">pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html<\/a><\/noindex><br \/>\n \u2014 original: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><br \/>\n \u2014 moja osobna adaptacija: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">github.com\/bykvaadm\/OS\/tree\/master\/ostep<\/a><\/noindex><\/p>\n<p>A tako\u0111er mo\u017eete zaviriti na moj kanal u <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">telegramu<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Rad programa<\/h3>\n<p>\n\u0160to se doga\u0111a kada se pokrene neki program? Pokrenuti program izvr\u0161ava jednu jednostavnu stvar \u2014 izvr\u0161ava instrukcije. Svake sekunde milijuni, pa \u010dak i milijarde instrukcija se izvla\u010de iz radne memorije od strane procesora, koji ih zatim dekodira (na primjer, prepoznaje kojoj vrsti pripadaju ove instrukcije) i izvr\u0161ava. To mogu biti zbrajanje dvaju brojeva, pristup memoriji, provjera uvjeta, prijelaz na funkciju i tako dalje. Nakon dovr\u0161etka izvr\u0161avanja jedne instrukcije, procesor prelazi na izvr\u0161avanje druge. Tako se instrukcija za instrukcijom izvr\u0161avaju sve dok program ne zavr\u0161i.<br \/>\nOvaj primjer je naravno pojednostavljen \u2014 zapravo, za ubrzanje rada procesora, moderna oprema omogu\u0107ava izvr\u0161avanje instrukcija izvan redoslijeda, predvi\u0111anje mogu\u0107ih rezultata, izvr\u0161avanje instrukcija istovremeno i sli\u010dne trikove.<\/p>\n<h3>Fon-Najmanov model ra\u010dunanja<\/h3>\n<p>\nOpisani pojednostavljeni oblik rada nalikuje Fon-Najmanovom modelu ra\u010dunanja. <i>Fon-Najman je jedan od pionira ra\u010dunalnih sustava, tako\u0111er je jedan od autora teorije igara<\/i>. Tijekom rada programa doga\u0111a se jo\u0161 mno\u0161tvo drugih doga\u0111aja, rade mnogi drugi procesi i vanjska logika, \u010dija je osnovna svrha \u2014 pojednostavljenje pokretanja, rada i odr\u017eavanja sustava.<br \/>\nPostoji skup softvera koji je odgovoran za jednostavno pokretanje aplikacija (ili \u010dak omogu\u0107ava pokretanje vi\u0161e programa istovremeno); on omogu\u0107uje aplikacijama da dijele istu memoriju te interagiraju s razli\u010ditim ure\u0111ajima. Taj skup softvera se zapravo naziva operativnim sustavom, a njegove zada\u0107e uklju\u010duju pra\u0107enje ispravnog i u\u010dinkovitog rada sustava, kao i osiguranje jednostavnog upravljanja tim sustavom. <\/p>\n<h2>Operativni sistem<\/h2>\n<p>\n<b>Operativni sustav, skra\u0107eno OS, je skup me\u0111usobno povezanih programa koji su namijenjeni upravljanju resursima ra\u010dunala i organizaciji interakcije korisnika s ra\u010dunalom.<\/b>. <br \/>\nOS posti\u017ee svoju u\u010dinkovitost prvenstveno kroz najva\u017eniju tehniku \u2014 tehniku <b>virtualizacije<\/b>. OS komunicira s fizi\u010dkim resursima (procesorom, memorijom, diskom i sli\u010dnima) i pretvara ih u op\u0107enitiju, s ve\u0107im mogu\u0107nostima i jednostavniju za kori\u0161tenje verziju samog sebe. Dakle, za op\u0107e razumijevanje, mo\u017ee se vrlo grubo usporediti operativni sustav s virtualnom ma\u0161inom.<br \/>\nKako bi omogu\u0107ila korisnicima da izdaju naredbe operativnom sustavu i na taj na\u010din koriste mogu\u0107nosti virtualne ma\u0161ine (kao \u0161to su: pokretanje aplikacija, dodjela memorije, pristup datotekama itd.), operativni sustav pru\u017ea odre\u0111eni su\u010delje koje se naziva <b>API<\/b> (application programming interface) i kojem se mogu izvoditi pozivi (call). Tipi\u010dan operativni sustav pru\u017ea mogu\u0107nost izvo\u0111enja stotina sistemskih poziva.<br \/>\nI kona\u010dno, budu\u0107i da virtualizacija omogu\u0107uje vi\u0161e aplikacijama da rade (na taj na\u010din zajedni\u010dki koriste CPU) i istovremeno pristupaju svojim instrukcijama i podacima (time dijele\u0107i memoriju), kao i pristupaju diskovima (time zajedni\u010dki koriste\u0107i ulazno-izlazne ure\u0111aje), operativni sustav se tako\u0111er naziva menad\u017eerom resursa. Svaki procesor, disk i memorija su resursi sustava, a stoga jedna od uloga operativnog sustava postaje zadatak upravljanja tim resursima, rade\u0107i to u\u010dinkovito, pravedno ili, s druge strane, u zavisnosti od zadatka za koji je taj operativni sustav razvijen.<\/p>\n<h3>Virtualizacija CPU<\/h3>\n<p>\nRazmotrit \u0107emo sljede\u0107i program:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"Operativni sustavi: Tri jednostavna dijela. Dio 1: Uvod (prijevod)\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn ne izvr\u0161ava nikakve posebne radnje, su\u0161tinski, sve \u0161to radi \u2014 poziva funkciju <b>spin<\/b>(), \u010diji je zadatak cikli\u010dna provjera vremena i povratak, nakon \u0161to je pro\u0161la jedna sekunda. Tako se neprekidno ponavlja niz koji je korisnik poslao kao argument.<br \/>\nPokrenut \u0107emo ovaj program i proslijediti mu kao argument znak \u201cA\u201d. Rezultat nije posebno zanimljiv \u2014 sustav jednostavno izvr\u0161ava program koji periodi\u010dno ispisuje znak \u201cA\u201d.<br \/>\nSada \u0107emo isprobati varijantu kada je pokrenuto vi\u0161e instanci istog programa, ali ispisuju razli\u010dita slova, kako bi bilo jasnije. U ovom slu\u010daju, rezultat \u0107e biti ne\u0161to druga\u010diji. Iako imamo samo jedan procesor, program se izvr\u0161ava simultano. Kako to? A to se doga\u0111a tako \u0161to operativni sustav, uz pomo\u0107 mogu\u0107nosti hardvera, stvara iluziju. Iluziju da u sustavu postoji nekoliko virtualnih procesora, pretvaraju\u0107i jedan fizi\u010dki procesor u teoretski beskona\u010dan broj i time omogu\u0107ava programima da izgledaju kao da se izvr\u0161avaju simultano. Tu iluziju nazivamo <i>Virtualizacija CPU-a<\/i>.<br \/>\n Ovakva slika postavlja mnogo pitanja, na primjer, ako nekoliko programa \u017eeli pokrenuti istovremeno, koji \u0107e se to\u010dno pokrenuti? Na to pitanje odgovaraju \u201cpolitike\u201d OS-a. Politike se koriste na mnogim mjestima u OS-u i odgovaraju na sli\u010dna pitanja, a tako\u0111er su osnovni mehanizmi koje OS provodi. Odakle i uloga OS-a kao upravitelja resursima.<\/p>\n<h3>Virtualizacija memorije<\/h3>\n<p>\n Sada razmotrimo memoriju. <b>Fizi\u010dki model memorije u modernim sustavima predstavlja se kao niz bajtova<\/b>. Za \u010ditanje iz memorije potrebno je navesti <b>adresu \u0107elije<\/b>, kako bismo imali pristup. Da bismo zapisali ili a\u017eurirali podatke, tako\u0111er se treba navesti podaci i adresa \u0107elije u koju ih zapisujemo.<br \/>\n Pristupi memoriji doga\u0111aju se neprekidno tijekom rada programa. Program pohranjuje u memoriji \u010ditavu svoju strukturu podataka, i obra\u0107a joj se izvr\u0161avaju\u0107i razli\u010dite instrukcije. Usput, instrukcije se tako\u0111er pohranjuju u memoriji, stoga se pristupi memoriji javljaju i na svaki zahtjev za sljede\u0107om instrukcijom.<\/p>\n<h4>Poziv malloc()<\/h4>\n<p>Razmotrite sljede\u0107i program koji dodjeljuje podru\u010dje memorije pomo\u0107u poziva <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"Operativni sustavi: Tri jednostavna dijela. Dio 1: Uvod (prijevod)\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgram radi nekoliko stvari. Prvo, dodjeljuje odre\u0111enu koli\u010dinu memorije (linija 7), zatim ispisuje adresu dodijeljenog prostora (linija 9), a zatim zapisuje nulu u prvi slot dodijeljene memorije. Nakon toga program ulazi u petlju u kojoj inkrementira vrijednost zabilje\u017eenu u memoriji na adresi u varijabli \u201cp\u201d. Tako\u0111er ispisuje identifikator svog vlastitog procesa. <b>Identifikator procesa jedinstven je za svaki pokrenuti proces<\/b>. Kada pokrenemo nekoliko kopija, nailazimo na zanimljiv rezultat: U prvom slu\u010daju, ako ne u\u010dinimo ni\u0161ta i jednostavno pokrenemo nekoliko kopija, adrese \u0107e biti razli\u010dite. No, to se ne uklapa u na\u0161u teoriju! To\u010dno, jer su u modernim distribucijama prema zadanim postavkama uklju\u010dene funkcije randomizacije memorije. Ako je onemogu\u0107imo, dobit \u0107emo o\u010dekivani rezultat \u2014 adrese memorije dviju istovremeno pokrenutih programa \u0107e se podudarati. <\/p>\n<p><img decoding=\"async\" alt=\"Operativni sustavi: Tri jednostavna dijela. Dio 1: Uvod (prijevod)\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Na kraju dolazimo do zaklju\u010dka da dva neovisna programa rade sa svojim vlastitim privatnim adresnim prostorima, koji su opet mapirani od strane operativnog sustava u fizi\u010dku memoriju<\/b>. Stoga kori\u0161tenje adresa memorije unutar jednog programa ne utje\u010de na druge, a svakom programu se \u010dini da ima svoj vlastiti dio fizi\u010dke memorije, potpuno predan na raspolaganje. Stvarnost, me\u0111utim, jest da je fizi\u010dka memorija zajedni\u010dki resurs kojim upravlja operativni sustav.<\/p>\n<h3>Konsistentnost<\/h3>\n<p>\nJo\u0161 jedna va\u017ena tema u okviru operativnih sustava je <b>uskla\u0111enost<\/b>. Ovaj pojam se koristi kada govorimo o problemima u sustavu koji mogu nastati pri radu s vi\u0161e stvari istovremeno unutar jednog programa. Problemi uskla\u0111enosti javljaju se \u010dak i unutar samog operativnog sustava. U prethodnim primjerima s virtualizacijom memorije i procesora, shvatili smo da OS upravlja mnogim stvarima istovremeno \u2014 pokre\u0107e prvi proces, zatim drugi i tako dalje. Kako se ispostavilo, takvo pona\u0161anje mo\u017ee dovesti do odre\u0111enih problema. Na primjer, moderni vi\u0161edretveni programi suo\u010davaju se s takvim pote\u0161ko\u0107ama.<\/p>\n<p>Razmotrit \u0107emo sljede\u0107i program:<\/p>\n<p> <img decoding=\"async\" alt=\"Operativni sustavi: Tri jednostavna dijela. Dio 1: Uvod (prijevod)\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgram u glavnoj funkciji stvara dva threada, koriste\u0107i poziv <b>Pthread_create()<\/b>. U ovom primjeru, nit se mo\u017ee smatrati funkcijom koja se izvr\u0161ava u jednom prostoru memorije pored drugih funkcija, pri \u010demu je broj istovremeno pokrenutih funkcija o\u010dito ve\u0107i od jedne. U ovom primjeru, svaka nit zapo\u010dinje i izvr\u0161ava funkciju <b>worker() koja jednostavno inkrementira varijablu<\/b>,.<\/p>\n<p>Pokrenimo ovaj program s argumentom 1000. Kao \u0161to ste ve\u0107 mogli pretpostaviti, rezultat bi trebao biti 2000, budu\u0107i da je svaka nit inkrementirala varijablu 1000 puta. Me\u0111utim, nije sve tako jednostavno. Poku\u0161ajmo pokrenuti program s brojem ponavljanja red veli\u010dine ve\u0107i.<\/p>\n<p><img decoding=\"async\" alt=\"Operativni sustavi: Tri jednostavna dijela. Dio 1: Uvod (prijevod)\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDaju\u0107i na ulaz broj, primjerice, 100000, o\u010dekujemo da \u0107emo na izlazu vidjeti broj 200000. Me\u0111utim, nakon nekoliko pokretanja s brojem 100000, ne samo da ne\u0107emo dobiti to\u010dan odgovor, ve\u0107 \u0107emo dobiti i razli\u010dite pogre\u0161ne odgovore. Rje\u0161enje le\u017ei u tome da su potrebne tri operacije za pove\u0107anje broja \u2014 preuzimanje broja iz memorije, inkrementacija i zatim zapisivanje broja natrag. Budu\u0107i da se sve ove instrukcije ne izvr\u0161avaju atomarno (sve odjednom), takve \u010dudne stvari mogu se dogoditi. Ovaj problem se u programiranju naziva <b>race condition \u2014 stanje utrke<\/b>. Kada nepoznate sile u nepoznatom trenutku mogu utjecati na izvr\u0161avanje nekih va\u0161ih operacija.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446340\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430 unix-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c\u0438, \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0447\u0438\u043d\u0438\u043c\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u041e\u0421. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0432\u0441\u0435\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0443\u0442. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22702,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30717","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 1: Intro (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:37:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:05+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Operating Systems: Three Easy Pieces. Dio 1: Uvod (prijevod) | ProHoster","description":"Uvod u operacijske sustave Pozdrav, Habr! \u017delim vam predstaviti seriju \u010dlanaka-prijevoda jedne zanimljive literature koja mi se \u010dini zanimljivom \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 1: Intro (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:37:05+00:00","article:modified_time":"2019-10-31T18:37:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30717","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 02:38:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:30:51","updated":"2026-01-21 02:38:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/30717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}