Sunteți pe pagina 1din 13

Structura Linux

Un sistem de operare este format din urmatoarele componente:


1. Kernel
Reprezinta partea cea mai importanta a OS, cea care lucreaza cu CPU si este cea mai apropiata
de Hardware. Fizic kernelul se regaseste intr-un fisier iar de cele mai multe ori acesta este
/boot/vmlinuz-version_no
Functii:
I/O Management;
managementul memoriei RAM si SWAP;
apelarea functiilor de sistem;
lucrul cu echipamentele periferice prin drivere;
managementul sistemului de fisiere si al proceselor care ruleaza;
Memoria SWAP reprezinta un tip special de memorie care se gaseste pe Hard disk, dar care este
folosita de Kernel ca si cand ar fi memorie RAM. Dimensiunea acesteia se recomanda a fi egala
sau mai mare decat memoria RAM. Pe Linux se foloseste o partitie speciala pentru memoria de
tip Swap. Aceasta memorie este optionala.
2. Shell
Utilizatorul nu poate comunica direct cu Kernelul. Accesul la functiile kernelului se face prin
intermediul shell-ului. Acesta este un program care primeste comenzi de la user sau alte aplicatii,
le interpreteaza si le transmite kernelului pentru a le executa.
Printre functiile shell-ului se afla si customizarea intregului environment (mediu de lucru)
precum si programarea folosind shell scripts.
Exista mai multe shell-uri printre cele mai importante amintim:
a) Bourne Shell (sh) - Primul shell pentru Unix. A fost dezvoltat de Stephen Bourne la AT&T. Nu
are foarte multe optiuni.
b) Korn Shell (ksh) - A fost dezvoltat de David Korn la Bell Labs.
c) C Shell (csh) - A fost dezvoltat de Bill Joy la Sun si se bazeaza pe limbajul de programare C.
d) Enhanced C Shell (tcsh)
e) Z Shell (zsh) - Este asemanator de Korn shell dar are mai multe functii.
f) Bash (bash) - Bourne Again Shell - Default pe Linux. Cel mai folosit si mai puternic shell.
3. Sistemul de fisiere . Pentru detalii cititi subcapitolul "Sistemul de fisiere" al acestui curs.

Structura unei comenzi


Pentru managementul sistemului Linux (copiere de fisiere sau directoare, stergere, redenumire,
afisare continut, listare, editare etc) se folosesc comenzi. Exista peste 400 comenzi de baza in
Unix/Linux.
Exista comenzi incluse in shell ( Exemplu: alias, cd, umask) si comenzi independente
reprezentate prin programe ( Exemplu: ls, cp, rm etc).
Structura unei comenzi este urmatoarea:
NUME_COMANDA OPTIUNI [ARGUMENT 1] [ARGUMENT 2]
NUME_COMANDA = reprezinta numele comenzii. Trebuie sa apara primul. Directorul in care
se gaseste comanda trebuie sa fie in variabila PATH (la fel ca si in WINDOWS).
Nota
In contrast cu Windows, in Linux directorul curent reprezentat prin . (punct) nu se gaseste in
PATH. Pentru a executa o anumita comanda nu este suficient sa ne mutam in directorul care
contine programul respectiv sau comanda si sa executam respectiva comanda.
OPTIUNI
pot fi scurte (o litera). Exemplu: ls -R sau pot fi combinate mai multe litere. Exemplu: ls -Fal
pot fi formate din unul sau mai multe cuvinte. Exemplu: smart --ignore-locks
ARGUMENTE
reprezinta scopul comenzii. Pot fi fisiere sau directoare, adrese IP, nume de domenii DNS etc
Nota
Comenzile se scriu cu litera mica, iar argumentele pot fi cu litera mica sau litera mare, de
cele mai multe ori cu litera mica. Litera mica difera intotdeauna de litera mare.
Important
Apasarea tastei TAB o singura data dupa primele caractere dintr-o comanda sau fisier, are ca
efect completarea comenzii sau a fisierului daca comanda sau fisierul se identifica unic. Apasarea
tastei TAB de 2 ori determina afisarea tuturor comenzilor sau a fisierelor care incep cu literele
scrise deja. Daca tasta TAB nu completeaza comanda sau fisierul inseamna ca fisierul sau
comanda nu exista ori sunt scrise partial gresit. Este foarte important sa se foloseasca tasta TAB
pentru auto-completare atat pentru cresterea eficientei cat si pentru elimitarea erorilor.

