Cu toţi avem instalat pe computerul personal ori, mai nou, pe telefonul mobil, un sistem de operare. Dar ce este acesta şi la ce foloseşte? Şi - mai ales - cum funcţionează un sistem de operare şi care sunt componentele sale fundamentale?

 

CE ESTE UN SISTEM DE OPERARE?

Un sistem de operare este un software aparte. De ce aparte? Pentru că este fundamental diferit de alte aplicaţii software, fiind indispensabil unui computer pentru ca acesta să devină utilizabil. Un calculator fără sistem de operare este asemenea unui aparat foto fără obiectiv, fără el nu poate să “capteze” informaţii. Sistemul de operare este un liant între calculator/hardware şi software-ul care rulează pe el.

Sistemele de operare au fost create iniţial pentru a administra una dintre cele mai complexe operaţii de input/output: comunicarea cu diverse dispozitive hardware. De aici şi numele primelor sisteme de operare, care adesea conţineau acronimul DOS (disk operating system).


MICROSOFT DOS

Numele de Microsoft DOS provine de la Disk Operating System. Iniţial, DOS a fost gândit ca un  software cu ajutorul căruia se puteau crea, copia, şterge şi organiza fişiere pe disc. Toate aceste operaţii erau realizate prin tastarea unor comenzi pe un ecran negru. DOS permitea si rularea altor aplicaţii software prin tastarea numelui programului. În prezent, Windows face acelaşi lucru printr-un simplu click.

DOS

Captură de ecran a command-prompt-ului sistemului de operare DOS


Un sistem de operare creează o platformă pe care rulează toate software-urile pe care le folosim. Fără un sistem de operare un programator ar trebui să reinventeze pentru fiecare aplicaţie creată modalitatea prin care este afişat textul şi orice element grafic, cum trimite date imprimantei, cum citeşte sau scrie fişiere pe disc sau cum “împerechează” software-ul cu hardware-ul.

Un sistem de operare nu depinde doar de alte programe, ci şi de “simbioza” fină cu BIOS-ul şi driverele software. BIOS-ul (Basic input/output system) funcţionează ca o interfaţă între hardware, procesor şi sistemul de operare. Driverele dispozitivelor hardware funcţionează ca un BIOS specializat. Aceste drivere “traduc” instrucţiunile sistemului de operare şi ale BIOS-ului în instrucţiuni specifice unui dispozitiv hardware (imprimantă, scanner, DVD-ROM etc.).

În procesul de boot este încărcat sistemul de operare de pe disc în RAM (Random Acces Memory). Sistemul de operare odată încărcat stabileşte reguli după care calculatorul va încărca alte programe şi va comunica cu hardware-ul.

Aplicaţiile depind de sistemul de operare, altfel nu pot fi executate, dar un calculator al cărui unic software este sistemul de operare poate fi utilizat fără a depinde de alte aplicaţii. Odată cu trecerea timpului există o tendinţă din ce în ce mai ridicată ca sistemele de operare să integreze funcţionalităţi care de regulă erau realizate numai de aplicaţii separate, cum este cazul browserelor web.

 

Procesul de boot la Windows Vista

Windows Vista în procesul de boot


COMPONENTELE UNUI SISTEM DE OPERARE
1. Interfaţa cu utilizatorul

Două dintre cele mai cunoscute interfeţe cu utilizatorul sunt linia de comandă şi interfaţa grafică cu utilizatorul (Graphical User Interface – GUI ).

În unele sisteme de operare, cum sunt Microsoft Windows şi sistemele de operare MAC OS, interfaţa grafică este integrată în nucleu. Multe sisteme de operare permit utilizatorului să instaleze sau să îşi creeze propria interfaţă.


2. Nucleul (kernel)

Nucleul este componenta principală a celor mai multe sisteme de operare şi funcţionează ca o punte între aplicaţii şi procesarea efectivă a datelor la nivel hardware. Scopul principal al nucleului este de a administra resursele calculatorului şi de a permite altor programe să ruleze şi să folosească aceste resurse. Prin resurse înţelegem:

