Sunteți pe pagina 1din 29

2011

Sisteme de Operare
Definitie, istorie, clasificare, componente

Strinu Narcis Adelin


Colegiul National Ecaterina Teodoroiu
2011

Cuprins
1. Ce este un sistem de operare
2. Tipuri de sisteme de operare
a. Real-Time (timp real)
b. Multi-user vs. Single-user
c. Multi-tasking vs. Single-tasking
d. Sisteme distribuite
e. Sisteme incorporate
3. Rezumat
4. Istorie
a. Mainframe-urile
b. Micro-calculatoarele
5. Exemple de sisteme de operare
a. UNIX si sisteme de operare tip UNIX
b. BSD si descendentii sai
c. Linux si GNU (GNU/Linux)
d. Google Chrome OS
e. Mac OS X
f. Microsoft Windows
g. Altele
6. Componente
a. Kernelul
b. Executia de program
c. Interrupt-urile
d. Moduri de procesor
e. Managementul memoriei
f. Memoria virtuala
g. Multi-tasking
h. Accesul la disk si sistemele de fisiere
i. Driverii de dispozitive
j. Retelistica
k. Securitate
l. User Interface (interfata de utilizator)
m. Interfete Grafice de Utilizator(GUI)
7. Diversitatea sistemelor de operare si portabilitatea acestora
8. Bibliografie

2
AK Network 2011

1. Ce este un sistem de operare


Un sistem de operare este un ansamblu de programe si informatii ce ruleaza pe o
infrastructura hardware (computer, dispozitive mobile), se ocupa cu managementul resurselor
hardware si pune la dispozitie servicii comune pentru executia diverselor aplicatii software.
Sistemul de operare este cel mai important tip de software de sistem dintr-un computer sau
dispozitiv mobil. Fara un sistem de operare, un utilizator nu poate rula un program pe
computerul sau decat daca respectivul program este auto-bootabil.
Pentru functii hardware precum intrarea si iesirea datelor si alocatia memorei, sistemul de
operare actioneaza ca un mediator intre aplicatii si infrastructura hardware, desi codul
aplicatiei este de obicei executat direct de catre componenta hardware si va apela frecvent la
sistemul de opeare sau va fi intrerupt de catre acesta.
Sistemele de operare sunt gasite in aproape orice dispozitiv ce contine un procesor: de la
telefoane mobile si console video pana la super-calculatoare si servere web.
Exemple de sisteme de operare cunoscute: BSD, Linux, Mac OS X, Microsoft Windows si
UNIX.

2. Tipuri de sisteme de operare


a. Real Time (timp real)
Un sistem de operare real-time este un sistem de operare multitasking ce urmareste executarea
aplicatiilor in timp real. Sistemele de operare real-time folosesc de obicei algoritmi
specializati de programare astfel incat sa poata sa atinga o natura de comportament
determinant. Principalul obiectiv al sistemelor de operare real-time este raspunsul rapid si
predictibil la evenimente. Acestea au un design determinat de partajare de evenimente sau
partajare de timp, dar de obicei arhitectura acestor sisteme de operare este determinat de
ambele criterii.
Un sistem determinat de evenimente face inter-schimbare intre sarcini, schimbare bazata pe
ordinea prioritatii acestor evenimente sau evenimente externe in timp ce un sistem bazat pe
partajare de timp face inter-schimbarea pe baza unor intreruperi stabilite de procesor.

3
AK Network 2011

b.

Multi user vs. Single user

Un sistem de operare multi-user permite mai multor utilizatori sa acceseze acelasi sistem de
calcul in mod concurent. Sistemele bazate pe time-sharing pot fi clasificate ca si sisteme
multi-user deoarece permit accesul unui numar multiplu de utilizatori la un singur computer
prin partajarea de timp.
Sistemele de operare single user, in opozitie cu sistemele de operare multi-user, sunt folosite
de catre un singur utilizator o data. Avand posibilitatea de a avea conturi multiple intr-un
sistem de operare Windows nu il face un sistem de operare multi-user. Mai curand, doar
administratorul de retea este adevaratul user. Dar pentru un sistem de operare de tip Unix, este
posibil ca doi utilizatori sa se logheze in acelasi timp si aceasta capabilitate a sistemului de
operare il face un sistem de operare multi-user.
c. Multi-tasking vs .Single-tasking
Cand este permisa rularea unui singur program o data, sistemul de operare pe care este rulat
acel program este clasat ca si sistem de operare single-tasking (o singura sarcina), in timp ce
in cazul in care sistemul de operare permite executia si rularea mai multor programe simultan,
este clasificat ca sistem de operare multi-tasking.
Multi-tasking-ul poate sa fie de doua tipuri:
a. Pre-emptiv
Acest tip de multi-tasking imparte timpul procesorului si dedica cate un slot pentru
fiecare program in parte. Sistemele de operare de tip UNIX (Solaris si Linux) suporta
multi-tasking pre-emptiv.
b. Co-operativ
Acest tip de multi-tasking este caracterizat prin bazarea pe fiecare proces in parte sa ii
dea resurse (timp pentru executie) altui proces intr-o maniera definita. MS Windows
anterior Windows 95 utiliza multi-tasking-ul cooperativ.

d. Sisteme Distribuite
Un sistem de operare distribuit se ocupa de un grup de computere independente si le face sa
para un singur computer. Development-ul computerelor in retea ce pot fi inlantuite si sa
4
AK Network 2011

comunice unele cu altele a dat nastere la computing-ul distribuit. Computatia distribuita este
efectuata de mai mult de un computer. Cand calculatoarele se afla intr-un grup de munca in
cooperatie, acestea formeaza un sistem distribuit.
e. Sisteme Incorporate
Sistemele de operare incorporate sunt proiectate sa fie folosite in sisteme de
calcul incorporabile. Acestea sunt realizate pentru a opera pe sisteme de
calcul mici precum PDA-urile(Personal Digital Assistant) cu mai putina
autonomie. Acestea sunt capabile sa opereze cu
un numar limitat de resurse, sunt foarte
compacte si extrem de eficiente din punct de vedere al designului.
Windows CE si Minix 3 sunt niste exemple ale sistemelor de
operare incorporate.

3. Rezumat
Primele sisteme de calcul au fost construite sa indeplineasca o serie de sarcini simple, precum
un calculator. Sistemele de operare nu existau in formele lor moderne si complexe pana in
anii 60.
Unele caracteristici ale sistemelor de operare au fost dezvoltate in anii 50, precum
programele de monitorizare ce puteau sa ruleze diferite aplicatii in succesiune pentru a
accelera procesarea.
Caracteristici hardware au fost adaugate astfel incat utilizarea de librarii runtime, interrupt-uri
si procesarea paralela au devenit posibile.
Cand computerele personale create de companii de genul Apple Inc., Atari, IBM si Amiga au
devenit cunoscute in anii 80, distribuitorii au adaugat caracteristici de sisteme de operare ce
anterior devenisera larg folosite pe main-frame-uri si mini calculatoare. Mai tarziu, multe
caracteristici precum interfata grafica pentru utilizator (GUI) au fost dezvoltate mai ales
pentru sistemele de operare folosite pe calculatoare personale.

5
AK Network 2011

Un sistem de operare este compus din mai multe parti. Una din cele mai importante
componente este kernelul, ce controleaza la nivel de baza procesele pe care utilizatorul nu le
poate vedea de obicei: controleaza cum este scrisa si citita memoria, ordinea in care procesele
sunt executate, cum informatia este primita si trmisa de catre dispozitive precum monitorul,
tastatura, mouse-ul si decide cum sa interpreteze informatia primita de la retele. Interfata
utilizator este o componenta care interactioneaza cu utilizatorul computerului in mod direct,
permitandu-i acestuia sa controleze si sa utilizeze programe. Interfata utilizator poate fi
grafica, cu iconite si desktop, sau textuala, cu o consola de comanda. Interfetele de
programare ale aplicatiilor furnizeaza servicii si librarii de cod ce permit dezvoltatorilor de
aplicaitii sa scrie cod modular refolosind secvente de programare bine definite in librarii sau
chiar in sistemul de operare. Care caracteristici sunt considerate parti ale sistemului de
operare sunt determinate diferit in fiecare sistem de operare in parte. De exemplu, Microsoft
Windows considera interfata sa utilizator sa fie parte a sistemului de operare, pe cand multe
versiuni de Linux nu.

