Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » referate » informatica » linux
Structura sistemului de operare Linux

Structura sistemului de operare Linux




Structura sistemului de operare Linux

Sistemul de operare Linux cuprinde in principal 3 componente majore:

a)      Nucleul (Kernel)

b)      Sistemul de fisiere

c)      Shell-ul

a) Nucleul este partea centrala a sistemului de operare, care asigura servicii catre programele de aplicatii pentru realizarea gestiunii proceselor, a memoriei, a intrarilor, a iesirilor si a timpului.



In acceptiunea Unix, prin proces se intelege un program in stare de executie, continand imaginea fisierului executabil in memorie (zonele de text, date si stiva) precum si resursele utilizate in momentul executiei (registre, fisiere deschise, etc.).

Functiile nucleului sunt:

  1. gestiunea proceselor, efectuand controlul executiei acestora prin implementarea unor comenzi de creare, terminare, suspendare si comunicatie intre procese si planificarea pentru executie a proceselor conform unei politici de tip partajat.
  2. gestionarea fisierelor prin alocarea sau eliberarea memoriei externe pentru stocarea si regasirea eficienta a informatiei
  3. gestionarea dispozitivelor periferice
  4. gestionarea memoriei prin alocarea si eliberarea memoriei principale pentru procesele aflate in executie.

Nucleul este alcatuit din urmatoarele componente:

  1. interfata cu procesele utilizator - care se realizeaza exclusiv prin intermediul apelurilor de sistem;
  2. subsistemul de control al operatiilor de intrare iesire - care controleaza modul de lucru cu dispozitivele periferice, aloca spatiu pentru fisiere, gestioneaza spatiul liber din memoria externa, etc.
  3. subsistemul  de control al proceselor - care realizeaza planificarea, sincronizarea si comunicarea intre procese, precum si gestionarea memoriei;
  4. interfata cu hardware-ul realizeaza tratarea intreruperilor si comunicarea directa cu componentele fizice ale sistemului electronic de calcul.

b) Sistemul de fisiere cuprinde ansamblul fisierelor memorate sub forma de comenzi, programe traducatoare, programe utilitare, sisteme pentru lucrul cu colectii dedate, programe aplicative, precum si fisiere de date asociate organizate intr-o structura standard de directoare si subdirectoare. In capitolul 2 se poate urmari schema standard a structurii de directoare a sistemului de operare Linux.

c) Shell-ul reprezinta interpretorul de comenzi al sistemului de operare care are rolul de a interpreta comenzile date de utilizator, realizand o interfata intre acesta si sistemul de operare si de asemenea ofera facilitati de programare intr-un limbaj propriu avand caracteristicile asemanatoare cu ale limbajelor de nivel inalt, permitand scrierea si utilizarea de programe.

Sistemul de fisiere. Specificatorul de fisier.

In acceptiunea Linux, un fisier reprezinta o succesiune de octeti iar fisierele sunt organizate intr-o structura de arbore formata din directoare si subdirectoare. Putem distinge urmatoarele 4 tipuri de fisiere:

a)      fisiere obisnuite;

b)      fisiere director;

c)      fisiere speciale;

d)     fisiere tip conducta (pipe).

a) Fisierele obisnuite sunt o insiruire de octeti, fara o organizare logica speciala. Ele pot contine un program sursa (text), un program in cod executabil (binar), precum si datele necesare executiei programelor. Acest tip de fisier permite memorarea pe termen lung a datelor. Numele unui fisier poate fi de maxim 14 caractere si nu pot exista in acelasi director fisiere cu acelasi nume. Structura logica a informatiei din fisiere se realizeaza in exclusivitate prin programele de aplicatie.

b) Fisierele director reprezinta un fisier de tip catalog ce contine o lista de fisiere. Directorul este organizat sub forma unei tabele in care este memorata cate o intrare pentru fiecare fisier din acel director. O intrare de acest fel stocheaza identificatorul intern numit "information node", sau i-node, care este un numar (2 octeti) si numele fisierului (14 octeti). Fisierele director contin fisierul cu numele (.) care identifica i-node-ul propriu al directorului curent si fisierul cu numele (..) ce identifica inode-ul directorului parinte in care acesta apare ca subdirector.