»» procesor (CPU – Central Processing Unit). Nucleul decide care dintre programele care rulează la un moment dat ar trebui alocată procesorului.
»» memoria calculatorului. Memoria este utilizată pentru a stoca atât instrucţiuni de programe, cât şi date. Adesea multe programe solicită mai multă memorie decât e disponibilă. Nucleul trebuie să decidă ce memorie poate utiliza fiecare proces şi ce este de facut atunci când nu e suficientă memorie disponibilă.
»» orice dispozitiv de intrare/ieşire (tastatură, mouse, imprimante, display-uri). Nucleul alocă cererile aplicaţiilor de a executa instrucţiuni de intrare/ieşire unui dispozitiv corespunzător şi furnizează metodele convenabile pentru utilizarea dispozitivului.

»» Execuţia programelor (procesele)

Un proces este instanţa executată a unui program, conţine codul şi activitatea sa curentă. Un program este o colecţie pasivă de instrucţiuni, iar procesul este execuţia efectivă a acestora. Mai multe procese pot fi asociate aceluiaşi program.

Multitasking-ul reprezintă o metodă care permite mai multor procese să folosească în comun, în acelaşi timp procesorul şi alte resurse ale sistemului. Fiecare procesor execută o singură sarcină la un moment dat. Multitaskingul permite fiecărui procesor să interschimbe task-urile care sunt executate fără a aştepta ca fiecare task să fi fost finalizat. În funcţie de implementarea sistemului de operare, interschimbările ar putea fi realizate atunci când task-urile execută operaţii de intrare/ieşire sau atunci când apar întreruperi hardware.


»»
Întreruperile

Întreruperile
sunt semnale prin care dispozitivele externe necesită atenţia procesorului.
Când este primit un semnal de întrerupere, hardware-ul suspendă automat orice execuţie a unui program, îi salvează starea de moment şi execută codul asociat anterior cu întreruperea, ceea ce este similar cu plasarea unui semn de carte ca efect al primirii unui apel telefonic. În sistemele de operare moderne întreruperile sunt administrate de nucleul sistemului. Întreruperile pot apărea fie de la componentele hardware, fie de la programele aflate în execuţie. Atunci când un dispozitiv hardware semnalează o întrerupere, nucleul sistemului de operare decide cum se va ocupa de eveniment. De asemenea, un program poate semnala o întrerupere sistemului de operare. Dacă un program vrea să acceseze o componentă hardware, poate atenţiona nucleul sistemului de operare care va procesa cererea. Dacă un program necesită resurse adiţionale de memorie, va semnala o întrerupere pentru a atrage atenţia nucleului.


»» Modul protejat şi modul supervisor

Procesoarele moderne suportă moduri multiple de a opera. Procesoarele cu această capabilitate folosesc cel puţin două moduri: modul protejat şi modul supervisor.

Modul supervisor este folosit de nucleul sistemelor de operare pentru taskurile de nivel scăzut, care necesită acces nerestricţionat la hardware şi comunicarea cu dispozitive de tipul cardurilor grafice.

Modul protejat permite software-ului să utilizeze funcţionalităţi precum memoria virtuală, paginarea şi multitasking pentru a creşte controlul sistemului de operare asupra aplicaţiilor. Aplicaţiile operează în modul protejat şi pot utiliza resursele hardware doar prin intermediul nucleului care controlează totul în modul supervisor.

În modul protejat programele pot avea acces la un set limitat de instrucţiuni ale procesorului. Un program poate ieşi din modul protejat numai prin semnalarea unei întreruperi, provocând preluarea controlului de către nucleu. În acest fel sistemul de operare poate menţine controlul exclusiv asupra hardware-ului sau memoriei.

