{"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\/ro\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","title":{"rendered":"Sisteme de operare: Trei piese u\u0219oare. Partea 1: Introducere (traducere)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Introducere \u00een sistemele de operare<\/h1>\n<p>Salut, Habr! Vreau s\u0103 v\u0103 prezint o serie de articole-traduceri dintr-o literatur\u0103 care mi se pare interesant\u0103 \u2014 OSTEP. Acest material analizeaz\u0103 \u00een profunzime func\u021bionarea sistemelor de operare de tip Unix, adic\u0103 modul \u00een care func\u021bioneaz\u0103 procesele, diferitele planificatoare, memoria \u0219i alte componente similare, care constituie un sistem de operare modern. Pute\u021bi vizualiza originalul tuturor materialelor aici <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">aici<\/a><\/noindex>. V\u0103 rog s\u0103 \u021bine\u021bi cont c\u0103 traducerea a fost efectuat\u0103 neprofesional (destul de liber), dar sper c\u0103 am p\u0103strat sensul general.<\/p>\n<p>Lucr\u0103rile de laborator pentru aceast\u0103 materie le pute\u021bi g\u0103si aici:<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 adaptarea mea personal\u0103: <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>De asemenea, m\u0103 pute\u021bi urm\u0103ri pe canalul meu de <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">telegram\u0103<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Func\u021bionarea programului<\/h3>\n<p>\nCe se \u00eent\u00e2mpl\u0103 atunci c\u00e2nd ruleaz\u0103 un program oarecare? Un program lansat execut\u0103 un lucru simplu \u2014 \u00eendepline\u0219te instruc\u021biuni. Fiecare secund\u0103 milioane \u0219i chiar miliarde de instruc\u021biuni sunt extrase de procesor din memoria RAM, acesta le decodeaz\u0103 (de exemplu, recunoa\u0219te la ce tip apar\u021bin aceste instruc\u021biuni) \u0219i le execut\u0103. Acestea pot fi adunarea a dou\u0103 numere, acces la memorie, verificarea unei condi\u021bii, transferul la o func\u021bie \u0219i a\u0219a mai departe. Dup\u0103 finalizarea unei instruc\u021biuni, procesorul trece la executarea alteia. \u0218i a\u0219a, instruc\u021biune dup\u0103 instruc\u021biune, acestea sunt executate p\u00e2n\u0103 c\u00e2nd programul se \u00eencheie.<br \/>\nAcest exemplu, desigur, este prezentat simplificat \u2014 \u00een realitate, pentru a accelera func\u021bionarea procesorului, echipamentele moderne permit executarea instruc\u021biunilor \u00een afara ordinii, calcularea rezultatelor posibile, executarea simultan\u0103 a instruc\u021biunilor \u0219i astfel de trucuri.<\/p>\n<h3>Modelul de calcul von Neumann<\/h3>\n<p>\nForma simplificat\u0103 de munc\u0103 pe care am descris-o seam\u0103n\u0103 cu modelul de calcul von Neumann. <i>Von Neumann este unul dintre pionierii sistemelor de computere, de asemenea, este unul dintre autorii teoriei jocurilor<\/i>. Pe parcursul func\u021bion\u0103rii programului au loc o mul\u021bime de alte evenimente, func\u021bioneaz\u0103 numeroase alte procese \u0219i logica extern\u0103, ale c\u0103ror scop principal este simplificarea lans\u0103rii, func\u021bion\u0103rii \u0219i \u00eentre\u021binerii sistemului.<br \/>\nExist\u0103 un set de software care este responsabil pentru simplificarea lans\u0103rii programelor (sau chiar permi\u021b\u00e2nd lansarea mai multor programe simultan), permi\u021b\u00e2nd programelor s\u0103 partajeze aceea\u0219i memorie \u0219i s\u0103 interac\u021bioneze cu diverse dispozitive. Acest set de software (program) este, \u00een esen\u021b\u0103, ceea ce numim sistem de operare, iar sarcinile sale includ monitorizarea func\u021bion\u0103rii corecte \u0219i eficiente a sistemului, precum \u0219i asigurarea unei gestion\u0103ri u\u0219oare a acestuia. <\/p>\n<h2>Sistem de operare<\/h2>\n<p>\n<b>Sistemul de operare, pe scurt SO \u2014 un complex de programe interconectate, destinat gestion\u0103rii resurselor computerului \u0219i organiz\u0103rii interac\u021biunii utilizatorului cu computerul.<\/b>. <br \/>\nSO \u00ee\u0219i atinge eficien\u021ba \u00een primul r\u00e2nd prin cea mai important\u0103 tehnic\u0103 \u2014 tehnica <b>virtualiz\u0103rii.<\/b>. SO interac\u021bioneaz\u0103 cu resursele fizice (procesor, memorie, disc \u0219i altele asemenea) \u0219i le transform\u0103 \u00eentr-o form\u0103 mai general\u0103, cu mai multe capacit\u0103\u021bi \u0219i mai u\u0219or de utilizat. Prin urmare, pentru o \u00een\u021belegere general\u0103, putem compara foarte grosolan sistemul de operare cu o ma\u0219in\u0103 virtual\u0103.<br \/>\nPentru a permite utilizatorilor s\u0103 furnizeze comenzi sistemului de operare \u0219i astfel s\u0103 foloseasc\u0103 func\u021bionalit\u0103\u021bile ma\u0219inii virtuale (cum ar fi: lansarea de programe, alocarea de memorie, accesul la fi\u0219iere \u0219i a\u0219a mai departe), sistemul de operare ofer\u0103 o interfa\u021b\u0103 numit\u0103 <b>API<\/b> (interfa\u021b\u0103 de programare a aplica\u021biilor) \u0219i la care se pot face apeluri (call). Un sistem de operare tipic permite efectuarea a sute de apeluri sistemice.<br \/>\n\u0218i, \u00een sf\u00e2r\u0219it, deoarece virtualizarea permite multor programe s\u0103 func\u021bioneze (astfel, s\u0103 partajeze CPU-ul) \u0219i s\u0103 acceseze simultan instruc\u021biunile \u0219i datele lor (astfel partaj\u00e2nd memoria), precum \u0219i s\u0103 acceseze discurile (astfel partaj\u00e2nd dispozitivele de intrare-ie\u0219ire), sistemul de operare este denumit \u0219i manager de resurse. Fiecare procesor, disc \u0219i memorie sunt resurse ale sistemului \u0219i, astfel, una dintre rolurile sistemului de operare devine gestionarea acestor resurse, f\u0103c\u00e2ndu-le eficient, corect sau, dimpotriv\u0103, \u00een func\u021bie de sarcina pentru care a fost dezvoltat acest sistem de operare.<\/p>\n<h3>Virtualizarea CPU<\/h3>\n<p>\nS\u0103 analiz\u0103m urm\u0103torul program:<br \/>\n(https:\/\/www.youtube.com\/watch?v=zDwT5fUcki4&amp;feature=youtu.be)<\/p>\n<p> <img decoding=\"async\" alt=\"Sisteme de operare: Trei piese u\u0219oare. Partea 1: Introducere (traducere)\" src=\"\/wp-content\/uploads\/2019\/04\/1f353e582b857fc71231472ec4f55319.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcesta nu efectueaz\u0103 ac\u021biuni speciale, \u00een esen\u021b\u0103 tot ce face este s\u0103 apeleze func\u021bia <b>spin<\/b>(), care are ca sarcin\u0103 verificarea ciclic\u0103 a timpului \u0219i returnarea dup\u0103 ce a trecut o secund\u0103. Astfel, repet\u0103 \u00een mod continuu \u0219irul pe care utilizatorul l-a furnizat ca argument.<br \/>\nS\u0103 rul\u0103m acest program \u0219i s\u0103-i transmitem ca argument caracterul \u201cA\u201d. Rezultatul ob\u021binut nu este foarte interesant \u2014 sistemul pur \u0219i simplu execut\u0103 programul care afi\u0219eaz\u0103 periodic caracterul \u201cA\u201d.<br \/>\nAcum s\u0103 \u00eencerc\u0103m varianta \u00een care sunt pornite mai multe instan\u021be ale aceluia\u0219i program, dar care afi\u0219eaz\u0103 litere diferite, pentru a fi mai clar. \u00cen acest caz, rezultatul va fi oarecum diferit. Cu toate c\u0103 avem un singur procesor, programul se execut\u0103 simultan. Cum este posibil asta? Ei bine, sistemul de operare, cu ajutorul capacit\u0103\u021bilor hardware, creeaz\u0103 o iluzie. Iluzia c\u0103 \u00een sistem exist\u0103 mai mul\u021bi procesoare virtuale, transform\u00e2nd un procesor fizic \u00eentr-un num\u0103r teoretic infinit \u0219i permi\u021b\u00e2nd astfel programelor s\u0103 par\u0103 c\u0103 se execut\u0103 simultan. Aceast\u0103 iluzie se nume\u0219te <i>Virtualizarea CPU<\/i>.<br \/>\n Aceast\u0103 situa\u021bie na\u0219te multe \u00eentreb\u0103ri, de exemplu, dac\u0103 mai multe programe doresc s\u0103 se execute simultan, care anume va fi rulat\u0103? La aceast\u0103 \u00eentrebare r\u0103spund \u201epoliticile\u201d sistemului de operare. Politicile sunt folosite \u00een multe locuri din sistemul de operare \u0219i r\u0103spund la \u00eentreb\u0103ri de acest fel, fiind de asemenea mecanisme de baz\u0103 implementate de sistemul de operare. De aici \u0219i rolul sistemului de operare ca manager de resurse.<\/p>\n<h3>Virtualizarea memoriei<\/h3>\n<p>\n Acum s\u0103 analiz\u0103m memoria. <b>Modelul fizic al memoriei \u00een sistemele moderne este reprezentat ca un array de bi\u021bi.<\/b>Pentru a citi din memorie, trebuie s\u0103 specifici <b>adresa celulei<\/b>, pentru a ob\u021bine acces la aceasta. Pentru a scrie sau actualiza date, trebuie de asemenea s\u0103 specifici datele \u0219i adresa celulei \u00een care s\u0103 fie scrise.<br \/>\n Acces\u0103rile la memorie au loc constant \u00een timpul execu\u021biei programului. Programul stocheaz\u0103 \u00een memorie \u00eentreaga sa structur\u0103 de date \u0219i se refer\u0103 la ea, execut\u00e2nd diferite instruc\u021biuni. \u00cen acela\u0219i timp, instruc\u021biunile sunt \u0219i ele stocate \u00een memorie, astfel \u00eenc\u00e2t accesarea acesteia are loc \u0219i la fiecare cerere pentru urm\u0103toarea instruc\u021biune.<\/p>\n<h4>Apelul malloc()<\/h4>\n<p>S\u0103 analiz\u0103m urm\u0103toarea program\u0103 care aloc\u0103 o zon\u0103 de memorie utiliz\u00e2nd un apel <b>malloc()<\/b> (https:\/\/youtu.be\/jnlKRnoT1m0):<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de operare: Trei piese u\u0219oare. Partea 1: Introducere (traducere)\" src=\"\/wp-content\/uploads\/2019\/04\/00b285e1999c2b010c84e712a3ac3087.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgramul realizeaz\u0103 mai multe lucruri. \u00cen primul r\u00e2nd, aloc\u0103 o anumit\u0103 cantitate de memorie (linia 7), apoi afi\u0219eaz\u0103 adresa celulei de memorie alocate (linia 9), scrie zero \u00een prima pozi\u021bie a memoriei alocate. Apoi, programul intr\u0103 \u00eentr-un ciclu \u00een care incrementeaz\u0103 valoarea scris\u0103 \u00een memorie la adresa stocat\u0103 \u00een variabila \u201cp\u201d. De asemenea, afi\u0219eaz\u0103 identificatorul procesului s\u0103u. <b>Identificatorul procesului este unic pentru fiecare proces lansat<\/b>. C\u00e2nd lans\u0103m mai multe instan\u021be, ne \u00eent\u00e2lnim cu un rezultat interesant: \u00cen primul caz, dac\u0103 nu facem nimic \u0219i pur \u0219i simplu lans\u0103m mai multe instan\u021be, adresele vor fi diferite. Dar acest lucru nu se conformeaz\u0103 teoriei noastre! Asta este adev\u0103rat, deoarece \u00een distribu\u021biile moderne, func\u021bia de randomizare a memoriei este activat\u0103 implicit. Dac\u0103 o dezactiv\u0103m, vom ob\u021bine rezultatul a\u0219teptat \u2014 adresele de memorie ale dou\u0103 programe care ruleaz\u0103 simultan vor coincide. <\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de operare: Trei piese u\u0219oare. Partea 1: Introducere (traducere)\" src=\"\/wp-content\/uploads\/2019\/04\/882fe00a72deadac12f146bc8d15b024.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Astfel, rezultatul este c\u0103 dou\u0103 programe independente func\u021bioneaz\u0103 cu propriile spa\u021bii adresabile private, care sunt mapate de sistemul de operare \u00een memoria fizic\u0103.<\/b>Prin urmare, utilizarea adreselor de memorie \u00een cadrul unei singure programe nu va afecta altele, iar fiec\u0103rei programe \u00eei pare c\u0103 are propriul s\u0103u segment de memorie fizic\u0103, complet \u00eencredin\u021bat ei. Realitatea, \u00eens\u0103, este c\u0103 memoria fizic\u0103 este un resurs\u0103 comun\u0103, gestionat\u0103 de sistemul de operare.<\/p>\n<h3>Consisten\u021b\u0103<\/h3>\n<p>\nO alt\u0103 tem\u0103 important\u0103 \u00een cadrul sistemelor de operare este <b>consisten\u021ba<\/b>. Acest termen este folosit atunci c\u00e2nd se discut\u0103 despre problemele din sistem care pot ap\u0103rea atunci c\u00e2nd se lucreaz\u0103 cu multe lucruri simultan \u00eentr-o singur\u0103 program\u0103. Problemele de consisten\u021b\u0103 apar chiar \u0219i \u00een sistemul de operare. \u00cen exemplele anterioare cu virtualizarea memoriei \u0219i procesorului, am \u00een\u021beles c\u0103 sistemul de operare gestioneaz\u0103 multe lucruri simultan - lanseaz\u0103 primul proces, apoi al doilea \u0219i a\u0219a mai departe. Se pare c\u0103 un astfel de comportament poate duce la anumite probleme. De exemplu, programele moderne multithreading \u00eent\u00e2mpin\u0103 aceste dificult\u0103\u021bi.<\/p>\n<p>S\u0103 analiz\u0103m urm\u0103torul program:<\/p>\n<p> <img decoding=\"async\" alt=\"Sisteme de operare: Trei piese u\u0219oare. Partea 1: Introducere (traducere)\" src=\"\/wp-content\/uploads\/2019\/04\/091af38bd53fb94e65afa6c57b08f012.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProgramul din func\u021bia principal\u0103 creeaz\u0103 dou\u0103 fire, folosind apelul <b>Pthread_create()<\/b>. \u00cen acest exemplu, un fir poate fi g\u00e2ndit ca o func\u021bie care ruleaz\u0103 \u00eentr-un spa\u021biu de memorie al\u0103turi de alte func\u021bii, iar num\u0103rul func\u021biilor executate simultan este evident mai mare dec\u00e2t unul. \u00cen acest exemplu, fiecare fir porne\u0219te \u0219i execut\u0103 func\u021bia <b>worker() care, la r\u00e2ndul ei, pur \u0219i simplu incrementeaz\u0103 o variabil\u0103.<\/b>,.<\/p>\n<p>S\u0103 rul\u0103m acest program cu argumentul 1000. A\u0219a cum v-a\u021bi putut da seama, rezultatul ar trebui s\u0103 fie 2000, deoarece fiecare fir a incrementat variabila de 1000 de ori. Totu\u0219i, nu este at\u00e2t de simplu. S\u0103 \u00eencerc\u0103m s\u0103 rul\u0103m programul cu un num\u0103r de repeti\u021bii cu un ordin mai mare.<\/p>\n<p><img decoding=\"async\" alt=\"Sisteme de operare: Trei piese u\u0219oare. Partea 1: Introducere (traducere)\" src=\"\/wp-content\/uploads\/2019\/04\/a6a3e63f9ab94793ffde67342c5a19da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFurniz\u00e2nd un num\u0103r, de exemplu, 100000, ne a\u0219tept\u0103m s\u0103 vedem un rezultat de 200000. Totu\u0219i, rul\u00e2nd num\u0103rul 100000 de mai multe ori, nu doar c\u0103 nu vom ob\u021bine r\u0103spunsul corect, dar vom ob\u021bine \u0219i r\u0103spunsuri gre\u0219ite variate. Misterul const\u0103 \u00een faptul c\u0103 pentru a cre\u0219te num\u0103rul sunt necesare trei opera\u021bii \u2014 extragerea num\u0103rului din memorie, incrementarea \u0219i apoi scrierea din nou a num\u0103rului. Deoarece toate aceste instruc\u021biuni nu sunt efectuate atomic (toate simultan), astfel de lucruri ciudate pot \u00eent\u00e2mpla. Problema se nume\u0219te \u00een programare <b>race condition \u2014 condi\u021bia de curs\u0103<\/b>. C\u00e2nd for\u021be necunoscute pot influen\u021ba \u00een mod necunoscut executarea oric\u0103ror opera\u021bii ale dumneavoastr\u0103.<br \/>\n<br \/>Sursa: <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.2.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.\" \/>\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\/ro\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Sistemele de Operare: Trei Piese U\u0219oare. Partea 1: Introducere (traducere) | ProHoster","description":"Introducere \u00een sistemele de operare Bun\u0103, Habr! Vreau s\u0103 v\u0103 prezint o serie de articole-traduceri dintr-o literatur\u0103 interesant\u0103, dup\u0103 mine \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-1-intro-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/30717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=30717"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30717\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/22702"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=30717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=30717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=30717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}