Sunteți pe pagina 1din 8

Sistemul de operare

Linux
Cristina Ciolovan

Sisteme Informatice in Medicina


Facultatea de Automatica si Calculatoare
Universitatea Politehnica, Bucuresti
2018
Sistem de operare
Un sistem de operare, prescurtat SO, reprezinta un concept foarte familiar pentru marea
majoritate a utilizatorilor de calculatoare. Rolul unui SO este de a gestiona si de a facilita
utilizatorului accesul la resursele sistemului de calcul, mediind comunicarea dintre hardware si
aplicatii si asigurand stabilitate si flexibilitate in functionarea calculatorului [1].

Unix
Unul din cele mai importante sisteme de operare este Unix. Acesta este un sistem de
operare multiproces, multiutilizator, multiecran, interactiv. Sistemele Unix au un grad inalt de
multiprogramare. Bazele sistemului de operare Unix au fost puse in 1968 de catre Ken Thompson
si Denis Ritchie. Scris initial in limbaj de asamblare, Unix a fost transcris in limbaj C in 1973,
portabilitatea acestuia crescand semnificativ. Un sistem de operare este considerat Unix-like daca
respecta standardul Single Unix Specification1 [2].

Birth of an operating system. Istoria Linux

Date: 25 Aug 91 20:57:08 GMT

Hello everybody out there using minix –

I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones

“Povestea” Linux incepe in 1991 cand, dupa o lunga asteptare, Linus Torvalds, un student
al Universitatii din Helsinki, reuseste sa-si cumpere pc-ul mult visat. Nemultumit de
caracteristicile sistemului de operare Minix, acesta incepe in scurt timp sa-si scrie propriul sistem
de operare. Pe 25 august, dupa aproximativ 6 luni de munca, Linus isi prezinta proiectul ce avea
sa-l faca celebru printr-un simplu anunt pe un site dedicat utilizatorilor de Minix [3].

Astazi, la aproape 30 de ani de la crearea sa, Linux ocupa un rol foarte important pe piata
sistemelor de operare, fiind portabil pe un numar semnificativ de dispositive.

Din forma initiala a sistemului s-a pastrat doar nucleul (kernelul), denumirea de Linux
referindu-se, de fapt, doar la acesta. Fiind Open Source si functionand sub licenta GNU, kernel
Linux a fost de-a lungul timpului adaptat, prelucrat si imbunatatit de mii de programatori din toata
lumea. Fiecare prelucrare a acestui sistem poarta numele de distributie [4]. In momentul de fata
exista peste 300 de distributii active (care sunt dezvoltate in continuare). Dintre acestea, doar 10
sunt cunoscute la scara larga, fiind utilizate pentru scopuri generale. Printre ele se numara Ubuntu,
Fedora, Mint si Debian. De obicei, o distributie noua este dezvoltata plecand de la un anumit stadiu
al unei alte distributii [1].
Structura sistemului de operare Linux
La fel ca Windows sau Mac, Linux este un sistem de operare ale carui principale
componente sunt kernelul, shellul si aplicatiile (Fig 1).

Fig 1 Structura unui sistem de operare

 Kernel-ul. Acesta este principala componenta a unui sistem de operare, controland accesul
la toate dispozitivele hardware ale calculatorului si gestionand procesele, memoria etc.
Kernelul este cel mai mic nivel al unui SO, incarcandu-se in memorie la pornirea
calculatorului si ramanand asa pana la oprirea calculatorului. Marimea kernelului poate fi
de la cateva sute de Kbyte pana peste un Mega (foarte rar) in functie de cat de multe
echipamente hardware (placi audio, retea, SCSI) si facilitati trebuie sa suporte.

 Shell-ul reperezinta interfata primara a unui utilizator cu un sistem de operare, fiind in


esenta un interpretor de comenzi ce permite controlul computerului si executia bogatului
set de utilitare, cat si a unei combinatii a acestora

 Aplicatii. La fel ca Windows si Mac, Linux pune la dispozitia utilizatorilor numeroase