Termenul “resursă în mod protejat” se referă de obicei la unul sau mai multi regiştri ai procesorului care conţin informaţii pe care programului aflat în execuţie nu îi este permis să le modifice. Tentativa de a modifica aceste resurse provoacă trecerea în modul supervisor care permite sistemului de operare să trateze evenimentul prin terminarea programului.

»» Managementul memoriei

Nucleul unui sistem de operare este responsabil de toată memoria folosită în mod curent de programe, asigurându-se astfel că memoria folosită de un program nu interferează cu memoria deja folosită de un alt program. Protecţia memoriei permite nucleului să limiteze accesul la memoria calculatorului. Există mai multe metode de protecţie a memoriei, printre care se numără segmentarea şi paginarea.

În ambele moduri, anumiţi regiştri aflaţi în modul protejat specifică procesorului ce adresă de memorie îi este permis să acceseze unui program aflat în execuţie. Încercarea de a accesa altă adresă de memorie va genera o întrerupere care va determina reintrarea în modul supervisor a procesorului. Încercarea de a accesa o altă adresă de memorie este numită violare a segmentării, iar ca urmare nucleul va finaliza programul şi va genera o eroare.


»»
Memoria virtuală

Memoria virtuală a fost dezvoltată pentru nucleul multitasking. Acest tip de memorie virtualizează diferite dispozitive hardware (module RAM). Sistemele care folosesc memorie virtuală folosesc memoria hardware mai eficient, facilitează programarea aplicaţiilor prin ascunderea fragmentării, delegarea către nucleu a sarcinii de a administra memoria şi clarificarea nevoii de a reloca secvenţe de cod sau de a accesa memorie cu adresare relativă.

Folosirea adresării memoriei virtuale (cum sunt paginarea şi segmentarea) se traduce prin posibilitatea nucleului de a alege ce memorie poate folosi un program la un moment dat, permiţând sistemului de operare să folosească aceeaşi locaţie de memorie pentru mai multe taskuri. Dacă un program încearcă să acceseze memorie care nu se află în aria sa de accesibilitate, dar cu toate acestea i-a fost alocată, nucleului îi va fi semnalată o întrerupere asemănătoare cazului în care programul şi-ar depăşi limita de memorie alocată.


»» Accesul dispozitivelor şi fişierelor de sistem

Accesul la datele stocate pe disc reprezintă o funcţionalitate esenţială a tuturor sistemelor de operare. Calculatoarele stochează date pe disc folosind fişiere care sunt structurate de aşa manieră încât să permită acces rapid, acurateţe şi să folosească spaţiul cât mai eficient. Primele sisteme de operare suportau un singur tip de disc şi un singur tip de sistem de fişiere.

O unitate de stocare de tipul unui dispozitiv hardware este accesată prin intermediul unui driver. Driverul înţelege limbajul specific al dispozitivului şi este capabil să îl traducă în limbaj standard folosit de sistemul de operare pentru a accesa toate dispozitivele hardware. Un driver al sistemului de fişiere este folosit pentru a traduce comenzile folosite să acceseze fiecare fişier în parte într-un format standard de comenzi pe care sistemul de operare le poate utiliza pentru a comunica cu toate sistemele de fişiere. Programele pot astfel relaţiona cu aceste sisteme de fişiere pe baza numelui si a directoarelor conţinute într-o structură ierarhică. Pot crea, şterge, deschide şi închide fişiere şi în acelaşi timp pot aduna informaţii despre ele, inclusiv permisiuni de acces, dimensiune, spaţiu liber, creare şi modificare a datelor.


»» Driverele

Un driver este un software specific dezvoltat pentru a permite interacţiunea cu dispozitivele hardware. Practic, driverele constituie o interfaţă care furnizează comenzi sau primesc date de la dispozitiv, iar de cealaltă parte reprezintă interfaţa dintre sistemul de operare şi aplicaţiile software.