4. Istoric
In anii 40, primele sisteme electronice digitale nu aveau sisteme de operare. Sistemele
electronice din acea vreme erau atat de primitive in comparatie cu cele de acum, incat
instructiunile erau de cele mai multe ori introduse in sistem bit cu bit pe randuri de
intrerupatoare mecanice sau prin cabluri jumper sau plug boards. Acestea erau sisteme cu un
singur scop, de exemplu, stabilirea unor tabele militare balistice sau controlarea imprimarii
cecurilor de salarizare utilizand informatii stocate pe carduri perforate.
Dupa ce computerele programabile de uz general au fost inventate, limbajele masina
(compuse din siruri de 1 si 0 pe hartie perforata) au fost introduse pentru accelerarea
procesului de programare.(Stern, 1981)
La inceputul anilor 50, un calculator putea executa doar un program simultan. Fiecare
utilizator avea un timp limitat de utilizare si trebuia sa ajunga la un timp stabilit dupa program
si informatii stocate pe carduri perforate. Acest program era incarcat in masina de calcul, iar
aceasta era setata sa munceasca pana programul se termina sau esua. Programele puteau fi
depanate in general prin intermediul unui panou frontal folosind intrerupatoare si
indicatoarele luminoase de pe panou.
6
AK Network 2011

Se spune ca Alan Turing a fost un maestru al debugging-ului pe timpuriul Manchester Mark 1


si deja el deriva conceptul unui sistem de operare pornind de la principiul masinii de calcul
universale Turing.
Mai tarziu, masinile de calcul veneau cu librarii de software incluse, care puteau fi inlantuite
in programul unui utilizator sa asiste in operatii precum intrarea si iesirea datelor si generarea
de cod masina din cod simbolic inteligibil uman. Aceasta a fost geneza sistemului de operare
modern. Totusi, masinile de calcul inca indeplineau o singura sarcina simultan. La
universitatea Cambridge din Anglia, coada de sarcini a fost odata intinsa pe o sarma, iar
fiecare cartela de program perforata era atarnata cu ajutorul unor carlige colorate diferit pentru
a indica prioritatea acestora.

a. Mainframe-urile
Prin anii 50, multe caracteristici majore
au fost pionerate in campul sistemelor
de operare, incluzand batch processing,
interrupt-uri

de

buffering-ul,

multitasking,

librarii

runtime,

intrare

si

iesire,

spooling,

link-loading

si

programe pentru sortarea inregistrarilor


in fisiere. Aceste caracteristici au fost
incluse sau nu in aplicatiile software la
alegerea programatorilor, mai curand decat intr-un sistem de operare separat, folosit de catre
toate aplicatiile. In 1959, sistemul de operare SHARE a fost lansat ca o utilitate integrata
pentru IBM 704 si mai tarziu in main-frame-urile 709 si 7090.
In timpul anilor 60, OS/360 al firmei IBM a introdus conceptul de un singur sistem de
operare ce acopera o intreaba linie de productie, fapt ce a fost crucial pentru succesul
masinilor de calcul System/360. Sistemele de operare curente ale main-frame-urilor IBM sunt
descendenti distanti ai acestui sistem de operare si al aplicatiilor scrise pentru OS/360 ce pot fi
inca rulate pe masini de calcul moderne. Pe la mijlocul anilor 70 MVS, un descendent al
OS/360, a oferit prima implementati a folosirii RAM-ului ca si cache transparent pentru date.

7
AK Network 2011

OS/360 a pionerat de asemenea conceptul ca sistemul de operare tine evidenta tuturor


resurselor de sistem ce sunt folosite, incluzand alocatia de spatiu pentru programe si pentru
date in memoria primara si spatiul pentru fisiere in memoria secundara si blocarea fisierelor in
timpul update-ului. Cand procesul este terminat pentru orice motiv, toate aceste resurse vor fi
eliberate si reatribuite sistemului de operare.
Systemul alternativ CP-67 pentru S/360-67 a pornit o intreaga linie de sisteme de operare
IBM concentrata pe conceptul de masini virtuale. Alte sisteme de operare folosite pe seriile de
main-frame-uri IBM S/360 au inclus sisteme dezvoltate de IBM: COS/360 (Compatibility
Operating System), DOS/360(disk operating system), TSS/360(Time Sharing System),
TOS/360(Tape Operating System), BOS/360(Basic Operating System), ACP(Airline Control
Program) si de asemenea cateva systeme non-IBM: MTS(Michigan Terminal System),
MUSIC(Multi-User System for Interactive Computing), ORVYL(Stanford Timesharing
System).
Control Data Corporation a dezvoltat sistemul de operare SCOPE in anii 60 pentru batch
processing. In cooperare cu Universitatea din Minnesota, sistemul de operare KRONOS, si
mai tarziu NOS, au fost dezvoltate in timpul anilor 70, ce suportau timesharing si batch
processing simultan. Ca multe sisteme timesharing comerciale, interfata sa era o extensie a
sistemelor de operare Darthmouth BASIC, unul dintre eforturile de pionerat in timesharing si
limbaje de programare.
La sfarsitul anilor 70, Control Data si Universitatea din Illinois au dezvoltat sistemul de
operare PLATO, ce folosea panouri de display cu plasma si retele de timesharing pe distante
mari. PLATO a fost remarcabil de inovativ pentru vremea sa, fiind capabil de chat real-time
si jocuri grafice multi-user.
Corporatia Burroughs a introdus B5000 in 1961 cu sistemul de operare MCP(Master Control
Program). B5000 a fost o masina de calcul cu stiva (stack machine) proiectata sa suporte
exclusiv limbaje de programare de nivel inalt fara limbaj de programare masina sau
assembler, si intr-adevar MCP a fost primul sistem de operare ce a fost scris intr-un limbaj de
programare de nivel inalt ESPOL, un dialect al ALGOL.
MCP a introdus de asemenea multe alte inovatii surprinzatoare, cum ar fi prima
implementatie comerciala de memorie virtuala. In timpul dezvoltarii AS400, IBM a facut o
propunere catre Burroughs sa licentieze MCP sa ruleze pe infrastructura hardware AS400.
8
AK Network 2011