aplicatii ce indeplinesc cele mai diverse functii, in incercarea de a satisfice cerintele pietei.
Pentru distributiile recente de Linux exista chiar magazine specializate, precum App Store,
ce centraizeaza aplicatiile si le simplifica instalarea. Spre exemplu, pentru Ubuntu Linux
exista Ubuntu Software Center in care pot fi gasite si descarcate sute de aplicatii specific
[5].

Procese
Un proces este entitate activa, folosita pentru a abstractiza executarea sarcinilor sistemului
de operare, fiind, in esenta un program aflat in executie. Acesta porneste in momentul executiei
unui program.
Un proces poate rula in foreground sau in background. Un proces care ruleaza in fundal
pierde posibilitatea de a citi de la intrarea standard, dar isi continua rularea. Rularea unui proces
in fundal se realizeaza cu ajutorul operatorului & pus dupa comanda Acest operator va crea
procesul asociat comenzii introduse si va forta rularea acestuia in fundal.
In Linux exista 3 tipuri de procese: iterative, bach si daemoni.
Daemoni
Un daemon este un proces, ce are asociat un script, ruleaza in fundal si realizeaza o sarcina
particulara sau monitorizeaza discurile sau executia programelor. Acestia pornesc odata cu
sistemul de operare, apoi asteapta sa fie utilizati, fiind similari serviciilor in Windows.
Denumirea daemon vine de la abrevierea pentru Disk And Execution MONitor.

SYNOPSIS #include <unistd.h .


. int daemon(int nochdir, int noclose);

Demonii sunt procese detasate de terminalul de control, neputand comunica direct cu


utilizatorul. Acestia nu vor accepta comenzi de control de la tastatura si nu vor afisa rezultate la
terminal. Comunicarea cu un daemon se face prin mecanisme mai complicate, precum semnalele
[1].

Modul de functionare a unui deamon


Odata pornit sistemul Linux un program tipic deamon isi va realiza urmatoarele setari:
 Inchiderea tuturor descriptorilor de fisiere deschisi
 Schimbarea propriului directorul de lucru din sistemul de fisiere radacina
 Resetare (umask value)
 Rulare in background (fork)
 Detasarea de grupul de proces de care apartine (shell) in vederea izolarii de
semnalele trimise catre intreg grupul
 Ignorara turor semnalelor venite de la terminalul de I/O
 Dezasocierea de orice terminal de control
 Manevrarea optima a tuturor semnalelor SIGCLD [6]
Deamonii au, in cele mai multe cazuri, numele terminat in litera d, ca de exemplu: hald,
udevd, sshd, inetd etc.
In general, procesele daemon au unul sau mai multe fisiere de configurare, prin care
utilizatorul poate interactiona cu ele. Aceste fisiere de configurare sunt citite in momentul crearii
procesului daemon si permit controlul functionarii acestuia [1].

Cei mai cunoscuti daemoni


In Linux exista un numar foarte mare de deamoni, fiecare din ei avand functii si
caracteristici specifice. Unii din cei mai uzuali deamoni sunt ilustrati in Tabelul 1 [7].
Tabelul 1

 Unul din cei mai importanti daemoni este systemd, acesta controland intregul sistem de
operare. Este primul proces executat dupa incarcarea kernelului Linux. Scopul sau este de a
controla alti deamoni, de a-i rula la momentul oportun si de a controla toate serviciile
disponibile pe sistemul de operare. Acest deamon poate fi activat, dezactivat sau modificat de
catre utilizator.

SYNOPSIS: systemd [OPTIONS...]

init [OPTIONS...] {COMMAND}

Principalele caracteristici ale acestui daemon sunt:


 Design curat, simplu si eficient
 Procesare paralela la bootup
 APIv superior
 Permite eliminarea proceselor optionale
 Suporta logarea evenimentelor utilizand jurnalul
 Stocarea log-arilor in fisiere binare
 Conservarea starii sistemului pentru referinte ulterioare
 O mai buna integrare cu GNOME plus multe altele

