Sistem de operare

Sistem de operare , abr. OS ( sistemul de operare în limba engleză  , OS ) este un complex de programe interconectate concepute pentru a gestiona resursele computerului și a organiza interacțiunea cu utilizatorul.

În structura logică a unui sistem de calcul tipic, sistemul de operare ocupă o poziție între dispozitive cu microarhitectura lor, limbajul mașinii și, eventual, propriile microprograme (drivere) (încorporate)  pe de o parte și programele de aplicație pe de altă parte.

Pentru dezvoltatorii de software, sistemul de operare vă permite să faceți abstracție de la detaliile implementării și funcționării dispozitivelor, oferind setul minim necesar de funcții (vezi: interfața de programare a aplicațiilor ).

În majoritatea sistemelor de calcul, sistemul de operare este principala, cea mai importantă (și uneori singura) piesă de software de sistem . Începând cu anii 1990, cele mai comune sisteme de operare au fost Windows , Unix și sisteme similare UNIX .

Istorie

Precursorul sistemelor de operare ar trebui să fie considerate programe utilitare (încărcătoare și monitoare), precum și biblioteci de subrutine utilizate frecvent, care au început să fie dezvoltate odată cu apariția calculatoarelor mainframe de prima generație (sfârșitul anilor 1940 ). Programele utilitare au minimizat manipulările fizice ale operatorului cu echipamentul, iar bibliotecile au făcut posibilă evitarea programării repetate a acelorași acțiuni (efectuarea de operațiuni I/O , calcularea funcțiilor matematice etc.).

În anii 1950 și 1960 au fost formate și implementate principalele idei care au determinat funcționalitatea sistemului de operare: modul batch , partajarea timpului și multitasking, separarea puterilor, timp real, structuri de fișiere și sisteme de fișiere .

Modul lot

Necesitatea utilizării optime a resurselor de calcul costisitoare a dus la apariția conceptului de „mod lot” de execuție a programului. Modul batch presupune existența unei cozi de programe pentru execuție, iar sistemul poate asigura încărcarea unui program din suporturile de date externe în RAM fără a aștepta finalizarea execuției programului anterior, ceea ce evită timpul de inactivitate a procesorului.

Timpul partajat și multitasking

Chiar și modul batch în versiunea sa avansată necesită împărțirea timpului procesorului între execuția mai multor programe.

Nevoia de partajare a timpului (multitasking, multiprogramare) a devenit și mai puternică odată cu răspândirea teletipurilor (și mai târziu, a terminalelor cu afișaje cu raze catodice) ca dispozitive de intrare-ieșire ( anii 1960 ). Deoarece viteza de introducere a datelor de la tastatură (și chiar de citire pe ecran) de către un operator este mult mai mică decât viteza de procesare a acestor date de către un computer, utilizarea computerului în modul „exclusiv” (cu un singur operator) ar putea duce la oprirea resurse de calcul scumpe.

Time-sharing a permis crearea unor sisteme „multi-user”, în care o unitate (de obicei) centrală de procesare și un bloc de memorie RAM erau conectate la numeroase terminale. În același timp, unele sarcini (cum ar fi introducerea sau editarea datelor de către un operator) ar putea fi efectuate în modul de dialog, în timp ce alte sarcini (cum ar fi calculele masive) ar putea fi efectuate în modul lot.

Separarea puterilor

Răspândirea sistemelor multi-utilizator a necesitat soluționarea problemei separării puterilor, ceea ce face posibilă evitarea posibilității de a schimba programul executabil sau datele unui program din memoria computerului cu un alt program (intenționat sau din greșeală) , precum și schimbarea sistemului în sine de către programul de aplicație .

Implementarea separării puterilor în sistemele de operare a fost susținută de dezvoltatorii de procesoare care au propus arhitecturi cu două moduri de operare a procesorului - „real” (în care întreg spațiul de adrese al computerului este disponibil programului executabil) și „protejat” (în care disponibilitatea spațiului de adrese este limitată la intervalul alocat atunci când programul începe pentru execuție).

