{"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\/et\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"T\u00f6\u00f6keskkonnad: Kolm lihtsat t\u00fckki. Osa 1: Sissejuhatus (t\u00f5lge)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Sissejuhatus operatsioonis\u00fcsteemidesse<\/h1>\n<p>Tere, Habr! Soovin tutvustada teile t\u00f5lgitud artiklite seeriat, mis sisaldab \u00fcht huvitavat kirjandust \u2014 OSTEP. Selles materjalis k\u00e4sitletakse s\u00fcvitsi unix-sarnaste operatsioonis\u00fcsteemide toimimist, nimelt protsesside haldamist, erinevaid planeerijaid, m\u00e4lu ja muid sarnaseid komponente, mis moodustavad modernse operatsioonis\u00fcsteemi. Originaali v\u00f5ite vaadata siit <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">siin<\/a><\/noindex>. Palun arvestage, et t\u00f5lge on tehtud mitteprofessionaalselt (piisavalt vabalt), kuid loodan, et olen p\u00f5hisisu s\u00e4ilitanud.<\/p>\n<p>Laborit\u00f6\u00f6d selle aine kohta leiate siit:<br \/>\n \u2014 originaal: <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 originaal: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><br \/>\n \u2014 minu isiklik kohandamine: <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>Lisaks v\u00f5ite minna minu kanalile <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">Telegraam<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Programmi t\u00f6\u00f6<\/h3>\n<p>\nMis juhtub, kui programm t\u00f6\u00f6tab? K\u00e4ivitatud programm t\u00e4idab \u00fchte lihtsat asja \u2014 see t\u00e4idab korraldusi. Iga sekundi jooksul t\u00f5mbab protsessor miljonite ja isegi miljardite korralduste hulgast andmed t\u00f6\u00f6m\u00e4lu, dekodeerib need (n\u00e4iteks m\u00e4\u00e4rab, millist t\u00fc\u00fcpi need korraldused on) ja t\u00e4idab need. Need v\u00f5ivad olla kahe numbri liitmine, m\u00e4lule ligip\u00e4\u00e4s, tingimuse kontrollimine, funktsiooni juurde \u00fcleminek ja nii edasi. P\u00e4rast \u00fche korralduse t\u00e4itmist l\u00e4heb protsessor j\u00e4rgmise t\u00e4itmise juurde. Nii t\u00e4idetakse korraldus j\u00e4rgem\u00f6\u00f6da seni, kuni programm l\u00f5petatakse.<br \/>\nSee n\u00e4ide on loomulikult lihtsustatud \u2014 tegelikult v\u00f5imaldab kaasaegne riistvara protsessori t\u00f6\u00f6 kiirendamiseks t\u00e4ita korraldusi j\u00e4rjekorrata, arvutada v\u00f5imalikke tulemusi, t\u00e4ita korraldusi samaaegselt ja teisi sarnaseid trikke.<\/p>\n<h3>Von Neumanni arvutusmudel<\/h3>\n<p>\nKuwas toodulembavad kuulumise protsess sarnaneb Von Neumanni arvutusmudelile. <i>Von Neumann on \u00fcks arvutuss\u00fcsteemide pioneeridest ning ka m\u00e4nguteooria autoritest.<\/i>. Programmide t\u00f6\u00f6 k\u00e4igus toimub veel palju teisi s\u00fcndmusi, t\u00f6\u00f6tab hulgaliselt teisi protsesse ja kolmanda osapoole loogikat, mille p\u00f5hieesm\u00e4rk on s\u00fcsteemi k\u00e4ivitamise, t\u00f6\u00f6 ning hoolduse lihtsustamine.<br \/>\nOn olemas tarkvarade kogum, mis vastutab programmide lihtsa k\u00e4ivitamise eest (v\u00f5i isegi v\u00f5imaldab mitme programmi samaaegset k\u00e4ivitamist). See v\u00f5imaldab programmide jagada sama m\u00e4lu ning suhelda erinevate seadmetega. Sellist tarkvara (operatiivtarkvara) nimetatakse operatsioonis\u00fcsteemiks, mille \u00fclesanne on j\u00e4lgida, et s\u00fcsteem t\u00f6\u00f6taks \u00f5igesti ja efektiivselt, ning tagada, et s\u00fcsteemi haldamine oleks lihtne. <\/p>\n<h2>Operatsioonis\u00fcsteem<\/h2>\n<p>\n<b>Operatsioonis\u00fcsteem, l\u00fchendatult OS \u2014 on omavahel seotud programmide kompleks, mis on m\u00f5eldud arvuti ressursside haldamiseks ja kasutaja suhtlemise korraldamiseks arvutiga.<\/b>. <br \/>\nOS saavutab oma efektiivsuse eelk\u00f5ige k\u00f5ige olulisema tehnika kaudu \u2014 virtualiseerimise tehnika. <b>virtualiseerimine<\/b>. Operatsioonis\u00fcsteem suhtleb f\u00fc\u00fcsiliste ressurssidega (protsessor, m\u00e4lu, ketas jne) ja muudab need enda lihtsamaks ja universaalsemaks vormiks. Seet\u00f5ttu v\u00f5ib operatsioonis\u00fcsteemi v\u00e4ga \u00fcldiselt v\u00f5rrelda virtuaalmasinaga.<br \/>\nKasutajatele k\u00e4skude andmiseks operatsioonis\u00fcsteemile ning virtuaalmasina v\u00f5imaluste (nt programmide k\u00e4ivitamine, m\u00e4lu eraldamine, failidele juurdep\u00e4\u00e4s jne) kasutamiseks v\u00f5imaldab operatsioonis\u00fcsteem teatud liidest, mida nimetatakse <b>API<\/b> (rakenduste programmeerimise liideseks) ja millele saab teha kutseid (call). T\u00fc\u00fcpiline operatsioonis\u00fcsteem v\u00f5imaldab teha sadu s\u00fcsteemikutseid.<br \/>\nL\u00f5puks, kuna virtualiseerimine v\u00f5imaldab mitmetel programmidel t\u00f6\u00f6tada (seega jagada CPU-d) ja samal ajal ligip\u00e4\u00e4su nende juhistele ja andmetele (jagades seega m\u00e4lu), samuti ligip\u00e4\u00e4sule ketastele (seega jagades sisend-v\u00e4ljund seadmeid), nimetatakse operatsioonis\u00fcsteemi ka ressursside halduriks. Iga protsessor, ketas ja m\u00e4lu on s\u00fcsteemi ressurss ja seega \u00fcks operatsioonis\u00fcsteemi rollidest on nende ressursside haldamine, tehes seda t\u00f5husalt, \u00f5iglaselt v\u00f5i vastupidi, s\u00f5ltuvalt \u00fclesandest, milleks see operatsioonis\u00fcsteem on loodud.<\/p>\n<h3>CPU virtualiseerimine<\/h3>\n<p>\nVaatame j\u00e4rgmist programmi:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"T\u00f6\u00f6keskkonnad: Kolm lihtsat t\u00fckki. Osa 1: Sissejuhatus (t\u00f5lge)\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee ei tee midagi erilist, p\u00f5him\u00f5tteliselt kutsub see lihtsalt funktsiooni <b>spin<\/b>(), mille \u00fclesanne on aegade ts\u00fckliline kontrollimine ja tagastamine p\u00e4rast seda, kui \u00fcks sekund on m\u00f6\u00f6dunud. Seega kordab see l\u00f5putult rida, mille kasutaja on argumendina edastanud.<br \/>\nK\u00e4ivitame selle programmi ja anname sellele argumendiks s\u00fcmboli \u201cA\u201d. Tulemuseks on midagi v\u00e4ga huvitavat \u2014 s\u00fcsteem t\u00e4idab lihtsalt programmi, mis perioodiliselt kuvab ekraanile s\u00fcmboli \u201cA\u201d.<br \/>\nN\u00fc\u00fcd proovime varianti, kus k\u00e4ivitatakse mitu eksemplari \u00fchest ja samast programmist, kuid need kuvavad erinevaid t\u00e4hti, et oleks selgem. Sel juhul on tulemus veidi erinev. Ehkki meil on \u00fcks protsessor, t\u00f6\u00f6tab programm samaaegselt. Kuidas see v\u00f5imalik on? Asi on selles, et ops\u00fcsteem, kasutades riistvara v\u00f5imalusi, loob illusiooni. Illusiooni, et s\u00fcsteemis on mitu virtuaalset protsessorit, muutes \u00fche f\u00fc\u00fcsilise protsessori teoreetiliselt l\u00f5pmatuks ja seel\u00e4bi v\u00f5imaldades programmide n\u00e4iliselt samaaegset t\u00e4itmist. Sellist illusiooni nimetatakse <i>CPU virtualiseerimiseks<\/i>.<br \/>\n Sarnane olukord tekitab palju k\u00fcsimusi, n\u00e4iteks, kui mitu programmi soovivad samal ajal k\u00e4ivituda, siis milline neist k\u00e4ivitub? Selle k\u00fcsimuse eest vastutavad OS-i \"poliitikad\". Poliitikaid kasutatakse paljudes kohtades OS-is ja nad vastavad sellistele k\u00fcsimustele, olles samuti p\u00f5himehhanismid, mida OS rakendab. Seega on OS-i roll kui ressursihaldurit selgelt m\u00e4\u00e4ratletud.<\/p>\n<h3>M\u00e4lu virtualiseerimine<\/h3>\n<p>\n N\u00fc\u00fcd vaatame m\u00e4lu. <b>F\u00fc\u00fcsiline m\u00e4lu mudel kaasaegsetes s\u00fcsteemides esitatakse kui baitide massiiv.<\/b>. M\u00e4lu lugemiseks tuleb n\u00e4idata <b>m\u00e4lu aadress<\/b>, et sellele juurde p\u00e4\u00e4seda. Andmete kirjutamiseks v\u00f5i v\u00e4rskendamiseks tuleb samuti n\u00e4idata andmed ja aadress, kuhu need salvestada.<br \/>\n M\u00e4lu kasutamine toimub pidevalt programmi t\u00f6\u00f6tamise k\u00e4igus. Programm salvestab m\u00e4lu kogu oma andmestruktuuri ja kasutab seda erinevate k\u00e4skude t\u00e4itmiseks. K\u00e4skude vahel hoitakse samuti m\u00e4lu, seet\u00f5ttu toimub m\u00e4lu juurde p\u00e4\u00e4semine ka iga j\u00e4rgneva k\u00e4su n\u00f5udmisel.<\/p>\n<h4>malloc() v\u00e4ljakutse<\/h4>\n<p>Vaatame j\u00e4rgmist programmi, mis eraldab m\u00e4lualale, kasutades v\u00e4ljakutset <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"T\u00f6\u00f6keskkonnad: Kolm lihtsat t\u00fckki. Osa 1: Sissejuhatus (t\u00f5lge)\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgramm teeb mitmeid asju. Esiteks eraldab ta teatud hulga m\u00e4lu (rea 7), seej\u00e4rel v\u00e4ljastab eraldatud m\u00e4luraku aadressi (rea 9) ja kirjutab nulli esimesse eraldatud m\u00e4lu pesasse. Edasi liigub programm ts\u00fcklisse, kus ta suurendab v\u00e4\u00e4rtust, mis on salvestatud m\u00e4llu muutuja \u201cp\u201d aadressil. Samuti v\u00e4ljastab ta enda protsessi ID. <b>Protsessi ID on iga k\u00e4ivitatud protsessi jaoks ainulaadne.<\/b>. K\u00e4ivitades mitu koopia, satume huvitavale tulemusele: esimeses variandis, kui mitte midagi teha ja lihtsalt k\u00e4ivitada mitu koopia, siis aadressid on erinevad. Kuid see ei sobi meie teooriaga! \u00d5ige, kuna t\u00e4nap\u00e4evastes jaotustes on vahem\u00e4lu randomiseerimise funktsioon vaikimisi sisse l\u00fclitatud. Kui see v\u00e4lja l\u00fclitada, saame oodatud tulemuse \u2014 kahel samal ajal t\u00f6\u00f6taval programmil on m\u00e4luaadressid samad. <\/p>\n<p><img decoding=\"async\" alt=\"T\u00f6\u00f6keskkonnad: Kolm lihtsat t\u00fckki. Osa 1: Sissejuhatus (t\u00f5lge)\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Seega selgub, et kaks s\u00f5ltumatut programmi t\u00f6\u00f6tavad oma ainulaadsete privaatsete aadressiruumidega, mis omakorda kaardistatakse operatsioonis\u00fcsteemi poolt f\u00fc\u00fcsilisse m\u00e4llu.<\/b>. Seet\u00f5ttu ei m\u00f5juta \u00fche programmi m\u00e4luaadresse teiste toimimist ja igale programmile n\u00e4ib, et tal on oma t\u00fckike f\u00fc\u00fcsilisest m\u00e4lust, mis on t\u00e4ielikult tema k\u00e4sutuses. Kahjuks on reaalsus see, et f\u00fc\u00fcsiline m\u00e4lu on jagatud ressurss, mille haldamise eest vastutab operatsioonis\u00fcsteem.<\/p>\n<h3>Konsistentsus<\/h3>\n<p>\nVeel \u00fcks oluline teema operatsioonis\u00fcsteemide raames on <b>koosk\u00f5la<\/b>. Seda m\u00f5istet kasutatakse, kui r\u00e4\u00e4gitakse probleemidest s\u00fcsteemis, mis v\u00f5ivad tekkida, kui mitmeid asju tehakse samaaegselt \u00fche programmi raames. Koosk\u00f5la probleemid esinevad isegi operatsioonis\u00fcsteemis endas. Eelnevates n\u00e4idetes, mis puudutavad m\u00e4lu ja protsessori virtualiseerimist, m\u00f5istsime, et operatsioonis\u00fcsteem haldab palju asju samaaegselt \u2014 k\u00e4ivitades esimese protsessi, seej\u00e4rel teise ja nii edasi. Selgub, et selline k\u00e4itumine v\u00f5ib p\u00f5hjustada teatud probleeme. N\u00e4iteks kaasaegsed mitme l\u00f5imega programmid kogevad selliseid raskusi.<\/p>\n<p>Vaatame j\u00e4rgmist programmi:<\/p>\n<p> <img decoding=\"async\" alt=\"T\u00f6\u00f6keskkonnad: Kolm lihtsat t\u00fckki. Osa 1: Sissejuhatus (t\u00f5lge)\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgramm peafunktsioonis loob kaks l\u00f5ime, kasutades k\u00e4sku <b>Pthread_create()<\/b>. Selles n\u00e4ites saab voogu m\u00f5ista kui funktsiooni, mis t\u00f6\u00f6tab \u00fches m\u00e4luruumis koos teiste funktsioonidega, kusjuures samaaegselt on k\u00e4imas selgelt rohkem kui \u00fcks funktsioon. Igas n\u00e4ites algab ja t\u00e4idab iga voog funktsiooni <b>worker(), mis omakorda lihtsalt inkrementeerib muutujat<\/b>,.<\/p>\n<p>K\u00e4ivitame selle programmi argumendiga 1000. Nagu sa juba arvasid, peaks tulemuseks olema 2000, kuna iga voog inkrementeeris muutujat 1000 korda. Ent asi ei olegi nii lihtne. Proovime programmi k\u00e4ivitada numbriga, mis on kordades suurem.<\/p>\n<p><img decoding=\"async\" alt=\"T\u00f6\u00f6keskkonnad: Kolm lihtsat t\u00fckki. Osa 1: Sissejuhatus (t\u00f5lge)\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSisestades, n\u00e4iteks, numbri 100000, ootame tulemuseks n\u00e4ha arvu 200000. Kuid kui k\u00e4ivitame numbri 100000 mitu korda, ei saa me mitte ainult vale vastust, vaid ka erinevaid vale vastuseid. Saladus peitub selles, et arvu suurendamiseks on vajalik kolm toimingut \u2014 arvu m\u00e4lu meelest v\u00e4lja v\u00f5tma, inkrementeerima ja seej\u00e4rel kirjutama arvu tagasi. Kuna k\u00f5ik need juhised ei toimu atomaarsetena (samal ajal), v\u00f5ivad aset leida sellised kummalised asjad. Seda probleemi nimetatakse programmeerimises <b>v\u00f5istlusolukord \u2014 olukord, kus tundmatud j\u00f5ud v\u00f5ivad tundmatul hetkel m\u00f5jutada m\u00f5ne teie toimingu t\u00e4itmist.<\/b>.<br \/>\n<br \/>Allikas: <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.0.1 - 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. \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.\" \/>\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\/et\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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. \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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Operatsioonis\u00fcsteemid: Kolm lihtsat osa. Osa 1: Sissejuhatus (t\u00f5lge) | ProHoster","description":"Sissejuhatus operatsioonis\u00fcsteemidesse Tere, Habr! Soovin tutvustada teile t\u00f5lgitud artiklite seeriat \u00fchest huvitavast kirjandusest \u2014 OSTEP. Selles materjalis k\u00e4sitletakse s\u00fcvitsi unix-taoliste operatsioonis\u00fcsteemide toimimist, nimelt \u2014 t\u00f6\u00f6protsesside, erinevate ajakava seadete, m\u00e4lu ja muude sarnaste komponentide, mis moodustavad kaasaegse OS. Originaali k\u00f5iki materjale saab vaadata siit.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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. \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.","og:url":"https:\/\/prohoster.info\/et\/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\/et\/wp-json\/wp\/v2\/posts\/30717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}