Sunteți pe pagina 1din 22

Structura i funcionarea SO LINUX

Student: Murrescu Marina Gabriela Grupa: 5306

Cuprins
1. Introducere 2. Istoric 3. Limbaje de programare 4. Arhitectura Linux 5. Nucleul(kernel) Linux 6. Utilizatori i permisiuni 7. Procese n Linux 8. Module n Linux 9. Concluzii 10. Bibliografie

Un sistem de operare reprezint un set de programe care asigur gestionarea resurselor unui sistem de calcul implementnd algoritmi destinai s maximizeze performanele i realizeaz o interfa ntre utilizator i sistemul de calcul , extinznd dar i simplificnd setul de operaii disponibile. n ierarhia sistemelor de operare, un loc important l ocup sistemul de operare Linux.

Istoric
n 1987 ,un profesor de la Universitatea Vrije din Amsterdam, pe nume Andrew S. Tanenbaum, a scris o carte despre arhitectura sistemelor de operare, care era nsoit de codul unui nucleu complet, numit Minix. Minix arta pentru un utilizator ca un Unix foarte mic (de aici i numele), dar era construit folosind o arhitectur complet deosebit de cea a Unix-ului tradiional (Minix era un micro-nucleu). n anul 1991, Linus Torvalds, un student n vrst de 21 de ani de la Universitatea din Helsinki, Finlanda, a nceput s lucreze pe baza unor idei simple pentru a realiza un sistem de operare, pornind cu crearea unui comutator de task-uri de sistem (folosind instruciunile procesorului Intel 386) i a unui driver de terminal .

Tnrul student a fcut o nou revoluie n software, a pus baza sistemului de operare GNU/Linux, prin folosirea nucleului su i a programelor GNU,punnd codul sub protecia licenei GPL, codul devenind astfel free. Finlandezul a reusit s adune tot mai multi adereni la ideea sa . Unul dintre motive era entuziasmul cu care Linus accepta modificrile sugerate de alii i le introducea n codul lui (Tanenbaum era mult mai conservator). Un alt motiv era faptul c Linus a implementat anumite trsturi foarte utile unui sistem de operare, cum ar fi memoria virtual. (Tanenbaum a spus c ateapt vremea cnd RAMul o s fie att de ieftin nct nu va mai fi nevoie de memorie virtual.) Dezvoltnd mai departe propriul cod i integrnd modificri operate de ali programatori, Linux Torvalds a continuat ulterior s lanseze noi versiuni ale nucleului Linux.

La puin peste 20 de ani de la apariie, sistemul de operare a devenit complex, au aprut i nc mai apar noi faciliti, performana fiind una remarcabil. Numrul de utlizatori este mereu n cretere, sistemul de operare fiind foarte popular, dei nu este foarte facil de manevrat pentru utlizatorii de rnd. n prezent sunt estimai peste 8 milioane de utilizatori ai Linux iar nucleul su are peste 200 de autori, pe lng acetia existnd civa mii de oameni care testeaz i gsesc bug-uri. Exist o multitudine de versiuni ale sistemului de operare Linux pe Internet, acesta fiind open-source i disponibil pentru oricare utilizator de Internet. Dintre acestea, putem enumera ca exemple: Red Hat, Mandrake Linux, Debian, Linux, Ubuntu etc.

Nucleul Linux este scris n versiunea limbajului de programare C suportat de compilatorul GNU GCC (care suport un superset al C-ului standard), mpreun cu unele seciuni relativ scurte de cod scrise n limbajul de asamblare al arhitecturii int (la ultima numrtoare, Linux suporta aproximativ 20 de familii diferite de procesoare). Sunt folosite, pe lng C, i multe alte limbaje, n primul rnd n legtur cu procesul de 'construire' a nucleului (metodele prin care este creat din surse imaginea bootabil). Printre acestea se numr Perl, Python, i diferite limbaje de shell scripting.