Comenzile ls si less
1. Comanda ls
Una dintre cele mai folosite comenzi in Linux este ls (list). Aceasta afiseaza informatii diverse
despre fisiere si directoare.
ls OPTIONS FILE - listeaza continut
-l

listare lunga, sortare dupa nume

-F

afiseaza tipul fisierului

-t

sortare dupa mtime

-h

human readable

-i

afiseaza inode

-R

afiseaza recursiv

-S

sortare dupa marime

-d

afiseaza informatii despre director in loc de continutul acestuia

-c

afiseaza ctime (in combinatie cu -l)

-u

afiseaza atime (in combinatie cu -l)

-a

afiseaza hidden files

2. Comanda less
Intreaga configuratie a unui sistem Linux, fie ca ne referim la servere care ruleaza, firewall sau la
rezolutia monitorului se gaseste aproape exclusiv in fisiere text. Una dintre sarcinile cele mai
frecvente ale unui admin este vizualizarea diferitelor fisiere text. Cea mai folosita comanda
pentru vizualizare care se gaseste pe orice distributie de Linux sau chiar de Unix este less.
less FILE - afiseaza continut fisier text
In timpul vizualizarii continutului fisierului putem folosi urmatoarele taste:
enter

afisare urmatorul rand

space

afisare urmatoarea fereastra

afisare urmatoarea jumatate de fereastra

afisare jumatatea de fereastra anterioara

/sir

cautare sir forward

?sir

cautare sir backward

urmatoarea aparitie a sirului

aparitia anterioara a sirului

salt la inceputul fisierului

salt la sfarsitul fisierului

quit

help

Resurse
manpage ls
ls - Wikipedia
manpage less
less - Wikpedia

Durata: 2.28 min


Marime: 1.16MB
https://www.invata-online.ro/courses/linuxb/video/ls_less/ls_less.html

Runlevel
Reprezinta starea in care se afla si opereaza sistemul de operare la un anumit
moment dat.
Exemplu: un sistem de operare Linux care intra in runlevel 0 se opreste, daca intra
in runlevel 6 tocmai se restarteaza.
In functie de runlevel-ul in care opereaza sistemul de operare exista anumite
facilitati oferite si anumite procese care ruleaza. Un sistem de operare Linux se
poate afla la un moment dat intr-un singur runlevel.
Linux runlevels
Runlev
el

Semnificatie

Descriere

Halt, Shut
down

Oprirea sistemului, aducerea lui in starea in care se


intrerupe alimentarea cu energie electrica

single-user

Modul administrator folosit pentru mentenanta. Nu


exista retea, mediu grafic si doar sistemele de fisiere
locale sunt montate. Exista un sigur user care se poate
loga in sistem si anume root. Este echivalentul lui SafeMode din Windows

multi-user

Modul multi-user fara retea.

multi-user +
retea

Runlevel default pentru servere.

N/A

Nu exista

multi-user +
retea + mediul
grafic

Run level default pentru Desktop

reboot/restart

Restartarea calculatorului

Mai poate exista runlevel-ul S sau s, care nu este folosit direct ci de catre programe
si scripturi care se executa cand se intra in runlevel 1.

Pentru trecerea dintr-un runlevel in altul se foloseste comanda: init noul_runlevel


Exemplu
1. Restartare calculator
/sbin/init 6
2. Oprire calculator
/sbin/init 0
3. Intrare in single-user mode
/sbin/init 1
4. Revenire in runlevel 5
/sbin/init 5

Nota
In cazul distributiilor bazate pe Debian precum Ubuntu runlevel-urile existente
au o alta semnificatie si anume nu se diferentiaza intre runlevel 2,3,4 si 5 iar
default este runlevel 2.

Resurse

Runlevel - Wikipedia

Sistemul de fisiere
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
3.5.6
3.5.7

Prezentare generala
FHS
Structura sistemului de fisiere
Structura unui fisier
Tipuri de fisiere
Links
Piping & Redirectare