Aceasta propunere a fost insa respinsa de Burroughs pentru a proteja productia sa existenta de
hardware. MCP este inca in uz si astazi pe linia de masini de calcul Unisys ClearPatch/MCP.
UNIVAC, primul producator de computere comerciale a produs o serie de sisteme de operare
EXEC. Ca toate seriile timpurii de sisteme main-frame, acesta a fost un sistem tip batchprocessing ce se ocupa cu managementul discurilor, cititoarelor de carduri, suporturilor
magnetice de date si imprimantelor. In 1960, UNIVAC a produs sistemul Real-Time
Basic(RTB) pentru a suporta time sharing-ul la scala mare, de asemenea modelat dupa
systemul Dartmouth BC.
General Electric si MIT au dezvoltat General Electrics Comprehensive Operating Supervisor
(GECOS) ce a introdus conceptul de nivelele de privilegii de securitate alertate. Dupa
cumpararea de catre Honeywell a fost redenumit in General Comprehensive Operating
System(GCOS).
Corporatia Digital Equipment a dezvoltat multe sisteme de operare pentru liniile sale variate
de computere, incluzand TOPS-10 si TOPS-20, systeme de time-sharing pentru sistemele de
clasa PDP-10 pe 36 de biti. Inainte de raspandirea larga a utilizarii UNIX, TOPS-10 a fost un
sistem de operare popular in universitati si in timpuria comunitate ARPANET.
Pe la sfarsitul anilor 60 pana la sfarsitul anilor 70, cateva capabilitati hardware au evoluat
astfel incat au permis software portat sau similar sa ruleze pe mai mult decat un sistem.
Sisteme timpurii au utilizat microprogramarea sa implementeze caracteristici pe sistemele lor
in scopul de a permite arhitecturi diferite sa para ca sunt la fel ca altele din alte serii. Defapt,
cele mai multe 360 dupa 360/40 (cu exceptia 360/165 si 360/168) au fost implementari are
microprogramarii. Dar curand alte mijloace de a realiza compatibilitatea aplicatiilor s-au
dovedit a fi mult mai semnificative.
Investitia enorma in software pentru aceste sisteme facuta inca din anii 60 a facut ca mare
parte din fabricantii initiali de sisteme de calcul sa continue dezvoltarea sistemelor de operare
compatibilite impreuna cu infrastructurile hardware aferente.
Cateva sisteme de operare de main-frame-uri notabile sunt:
-

Burroughs MCP B5000, 1961 pana la Unisys Clearpath/MCP, prezent

IBM OS/360 IBM System / 360, 1966 pana la IBM z/OS, prezent

IBM CP-67 IBM System / 360, 1967 pana la IBM z/VM, prezent
9

AK Network 2011

UNIVAC EXEC 8 UNIVAC 1108, 1967 pana la OS 2200 Unisys Clearpath


Dorado, prezent

b. Micro-calculatoare
Primele Microcalculatoare nu aveau capacitatea
sau nevoia de sisteme de operare elaborate
precum cele dezvoltate pentru main-frameuri.Sisteme de operare minimaliste au fost in
schimb realizate, de obicei incarcate din
memoria ROM, cunoscute initial ca si sisteme
de monitorizare.
Un sistem de operare notabil a fost CP/M, ce a fost compatibil cu majoritatea microcalculatoarelor timpurii si a fost imitat foarte aproape de MS-DOS devenind popular ca
sistemul de operare ales de IBM pentru IBM PC (versiunea IBM-ului era numita IBM DOS
sau PC DOS).
In anii 80 Apple Computer Inc. (acum Apple Inc.)
a abandonat seria sa populara Apple II de microcomputere pentru a introduce Apple Macintosh, un
computer cu un GUI (Graphical User Interface)
inovativ, cu sistemul de operare Mac OS.
Introducerea

procesorului

Intel

80386

cu

arhitectura pe 32-bit si capabilitati de paging, a permis calculatoarelor personale abilitatea de


a rula sisteme de operare multi-tasking ca cele de pe microcomputerele timpurii si mainframe-uri. Microsoft a raspuns la acest progres prin angajarea lui Dave Cutler, care a
dezvoltat sistemul de operare VMS pentru Digital Equipment Corporation.
El a condus dezvoltarea sistemului de operare Windows NT, care continua sa serveasca ca
baza pentru linia de sisteme de operare de la Microsoft.
Steve Jobs, co-fondatorul Apple Inc., a inceput NeXT Computer Inc., care a dezvoltat
sistemul de operare tip UNIX NEXTSTEP. NEXTSTEP a fost apoi cumparat de Apple Inc. si
folosit, impreuna cu parti de cod din FreeBSD ca si nucleu pentru Mac OS X.
10
AK Network 2011

Proiectul GNU a fost initiat de activistul si programatorul Richard Stallman cu scopul unui
inlocuitor complet gratuit pentru sistemul de operare proprietar UNIX.
In timp ce proiectul a fost de succes in a copia functionalitatea diferitelor parti din UNIX,
dezvoltarea kernel-ului GNU Hurd s-a dovedit a fi neproductiv. In 1991, studentul finlandez
Linus Torvalds, cu ajutorul voluntarilor si colaboratorilor de pe Internet, a lansat prima
versiune a kernel-ului Linux. A fost foarte curand unit cu restul de componente software GNU
si a format un sistem de operare complet. De atunci, combinatia celor doua componente
majore a fost mentionata pur si simplu ca Linux de catre industria software, o conventie de
denumire pe care Stallman si Fundatia de Software Gratuit inca nu o admite, preferand
numele GNU/Linux. Distributia de software Berkeley, cunoscuta ca BSD, este derivata de
UNIX distribuita de catre Universitatea din California, Berkeley, incepand din 1970.
Distribuit gratuit si portat la multe micro-computere, sistemul de operare a fost folosit
eventual si pe PC-uri, in principal ca FreeBSD, NetBSD sau OpenBSD.

5. Exemple de sisteme de operare


a. UNIX si sisteme de operare tip UNIX
Ken Thompson a scris B, in principal bazat pe BCPL, utilizat apoi de acesta pentru a scrie
Unix, bazat pe experienta sa in proiectul MULTICS. B a fost inlocuit de C si UNIX s-a
dezvoltat intr-o mare si complexa familie de sisteme de operare inter-relationate care au
influentat fiecare sistem de operare modern. Familia de sisteme de operare tip UNIX este un
grup divers de sisteme de operare, cu cateva sub-categorii majore incluzand System V, BSD
si GNU/Linux. Numele UNIX este o marca inregistrata a The Open Group care licentiaza
utilizarea sa in orice sistem de operare care dovedeste sa se fi conformat definitiilor lor.
Unix-like este de obicei folosit pentru a se face referire la un set larg de sisteme de operare
care seamana cu UNIX-ul original.
Sistemele de operare tip Unix ruleaza pe o mare varietate de arhitecturi de masini de calcul.
Acestea sunt folosite intensiv pentru servere in afaceri, cat si pentru statii de lucru in medii
academice si industriale. Variantele gratuite de Unix, precum GNU/Linux si BSD, sunt foarte
cunoscute in aceste domenii.
Unele variante de Unix precum HP-UX de la HP si AIX de la IBM sunt proiectate sa ruleze
doar pe infrastructura hardware a distribuitorului. Altele, precum Solaris, care poate rula pe
mai multe tipuri de hardware, incluzand serverele si PC-urile x86. Mac OS X de la Apple, un
11
AK Network 2011

kernel hibrid bazat pe o varianta de BSD si derivat din NeXTSTEP, Mach si FreeBSD a
inlocuit vechiul Mac OS(non-Unix).
Interoperabilitatea Unix a fost solicitata prin stabilirea standardului POSIX. Standardul
POSIX poate fi aplicat pentru orice sistem de operare, desi a fost initial creat pentru variantele
diverse de Unix.
b. BSD si descendentii sai

Un subgrup al familiei UNIX este familia


Berkeley Software Distribution(BSD), ce include
FreeBSD, NetBSD si OpenBSD. Aceste sisteme de
operare sunt cel mai comun gasite pe servere web,
desi pot functiona de asemenea ca un sistem de
operare pentru calculatorul personal. Internetul ii
este dator mult BSD-ului pentru existenta sa, astfel incat multe din protocoalele de azi folosite
de calculatoare pentru a se inter-conecta, a trimite date sau a primi date prin intermediul unei
retele sunt larg implementate si rafinate in BSD. World Wide Web a fost de asemenea
prima data demonstrat pe niste calculatoare ce rulau un sistem de operare bazat pe BSD numit
NextStep.
BSD isi are radacinile un Unix. In 1974, Universitatea din California, Berkeley a instalat
primul sau sistem Unix. Cu timpul, studentii si angajatii din departamentul de stiinta
computerizata au inceput sa adauge noi programe sa faca lucrurile mai usoare, cum ar fi
editoare de text. Cand Berkeley a primit computere noi VAX in 1978 cu UNIX instalat,
studentii au modificat Unix si mai mult cu scopul de a se folosii de avantajul posibilitatilor
hardware oferite de computer. Defense Advanced Research Projects Agency (DARPA) a
Departamentului de Defensiva SUA si-a aratat interesul si a decis sa aduca fonduri in proiect.
Multe scoli, corporatii si organizatii guvernamentale au observat si au inceput sa foloseasca
versiunea Berkeley a UNIX in loc de cea oficiala, distribuita de AT&T.
Steve Jobs, la iesirea din Apple Inc., in 1985, a format NeXT Inc., o companie care a fabricat
computere de ultima generatie pe care rula o variatie de BSD numita NeXTSTEP. Unul din
aceste calculatoare a fost folosit de Tim Berners-Lee ca si primul webserver pentru a crea
World Wide Web.
12
AK Network 2011

