Documente Academic
Documente Profesional
Documente Cultură
Linux
Cristina Ciolovan
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].
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).
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.
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.
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.
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:
...
#time stream tcp nowait root internal #time dgram udp wait root internal
...
...
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