{"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\/lv\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"Oper\u0113t\u0101jsist\u0113mas: Tr\u012bs viegli gabali. 1. da\u013ca: Ievads (tulkojums)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Ievads oper\u0113t\u0101jsist\u0113m\u0101s<\/h1>\n<p>Sveiki, Habr! V\u0113los jums iepaz\u012bstin\u0101t ar tulkojumu s\u0113riju no interesantas literat\u016bras \u2014 OSTEP. \u0160aj\u0101 rakst\u0101 tiek detaliz\u0113ti apl\u016bkota Unix l\u012bdz\u012bgu oper\u0113t\u0101jsist\u0113mu darb\u012bba, proti \u2014 procesu p\u0101rvald\u012bba, da\u017e\u0101di pl\u0101not\u0101ji, atmi\u0146a un taml\u012bdz\u012bgi komponenti, kas veido m\u016bsdienu oper\u0113t\u0101jsist\u0113mu. Visu materi\u0101lu ori\u0123in\u0101lus varat apskat\u012bt \u0161eit <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">\u0161eit<\/a><\/noindex>. L\u016bdzu, \u0146emiet v\u0113r\u0101, ka tulkojums veikts neprofesion\u0101li (\u012bpa\u0161i br\u012bvi), ta\u010du ceru, ka esmu saglab\u0101jis kop\u0113jo noz\u012bmi.<\/p>\n<p>Laboratorijas darbus par \u0161o t\u0113mu var atrast \u0161eit:<br \/>\n \u2014 ori\u0123in\u0101ls: <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 ori\u0123in\u0101ls: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">github.com\/remzi-arpacidusseau\/ostep-code<\/a><\/noindex><br \/>\n \u2014 mana person\u012bg\u0101 adapt\u0101cija: <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>Un j\u016bs varat apmekl\u0113t manu kan\u0101lu <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">Telegram<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Programmas darb\u012bba<\/h3>\n<p>\nKas notiek, kad darbojas noteikta programma? Palaista programma veic vienu vienk\u0101r\u0161u uzdevumu \u2014 t\u0101 izpilda instrukcijas. Katru sekundi miljardi instrukciju tiek izvilktas procesora no operat\u012bv\u0101s atmi\u0146as, un proced\u016bra t\u0101s dekod\u0113 (piem\u0113ram, nosaka, k\u0101dam tipam pieder \u0161\u012bs instrukcijas) un izpilda. T\u0101s var b\u016bt divu skait\u013cu saskait\u012b\u0161ana, piek\u013cuve atmi\u0146ai, nosac\u012bjuma p\u0101rbaude, p\u0101reja uz funkciju un taml\u012bdz\u012bgi. Pabeidzis vienas instrukcijas izpildi, procesors p\u0101riet pie citas. Un t\u0101, instrukcija p\u0113c instrukcijas, t\u0101s tiek izpild\u012btas, l\u012bdz programma beidzas.<br \/>\n\u0160is piem\u0113rs, protams, ir apl\u016bkots vienk\u0101r\u0161oti \u2014 paties\u012bb\u0101, lai pa\u0101trin\u0101tu procesora darbu, m\u016bsdienu aparat\u016bra \u013cauj izpild\u012bt instrukcijas bez sec\u012bbas, apr\u0113\u0137in\u0101t iesp\u0113jamos rezult\u0101tus, izpild\u012bt instrukcijas vienlaikus un veikt taml\u012bdz\u012bgas vilt\u012bbas.<\/p>\n<h3>Fon-Neima\u0146a skait\u013co\u0161anas modelis<\/h3>\n<p>\nM\u016bsu aprakst\u012bt\u0101 vienk\u0101r\u0161ot\u0101 darba forma ir l\u012bdz\u012bga Fon-Neima\u0146a skait\u013co\u0161anas modelim. <i>Fon-Neimans ir viens no datoru sist\u0113mu pionieriem, vi\u0146\u0161 ir ar\u012b viens no sp\u0113\u013cu teorijas autoriem<\/i>. Programmas izpildes laik\u0101 notiek v\u0113l daudzas citas darb\u012bbas, darbojas neskait\u0101mi citi procesi un blakus lo\u0123ika, kuru galvenais m\u0113r\u0137is ir vienk\u0101r\u0161ot sist\u0113mas palai\u0161anu, darb\u012bbu un apkalpo\u0161anu.<br \/>\nIr \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 programmat\u016bras kopums, kas atbild par programmu palai\u0161anas vienk\u0101r\u0161\u012bbu (vai pat \u013cauj start\u0113t vair\u0101kas programmas vienlaikus), tas \u013cauj programm\u0101m dal\u012bties taj\u0101 pa\u0161\u0101 atmi\u0146\u0101, k\u0101 ar\u012b mijiedarboties ar da\u017e\u0101d\u0101m iek\u0101rt\u0101m. \u0160\u0101du programmat\u016bras kopumu b\u016bt\u012bb\u0101 sauc par oper\u0113t\u0101jsist\u0113mu, un t\u0101s uzdevumos ietilpst uzraudz\u012bt, lai sist\u0113ma darbotos pareizi un efekt\u012bvi, k\u0101 ar\u012b nodro\u0161in\u0101t \u0161\u012bs sist\u0113mas p\u0101rvald\u012bbas vienk\u0101r\u0161\u012bbu. <\/p>\n<h2>Oper\u0113t\u0101jsist\u0113ma<\/h2>\n<p>\n<b>Oper\u0113t\u0101jsist\u0113ma, \u012bs\u0101k - OS, ir savstarp\u0113ji saist\u012btu programmu komplekss, kas paredz\u0113ts datoru resursu p\u0101rvald\u012b\u0161anai un lietot\u0101ja mijiedarb\u012bbas organiz\u0113\u0161anai ar datoru.<\/b>. <br \/>\nOS sasniedz savu efektivit\u0101ti pirmk\u0101rt, izmantojot vissvar\u012bg\u0101ko tehniku - tehnolo\u0123iju <b>virtualiz\u0101ciju<\/b>. OS mijiedarbojas ar fiziskajiem resursiem (procesoru, atmi\u0146u, disku un taml\u012bdz\u012bgi) un p\u0101rv\u0113r\u0161 tos par visp\u0101r\u012bg\u0101ku, ar pla\u0161\u0101k\u0101m iesp\u0113j\u0101m un lieto\u0161anai \u0113rt\u0101ku formu. T\u0101d\u0113\u013c visp\u0101r\u0113jai izpratnei var \u013coti rupji sal\u012bdzin\u0101t oper\u0113t\u0101jsist\u0113mu ar virtu\u0101lo ma\u0161\u012bnu.<br \/>\nLai lietot\u0101ji var\u0113tu dot komandas oper\u0113t\u0101jsist\u0113mai un t\u0101d\u0113j\u0101di izmantot virtu\u0101l\u0101s ma\u0161\u012bnas iesp\u0113jas (piem\u0113ram: programmas palai\u0161ana, atmi\u0146as pie\u0161\u0137ir\u0161ana, piek\u013cuve failam utt.), oper\u0113t\u0101jsist\u0113ma nodro\u0161ina noteiktu saskarni, ko sauc par <b>API<\/b> (lietojumprogrammu izstr\u0101des saskarni) uz kuru var veikt izsaukumus (call). Tipiska oper\u0113t\u0101jsist\u0113ma nodro\u0161ina iesp\u0113ju veikt simtiem sist\u0113misko izsaukumu.<br \/>\nUn visbeidzot, \u0146emot v\u0113r\u0101, ka virtualiz\u0101cija \u013cauj daudziem programm\u0101m darboties (t\u0101d\u0113j\u0101di kop\u012bgi izmantot CPU), un vienlaikus piek\u013c\u016bt to instrukcij\u0101m un datiem (t\u0101d\u0113j\u0101di daloties ar atmi\u0146u), k\u0101 ar\u012b ieg\u016bt piek\u013cuvi diskam (t\u0101d\u0113j\u0101di kop\u012bgi izmantojot ievades\/izvades ier\u012bces), oper\u0113t\u0101jsist\u0113mu v\u0113l sauc par resursu p\u0101rvaldnieku. Katrs procesors, disks un atmi\u0146a ir sist\u0113mas resurss, un t\u0101d\u0113j\u0101di viens no oper\u0113t\u0101jsist\u0113mas uzdevumiem ir \u0161o resursu efekt\u012bva p\u0101rvald\u012bba, k\u0101 ar\u012b godpr\u0101t\u012bga vai, pret\u0113ji, atkar\u012bb\u0101 no uzdevuma, kuram oper\u0113t\u0101jsist\u0113ma ir izstr\u0101d\u0101ta.<\/p>\n<h3>CPU virtualiz\u0101cija<\/h3>\n<p>\nApskat\u012bsim n\u0101kamo programmu:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"Oper\u0113t\u0101jsist\u0113mas: Tr\u012bs viegli gabali. 1. da\u013ca: Ievads (tulkojums)\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u0101 neveic nek\u0101das \u012bpa\u0161as darb\u012bbas, b\u016bt\u012bb\u0101 viss, ko t\u0101 dara \u2014 izsauc funkciju <b>spin<\/b>(), kuras uzdevums ir cikliski p\u0101rbaud\u012bt laiku un atgriezties p\u0113c tam, kad pag\u0101jusi viena sekunde. T\u0101d\u0113j\u0101di t\u0101 nebeidzami atk\u0101rto rindu, kuru lietot\u0101js nodevis k\u0101 argumentu.<br \/>\nPalai\u017eam \u0161o programmu un nododam tai argument\u0101 simbolu \u201cA\u201d. Rezult\u0101ts izn\u0101k ne \u012bpa\u0161i interesants \u2014 sist\u0113ma vienk\u0101r\u0161i izpilda programmu, kas periodiski izvada ekr\u0101n\u0101 simbolu \u201cA\u201d.<br \/>\nTagad izm\u0113\u0123in\u0101sim variantu, kad tiek palai\u017eami daudzi vienas un t\u0101s pa\u0161as programmas piem\u0113ri, bet katrs par\u0101da da\u017e\u0101das burtus, lai b\u016btu skaidr\u0101k. \u0160aj\u0101 gad\u012bjum\u0101 rezult\u0101ts izn\u0101k nedaudz cit\u0101d\u0101ks. Neskatoties uz to, ka mums ir viens procesors, programma tiek izpild\u012bta vienlaic\u012bgi. K\u0101p\u0113c t\u0101 notiek? Tas notiek t\u0101p\u0113c, ka oper\u0113t\u0101jsist\u0113ma, ne bez aparat\u016bras pal\u012bdz\u012bbas, rada il\u016bziju. Il\u016bziju par to, ka sist\u0113m\u0101 ir vair\u0101ki virtu\u0101li procesori, p\u0101rv\u0113r\u0161ot vienu fizisko procesoru teor\u0113tiski nebeidzam\u0101 daudzum\u0101 un t\u0101d\u0113j\u0101di \u013caujot programm\u0101m izskat\u012bties, ka t\u0101s tiek izpild\u012btas vienlaic\u012bgi. \u0160\u0101du il\u016bziju sauc par <i>CPU virtualiz\u0101ciju<\/i>.<br \/>\n \u0160\u0101da aina rada daudz jaut\u0101jumu, piem\u0113ram, ja vair\u0101kas programmas v\u0113las palaisties vienlaic\u012bgi, tad kura tie\u0161i tiks palaista? Par \u0161o jaut\u0101jumu atbild \u201cpolitikas\u201d OS. Politikas tiek izmantotas daudzviet oper\u0113t\u0101jsist\u0113m\u0101 un atbild uz l\u012bdz\u012bgiem jaut\u0101jumiem, k\u0101 ar\u012b ir pamata meh\u0101nismi, kurus OS \u012bsteno. No t\u0101 izriet ar\u012b OS loma k\u0101 resursu p\u0101rvaldnieka.<\/p>\n<h3>Atmi\u0146as virtualiz\u0101cija<\/h3>\n<p>\n Tagad apskat\u012bsim atmi\u0146u. <b>Fiziskais atmi\u0146as modelis m\u016bsdienu sist\u0113m\u0101s tiek att\u0113lots k\u0101 byte mas\u012bvs<\/b>. Lai las\u012btu no atmi\u0146as, nepiecie\u0161ams nor\u0101d\u012bt <b>\u0161\u016bnas adresi<\/b>, lai ieg\u016btu piek\u013cuvi. Lai ierakst\u012btu vai atjaunin\u0101tu datus, nepiecie\u0161ams nor\u0101d\u012bt datus un \u0161\u016bnas adresi, kur tos ierakst\u012bt.<br \/>\n Piek\u013cuve atmi\u0146ai notiek past\u0101v\u012bgi programmas darb\u012bbas proces\u0101. Programma saglab\u0101 atmi\u0146\u0101 visu t\u0101s datu strukt\u016bru un piek\u013c\u016bst tai, izpildot da\u017e\u0101das instrukcijas. Starp citu, instrukcijas ar\u012b tiek glab\u0101tas atmi\u0146\u0101, t\u0101p\u0113c piek\u013cuve tai notiek ar\u012b katram piepras\u012bjumam attiec\u012bb\u0101 uz n\u0101kamo instrukciju.<\/p>\n<h4>Izsaukums malloc()<\/h4>\n<p>Apskat\u012bsim n\u0101kamo programmu, kas pie\u0161\u0137ir atmi\u0146as bloku, izmantojot saucienu <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"Oper\u0113t\u0101jsist\u0113mas: Tr\u012bs viegli gabali. 1. da\u013ca: Ievads (tulkojums)\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrograma veic vair\u0101kas darb\u012bbas. Vispirms t\u0101 pie\u0161\u0137ir noteiktu daudzumu atmi\u0146as (rind\u0101 7), tad izvada pie\u0161\u0137irt\u0101s atmi\u0146as \u0161\u016bnas adresi (rind\u0101 9), ieraksta nulli pirmaj\u0101 pie\u0161\u0137irt\u0101s atmi\u0146as slot\u0101. P\u0113c tam programma ien\u0101k cikl\u0101, kur\u0101 inkrement\u0113 v\u0113rt\u012bbu, kas ierakst\u012bta atmi\u0146\u0101, adrese atrodas main\u012bgaj\u0101 \u201cp\u201d. T\u0101pat t\u0101 izvada procesa identifikatoru pati par sevi. <b>Procesa identifikators ir unik\u0101ls katram palaistam procesam<\/b>. Ja palaid\u012bsim vair\u0101kas kopijas, m\u0113s sastapsim interesantu rezult\u0101tu: Pirmaj\u0101 gad\u012bjum\u0101, ja neko nedar\u012bsim un vienk\u0101r\u0161i palaid\u012bsim vair\u0101kas kopijas, adreses b\u016bs at\u0161\u0137ir\u012bgas. Bet tas ta\u010du nesakr\u012bt ar m\u016bsu teoriju! J\u0101, jo m\u016bsdienu distrib\u016bcij\u0101s p\u0113c noklus\u0113juma ir iek\u013cauta atmi\u0146as nejau\u0161\u012bbas funkcija. Ja to atsp\u0113kosim, ieg\u016bsim gaid\u012bto rezult\u0101tu \u2014 atmi\u0146as adreses div\u0101m vienlaikus str\u0101d\u0101jo\u0161\u0101m programm\u0101m b\u016bs vien\u0101das. <\/p>\n<p><img decoding=\"async\" alt=\"Oper\u0113t\u0101jsist\u0113mas: Tr\u012bs viegli gabali. 1. da\u013ca: Ievads (tulkojums)\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>T\u0101d\u0113j\u0101di izn\u0101k, ka divas neatkar\u012bgas programmas str\u0101d\u0101 ar sav\u0101m priv\u0101taj\u0101m adres\u0101tu telp\u0101m, kuras savuk\u0101rt oper\u0113t\u0101jsist\u0113ma att\u0113lo fiziskaj\u0101 atmi\u0146\u0101<\/b>. T\u0101p\u0113c atmi\u0146as adresu izmanto\u0161ana vienas programmas ietvaros nek\u0101d\u0101 veid\u0101 neietekm\u0113s citas un katrai programmai \u0161\u0137iet, ka tai ir savs fizisk\u0101s atmi\u0146as gabals, kas piln\u012bb\u0101 nodots t\u0101s r\u012bc\u012bb\u0101. Paties\u012bba tom\u0113r ir t\u0101da, ka fizisk\u0101 atmi\u0146a ir koplietojams resurss, kura p\u0101rvald\u012bbu veic oper\u0113t\u0101jsist\u0113ma.<\/p>\n<h3>Sakrit\u012bba<\/h3>\n<p>\nV\u0113l viens no svar\u012bgajiem tematiem oper\u0113t\u0101jsist\u0113mu ietvar\u0101 \u2014 <b>sakrit\u012bba<\/b>. \u0160is termins tiek izmantots, kad runa ir par probl\u0113m\u0101m sist\u0113m\u0101, kas var rasties, str\u0101d\u0101jot ar daudziem objektiem vienlaikus vienas programmas ietvaros. Sakrit\u012bbas probl\u0113mas rodas pat pa\u0161\u0101 oper\u0113t\u0101jsist\u0113m\u0101. Iepriek\u0161\u0113jos piem\u0113ros ar atmi\u0146as un procesora virtualiz\u0101ciju m\u0113s saprat\u0101m, ka oper\u0113t\u0101jsist\u0113ma p\u0101rvalda daudzas lietas vienlaikus \u2014 s\u0101k pirmo procesu, p\u0113c tam otro un t\u0101 t\u0101l\u0101k. Izr\u0101d\u0101s, \u0161\u0101da uzved\u012bba var rad\u012bt da\u017eas probl\u0113mas. Piem\u0113ram, m\u016bsdienu daudz pavedienu programmas saskaras ar \u0161\u0101d\u0101m gr\u016bt\u012bb\u0101m.<\/p>\n<p>Apskat\u012bsim n\u0101kamo programmu:<\/p>\n<p> <img decoding=\"async\" alt=\"Oper\u0113t\u0101jsist\u0113mas: Tr\u012bs viegli gabali. 1. da\u013ca: Ievads (tulkojums)\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgramma galvenaj\u0101 funkcij\u0101 izveido divus pavedienus, izmantojot izsaukumu <b>Pthread_create()<\/b>. \u0160aj\u0101 piem\u0113r\u0101 pavediena var dom\u0101t k\u0101 funkciju, kas tiek izpild\u012bta vien\u0101 atmi\u0146as telp\u0101 l\u012bdz\u0101s cit\u0101m funkcij\u0101m, turkl\u0101t vienlaikus tiek palaistas vair\u0101k nek\u0101 viena funkcija. \u0160aj\u0101 piem\u0113r\u0101 katrs pavediens s\u0101kas un izpilda funkciju <b>worker(), kas savuk\u0101rt vienk\u0101r\u0161i palielina main\u012bgo<\/b>,.<\/p>\n<p>. Palai\u017eam \u0161o programmu ar argumentu 1000. K\u0101 jau var\u0113j\u0101t nojaust, rezult\u0101tam j\u0101b\u016bt 2000, jo katrs pavediens palielina main\u012bgo 1000 reizes. Tom\u0113r viss nav tik vienk\u0101r\u0161i. M\u0113\u0123in\u0101sim palaist programmu ar skaitli, kas ir par k\u0101rtu liel\u0101ks.<\/p>\n<p><img decoding=\"async\" alt=\"Oper\u0113t\u0101jsist\u0113mas: Tr\u012bs viegli gabali. 1. da\u013ca: Ievads (tulkojums)\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIevadot skaitli, piem\u0113ram, 100000, m\u0113s gaid\u0101m redz\u0113t izvad\u0113 skaitli 200000. Tom\u0113r, palai\u017eot skaitli 100000 vair\u0101kas reizes, m\u0113s ne tikai neredz\u0113sim pareizo atbildi, bet ar\u012b sa\u0146emsim da\u017e\u0101das nepareizas atbildes. Atbilde sl\u0113pjas taj\u0101, ka skaita palielin\u0101\u0161anai nepiecie\u0161amas tr\u012bs oper\u0101cijas \u2014 izvilk\u0161ana no atmi\u0146as, palielin\u0101\u0161ana un p\u0113c tam skait\u013ca ierakst\u012b\u0161ana atpaka\u013c. T\u0101 k\u0101 visas \u0161\u012bs instrukcijas netiek veiktas atomiski (vienlaikus), var notikt \u0161\u0101das d\u012bvainas lietas. \u0160\u012b probl\u0113ma programm\u0113\u0161an\u0101 tiek d\u0113v\u0113ta par <b>race condition \u2014 sacens\u012bbu st\u0101voklis<\/b>. Kad nezin\u0101mas sp\u0113ks nezin\u0101m\u0101 br\u012bd\u012b var ietekm\u0113t k\u0101du no j\u016bsu oper\u0101cij\u0101m.<br \/>\n<br \/>Avots: <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.5 - 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\/lv\/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.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/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. 1. da\u013ca: Ievads (tulkojums) | ProHoster","description":"Ievads oper\u0113t\u0101jsist\u0113m\u0101s Sveiki, Habr! V\u0113los jums pied\u0101v\u0101t rakstu s\u0113riju-parakstu, kas attiecas uz man interesanto literat\u016bru \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/30717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}