Dezvoltatori precum Keith Bostic au incurajat proiectul de a inlocuii orice cod non-free care
venea de la Bell Labs. Odata ce acest pas a fost realizat, AT&T a dat in judecata. In cele din
urma, dupa doi ani de dispute legale, proiectul BSD a iesit la lumina si a lansat un numar de
derivate gratuite precum FreeBSD si NetBSD. In aceasta asteptare de doi ani, GNU si Linux
au aparut.
c. Linux si GNU
Linux (sau GNU/Linux) este un sistem de operare tip Unix ce poate fi folosit pe o mare
varietate de dispozitive, de la super-computere
pana la ceasuri de mana. Kernel-ul Linux este
oferit sub o licenta open-source, astfel incat
oricine poate sa citeasca sau sa modifice codul
sau. A fost modificat sa ruleze pe o mare varietate
de electronice. Desi estimarile spun ca Linux este
folosit

pe

1.82%

din

toate

calculatoarele

personale, a fost larg adoptat pentru uz in servere si sisteme incorporate (precum telefoanele
mobile). Linux a inlocuit Unix in majoritatea locurilor si este folosit pe 10 din cele mai
puternice calculatoare din lume. Kernel-ul Linux este folosit in niste distributii cunoscute
precum Red Hat, Debian, Ubuntu, Linux Mint si Android, de la Google.
Proiectul GNU este o colaborare in masa a programatorilor care cauta sa creeze un sistem de
operare complet gratuit ce este similar cu UNIX, dar contine cod original. A fost inceput in
1983 de catre Richard Stallman, responsabil pentru multe parti din variantele de Linux. Din
acest motiv, unii afirma ca produsul combinat obtinut din kernel-ul Linux si colectia de
software GNU este mai corect numita GNU/Linux.
Sute de piese de software pentru aproape orice
sistem de operare sunt licentiate sub licenta GNU
General Public. Intre timp, kernel-ul linux a inceput
ca un proiect secundar al lui Linus Torvalds, un
student de la o universitate din Finlanda. In 1991,
Torvalds a inceput sa lucreze la el si a postat informatii despre proiectul sau pe un grup de
stiri pentru studenti si programatori. A primit un val masiv de suport si voluntari care au
sfarsit prin a crea un kernel in toate drepturile. Programatorii din GNU au observat si membrii

13
AK Network 2011

ai ambelor proiecte au muncit ca sa integreze partile terminate de GNU cu kernel-ul Linux cu


scopul de a crea un sistem de operare complet.

d. Google Chrome OS
Chrome este un sistem de operare bazat pe kernelul Linux si proiectat de Google. Chrome
tinteste utilizatorii de calculator care isi petrec majoritatea timpului pe Internet; tehnic, este
doar un web browser fara alte aplicatii si se bazeaza pe aplicatii pe Internet (Web Apps)
folosite in browserul web pentru a indeplini sarcini precum procesarea de fisiere word si
vizualizarea de continut media.

e. Mac OS X
Mac OS X este o linie de sisteme de operare grafice
partial proprietare si vandute de Apple Inc., ultimul
care

este

pre-incarcat

pe

toate

computerele

Macintosh vandute. Mac OS X este succesorul Mac


OS, care a fost sistemul de operare primar al Apple
inca din 1984. Spre deosebire de predecesorul sau,
Mac OSX este un sistem de operare tip UNIX
construit pe tehnologie care a fost dezvoltata la NeXT prin a doua jumatate a anilor 80 si
pana cand Apple a cumparat compania la inceputul anului 1997.
Acest sistem de operare a fost initial lansat in 1999 ca si Mac OS X Server 1.0, cu o versiune
orientata spre desktop (Mac OSX v10.0) aparuta in Martie 2001. De atunci, 6 editii mai
distincte de client si server de Mac OS X au fost lansate, cea mai recenta fiind Mac OS X
v10.6, ce a fost facuta disponibila din data de 28 August 2009.
Editiile de Mac OS X sunt numite dupa pisici mari; versiunea curenta de Mac OS X este
Snow Leopard
Editia de server, Mac OS X Server, este arhitectural identica cu cea de desktop, dar de obicei
ruleaza pe linia de hardware de server de la Apple. Mac OS X Server include management de
grup de lucru si utilitare de administratie software care furnizeaza acces simplificat la servicii
14
AK Network 2011

de retea cheie, incluzand un agent pentru transfer de mail-uri, un server Samba, un server
LDAP, un server nume de domeniu si altele. In viitoarea editie Mac OS X v10.7 Lion, toate
aspectele de server de la Mac OS X Server vor fi integrate in versiunea client.

f. Microsoft Windows
Microsoft Windows este o familie de sisteme de
operare proprietare proiectate de Microsoft
Corporation

si

are

ca

tinta

principala

calculatoarele bazate pe arhitectura Intel, cu un


procent de utilizare global estimat la 88.9% din
totalul de utilizatori.
In prezent, cea mai larg utilizata versiune de
sistem de operare din familia Windows este Windows XP, lansat in data de 25 octombrie
2001. Cea mai noua versiune este Windows 7 pentru statii de lucru si Windows Server 2008
R2 pentru servere.
Microsoft Windows isi are originile in 1985 ca o aplicatie ce rula peste MS-DOS, ce a fost
sistemul de operare standard livrat pe majoritatea calculatoarelor personale cu arhitectura Intel
la acea vreme.
In 1995, Windows 95 a fost lansat, combinand interfata grafica de utilizator (GUI) cu nucleul
sistemului de operare astfel eliminand nevoia de a incarca si porni mai intai MS-DOS.
Incepand cu Windows 2000, sistemul de operare a fost bazat pe kernel-ul Windows NT.
Versiunile curente de Windows ruleaza pe micro-procesoare IA-32 si x86-64, insa Windows 8
va suporta si arhitectura ARM. In trecut, Windows NT suporta cateva arhitecturi non-Intel.
Editiile de server Windows sunt larg folosite. In anii recenti, Microsoft a extins semnificativ
capitalul in efortul de a promova utilizarea sistemului de operare Windows ca si mediu de
operare server. Insa utilizarea Windows pe servere nu este asa larg raspandita precum
utilizarea pe computere desktop, incat Windows este in competitie cu Linux si BSD pentru
cota de piata.
g. Altele
15
AK Network 2011

Sisteme de operare mai vechi ce sunt inca folosite in pietele de nisa includ OS/2 de la IBM si
Microsoft; Mac OS, precursorul non-Unix al Apple Mac OS X; BeOS; XTS-300. Unele,
foarte notabil Haiku, RISC OS, MorphOS, AmigaOS4 si FreeMint continua sa fie dezvoltate
ca si platforme minoritare pentru comunitatile de entuziasti si ca aplicatii pentru specialisti.
OpenVMS, candva DEC, este inca sub dezvoltare activa de catre Helwett-Packard. Alte
sisteme de operare sunt inca folosite aproape exclusiv in academii, pentru educatie in sisteme
de operare, sau pentru cercetare in conceptele unui sistem de operare. Un exemplu tipic de
sistem care indeplineste ambele roluri este MINIX, pe cand de exemplu Singularity este
folosit doar pentru cercetare.