Scară în timp real

Utilizarea calculatoarelor universale pentru controlul proceselor de producție a necesitat implementarea unei „scări în timp real” („timp real”) – sincronizarea execuției programului cu procesele fizice externe.

Includerea funcției de scalare în timp real a permis crearea de soluții care servesc simultan procesele de producție și rezolvă alte sarcini (în modul batch și/sau în modul de partajare a timpului).

Sisteme și structuri de fișiere

Înlocuirea treptată a suporturilor de acces secvenţial ( bandă perforată , carduri perforate şi benzi magnetice ) cu unităţi cu acces aleatoriu ( discuri magnetice ).

Un sistem de fișiere este o modalitate de stocare a datelor pe dispozitive de stocare externe.

Funcții

Functii principale:

Funcții suplimentare:

Concept

Există două grupuri de definiții ale sistemului de operare: „un set de programe care controlează hardware-ul” și „un set de programe care controlează alte programe”. Ambele au semnificația lor tehnică exactă, care este legată de întrebarea în ce cazuri este necesar un sistem de operare.

Există aplicații de calcul pentru care sistemele de operare sunt redundante. De exemplu, microcalculatoarele încorporate, conținute în multe aparate electrocasnice, mașini (uneori câte o duzină în fiecare), cele mai simple telefoane mobile, execută în mod constant un singur program care pornește când este pornit. Multe console de jocuri simple - de asemenea microcalculatoare specializate - se pot descurca fără un sistem de operare, rulând un program stocat pe un „cartuș” sau CD introdus atunci când sunt pornite .

Sisteme de operare necesare:

Astfel, sistemele de operare universale moderne pot fi caracterizate în primul rând ca:

Multitasking-ul și distribuirea puterilor necesită o anumită ierarhie a privilegiilor componentelor în sistemul de operare însuși. Sistemul de operare este format din trei grupuri de componente:

Majoritatea programelor, atât de sistem (incluse în sistemul de operare), cât și de aplicații, sunt executate într-un mod neprivilegiat („utilizator”) al procesorului și au acces la hardware (și, dacă este necesar, la alte resurse ale nucleului, precum și resursele altor programe) numai prin apeluri de sistem . Nucleul rulează în modul privilegiat: în acest sens se spune că sistemul (mai precis, nucleul său) controlează hardware-ul.

În determinarea compoziției sistemului de operare, criteriul integrității operaționale (închidere) este important: sistemul trebuie să permită utilizarea completă (inclusiv modificarea) componentelor sale. Prin urmare, compoziția completă a sistemului de operare include un set de instrumente (de la editori de text la compilatoare, depanare și linkere).

Core

Nucleul este partea centrală a sistemului de operare care gestionează execuția proceselor , resursele sistemului de calcul și oferă proceselor acces coordonat la aceste resurse. Principalele resurse sunt timpul procesorului , memoria și dispozitivele I/O . Accesul la sistemul de fișiere și crearea de rețele pot fi implementate și la nivel de kernel.

Ca element fundamental al sistemului de operare, nucleul reprezintă cel mai scăzut nivel de abstractizare pentru ca aplicațiile să acceseze resursele sistemului de calcul necesare funcționării lor. De regulă, nucleul oferă un astfel de acces la procesele executabile ale aplicațiilor corespunzătoare prin utilizarea mecanismelor de comunicare între procese și a apelurilor de aplicație către apelurile de sistem OS.

Sarcina descrisă poate diferi în funcție de tipul de arhitectură a nucleului și de modul în care este implementată.

Obiectele nucleului sistemului de operare:

Sisteme de operare existente

UNIX, standardizarea sistemelor de operare și POSIX