Scopul cheie al proiectării driverelor este abstractizarea. Fiecare model de dispozitiv hardware este diferit de celelalte, fie ele din aceeaşi clasă. Calculatoarele şi sistemele de operare nu au capacitatea de a controla fiecare dispozitiv în parte. Pentru a rezolva acest “neajuns”, sistemul de operare “indică” modul în care trebuie controlat fiecare dispozitiv.  Scopul driverelor este atunci acela de a traduce aceste apeluri de funcţii în apeluri specifice dispozitivelor.


3. Protocoale de reţea

În prezent, cele mai multe sisteme de operare suportă o mare varietate de protocoale de reţea, de dispozitive hardware şi aplicaţii pentru a folosi aceste protocoale. Astfel, calculatoare cu sisteme de operare diferite pot comunica în reţea pentru a partaja resurse precum fişiere, imprimante, scannere, folosind conexiuni wireless sau prin cablu. Reţelele pot permite sistemelor de operare să acceseze resursele unui calculator aflat la distanţă pentru a oferi aceleaşi funcţii ca şi atunci când aceste resurse ar fi conectate la calculatorul local.

Reţelele de tip client/server presupun existenţa unui program pe un calculator care se conectează printr-o reţea la un alt calculator, numit server. Serverele oferă diferite servicii celorlalte calculatoare din reţea şi utilizatorilor. Aceste servicii sunt furnizate prin intermediul porturilor sau punctelor de acces din spatele adreselor de reţea. Fiecare port este asociat unui program aflat în execuţie care este responsabil să administreze cererile survenite prin acel port. Un program-utilizator poate la rândul lui să acceseze resursele hardware locale ale acelui calculator prin transmiterea de cereri nucleului sistemului de operare.


4. Securitatea

Un sistem de operare modern furnizează acces la mai multe resurse care sunt disponibile aplicaţiilor software instalate pe sistemul respectiv şi dispozitivelor externe, cum sunt reţelele, prin intermediul nucleului.

Sistemul de operare trebuie să distingă între cererile cărora le este permis să fie procesate şi cele cărora nu le este permis să fie procesate. Sistemele, de obicei, au o modalitate de identificare prin intermediul numelui de utilizator. Pentru stabilirea identităţii poate exista un proces de autentificare bazat pe nume de utilizator şi parolă. Alte metode de autentificare, cum sunt cardurile magnetice sau datele biometrice, pot fi de asemenea folosite.

Un sistem cu un nivel ridicat de securitate va oferi şi facilităţi de auditare care permit urmărirea cererilor de acces la resurse (cine a accesat un anumit fişier). Securitatea de la nivelul unui program aflat în execuţie este posibilă doar în cazul în care toate solicitările “dăunătoare” sunt  conduse prin intermediul întreruperilor la nucleul sistemului de operare. Dacă programele pot accesa direct resursele hardware, acestea nu pot fi securizate.

Solicitările venite din exterior sunt, cel mai adesea, transmise prin drivere nucleului sistemului de operare, care le va transmite la rândul său aplicaţiilor.

La nivelul sistemului de operare sunt o mulţime de software-uri de tip firewall disponibile. Cele mai avansate sisteme de operare au inclus un software de tip firewall. Un astfel de software poate fi configurat să permită sau să interzică traficul în reţea către/dinspre o aplicaţie care rulează în sistemul de operare. Ca atare, pot fi utilizate aplicaţii nesecurizate, cum sunt Telnet sau FTP, fără a fi ameninţat de breşele de securitate pentru că firewall-ul va interzice orice încercare de conectare la serviciu prin portul respectiv.

(Citeşte şi Cum funcţionează un firewall?)

Securitatea internă este de asemenea relevantă pentru sistemele multi-utilizator. Aceasta permite fiecărui utilizator să aibă fişierele private astfel încât ceilalţi utilizatori să nu le poată accesa.

Bibliografie
How Computers Work, Ron White
http://en.wikipedia.org/wiki/Operating_system

 

Write comments...
symbols left.
You are a guest ( Sign Up ? )
or post as a guest
Loading comment... The comment will be refreshed after 00:00.