Un fisier este specificat prin "numele de cale" urmat de numele fisierului respectiv. "Numele de cale" reprezinta o succesiune de nume de directoare care incepe de la directorul radacina (/) si sunt separate intre ele de semnul (/), ca de ex.:

/dir1/dir2/./dirn/fisier,  sau /home/student/program2

Pot exista fisiere cu acelasi nume dar in directoare diferite, iar fisierele din directorul curent sunt accesibile in mod direct prin simpla referire a numelui lor.

Pentru specificarea fisierelor exista doua posibilitati:

a) specificarea absoluta - prin care se pleaca de la indicarea caii de access la un fisier incepand chiar de la radacina si indicand apoi nivelurile arborelui pana la fisierul desemnat;

b) specificarea relativa - prin care se pleaca de la indicarea caii de acces la un fisier incepand cu directorul curent si apoi nivelurile urmatoare ale arborelui pana la fisierul desemnat.

La specificarea numelui unui fisier se pot utiliza unele caractere speciale: si [], cu urmatoarele semnificatii:

are sensul de orice caracter de pe pozitia respectiva in numele unui fisier;

semnifica orice sir de caractere incepand cu pozitia in care apare acesta;

[lista de caractere] indica un caracter, oricare din cele mentionate intre parantezele drepte.

c) Fisierele speciale se utilizeaza pentru tratarea unui dispozitiv periferic ca fiind un fisier. In acest mod fiecare dispozitiv fizic de intrare sau de iesire este identificat cu un fisier special, din punctul de vedere al utilizatorului neexistand nici o diferenta intre lucrul cu un fisier obosnuit si un fisier special, acestora din urma putandu-se aplica aceleasi comenzi ca si unui fisier obisnuit.

Fisierele speciale se afla grupate in directorul dev. Cateva exemple de fisiere speciale sunt:

/dev/lp - fisierul special pentru imprimanta

/dev/hda2 - fisierul special asociat celei de a doua partitii de pe prima unitate de HardDisk, etc.

d) Fisierele tip conducta (pipe) sunt niste fisiere tranzitorii, din care datele sunt citite in ordinea stricta a scrierii lor, respectandu-se regula de sincronizare FIFO (primul venit-primul plecat). Un astfel de fisier conecteaza iesirea standard a unui program (sau comanda) cu intrarea standard a unui program sau comanda, realizand transferul datelor mai rapid prin intermediul unei memorii tampon.

Sistemul de protectie a fisierelor si drepturile de access

Sistemul de operare Linux dispune de drepturi de access al fisierelor dupa cum urmeaza:

a) Pentru fisiere:

- drept de citire(r) permite afisarea continutului

- drept de scriere (w) permite modificarea continutului (sau stergerea) acestuia

- drept de executie(x) permite rularea acestuia.

b) Pentru directoare:

- drept de citire(r) permite utiliyatorului sa deschida si sa citeasca continutul directorului

- drept de scriere (w) permite crearea sau stergerea de fisiere director

- drept de executie(x) permite ca sistemul sa caute in director pe baya specificarii unei cai de acces.

Se pot distinge 3 categorii de utilizatori:

proprietar (u)

grup (g)

ceilalti utilizatori (o).

Fiecare fisier are un proprietar, care de obicei este persoana care l-a creat. Mai multi utilizatori, care fac parte de obicei din acelasi compartiment de lucru, formeaza un grup. Sistemul de protetie a accesului la un fisier se bazeaza pe confruntarea drepturilor utilizatorului (r,w,x) cu drepturile categoriei din care acesta face parte (grupului). Pentru precizarea acestor drepturi sunt necesare 9 caractere (3 drepturi de acces * 3 categorii de utilizatori). Pentru vizualizarera drepturilor, se foloseste comanda ls, asemanatoare comenzii dir din MS-DOS (vezi figura:)

Dupa cum se observa in listingul de mai sus, drepturile sunt insirate la inceputul randului, dupa un caracter ce indica tipul fisierului respectiv (- normal, d = director, s = fisier special).