Până la sfârșitul anilor 1960, industria și comunitatea științifică și educațională au creat o serie de sisteme de operare care implementează toate sau o parte din funcțiile prezentate mai sus. Acestea includ Atlas ( Universitatea din Manchester ), CTTSși ITS( Massachusetts Institute of Technology , MIT), THE ( Eindhoven University of Technology ), RS4000 ( Universitatea Aarhus ) și altele (mai mult de o sută de sisteme de operare diferite erau în funcțiune).

Cele mai avansate sisteme de operare, cum ar fi OS/360 ( IBM ), SCOPE ( CDC ) și Multics (MIT și Bell Labs ), care au fost finalizate în anii 1970 , au oferit capacitatea de a rula pe computere multiprocesor.

Caracterul eclectic al dezvoltării sistemelor de operare a condus la o creștere a fenomenelor de criză, legate în primul rând de complexitatea și dimensiunea excesivă a sistemelor create. Sistemele erau slab scalabile (cele mai simple nu puteau folosi toate capacitățile sistemelor de calcul mari; cele mai dezvoltate nu erau executate optim pe cele mici sau nu puteau fi executate deloc pe ele) și complet incompatibile între ele, dezvoltarea și îmbunătățirea lor. a fost întârziat.

Conceput și implementat în 1969 de Ken Thompson cu ajutorul mai multor colegi (inclusiv Dennis Ritchie și Brian Kernighan ), sistemul de operare UNIX (inițial UNICS, care juca pe numele Multics) a absorbit multe caracteristici ale sistemelor anterioare, dar avea o serie de caracteristici care l-au diferențiat de majoritatea predecesorilor:

UNIX, datorită confortului său în primul rând ca mediu de instrumente (mediu de dezvoltare), a câștigat popularitate mai întâi în universități, iar apoi în industrie, care a primit un prototip al unui singur sistem de operare care putea fi utilizat pe o varietate de sisteme de calcul și, în plus, , ar putea fi rapid și portat la orice arhitectură hardware nou dezvoltată cu un efort minim.

La sfârșitul anilor 1970, personalul de la Universitatea din California din Berkeley a făcut o serie de îmbunătățiri la codul sursă UNIX, inclusiv gestionarea protocoalelor TCP/IP . Dezvoltarea lor a devenit cunoscută ca BSD (Berkeley Software Distribution).

Richard Stallman , fondatorul Proiectului GNU , și-a stabilit, de asemenea, sarcina de a dezvolta o implementare independentă (din dreptul de autor de la Bell Labs) a aceleiași arhitecturi .

Datorită competitivității implementărilor, arhitectura UNIX a devenit mai întâi un standard industrial de facto, iar apoi a dobândit statutul de standard legal - ISO / IEC 9945 [1] (POSIX).

Numai sistemele care sunt conforme cu specificația UNIX unică sunt eligibile pentru a utiliza numele UNIX. Aceste sisteme includ AIX , HP-UX , IRIX , Mac OS X , SCO OpenServer , Solaris , Tru64 și z/OS .

Sistemele de operare care urmează sau se bazează pe standardul POSIX sunt denumite „compatibile cu POSIX” (termenul „ de tip UNIX ” sau „familie UNIX” este mai comun, dar intră în conflict cu statutul mărcii comerciale „UNIX”, deținută de Consorțiul Open Group și rezervat pentru desemnări numai pentru sistemele de operare care respectă strict standardul). Conformitatea cu standardul este certificată contra cost, ceea ce face ca unele sisteme să nu treacă prin proces, dar sunt considerate compatibile POSIX per se.

Sistemele de operare asemănătoare UNIX includ sisteme de operare bazate pe cea mai recentă versiune a UNIX lansată de Bell Labs ( System V ), pe dezvoltările Universității din Berkeley ( FreeBSD , OpenBSD , NetBSD ), bazate pe Solaris ( OpenSolaris , BeleniX , Nexenta OS ). ), precum și Linux .dezvoltat din punct de vedere al utilităților și bibliotecilor de către proiectul GNU și din punct de vedere al nucleului de către o comunitate condusă de Linus Torvalds .