6. Componente
a. Kernelul
Cu ajutorul firmware-ului si driverelor pentru dispozitive,
sistemul de operare ofera cel mai rudimentar nivel de
control asupra tuturor dispozitivelor hardware al unei
masini de calcul. El se ocupa cu managementul accesului
la memorie pentru programe in RAM, determina care
programe sa aiba acces la ce resurse hardware, seteaza sau
reseteaza starea de operare a procesorului pentru operatie
optima tot timpul si organizeaza datele pentru stocare non-volatila de lunga durata cu sisteme
de fisiere pe suporturi de stocare de tipul disk-urilor, casetelor, memoriilor flash, etc.
b. Executia de program
Sistemul de operare actioneaza ca o interfata intre aplicatie si hardware. Utilizatorul
interactioneaza cu hardware-ul din cealalta parte. Sistemul de operare este un set de servicii
ce simplifica dezvoltarea de aplicatii. Executarea unui program presupune crearea unui proces
prin alocarea de memorie si de alte resurse, stabilirea unei prioritati pentru proces (in
sistemele de operare multi-tasking), incarcarea codului de program in memorie si executarea
programului. Programul apoi interactioneaza cu utilizatorul si/sau alte dispozitive si
efectueaza scopul sau destinat.
c. Interrupt-urile

16
AK Network 2011

Interrupt-urile sunt centrale pentru sistemul de operare, astfel incat acestea ofera un mod
eficient pentru sistemul de operare pentru a interactiona cu mediul acestuia si pentru a
raspunde la acesta.
Alternativa este aceea de a avea sistemul de operare pentru a urmari diversele surse de
introducere de date pentru evenimente (polling) ce necesita actionare si poate fi gasita in
sisteme de operare mai vechi cu stive foarte mici (50-60 de octeti) dar sunt neobisnuite in
sistemele de operare cu stive mari. Programarea bazata pe interrupt-uri este direct suportata de
majoritatea procesoarelor moderne. Interrupturile furnizeaza unui computer o metoda de a
salva automat contextele registrilor locali si rularea de cod specific ca raspuns la evenimente.
Chiar si computerele foarte rudimentare suporta interrupt-uri hardware si permit
programatorului sa specifice ce cod va rula cand evenimentul se va intampla.
Cand un interrupt este primit, dispozitivele hardware ale computerului automat suspenda orice
program este in curs de rulare, ii salveaza starea si ruleaza cod anterior asociat cu interruptul;
acest tip de comportament este analog cu asezearea unui semn de carte intr-o carte ca si
raspuns la un apel de telefon. In sistemele de operare moderne, interrupturile sunt manevrate
de kernel-ul sistemului de operare. Interrupturile pot venea fie din componentele hardware ale
sistemului de calcul, fie din aplicatia in executie.
Cand un dispozitiv declanseaza un interrupt, kernel-ul sistemului de operare decide cum sa se
ocupe de acest eveniment, in general ruland cod de procesare. Cantitatea de cod rulata
depinde de prioritatea interruptului (de exemplu, o persoana raspunde la o alarma de detector
de fum prioritar fata de un apel telefonic). Procesarea Interrupturilor hardware este o sarcina
ce este de obicei delegata unei parti de software numita driver de dispozitiv, ce poate fi fie
parte a kernelului sistemului de operare, fie parte a altui program, fie ambele. Driverele de
dispozitive pot actiona apoi ca relee de informatie pentru diverse aplicatii in executie prin
diverse mijloace.
Un program poate de asemnea sa declanseze un interrupt catre sistemul de operare. Daca un
program doreste sa acceseze hardware, de exemplu, el poate sa trimita un interrupt catre
kernel-ul sistemului de operare, fapt ce duce la preluarea controlului de catre kernel. Kernelul
va procesa apoi solicitarea. Daca un program doreste resurse aditionale (sau vrea sa elimine
resurse) precum memorie, va declansa un interrupt pentru a atrage atentia kernel-ului.
d. Moduri de procesor
17
AK Network 2011

Procesoarele moderne suporta moduri multiple de operatie. Procesoarele cu aceasta


capabilitate folosesc cel putin doua moduri: modul protejat si modul supervizat. Modul
supervizat este folosit de kernel-ul sistemului de operare pentru sarcini la nivel de baza ce
necesita acces nerestrictionat la hardwarem precum controlarea modului in care memoria este
scrisa si stearsa si comunicarea cu dispozitive precum placile grafice si de retea. Modul
protejat, in contrast cu cel supervizat,
este folosit pentru aproape toate celelalte
operatii. Aplicatiile opereaza in modul
protejat si pot folosi resursele hardware
doar prin comunicarea cu kernelul ce
controleaza totul in modul supervizat.
Procesoarele pot avea si alte moduri
similare

modului

protejat

precum

modurile virtuale pentru a simula tipuri


de procesoare mai vechi precum procesoarele 16 bit pe unul de 32 bit sau 32 bit pe unul de 64
bit.
Cand un computer porneste, ruleaza automat in mod supervizor. Primele cateva programe ce
ruleaza - BIOS, bootloader si sistem de operare au acces nelimitat la hardware si acest lucru
este obligatoriu deoarece, prin definitie, initializarea unui mediu protejat poate fi realizat doar
din afara unuia. Oricum, cand sistemul de operare paseaza controlul altui program, procesorul
este plasat in mod protejat.
In mod protejat, programele pot avea acces la un set mult mai limitat de instructiuni de
procesor. Un program creat de utilizator poate iesi din modul protejat doar prin declansarea
unui interrupt, controlul fiind repasat kernelului.
In acest fel, sistemul de operare poate mentine control exclusiv asupra lucrurilor precum
accesul la hardware si memorie.
Termenul resursa in mod protejat se refera in general la unul sau mai multi registrii ai
procesorului, care contin informatii pe care programul ce ruleaza nu este autorizat sa le
modifice. Incercarile de a altera aceste resurse duce de obicei intrarea in mod supervizor, unde
sistemul de operare poate sa se ocupe de operatiile ilegale pe care programul incerca sa le
execute (de exemplu, prin inchiderea programului).

18
AK Network 2011

e. Managementul memoriei
Pe langa alte lucruri, un kernel de sistem de operare multiprogramat trebuie sa fie responsabil
de modul in care este folosita memoria de sistem de catre programe. Acest lucru asigura ca un
program nu interfera cu memorie deja folosita de alt program. Cum programele fac timesharing, fiecare program trebuie sa aiba acces independent la memorie.
Managementul cooperativ de memorie, folosit de multe sisteme de operare vechi, lucreaza pe
prezumtia ca toate programele fac uz voluntar la managerul de memorie al kernelului si nu
depasesc memoria alocata. Sistemul acesta de management de memorie aproape nu mai este
gasit niciunde, cum programele contin de multe ori bug-uri ce le pot determina sa depaseasca
memoria alocata.
Daca un program esueaza, poate face ca memoria folosita de unul sau mai multe programe sa
fie afectata sau rescrisa. Programele tip virus pot altera intentionat memoria altui program sau
pot afecta operatia sistemului de operare in sine. Cu management de memorie cooperativ, e de
ajuns un singur program cu un comportament gresit ca sa se ajunga la prabusirea intregului
sistem.
Protectia memoriei permite kernelului sa limiteze accesul proceselor la memoria
computerului. Diverse metode de protectie de memorie exista, incluzand segmentatia
memoriei si paging-ul. Toate metodele necesita un anumit nivel de suport hardware (precum
80286 MMU), ce nu exista chiar in toate calculatoarele.
Atat in segmentatie cat si in paging, anumite registre protejate specifica procesorului ce
adrese de memorie sa permita programelor sa acceseze. Incercarile de a accesa alte adrese vor
declansa un interrupt care va face ca procesorul sa reintre in mod supervizat, punand kernel-ul
in conducere. Aceasta se numeste violare de segmentatie, sau Seg-V pe scurt, si cum este
dificil sa atribuie un rezultat inteligibil pentru fiecare operatie de acest gen, si fiinda este de
obicei un semn de program cu un comportament gresit, kernel-ul opreste de obicei programul
in cauza si va raporta o eroare.
Windows 3.1-Me a avut un anumit nivel de protectie de memorie, dar programele puteau cu
usurinta sa impiedice folosirea sa. O eroare de tip General protection fault era produsa,
indicand o violare de segmentatie; totusi, sistemul de obicei ceda si asa.