Prezentarea comenzilor Linux

Linux dispune de o gama variata de comenzi cu ajutorul carora se executa diferite operatii. Fiecare comanda este un nume de program ce va fi executat ca raspuns la introducerea ei.

In functie de tipul utilizatorilor care le folosesc, putem distinge doua tipuri de comenzi:

comenzi privilegiate, care pot fi executate doar de catre SuperUser (administratorul de system)

comenzi neprivilegiate, ce pot fi executate de catre utilizatorii obisnuiti. Acestea pot fi, la randul lor, grupate in mai multe tipuri:

o       comenzi pentru lucrul cu directoare;

o       comenzi pentru gestionarea fisierelor;

o       comenzi pentru utilizarea imprimantelor si terminalelor

o       comenzi pentru gestionarea proceselor;

o       comenzi informationale;

o       alte comenzi.

Sintaxa generala a unei comenzi este urmatoarea:

Nume_comanda [optiuni] <fisier>

Optiunile se trec dupa caracterul (-), si pot fi grupate mai multe. In general, pe un rand se scrie o singura comanda, dar este posibil sa se scrie si pe mai multe linii folosind ca semn de continuare caracterul (



Intreruperea executiei unei comenzi se poate face in orice moment cu ajutorul combinatiei de taste CTRL+<C>.

Suspendarea temporara a unei comenzi poate fi realizata cu ajutorul combinatiei de taste CTRL+<Z>, iar reluarea executiei ei se poate face prin tastarea comenzii "fg". Comanda "jobs" ne va afisa o lista cu toate comenzile suspendate.

Sistemul de operare Linux, la fel ca toate celelalte sisteme Unix, tine cont de modul de scriere a comenzilor, adica daca acestea sunt scrise cu litera mare sau cu litera mica. De exemplu, comanda ls nu este tot una cu comanda LS si cu totul altceva decat Ls.

Aflati pentru prima oara in fata Linuxului, este util sa folosim comanda help, care ne va prezenta cateva informatii despre versiunea interpretorului de comenzi disponibil si cateva comenzi elementare. Pentru a afla mai multe detalii despre o anumita comanda, putem interoga shell-ul folosind urmatoarea comanda:

help <nume_comanda>

In cazul in care informatiile afisate pe monitor depasesc spatiul disponibil, acestea vor defila in sus, pierzand astfel posibilitatea de a le putea citi. Daca se doreste afisarea acestor informatii in mod paginat, se poate folosi redirectarea catre comanda more, sau catre comanda less.

help | more  sau help | less

Cea de-a doua este mai indicata, deoarece ne putem deplasa cu usurinta in susul sau in josul ecranului. Pentru a iesi din ecranul informativ, se tasteaza "q".

O alta modalitate de a afla mai multe detalii despre o anumita comanda este sa apelam la manualul (destul de complex) existent in majoritatea distributiilor de Linux. Pentru a-l folosi, se tasteaza:

man <nume_comanda>

In cazul in care nu cunoastem numele exact al comenzii si vrem sa aflam toate comenzile disponibile in functie de un anumit cuvant cheie, putem da comanda:

man -k <cuvant_cheie>

Si, in sfarsit, o ultima modalitate de a afla numele unei comenzi (atunci cand ii cunoastem macar inceputul ei) este scrierea a cateva caractere de la inceputul comenzii si apoi apasarea tastei <TAB> (o data sau de doua ori, depinde daca sunt mai multe alternative la inceputul de comanda tastat). Aceasta este de altfel si o modalitate mai rapida de a scrie comenzi in mediul Linux.

1. Comenzi pentru lucrul cu directoare

Numele comenzii

Explicatie

Exemplu

PWD

Tipareste numele directorului curent impreuna cu calea de acces pana la acesta

pwd

CD

Schimba directorul curent cu unul nou ce va deveni director curent dupa executia comenzii.

Fara argumente, ne duce in directorul propriu

cd <nume director>

cd ..

cd

LS

Listeaza continutul unuia sau mai multor directoare, afisind si o lista cu informatii diverse despre acestea.

ls

ls -als

ls /home/student/

MKDIR

Creeaza un folder

mkdir dir1

RMDIR

Sterge directorul specificat

rmdir /home/dir1

2. Comenzi pentru lucrul cu fisiere

Numele comenzii

Explicatie

Exemplu

CAT

Concateneaza si afiseaza fisiere text

cat <fisier>

cat fis1 fis2 > fis3

cat > fis4

cat >> fis3

PR

Pregateste fisierele pentru a fi tiparite.

pr [optiuni] <fisier>

LP

Tipareste fisierele respective la imprimanta

lp fis1.txt

WC

Numara caractere, cuvinte si linii in fisiere text

wc -l /etc/passwd

DIFF

Afiseaza diferenta intre 2 fisiere text.

diff fis1.txt fis2.txt

GREP

Filtreaza liniile unui fisier (buffer) cautand siruri de caractere

grep -c personal.txt

grep -v pers personal.txt

TAIL

Afiseaza implicit ultimele 10 randuri ale unui fisier (buffer)

tail -15 personal.txt



HEAD

Afiseazp implicit primele 10 linii dintr-un fisier

head +15 personal.txt

MORE

Vizualizeaza in mod paginat continutul unor fisiere

more personal.txt

PG

Asemanator cu more, dar permite deplasarea inainte si inapoi prin textul afisat

pg personal.txt

FILE

Afiseaza informatii despre un anumit fisier

file /home/galex

FIND

Cauta fisiere, directoare dupa conditii

LOCATE

Similar find, insa foloseste o minibaza de date

locate mysql

CP

Copiaza un anumit fisier

cp fis1 fis2

MV

Muta, redenumeste fisiere, directoare

mv fis1 fis2

RM

Sterge fisiere

rm fis?

LN

Creeaza legaturi intre fisiere, directoare

ln -s <target> <nume_nou>

CHOWN

Schimba proprietarul unui fisier

chown galex private

CHGROUP

Schimba grupul unui fisier

chgroup galex private

CHMOD

Schimba drepturile unui fisier

chmod a+w personal.txt

3. Comenzi pentru gestionarea proceselor

Numele comenzii

Explicatie

Exemplu

PS

Afiseaza starea proceselor din sistem

ps aux | more

NICE

Lanseaza un proces cu o prioritate schimbata

KILL

Intrerupe executia proceselor

kill -9 <PID>

SLEEP

Suspenda temporar executia unui proces

sleep 30 <PID>

DATE

Afiseaza data si ora sistemului

date

TIME

Afiseaza informatii despre timpul de executie al unui proces



time locate mysql

4. Comenzi informationale

Numele comenzii

Explicatie

Exemplu

MAN

Afiseaza manualul comenzii specificate

man chmod

CAL

Afiseaza calendarul pentru o anumita luna

cal 01 2002

WHO

Afiseaza informatii despre utilizatori

who

W

Afiseaza informatii despre utilizatori

w

FINGER

Afiseaza informatii despre utilizatori

finger @snr.ro

MAIL

Permite receptionarea si trimiterea de posta electronica

mail

mail bill@whitehouse.org

WRITE

Permite tiparirea unui mesaj direct pe terminalul altui utilizator

write student "hai acasa"

5. Comenzi privilegiate

Numele comenzii

Explicatie

Exemplu

SHUTDOWN

Termina toate procesele si inchide calculatorul

shutdown -r

REBOOT

Restarteaza calculatorul

WALL

Trimite un mesaj tuturor utilizatorilor conectati

DF

Afiseaza informatii cu privire la discul hard

df

DU

Afiseaza informatii cu privire la discul hard

MOUNT

Permite montarea unui sistem de fisiere

mount /dev/hdc1 /cdrom

UMOUNT

Permite demontarea unui sistem de fisiere

umount /dev/hdc1

ADDUSER

Adauga un utilizator

adduser stud2

USERDEL

Sterge un utilizator

userdel stud1

TOP

Afiseaza o lista permanent actualizata asupra activitatii sistemului

top







Politica de confidentialitate







creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.