Arhitectura Linux
Linux este contruit dup un anumit set de principii. nelegerea acestor principii este foarte util dac vrem s nelegem modul de funcionare a ntregului sistem. Acestea sunt cunoscute drept Calea Linux, care este derivata din filosofia ce a stat (i st) la baza sistemului UNIX. Principiile ce formeaz Calea Linux pot fi rezumate astfel: - utilizarea de programe care ndeplinesc o singur sarcin; - pentru realizarea sarcinilor complexe, se folosesc mai multe programe, ntre care exist o legtur; - stocarea informaiilor pe medii ce pot fi utilizare cu uurin; nu exist o singur cale adevrat de a face ceva; - preferina uneltelor commandline, n detrimentul uneltelor grafice.

Cele mai multe trsturi ale sistemului de operare Linux vin ca o consecin a respectrii acestor principii. Legat de acestea, un sistem Linux este construit din componente mici, ce pot fi uor nlocuite. Dintre cele mai importante se pot enumera:boot loader, kernel, shell,serverul X Window , managerul de ferestre i mediul desktop. Boot loader-ul este acea parte din sistem, a crei executare are loc prima dat. Cele mai populare boot loadere sunt: boot loader GRUB (Grand Unified Boodloader) i LILO (Linux LOader). Kernel este componenta central a sistemului, ntruct comunic n mod direct cu partea hardware. Shell-ul este o interfa text ce permite rularea programelor i controlarea sistemului prin introducerea comenzilor, folosind tastatura.

Serverul X Window este un nlocuitor grafic al shell-ului,ce este responsabil de ntocmirea i prelucrarea grafic a datelor de intrare de la tastatur, mouse, tablete i alte dispozitive. Managerul de ferestre este un program care comunic cu serverul X Window. Sarcina principal a acestuia este legat de gestionarea ferestrelor. Mediul desktop (cum ar fi mediul desktop GNOME, KDE, Xfce) reprezinta colecii de programe, special concepute pentru a prezenta o interfa de utilizator consistent, cuprinztoare pentru majoritatea sarcinilor comune.

De la crearea sa din anul 1991 si pana in prezent, nucleul Linux a trecut prin multe schimbari, multi programatori aducandu-si aportul la imbunatatirea si dezvoltarea sa. Arhitectura nuceului este foarte complexa, avand circa 6 milioane de linii de cod.

Arhitectura Linux nu este la fel de simpl, precum cea prezentat n imagine. De exemplu, mecanismul prin care apelurile de sistem sunt manipulate (trecerea de la spaiul de utilizator la spaiul kernel-ului), poate fi diferit de la arhitectur la arhitectur. Mai noile uniti centrale de procesare (CPU) ofer posibilitatea unei virtualizri mai eficiente, comparativ cu procesoarele x86 mai vechi, care folosesc metoda tradiional int 89h. Kernel-ul Linux poate fi mprit pe trei niveluri brute. n partea de sus avem interfaa de apel de sistem, care implementeaz funciile de baz (cum ar fi, de exemplu, citit i scrie). Mai jos de inferfaa apelului de sistem este codul kernelului, care poate fi considerat ca o arhitecturindependent de codului kernel. Acest cod este comun tuturor arhitecturilor de procesoare suportate de Linux. Mai jos este codul arhitecturii-dependente, care compune ceea ce, n mod curent, numim BSP (Board Support Package). Acest cod servete ca procesor i platform de cod specific arhitecturii date.

Interfaa apelului de sistem SCI este un strat subire care ne ofer mijloacele necesare de efectuare a apelurilor de funcii din spaiul de utilizator n kernel. Managementul procesului Managementul procesului se preocup de executarea proceselor. n kernel acestea sunt numite fire i reprezint o vizualizare individual a procesorului (cod fir, de date, stiv, registre i CPU). Managementul memoriei O alt resurs important gestionat de kernel este memoria. Pentru o mai bun eficien, avnd n vedere modul n care sistemul hardware gestioneaz memoria virtual, memoria este gestionat cu ajutorul paginilor (cu mrimea de 4 kb, pentru majoritatea arhitecturilor). Sistemul virtual al fiierelor Sistemul virtual al fiierelor (VFS Virtual File System) este un aspect interesant al nucleului Linux, deoarece ofer o abstracie de inferfa, comun fiierelor de sistem. VFS-ul creeaz o modalitate de comunicare ntre SCI i sistemele de fiiere suportate de kernel .