19
AK Network 2011

f. Memoria virtuala
Folosirea adresarii memoriei virtuale (precum
paging-ul sau segmentatia) inseamna ca ii se atribuia
functia kernelului de a alege ce memorie fiecare
program sa foloseasca intr-un anumit moment din
timp, permitand sistemului de operare sa foloseasca
aceleasi locatii de memorie pentru mai multe sarcini.
Daca un program incearca sa acceseze memorie care
nu este in limita sa curenta de memorie accesibila,
dar cu toate acestea nu a fost alocata pentru nimic,
kernel-ul va primi acelasi interrupt ca si cum un
program a depasit limita de memorie alocata. In
UNIX, la acest tip de interrupt se face referire ca
page fault.
Cand un kernel detecteaza un page fault, va ajusta de obicei campul de memorie virtuala al
programului ce a declansat page fault-ul, garantand acces la memoria solicitata. Acest lucru ii
da kernelului putere la discretie asupra locului unde este stocata memoria unei aplicatii anume
chiar daca a fost deja alocata sau nu.
In sistemele de operare moderne, memoria ce este accesata mai putin frecvent poate fi salvata
temporar pe memorie non-volatila pentru a face loc pentru alte programe in memoria volatila.
Acest proces se numeste swapping, astfel incat aria de memorie ce poate fi folosita de mai
multe programe si ce contine acea arie poate fi schimbata sau inversata la cerere.
g. Multi-tasking
Multitasking-ul se refera la a rula mai multe programe independente pe acelasi computer;
dand aparenta ca executa sarcinile in acelasi timp.
Cum majoritatea computerelor pot cel mult un lucru sau doua in acelasi timp, acest lucru este
realizat prin time-sharing, ceea ce inseamna ca fiecare program foloseste o parte din timpul
computerului pentru a se executa.
Un kernel de sistem de operare contine o parte de software numita planificator (scheduler)
care determina cat de mult timp fiecare program va folosi pentru a se executa si in ce ordine
20
AK Network 2011

controlul executiei va fi pasat programelor. Controlul este pasat unui proces de catre kernel,
lucrui de permite programului acces la procesor si memorie. Mai tarziu, controlul este returnat
kernelului printr-un anumit mecanism incat altui program ii se va permite sa acceseze
procesorul. Aceasta pasare de control dintre kernel si aplicatii este numita schimbare
contextuala (context switch).
Un model mai vechi ce guverna alocatia timpului programelor a fost numita multitasking
cooperativ. In acest mod, cand controlul este pasat unui program de catre kernel, acesta se
poate executa cat doreste inainte de a returna controlul explicit kernelului. Acest lucru
inseamna ca un program malicios sau defect poate nu doar sa opreasca alte programe din a
folosi procesorul, ci chiar bloca intregul sistem daca intra intr-o structura repetitiva infinta.
Sistemele de operare moderne extind conceptele de pre-emptiune al aplicatiilor la driverii de
dispozitive si codul kernel-ului, astfel incat sistemul de operare are control pre-emptiv asupra
timerelor sale interne.
Filozofia guvernarii multitasking-ului pre-emptiv este aceea de a asigura ca toate programele
au un timp regulat de executie si acces la procesor si memorie. Acest lucru implica ca toate
programele sa aiba timp limitat de executie inainte de a fi intrerupte. Pentru a realiza acest
lucru, kernelele sistemelor de operare moderne se folosesc de interrupturi cronometrate. Un
timer din modul protejat este setat de kernel ce declanseaza o intoarcere in modul supervizat
cand o anumita perioada de timp a trecut.
Pe multe sisteme de operare single-user multi-tasking-ul cooperativ este adecvat, astfel incat
computerele de acasa ruleaza in general un numar mic de aplicatii bine testate. Windows NT a
fost prima versiune de Microsoft Windows care a intarit multitasking-ul pre-emptiv, dar nu a
atins cota de piata decat pana la Windows XP (incat Windows NT era indreptat catre
profesionisti)

h. Accesul la disk si sistemele de fisiere


Accesul la informatiile stocate pe medii de stocare non-volatile este o functie a tuturor
sistemelor de operare. Calculatoarele stocheaza informatii pe medii de stocare folosind fisiere,
care sunt structurare in moduri specifice cu scopul de a permite accesul mai rapid, fiabilitate
crescuta si sa permita o mai buna utilizare a spatiului mediului de stocare.
21
AK Network 2011

Modul in care sunt stocate fisierele pe un mediu de stocare se numeste sistem de fisier (file
system sau FS) si permite ca fisierele sa aiba nume si atribute. De asemenea permite sa fie
stocate intr-o ierarhie de directoare sau foldere aranjate intr-un arbore de directoare.
Sistemele de operare timpurii de obicei suportau un singur tip de mediu de stocare si doar un
tip de FS. FS-urile timpurii erau limitate in capacitate, viteza si in nume de fisiere si structuri
de directoare ce puteau fi folosite. Aceste limitatii de obicei oglindeau limitatii in sistemul de
operare pentru care au fost proiectate, facand foarte greu ca un sistem de operare sa suporte
mai multe tipuri de FS.
In timp ce multe alte sisteme de operare mai simple suporta o serie limitata de optiuni pentru
accesarea sistemelor de stocare, sisteme de operare precum UNIX si GNU/Linux suporta o
tehnologie numita sistem de fisiere virtual (Virtual File System - VFS). Un sistem de operare
precum UNIX suporta o mare varietate de dispozitive de stocare, indiferent de design-ul lor
sau FS-uri, permitand acestora sa fie accesate printr-un API comun. Acest lucru face pentru
programe cunoasterea vreunei informatii despre dispozitivul pe care il acceseaza sa fie inutila.
Un VFS permite sistemului de operare sa furnizeze programelor acces la un numar nelimitat
de dispozitive de stocare cu un numar infinit de sisteme de fisiere instalate pe acestea prin
folosirea unor driveri specifici dispozitivelor si prin driveri pentru FS.
Un dispozitiv de stocare conectat, precum un hard-disk, este accesat printr-un driver de
dispozitiv. Driverul intelege limbajul specific al dispozitivului si este capabil sa traduca acel
limbaj intr-un limbaj standard pentru sistemul de operare pentru a accesa toate dispozitivele
de stocare. Pe UNIX, acesta este limbajul dispozitivelor tip bloc (block devices).
Cand kernel-ul are un driver de dispozitiv la dispozitie, acesta poate accesa continutul unui
dispozitiv de stocare in format brut, ce poate contine unul sau mai multe sisteme de fisiere.
Un driver de sistem de fisier este folosit pentru a traduce comenzile folosite pentru a accesa
fiecare sistem de fisiere intr-un set standard de comenzi prin care sistemul de operare poate
comunica cu toate tipurile de FS.
Programele pot apoi sa faca fata acestor sisteme de fisiere pe baza numelor de fisiere si
directoare/foldere continute in structura ierarhica. Acestea pot crea, sterge, deschide si inchide
fisierele, cat si culege diverse informatii despre acestea, incluzand permisiunile de acces,
marimea, spatiul liber si datele de creare si modificare.

22
AK Network 2011

