{"id":299,"date":"2017-02-22T13:26:01","date_gmt":"2017-02-22T11:26:01","guid":{"rendered":"http:\/\/blog.georgebaciu.pro\/?p=299"},"modified":"2023-04-12T09:23:33","modified_gmt":"2023-04-12T07:23:33","slug":"sisteme-de-operare-moderne","status":"publish","type":"post","link":"https:\/\/blog.georgebaciu.pro\/?p=299","title":{"rendered":"Sisteme de operare moderne"},"content":{"rendered":"<p>Defini\u021bie: Sistemul de operare este o aplica\u021bie software care joac\u0103 rolul de &#8220;Master Control Program&#8221; \u0219i care face leg\u0103tura \u00eentre hardware \u0219i celelalte aplica\u021bii software.<\/p>\n<p>Principalele atribu\u021biuni ale unui OS sunt:<\/p>\n<ul>\n<li>hardware management &#8211; gestionarea diferitelor device-uri hardware;<\/li>\n<li>process management &#8211; executarea diferitelor aplica\u021bii software;<\/li>\n<li>object management &#8211; gestionarea diferitelor obiecte software (fi\u0219iere, aplica\u021bii, ma\u0219ini virtuale, hardware virtualizat etc);<\/li>\n<li>user interaction management;<\/li>\n<li>security management;<\/li>\n<li>communication\u00a0 management;<\/li>\n<li>instrumentation and orchestration;<\/li>\n<li>application development;<\/li>\n<li>audit.<\/li>\n<\/ul>\n<h3><span style=\"color: #993366;\">Hardware management<\/span><\/h3>\n<p>Acesta este rolul primordial al unui OS. Chiar prin defini\u021bie rolul s\u0103u este s\u0103 fac\u0103 leg\u0103tura \u00eentre hardware \u0219i celelalte aplica\u021bii software.<\/p>\n<p>De\u0219i putem imagina multe device-uri hardware pe care ar trebui s\u0103 le cunoasc\u0103 un OS, \u00een fapt, de-a lungul timpului obiectele hardware s-au separat \u00een c\u00eeteva categorii bine definite, 10-12 toate. Vom g\u0103si, \u00een ordinea importan\u021bei hardware: procesoare, motherboards, RAMi, video, storage, networking, HIDs (human interface devices), audio. Celelalte cad \u00een categorii foarte specializate, r\u0103m\u00een\u00eend pentru OS doar sarcina g\u0103sirii unor mijloace (aka porturi) de conectare la aplica\u021bii. \u0218i porturile hardware au avut acea\u0219i evolu\u021bie \u0219i s-au standardizat, cele mai folosite azi sunt porturile seriale \u0219i porturile USB (de\u0219i USB este un port hardware \u0219i are caracter serial, nu este un port serial, fiind folosit doar pentru transport).<\/p>\n<p>Cel mai mare succes \u00een managementul hardware-ului l-a avut Windows-ul pentru c\u0103 a introdus un layer de abstractizare (HAL), ceea ce a permis dezvoltarea unitar\u0103 a drivere-lor hardware. (defini\u021bie: driver-ul este o aplica\u021bie software specific\u0103 unui hardware ce permite sistemului de operare accesul la func\u021biile device-ului.) Astfel, aplica\u021biile au avut o interfa\u021b\u0103 unitar\u0103 pentru accesul la o \u00eentreag\u0103 clas\u0103 de device-uri f\u0103r\u0103 a-i p\u0103sa ce produc\u0103tor a construit-o. \u0218i invers, produc\u0103torii de hardware au avut un framework unitar pentru a-\u0219i dezvolta driverele, fapt ce i-a ajutat s\u0103 creeze ni\u0219te aplica\u021bii robuste (f\u0103r\u0103 bug-uri).<\/p>\n<h3><span style=\"color: #993366;\">Process management<\/span><\/h3>\n<p>Tot defini\u021bia ne \u00eendrum\u0103 c\u0103trea al doilea mare rol al unui OS. \u00cen <em>process management<\/em> sistemul \u00eencarc\u0103 \u00een memorie o aplica\u021bie software \u0219i execut\u0103 instruc\u021biunile sale \u00een limbaj ma\u0219in\u0103 (aka cod ma\u0219in\u0103). Procesele trebuie s\u0103 fie izolate, cu acces direct doar la spa\u021biul de memorie alocat. Accesul la resurse nu se face direct, ci prin intermediul serviciilor de sistem (sau func\u021biilor de sistem, dar un serviciu, spre deosebire de o func\u021bie, are posibilit\u0103\u021bi de autentificare, de prioritizare \u0219i alte atribute moderne). Cea mai mare provocare a acestui proces este de a pune la dispozi\u021bia aplica\u021biilor mecanisme s\u0103-\u0219i p\u0103streze ACIDitatea (atomice, consistente, izolate \u0219i durabile).<\/p>\n<p>Caraterul ACID este dat de:<\/p>\n<ul>\n<li>Atomicitate &#8211; orice opera\u021biune fie se termin\u0103 cu succes, fie se termin\u0103 cu eroare nel\u0103s\u00eend p\u0103r\u021bi modificate;<\/li>\n<li>Consiten\u021b\u0103 &#8211; orice opera\u021biune trebuie s\u0103 fie valid\u0103, duc\u00eend aplica\u021bia dintr-o stare valid\u0103 \u00eentr-o alt\u0103 stare valid\u0103 (valid\u0103 din punct de vedere al OS \u0219i nu al aplica\u021biei pentru c\u0103 OSul nu poate \u0219ti ce e aia stare valid\u0103 pentru ea);<\/li>\n<li>Izolare &#8211; OSul trebuie s\u0103 asigure spa\u021biu de memorie izolat fiec\u0103rei aplica\u021bii, nepermi\u021b\u00eend unui alt software s\u0103 modifice direct \u00een spa\u021biul dedicat;<\/li>\n<li>Durabilitate &#8211; odat\u0103 ce o opera\u021bie s-a terminat toate efectele sale r\u0103m\u00een, orice alt\u0103 opera\u021biune ulterioar\u0103 nemaiav\u00eend acces la datele ini\u021biale.<\/li>\n<\/ul>\n<h3><span style=\"color: #993366;\">Object management<\/span><\/h3>\n<p>Dac\u0103 primele dou\u0103 roluri au fost evidente \u0219i cam toate sistemele de p\u00een\u0103 acum s-au achitat onorabil \u00een implementarea corect\u0103 a lor, partea de Object Management a fost PROST g\u00eendit\u0103 \u00een toate OSurile cunoscute. Daca \u00een vremurile cu hardware scump se putea trece cu vederea lipsa de viziune asupra acestui rol primordial al OSului, azi trebuie s\u0103-l avem \u00een centrul aten\u021biei pentru c\u0103 obiectele care exist\u0103 \u0219i interac\u021bioneaz\u0103 \u00eentr-un OS sunt suficient de complexe \u0219i diferite a\u0219a \u00eenc\u00eet comunicarea dintre ele s\u0103 nea de peste cap (s\u0103 introduc\u0103 o complexitate nejustificat\u0103) multe aplica\u021bii propuse.<\/p>\n<p>Abordarea ini\u021bial\u0103 a fost <em>everything is a file<\/em> \u0219i a func\u021bionat o vreme. Prin simplitatea ei a permis orientarea \u021bintelor optimiz\u0103rii software c\u0103tre primele dou\u0103 roluri, ceea ce e de \u00een\u021beles pentru c\u0103 hardware-ul era scump \u0219i nu a\u0219a de rapid. UNIXul a rulat ini\u021bial pe hardware de sub 1MHz !!?! Critica principala a acestui model o aduc viru\u0219ii. Nediferen\u021bierea \u00eentre o aplica\u021bie \u0219i un fi\u0219ier de date a f\u0103cut posibil ca aplica\u021bii mali\u021bioase s\u0103 se camufleze sub form\u0103 de date (documente, poze, etc). De asemenea, dac\u0103 \u00eentr-un sistem modern un obiect poate fi izolat doar la ac\u021biuni specifice, \u00een vechime <em>everything is file<\/em> a permis accesul tuturor aplica\u021biilor la tot sistemul de fi\u0219iere (fie ele de bun\u0103 credin\u021b\u0103 sau malware). Chiar dac\u0103 teoretic sub drepturi de acces, o simpl\u0103 opera\u021biune ce pretindea drepturi full-admin putea duce la infectarea sau accesul la date confiden\u021biale a unei aplica\u021bii r\u0103uvoitoare latent\u0103 \u00een sistem.<\/p>\n<p>Sistemele moderne trebuie s\u0103 cunoasc\u0103 natura obiectelor (aplica\u021bii, date chioare, hardware virtualizat, video, formulare), s\u0103 le identifice, s\u0103 le izoleze \u0219i s\u0103 le permit\u0103 doar ac\u021biuni specifice. \u00cen ziua de azi autentificarea se face u\u0219or prin certificate SSL, prin acela\u0219i mecanism de identificare existent \u0219i testat pe internet. Se practic\u0103 \u0219i identificarea sursei de instalare, Apple App Store, Windows Store, GPlay oblig\u00eend dezvoltatorii s\u0103-\u0219i publice aplica\u021biile \u00een cadrul unor servicii publice unice. Mecanism prin care marii produc\u0103tori pretind c\u0103 verific\u0103 aplica\u021biile, fapt imposibil dat fiind num\u0103rul mare de programe \u0219i produc\u0103tori, dar care nu face dec\u00eet s\u0103 le dea un control foarte mare asupra distribu\u021biei (care azi \u00eenseamn\u0103 publicitate pe bani mul\u021bi).<\/p>\n<p>Tot aici se va asigura comunicarea (standardizarea comunic\u0103rii) \u00eentre obiecte. S-au dezvoltat dou\u0103 mari protocoale DCOM \u0219i CORBA (dup\u0103 dou\u0103 mari categorii de OSuri, Win \u0219i *NIX). Practic un obiect \u00ee\u0219i \u00eenregistreaz\u0103 serviciile publice \u00eentr-un registru gestionat de sistem de unde clien\u021bii afl\u0103 de ele \u0219i \u00eencearc\u0103 s\u0103 le consume. Celebrul Copy\/Paste, indispensabil azi, este cel mai bun exemplu de comunicare asigurat de rolul Object Management \u0219i care nu era posibil \u00een era EisF.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Defini\u021bie: Sistemul de operare este o aplica\u021bie software care joac\u0103 rolul de &#8220;Master Control Program&#8221; \u0219i care face leg\u0103tura \u00eentre hardware \u0219i celelalte aplica\u021bii software. Principalele atribu\u021biuni ale unui OS sunt: hardware management &#8211; gestionarea diferitelor device-uri hardware; process management &#8211; executarea diferitelor aplica\u021bii software; object management &#8211; gestionarea diferitelor obiecte software (fi\u0219iere, aplica\u021bii, ma\u0219ini [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,9],"tags":[21,17],"_links":{"self":[{"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=\/wp\/v2\/posts\/299"}],"collection":[{"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=299"}],"version-history":[{"count":12,"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=\/wp\/v2\/posts\/299\/revisions"}],"predecessor-version":[{"id":379,"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=\/wp\/v2\/posts\/299\/revisions\/379"}],"wp:attachment":[{"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.georgebaciu.pro\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}