Standardizarea sistemelor de operare are ca scop simplificarea înlocuirii sistemului propriu-zis sau a echipamentelor cu dezvoltarea unui sistem de calcul sau a unei rețele și simplificarea transferului de aplicații software (aderarea strictă la standard presupune compatibilitatea deplină a programelor la nivel de cod sursă; datorită la profilarea standardului și dezvoltarea acestuia, sunt încă necesare unele modificări, dar portarea unui program între sistemele compatibile POSIX este mult mai ieftină decât între altele alternative), precum și continuitatea experienței utilizatorului.

Cel mai notabil efect al existenței acestui standard a fost lansarea efectivă a Internetului în anii 1990 .

Arhitecturi post-UNIX

Echipa care a creat UNIX a dezvoltat conceptul de unificare a obiectelor sistemului de operare prin includerea proceselor și a oricăror alte servicii de sistem, rețea și aplicații în conceptul original UNIX de „un dispozitiv este, de asemenea, un fișier”, creând un nou concept: „orice este un fișier ”. Acest concept a devenit unul dintre principiile de bază ale sistemului Plan 9 (titlul a fost preluat din thrillerul științifico-fantastic Plan 9 from Outer Space de Edward Wood Jr. ), care a fost conceput pentru a depăși defectele fundamentale de proiectare UNIX și a înlocuit UNIX System V. „cal de bătaie” pe computerele din rețeaua Bell Labs. în 1992 .

Pe lângă implementarea tuturor obiectelor de sistem sub formă de fișiere și plasarea lor într-un spațiu unic și personal (spațiu de nume) pentru fiecare terminal de rețea de calculatoare, au fost revizuite și alte soluții arhitecturale UNIX. De exemplu, în Planul 9 nu există conceptul de „superutilizator” și, în consecință, sunt excluse orice încălcare a regimului de securitate asociată cu achiziționarea ilegală a drepturilor de superutilizator în sistem. Pentru a reprezenta (stocare, schimb) informații, Rob Pike și Ken Thompson au dezvoltat codarea universală UTF-8 , care a devenit standardul de facto astăzi. Pentru a accesa fișierele, se folosește un singur protocol universal 9P, care funcționează printr-un protocol de rețea (TCP sau UDP) într-o rețea. Astfel, nu există o rețea pentru software-ul aplicației - accesul la fișierele locale și la distanță este același. 9P este un protocol orientat pe octeți, spre deosebire de alte protocoale similare care sunt orientate pe blocuri. Acesta este și rezultatul conceptului: acces octet cu octet la fișiere unificate și nu acces bloc cu bloc la o varietate de dispozitive care se schimbă foarte mult odată cu dezvoltarea tehnologiei. Pentru a controla accesul la obiecte, nu este necesară nicio altă soluție, cu excepția controlului accesului la fișiere care există deja în sistemul de operare. Noul concept de sistem de stocare l-a eliberat pe administratorul de sistem de munca epuizantă de întreținere a arhivelor și a anticipat sistemele moderne de versiune a fișierelor.

Sistemele de operare bazate pe sau inspirate de UNIX, cum ar fi întreaga familie BSD și sistemele Linux, adoptă treptat noi idei de la Bell Labs. Poate că aceste idei noi au un viitor mare și o recunoaștere a dezvoltatorilor IT.

Noile concepte au fost folosite de Rob Pike în Inferno .

Pe baza Planului 9 în Spania , sunt dezvoltate sistemele Off ++ și Plan B , care sunt de natură experimentală.

Eforturile de a crea o arhitectură post-UNIX pot include și dezvoltarea limbajului de programare Oberon și a mediului de operare la ETH Zurich, sub conducerea profesorului Niklaus Wirth .

Vezi și

Note

  1. Cea mai recentă versiune a ISO/IEC 9945 a fost adoptată de Organizația Internațională pentru Standardizare (ISO) în 2003 .

Literatură

Link -uri