Prezentare generala
Sistemul de fisiere reprezinta modul de organizare, structurare si accesare a
fisierelor, directoarelor si linkurilor pe hard disk.
Modul de organizare, accesare si recunoastere a particularitatilor fiecarui sistem de
fisiere cade in sarcina Kernelului. Acesta trebuie sa "ofere suport" pentru acel sistem
de fisiere.
In prezent Kernelul de Linux recunoaste majoritatea sistemelor de fisiere existente:
fat16, fat32, ntfs, ext2, ext3, ReiserFS, nfs, smb, iso9660 etc.
Pentru majoritatea distributiilor de Linux default este ext4 - Fourth Extended File
System (default pentru RedHat, Fedora, Ubuntu, Mint etc) sau ReiserFS (default
pentru Slackware, SuSE, Xandros, Yoper).
De multe ori in studiul sistemelor de operare Unix/Linux gasim sintagma "everything is a file". Acest lucru se refera la faptul ca fiecare program, sau
dispozitiv hardware este reprezentat printr-un fisier. Nu mai exista alta modalitate
de reprezentare a informatiei.
In Linux fisierele sunt case sensitive - se face distinctie intre litera mare si mica.
Un fisier se considera ascuns (hidden) daca numele sau incepe cu "." (punct).
Exemplu
/dev/sda1 reprezinta prima partitie de pe hard disk-ul primary master
/dev/cdrom reprezinta CD-ROM-ul. O scriere sau o citire de pe hard disk sau CD
inseamna de fapt o scriere sau citire din fisierul respectiv.
In Linux un director este tot un fisier (dar special care are anumite proprietati).
Sistemul de fisiere in Linux este arborescent (ca si in windows) doar ca avem un
singur arbore chiar daca avem mai multe partitii sau hard disk-uri.
Radacina sistemului de fisiere se numeste ROOT si se noteaza cu "/".
Atentie: a nu se confunda userul numit root cu radacina sistemului de fisiere care se
numeste tot root. Intre cei 2 termeni nu exista nicio legatura.

Resurse
Ext4 - Wikipedia

FHS
De-a lungul timpului s-a incercat standardizarea sistemului de fisiere pentru
sistemele Unix/Linux luand nastere astfel FHS - Filesystem Hierarchy Standard. Cu
toate acestea nu exista un standard general acceptat in prezent.
Principalele directoare care exista in majoritatea distributiilor de Linux si Unix sunt:
/sbin - utilitare pentru administrarea sistemului, multe accesibile doar lui root
/bin - utilitarele sistemului care trebuie sa fie disponibile atat userilor normali cat si
lui root
/dev - fisiere speciale care reprezinta dispozitivele din sistem
/lib - librarii de functii folosite de aplicatii, kernel etc
/var - fisiere care in general isi modifica continutul (loguri, mailuri etc)
/usr - o ierarhie asemanatoare cu "/" ( /usr/sbin, /usr/bin, /usr/etc )
/etc - fisierele de configurare ale sistemului, ale serverelor care ruleaza etc
/root - home directory userului root
/home - home directory pentru userii din sistem. Fiecare user are home directory un
director in interiorul lui /home (de cele mai multe ori directorul poarta numele
userului)
/proc - printre functiile principale ale kernelului este si aceea de a controla
dispozitivele fizice si de a coordona modul in care procesele folosesc aceste resurse.
In /proc se gaseste statusul curent al kernelului cu toate informatiile pe care acesta
le cunoaste. Aceste fisiere si directoare sunt create automat la butare. Ele se
numesc virtuale. De aici vine si numele de "Sistem de Fisiere Virtual" (acesta este
proc). Aceste fisiere contin multe informatii utile, iar cu toate acestea dimensiunea
lor este de 0 bytes.
Nota
Fisierele din /proc pot fi modificate pentru a configura sistemul "on-the-fly".
Exemplu: echo "new-hostname" > /proc/sys/kernel/hostname
/media - mount point pt. sisteme de fisiere temporare
/mnt - mount point pentru sisteme de fisiere remote
/lost&found - fisiere care au fost salvate in timpul unui "failure"
/boot - fisiere necesare boot loader-ului, kernel-ului
/opt - programe si aplicatii adaugate ulterior care nu fac parte din distributie
/cdrom - mount point pt CD

Mount Point - reprezinta locul (directorul) din sistemul de fisiere UNIC in care se
alipesc sisteme de fisiere de pe alte partitii locale sau externe, de pe CD-ROM/DVDROM, USB Stick etc.
Exemplu: la introducerea unui stick usb acesta se va monta automat intr-un
subdirecor al directorului /media. Respectivul subdirector se numeste mount point.
Nota
Partitia swap nu are mount point