Utilizatori i permisiuni
n Linux, accesul la fiiere este permis numai pe baza unui utilizator, ceea ce nseamn c numai prin logare se pot accesa directoarele i fiierele sistemului. Aceti utilizatori au drepturi numai pe anumite fiiere. Utilizatorii sistemului sunt de 2 tipuri: cei fcui de utilizator i cei ai sistemului (numii i daemoni). Daemonii sunt folosii de anumite programe pentru a lansa anumite servicii i a permite accesul n anumite pri ale computerului . Un exemplu de daemon este gpm, care permite folosirea mouse-ului frp a fi logat. Pe plan intern, fiecare utilizator are un numr unic atribuit, care este numit ID de utilizator (user id) sau, pe scurt, UID. Exist un utilizator special, cu numele de utilizator root sau UID0. Superuserul (super utilizatorul) poate face orice i nu este controlat n niciun fel de mecanismele de securitate.

Noiunea de User (utilizator) exist pentru a controla msura n care oamenii i programele pot controla sistemul. Acest lucru este realizat printr-un sistem de permisiuni de fiiere. Fiecare fiier are trei permisiuni: read (citire), write (scriere) i execute (executare). Aceste persmisiuni pot fi atribuite la trei tipuri de relaii de proprietar: proprietar, grup sau altele. n categoria altele sunt inclui toi utilizatorii care nu sunt proprietari ai fiierului i nu fac parte din grupul care deine acel fiier. Permisiunile se pot seta cu ajutorul literelor sau a cifrelor. Cea prin litere se face prin folosirea setului de caractere 'r','w','x'. 'r' vine de la read, si ofera drept de citire asupra fisierului respectiv, 'w' vine de la Write, si da drept de scriere asupra unui fisier. 'x' vine de la Execute, si da drept de executie asupra unui fisier. Un utilizator poate sa aiba pe un fisier toate aceste drepturi, numai anumite drepturi sau nici un drept (accesul la respectivul fisier ii este restrictionat). Permisiunile se pot da si prin cifre. Cifrele reprezint permisiuni pentru: proprietar, grup i ali utilizatori. Fiecare cifr este o sum de coduri de persmisiune: 1 executare, 2 scriere i 4 citire. De exemplu, 755 le permite tuturor utilizatorilor a citi sau executa fiierul, ns doar un proprietar poate scrie.

Procese n Linux
Sistemul Linux este un sistem de operare multi-user cu capaciti multi-tasking. Termenul multi-user se refer n mod concret la capacitatea accesrii unui sistem informatic sau al unui program de ctre mai muli utilizatori concureni. Conceptul de multi-tasking reprezint n esen execuiamai multor procese individuale folosind o singur resurs comuna- un procesor . Un proces, sau un task n Linux este reprezentat de o structur de date task_struct. Linux pstreaz o tabel de task-uri, care este un vector de pointeri ctre toate task_struct definite.

Strile de execuie ale unui proces: Running : corespunde la dou stari: procesul se execut sau este gata de execuie. Interruptable: procesul este n starea blocat, ateptnd un eveniment,eliberarea unei resurse sau un semnal de la un alt proces. Uninterruptable: este tot o stare de blocaj, cu diferena c procesul ateapt ndeplinirea unei condiii hardware i nu accept alte semnale. Stopped : Procesul este oprit i poate fi pornit n urma unei aciuni a altui proces (exemplu: in faza de debug, procesul poate fi oprit). Zombie : Procesul este terminat dar din diferite motive inca mai are structura sa in tabela de procese.