Diversele diferente dintre sistemele de fisiere face suportarea tuturor sisteme de fisiere
dificila. Caracterele permise in numele de fisier, literele mici sau literele mari, si prezenta
diverselor atribute de fisiere face implementarea unei singure interfete pentru fiecare sistem
de fisier o sarcina descurajatoare. Sistemele de operare tind sa recomande folosirea (si sa
suporte nativ) sisteme de fisiere create special pentru acestea (de exemplu NTFS pentru
Windows si ext3 si ReiserFS pentru GNU/Linux). Totusi, in practica, drivere tertiare sunt de
obicei disponibile pentru a permite accesul la cele mai comune sisteme de fisiere (de exemplu
NTFS este accesibil in Linux prin NTFS-3g si ext2/3 si ReiserFS sunt disponibile in Windows
prin FS-driver sau rfstool)
Suportul pentru sistemele de fisiere este foarte variat printre sistemele de operare moderne,
desi sunt cateva sisteme de fisiere comune pentru care aproape toate sistemele de operare
includ suport si driveri. Sistemele de operare variaza la suport de sistem de fisier si la mediile
de stocare pe care pot fi instalate. In Windows, fiecare sistem de fisier este de obicei limitat in
practica pentru anumite medii de stocare; de exemplu, CD-urile trebuie sa foloseasca ISO
9660 sau UDF, iar incepand cu Windows Vista, NTFS este singurul sistem de fisier pe care
poate fi instalat sistemul de operare. Este posibila instalarea GNU/Linux pe mai multe tipuri
de sisteme de fisiere. Spre deosebire de alte sisteme de operare, GNU/Linux si UNIX permit
orice sistem de fisier, indiferent de mediul de stocare pe care este instalat, fie ca este vorba
despre un HardDisk, un CD/DVD, un stick USB sau chiar continut pe un fisier localizat in alt
FS.
i. Driverii de dispozitive
Un driver de dispozitiv este un tip specific de software de computer dezvoltat pentru a permite
interactiunea cu dispozitive hardware. Practic, constituie o interfata de comunicatie cu
dispozitivul, prin interfata specifica sau subsistemul de comunicatie la care dispozitivul este
conectat, trimitand comenzi sau primind comenzi de la dispozitiv, iar la celalalt capat,
interfetele necesare sistemului de operare si aplicatiile software. Este un program specializat
dependend hardware ce este de asemenea specific sistemului de operare ce permite altui
program, de obicei un sistem de operare sau pachet de software sau program de computer
ruland sub kernel-ul sistemului de operare sa interactioneze in mod transparent cu un
dispozitiv hardware si de oicei furnizeaza procedurile necesare pentru interfata hardware
asincrona dependenta de timp.

23
AK Network 2011

Scopul cheie al dezvoltarii de driveri este abtractia. Fiecare model de hardware (chiar si in
aceiasi clasa de dispozitive) este diferit. Modele noi sunt lansate de catre producatori pentru a
furniza performante mai fiabile si de obicei aceste modele noi sunt controlate diferit.
Calculatoarele si sistemele lor de operare nu pot sti cum sa controleze toate dispozitivele, nici
acum si nici in viitor. Pentru a rezolva aceasta problema, sistemele de operare, in esenta,
dicteaza cum sa fie controlate diversele tipuri de hardware. Functia driver-ului de dispozitiv
este apoi sa traduca functiile apelate de sistemul de operare in functii recunoscute de
dispozitiv. In teorie, un nou dispozitiv, ce este controlat intr-un nou mod, ar trebui sa
functioneze corect daca un driver potrivit este disponibil. Noul driver va asigura ca
dispozitivul sa apara ca functionand corect din punctul de vedere al sistemului de operare.
Sub versiuni de Windows, inainte de Vista, si versiuni de Linux inainte de 2.6, toata executia
driverilor era co-operativa, insemnand ca daca un driver intra intr-o structura infinita acest
lucru ar provoca caderea intregului sistem de operare. Revizii recente ale acestor sisteme de
operare includ pre-emptie de kernel, unde kernel-ul intrerupe driverul pentru a-i da sarcini si
apoi se separa de proces pana primeste un raspuns de la driverul de dispozitiv sau ii da mai
multe sarcini.
j. Retelistica
Acum majoritatea sistemelor de operare suporta o mare varietate de protocoale de retea,
hardware si software pentru folosirea acestora. Acest lucru inseamna ca toate calculatoarele ce
ruleaza sisteme de operare diferite pot participa intr-o retea comuna pentru a partaja resurse
precum procesarea, fisiere, imprimante si scanere folosind fie conexiuni prin cablu sau
conexiuni wireless. In mod esential, retelele permit unui sistem de operare sa acceseze
resursele unui computer indepartat pentru a suporta aceleasi functii ca si cum acele resurse ar
fi fost conectate direct la computerul local. Acestea includ totul, de la simpla comunicatie, la
folosirea sistemelor de fisiere in retea sau chiar partajarea hardware-ului video sau audio unui
alt computer. Unele servicii de retea permit ca resursele unui computer sa fie accesate
transparent, precum SSH ce permite utilizatorilor conectati la retea sa acceseze direct interfata
de linie de comanda a computer-ului.
Retelistica client/server presupune un program pe un computer undeva ce se conecteaza
printr-o retea la alt computer, numit server. Serverele ofera diverse servericii catre alte
calculatoare din retea si utilizatorilor. Aceste servicii sunt de obicei furnizate prin porturi sau
24
AK Network 2011

puncte de acces numerotate dincolo de adresa de retea a serverului. Fiecare numar de port este
de obicei atribuit unui singur program ce ruleaza, program responsabil pentru a manipula
cererile la acel port. Un daemon, fiind un program user, poate la randul sau sa acceseze
resursele hardware locale al computerului in cauza prin pasarea de cereri (request-uri) la
kernel-ul sistemului de operare.
Multe sisteme de operare suporta unul sau mai multe protocoale specifice comerciantului sau
open-source. Pentru exemplu, SNA pe sistemele IBM, DECnet pe sistemele de la Digital
Equipment Corporation si protocoale specifice Microsoft (SMB) pe Windows. Protocoale
specifice unor sarcini pot fi suportate de asemeneal, precum NFS pentru accesul la fisiere.
Protocoale precum Esound, (sau esd) pot fi usor extinse in retea pentru a furniza sunet din
aplicatii locale pe hardware sonor de pe un sistem indepartat.
k. Securitate
Capabilitatea unui computer de a fi securizat depinde de functionarea corecta a unui numar de
tehnologii. Un sistem de operare modern permite accesul la un numar de resurse, ce sunt
disponibile software-ului ce ruleaza pe sistem si dispozitivelor externe precum reteaua prin
kernel.
Sistemul de operare trebuie sa fie capabil sa faca diferenta dintre cererile ce ar trebuie sa fie
acceptate pentru procesare si altele care nu ar trebui sa fie procesate. In timp ce unele sisteme
pot sa faca diferenta ca simplu privilegiat sau non-privilegiat, sistemele au in general o
forma de recunoastere a identitatii requester-ului, precum un nume de utilizator. Pentru a
stabili identitatea, exista un proces de autentificare. De obicei un nume de utilizator trebuie
citat si fiecare nume de utilizator dispune de o parola. Alte metode de autentificare, precum
carduri magnetice sau date biometrice pot fi utilizate in schimb. In unele cazuri, in special
conexiunile din retea, resursele pot fi accesate fara autentificare (cum ar fi citirea unor fisiere
printr-un share in retea). De asemenea acoperit de principiul identitatii requester-ului este
autorizatia; serviciile si resursele particulare accesibile requester-ului odata logat intr-un
sistem sunt legate fie de contul de utilizator al requester-ului sau de grupurile de utilizatori
variat grupate din care requester-ul face parte.
Ca adaugare la modelul de securitate permite / respinge, un sistem cu un mare nivel de
securitate ofera si optiuni de audit. Aceste optiuni permit urmarirea cererilor de acces la
resurse (de tipul cine a citit acest fisier?).
25
AK Network 2011