Resurse
FHS - PDF Download

Structura sistemului de fisiere

Sistemul de fisiere in Linux este arborescent si unic. Radacina se numeste root si se


noteaza cu "/".
In Linux fisierele sunt case-sensitive - se face distinctie intre litera mare si mica.
In Linux "totul este un fisier". Nu mai exista alta forma de reprezentare a
informatiei.
Un sistem de fisiere poate fi impartit in 4 parti distincte in urmatorea ordine:
1. Boot Block - aflat la inceputul partitiei si care contine cod (Boot Loader) pentru a
incarca sistemul de operare.
2. Super Block - contine informatii actuale despre sistemul de fisiere: marimea
acestuia, nr. de blocuri de date libere, locatia acestora, marimea lui inode table, nr
maxim de inoduri etc.
3. Inode Table (List) - Lista statica definita initial la instalare si care nu se poate
schimba si care contine inodurile din sistem.
4. Data Blocks - Datele sunt salvate in blocuri (in general 1 block = 512 bytes).
Boot Block

Super Block

Inode Table

Data Block

Structura unui fisier


Un fisier consta in informatia pe care acesta o contine (text, date, imagine, sunet
etc) dar si o structura de date care se numeste inode (index node) si care contine
informatii suplimentare despre acel fisier.
Standardul POSIX stabileste ca fiecare inode sa contina urmatoarele informatii:
tipul de fisier
owner
group owner
drepturile de acces (citire, scriere, executie) pentru owner, group si others
nr. de hard linkuri catre aceeasi informatie
atime
ctime
mtime
marimea unui fisier (size)
pointer catre blocurile de date care reprezinta informatia tinuta de fisier.
inum - nr. intreg care identifica unic fiecare inode
Nota
Atentie !!! Numele fisierului nu este pastrat in structura inodului.

Un director este un fisier de tip container care contine perechi de nume_fisier si


inode-ul corespunzator.
In momentul in care ne referim (utilizatorul sau un proces) la un fisier, kernelul
cauta in structura de directoare conform cu calea relativa sau absoluta de referire la
fisier, inode-ul corespunzator pentru acel nume.
Fiecare inode se identifica unic printr-un numar de tip intreg numit "inode number"
sau i-number. Acesta poate fi vizualizat folosind comanda ls -i
Exista un nr. maxim pt. acest i-number care se defineste automat la instalarea
sistemului in functie de dimensiunea partitiei si deci exista un nr. maxim de fisiere

(comanda df -i).
In Linux fiecarui fisier sau director i se ataseaza 3 (trei) timpi:
ctime (change time) - reprezinta data la care s-au modificat informatiile
continute in inode-ul fisierului sau directorului (permisiuni, owner, group etc). Nu se
refera la timpul cand au avut loc modificari ale continutului. Se afiseaza cu comanda
ls -lc
mtime (modify time) - data la care s-a modificat informatia din fisier. Se afiseaza
cu ls -l
atime ( access time ) - data la care s-a afisat continutul fisierului. Se afiseaza cu
ls -lu
Comanda stat afiseaza de asemenea acesti 3 timpi.
Pentru modificarea celor 3 timpi ai unui fisier sau director se foloseste comanda
touch
touch OPTIONS FILE - listeaza continut
fara optiuni

modifica atime, mtime si ctime cu timpul curent

-t
DATE_TIMESTAMP

motifica atime si mtime cu DATE_TIMESTAMP in loc de data


curenta
ex: touch -t 200301231230 a.txt

-d DATE_STRING

modifica atime si mtime cu DATE_STRING


ex: touch -d '1 May 2006 10:22' /etc/group

-a

modifica doar atime cu data curenta sau cu o alta data daca


este specificata
ex: #touch -a -d '23 May 2006 10:22' /etc/group

-m

modifica doar mtime cu data curenta sau cu o alta data daca


este specificata

-r
REFERENCE_FILE

schimba atime si mtime cu cele ale lui REFERENCE_FILE


ex: touch -r b.txt a.txt

Nota

ctime nu poate fi setat in mod expres si independent de catre user

Resurse
POSIX
man touch

Durata: 2.58 min


Marime: 742KB

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