Procesul INIT Procesul radcin, care este printele tuturor proceselor ce ruleaz la un moment dat se numete INIT. Procesul are rolul de a iniializa sistemul ntr-un mod prestabilit, dup ce nucleul sistemului a fost ncrcat n totalitate. Mai exact, INIT vaefectua sarcini precum montarea sistemului de fiiere, pornirea serviciilor aferente sistemului, sau chiar ncrcarea interfeei grafice. n Linux, init este executat cu un parametru , cunoscut si ca run-level , prin intermediul cruia se specific modul n care se dorete iniializarea sistemului. Valoarea acestui parametru este un numr ntreg ntre 1 si 6 , semnalnd ce componente ale sistemului vor fi iniializate. Dup terminarea procesului de iniializare, acesta este clonat prin intermediul procedeului fork , devenind un nou proces, numit getty, ce are rolul de a porni consolele virtuale aferente sistemului, de regul n numr de 6.

n Linux, LKM (sau Loadable Kernel Module) sunt module ce reprezint extensii ale nucleului. Nucleul este mprit n dou pri: imaginea nucleului de baz (sau base kernel) i extensiile LKM , ce comunic n mod direct cu partea de baz. Modulele LKM sunt folosite n general pentru a aduce suport pentru un nou hardware sau filesystem, sau pentru apeluri de sistem. Avantajele folosirii modulelor LKM n sistemele de operare se refer la faptul c fr acestea, un sistem de operare ar trebui sa includ toate funcionalitile posibil de anticipat deja compilate n baza nucleului. Utilizatorii ar trebui s reconstruiasc i sa rebooteze baza nucleului de fiecare dat cnd s-ar cere o nou funcionalitate. n Linux, LKM sunt ncrcate i descrcate prin comanda modprobe. Ele sunt localizate n /lib/modules i au estensia .ko (kernel object). Caracterul modular ofer sistemului Linux un grad de flexibilitate crescut, modulele putnd fi oprite cnd nu este nevoie de ele sau ncrcate doar cnd sunt necesare. Modulele pot ndeplini o serie ntreag de funcii ntr-un sistem, dar cele mai importante pot fi: drivere, funcii de sistem, interpretoare de executabile.

Concluzii
Sistemul de operare GNU/Linux este un sistem stabil, un sistem de operare ce ofer posibiliti nenumrate de implementare software i utilizare n domenii vaste.Unul dintre atuu-rile acestui sistem de operare este posibilitatea de a alege. Utilizatorul are posibilitatea de a alege dintre mai multe interfee grafice, browsere, clieni de mail, suite de office, pe cele care i satisfac cerinele. Fiind un sistem de operare open-source, Linux capata popularitate pe zi ce trece in zilele noastre. Personal nc nu am folosit Linux ca sistem de operare pentru computerul meu personal, dar m-am convins c merita s l ncerc.

Cri: 1. Alessandro Rubini i Jonathan Corbet , Linux device drivers, a II-a ediie, ed. O Reilly, 2001. 2. Christopher Negus, Linux bible, 2006. 3. Wolfgang Mauerer, Professional Linux Kernel Architecture, ed. Wiley Publishing, Inc, 2008. 4. Tim OReilly and Chuck Toporek, Linux Anatomy of a Linux System, ed. O Reilly, 2001. 5. Robert Love, Linux Kernel Development, ediia a II-a, ed. Sams Publishing, 2005. 6. Machtelt Garrels- Linux pentru nceptori- un ghid la ndemn ediia 1.25 Internet: http://wwwhttp://www.scribd.com/doc/50507158/9/ProceseLinux.cs.cmu.edu/~mihaib/articole/open/open-html.html#SECTION03031000000000000000 http://www.scribd.com/doc/50507158/9/Procese-Linux en.wikipedia.org www.linux.org www.scribd.com http://itreviews.blogspot.com/2006/05/linuxs-boot-process-explained.html http://ro.tldp.org/html/baza/strdat/i3.html

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