Securitatea interna, sau securitatea dintr-o aplicatie ce deja ruleaza este posibila doar daca
toate cererile malicioase ar fi manevrate prin interrupt-uri catre kernel-ul sistemului de
operare. Daca programele pot accesa direct hardware si resurse, nu pot fi securizate.
Securitatea externa presupune o cerere din afara computer-ului, precum o logare la o consola
conectata sau un fel de conexiune de retea. Cererile externe sunt de obicei trecute prin driveri
de dispozitiv spre kernel-ul sistemlui de operare, unde pot fi apoi trecute spre aplicatii sau
scoase afara direct.
Securitatea sistemelor de operare a fost pentru o lunga perioada de timp o mare problema din
cauza volumului mare de date importante tinute pe computere, atat de natura comerciala cat si
militara.
Departamentul de Defensiva a Guvernului Statelor Unite ale Americii (DoD) a creat Trusted
Computer System Evaluation Criteria (TCSEC) ce este un standard ce seteaza cerinte
minime pentru a stabili efectivitatea securitatii. Acest lucru a devenit de importanta vitala
pentru creatorii de sisteme de operare, deoarece TCSEC a fost folosit sa evalueze, sa clasifice
si sa selecteze sisteme de computere pentru procesare, stocare si regasire de informatii
importante sau secrete.
Serviciile de retea includ oferte precum file sharing, servicii de imprimare, email, site-uri
web, protocoale de transfer fisiere (FTP), majoritatea putand avea securitatea compromisa.
In prima linie de securitate sunt dispozitivele hardware cunoscute ca si firewall-uri sau
sisteme de detectie / preventie a intrusilor. Majoritatea sistemelor de operare moderne includ
un firewall software, ce este activ in mod prestabilit. Un firewall software poate fi configurat
sa permita sau sa blocheze traficul de retea de la un serviciu sau aplicatie ce ruleaza pe
sistemul de operare. Prin urmare, se pot instala si rula servicii nesigure precum Telnet sau
FTP si nu mai exista riscul de a fi amenintat de o bresa de securitate deoarece firewall-ul va
bloca tot traficul ce incearca sa se conecteze la serviciul respectiv pe acel port.
Ca o strategie alternativa, si singura strategie sandbox disponibila in sistemele de operare ce
nu satisfac cerintele Popek si Goldberg de virtualizatie, este modul de a rula codul
utilizatorului nu ca si cod nativ, ci mai degraba sa simuleze un procesor sau sa furnizeze un
host pentru un sistem bazat pe p-code precum Java.

26
AK Network 2011

Securitatea interna este relevanta in special pentru sistemele multi-user, permite fiecare
utilizator al sistemului sa aiba fisiere private pe care alti utilizatori nu le pot citi sau edita.
Securitatea interna este de asemenea vitala daca auditul este de vreun uz, intrucat un program
poate avea un potential de a evita sistemul de operare, inclusiv auditing-ul de bypass.
l. User Interface (interfata de utilizator)
Fiecare calculator ce este facut sa fie utilizat de un
individ necesita o interfata de utilizator. Interfata de
utilizator nu este defapt o componenta a sistemului
de operare in mod general ruleaza intr-un program
separat numit shell, dar este esential daca
interactiunea umana este suportata.
Interfata de utilizator face cereri la serviciile
sistemului de operare ce vor colecta date din
dispozitive de intrare, precum tastatura, mouse, sau cititor de card de credit, si cere sistemului
de operare sa afiseze alerte, mesaje de stare, si acestea pe dispozitive de iesire precum un
monitor sau o imprimanta. Doua forme comune de interfata sunt linia de comanda, unde
comenzile sunt scrise linie cu linie, si interfata grafica, unde un mediu vizual (cel mai comun
cu ferestre, butoane, icoane si mouse pointer) este prezent.
m. Interfetele grafice de utilizator (GUI)
Majoritatea sistemelor de operare moderne suporta
GUI si de obicei le includ. In unele sisteme de
operare,

precum

implementatia

originala

de

MacOS, GUI-ul este integrat in kernel.


In timp ce in mod teoretic GUI-ul nu este un
serviciu de sistem de operare, incorporarea
suportului pentru unul in kernel-ul sistemului de operare poate permite GUI-ului sa fie mult
mai responsiv prin reducerea numarului de switch-uri contextuale necesare GUI-ului pentru a
realiza operatiile de iesire de date. Alte sisteme sunt modulare, separand subsistemele grafice
de kernel si de sistemul de operare. In 1980, UNIX, VMS si multe altele aveau sisteme de
operare construite in acest fel. GNU/Linux si Mac OSX sunt, de asemenea, construite in acest
mod. Editiile moderne de Microsoft Windows precum Windows Vista implementeaza un
27
AK Network 2011

subsistem grafic ce este in mare parte in spatiul utilizatorului; totusi rutinele de afisare a
graficii ale versiunilor dintre Windows NT 4.0 si Windows Server 2003 exista in mare parte
in spatiul kernel-ului. Windows 9x a avut o mica distinctie intre interfata si kernel.
Multe sisteme de operare de computer permit utilizatorului sa instaleze sau sa creeze orice
interfata de utilizator doresc. X Window System in conjunctie cu GNOME sau KDE este un
pachet comun gasit pe UNIX si pe majoritatea sistemelor tip UNIX(BSD, GNU/Linux,
Solaris). Un numar de inlocuitoare de Windows SHELL au fost lansate pentru Microsoft
Windows, ce ofera alternative la aparenta Windows SHELL dar nu pot separa definitiv
Windows SHELL de Windows.
Numeroase GUI-uri bazate pe Unix au existat de-a lungul timpului, multe derivate X11.
Competitia dintre comerciantii de UNIX (HP, IBM, Sun) a dus la multa fragmentatie, desi un
efort de standardizare in anii 90 la COSE si CDE a esuat din diverse motive si au fost
eventual eclipsate de GNOME si KDE. Inainte de kit-uri de instrumente software gratuite si
de medii de lucru, Motif a fost combinatia de toolkit/desktop prevalenta (si a fost baza pe care
CDE a fost construit).
GUI-urile evolueaza cu timpul. De exemplu, Windows si-a modificat interfata aproape de
fiecare data cand o versiune majora de Windows a fost lansata si interfata Mac OS s-a
schimbat dramatic de cand s-a introdus Mac OS X in 1999.

7. Diversitatea sistemelor de operare si portabilitatea acestora


Aplicatiile software sunt in general scrise pentru a fi folosite pe sisteme de operare specifice si
de multe ori pentru hardware specific. Cand se porteaza o aplicatie pentru a fi rulata pe alt
sistem de operare, functionalitatea necesara acelei aplicatii poate fi implementata diferit de
sistemul de operare (nume de functii, argumente, etc.) fiind necesara modificarea si adaptarea
aplicatiei.
Costul suportului diversitatii sistemelor de operare poate fi evitat prin scrierea aplicatiilor pe
platforme software de tip Java, Qt sau pentru browsere web. Aceste absatractii au scazut deja
costurile adaptarii la sisteme de operare specifice si la librariile de sistem.
Alta metoda ar fi ca producatorii de sisteme de operare sa adopte standarde. Pentru exemplu,
POSIX si layerele de abstractie furnizeaza lucruri in comun ce scad costurile de portare.

28
AK Network 2011

8. Bibliografie
1.
2.
3.
4.
5.

Sisteme de operare, Open Directory Project


Multics History si isoria sistemelor de operare
How Stuff Works Sisteme de operare
Ajutor in gasirea tipului si versiunii Sistemului tau de Operare
The worlds first Operating System, millosh blog, despre General Motors OS si GM NAA I/0 dezvoltat in 1955 la Centrul de Cercetare General Motors si Aviatia Nord
Americana

29
AK Network 2011

S-ar putea să vă placă și