Systemd este un daemon relativ nou, fiind introdus pentru prima in Fedora 15, cu scopul
de a inlocui daemonul sysvinit. Echivalenta dintre cei doi daemoni poate fi observata in Fig 2.
Fig 2 Echivalenta comenzior intre daemonii sysvinit si systemd

 Daemonul crond este un daemon responsabil pentru rularea comenzilor la momente de timp
prestabilite. Acesta accepta fisiere de programare ("crontabs") atat de la administrator, cat si
de la utilizatori. Daemonul crond este frecvent folosit in scopuri administrative, inclusiv
managementul fisierelor log si curatarea zilnica a sistemului de fisiere.
 Xinetd si inetd sunt daemoni care gestioneaza alti daemoni. Acestia pornesc un demon de
care sistemul de operare are nevoie si-l opresc imediat ce actiunea acestuia nu mai e
necesara. Xinetd si inetd lucreaza doar cu daemoni care ofera servicii prin retea. Acestia se
conecteaza la portul de retea, iar atunci cand apare o cerere o transmit daemonului potrivit
si-l activeaza.
Fisierul de configurare principal al daemonului xinetd este in mod traditional
/etc/xinetd.conf, insa poate fi folosit si /etc/xinetd.d. Un exemplu de configurare a
daemonului inetd intr-un sistem Debian se poate observa mai jos:

# Example /etc/inetd.conf - from a Debian system

#:INTERNAL: Internal services

#echo stream tcp nowait root internal

#echo dgram udp wait root internal

...

#time stream tcp nowait root internal #time dgram udp wait root internal

#:STANDARD: These are standard services.

#:BSD: Shell, login, exec and talk are BSD protocols.


#:MAIL: Mail, news and uucp services.

imap2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd

imaps stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd

#:INFO: Info services

ident stream tcp wait identd /usr/sbin/identd identd

...

#:OTHER: Other services

swat stream tcp nowait.400 root /usr/sbin/swat swat

# finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -w

391002/1-2 stream rpc/tcp wait root /usr/sbin/famd fam

...

 Daemonii de kernel sunt daemoni care, din motive arhitecturale, manageriaza parti ale
kernelului Linux. In distributiile mai veche de Linux numele acestora incepe cu litera k
(kupdate, kswapd, kapm etc). In principal, acesti daemoni controleaza anumite functii
ale I/O, manageriaza memoria si sincronizeaza cahe-ul. Cei mai importanti daemoni de
kernel sunt ilustrati in Tabelul 2.

Tabelul 2
 Un alt exemplu este cel al demonului imprimantei, lpsched (line printer scheduler). Acesta
se lanseaza cand sistemul porneste si apoi asteapta in fundal pana cand cineva are nevoie
sa tipareasca ceva [8].

Concluzii
Initial inceput ca o simpla joaca a unui student finlandez, Linux a revolutionat lumea
computerelor moderne prin versabilitatea, stabilitatea si adaptabilitatea sa.

Dupa aproape 30 de ani de la lansare sa, Linux s-a dovedit a fi unul din cele folosite sisteme
de operare, remarcabil fiind insa faptul ca bazele sale au fost puse de un singur programator, iar
dezvoltatea ulterioara s-a facut pe numeroase planuri, avand in vedere caracterul open soure al
acestuia, ce a permis modificarea sa de catre un numar foarte mare de utilizatori.
Bibliografie

[1] Introducere in sisteme de operare, Razvan Rughinis, Razvan Deaconescu, George Milescu, Mircea Bardac

[2] http://popirlan.ro/cris/ecnpd/lab.pdf

[3] Just for fun. The story of an accidental revolutionary, Linus Torvalsd

[4] Slackware Linux Essentials Book, Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson

[5] https://www.linux.com/what-is-linux

[6] https://linux.die.net/man/1/daemonize

[7] https://en.wikipedia.org/wiki/List_of_Unix_daemons

[8] https://www.admin.com/samples/Daemons.pdf

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