Documente Academic
Documente Profesional
Documente Cultură
Sisteme de Operare
Stoica Cristian
1
1. Noiuni introductive
Fiierul (file) este reprezentarea logic a unei informaii sub forma unei niruiri de octei. Fiierul
poate fi considerat ca fiind versiunea electronic a documentului scris.
Directorul (directory) este o entitate n care se pot regsi fiiere i/sau alte directoare. Acesta poate
fi considerat versiunea electronic a dosarului.
n interfeele grafice, directorul este de obicei denumit folder.
Fiierele organizeaz informaiile pe mediile de stocare. Mediile de stocare pot fi considerate spaii
continue de octei. n aceste spaii, se pot regsi mai multe fiiere, de dimensiuni variabile.
Sistemul de fiiere reprezint modul de organizare a fiierelor pe un mediu de stocare pentru a le
face mai uor accesibile. Organizarea include att partea logic (modul n care sunt adresate fiierele)
ct i partea fizic (modul n care sunt stocare fiierele ca niruire de octei).
Fiind o component a sistemului de operare (SO), sistemul de fiiere menine numele i atributele
fiierelor i permite stocarea lor ntr-o ierarhie de directoare numit i arbore de directoare.
Sistemele de operare folosesc fiiere pentru a organiza date, indiferent dac aceste date sunt ale
utilizatorului sau sunt generate pe moment de sistem. Spre exemplu, n Linux i n Mac OS, orice
informaie se gsete ntr-un fiier: datele se regsesc n fiiere; directoarele sunt i ele fiiere, dar cu
atributul de director; fiecare dispozitiv poate fi accesat printr-un fiier, inclusiv mouse-ul, memoria i
placa video. Intern, Microsoft Windows folosete o schem asemntoare structurii de fiiere i
directoare pentru a denumi dispozitivele,dar aceast structur nu se suprapune peste structura de
fiiere precum n Linux i n Mac OS.
/etc
Coninut
directorul rdcin
comenzi standard i programele necesare ntreinerii i
depanrii sistemului
fiiere necesare boot-rii, precum imaginea kernel-ului
fiiere speciale utilizate pentru accesul direct la
dispozitivele hardware sau logice ale sistemului
(terminale, discuri de sistem, imprimante, porturi
paralele, seriale, etc.)
fiiere pentru configurarea i administrarea diverselor
utiliate i servicii ale sistemului (inittab, fstab, hosts, cron,
2
/home
/media
/mnt
/opt
/proc
/root
/run
/sbin
/selinux
/srv
/sys
/tmp
/usr
/usr/bin
/usr/sbin
/usr/lib
/usr/share
/var
etc.)
folderele aferente fiecrui utilizator din sistem, n mod
implicit acestea au acelai nume cel cu al utilizatorului
subdirectoare n care se monteaz unitile optice,
floppy, etc.
subdirectoare n care se monteaz alte sisteme de fiiere
pachete de aplicaii de dimensiuni mari, accesibile tuturor
utilizatorilor
sistem virtual de fiiere din care se obin informaii
despre sistem i aplicaiile care ruleaz la un moment dat
directorul home al utilizatorului root
***
comenzi pentru administrarea sistemului
****
servicii de date (www, ftp)
****
fiiere temporare
aplicaii pentru uzul normal al sistemului de operare;
conine mai multe subdirectoare
comenzi orientate pe utilizator
comenzi pentru administrarea sistemului
librrii pentru limbajele de programare
date independete de arhitectur, n general read-only:
documentaia Linux, paginile de manual, etc.
fiiere al cror coninut se schimb foarte des, precum
log-uri, fiiere temporare, cache (date reutilizabile), spool
(date neprocesate)
Figura 1. Lista directoarelor i fiierelor din rdcina sistemului de fiiere n mediul Linux (distribuia openSUSE 12.1)
Figura 2. Structura arborescent (explicitat parial) a directoarelor i fiierelor din rdcina sistemului de fiiere n
mediul Linux (distribuia openSUSE 12.1) folosind utilitarul WinSCP
3. Tipuri de fiiere
3.1 Terminologie
Sistemele de fiiere pun la dispoziia utilizatorilor diverse forme logice de organizare i acces la date,
bineneles sub form de fiiere.
n afar de directoare i fiiere, sistemul de fiiere pune la dispoziia utilizatorului i legturi (link-uri).
Astfel, sistemele de fiiere moderne ofer posibilitatea utilizrii mai multor tipuri de fiiere
prezentate n Tabelul 2.
Tipuri fiier
fiiere normale
directoare
legturi simbolice
Descriere
unitate logic de acces la date
organizeaz fiiere i alte directoare
legtur ctre un fiier sau director
Exist posibilitatea de a crea legturi att pentru fiiere ct i pentru directoare n fond, ambele
entiti sunt fiiere, dar cu atribute diferite. Legturile se utilizeaz la scriere/citire la fel ca fiierele
normale. Sistemul de operare mpreun cu sistemul de fiiere se ocup transparent de traducerea
acestora n fiiere normale pentru aplicaii.
Fiecare director conine dou directoare speciale:
. (punct) indic spre acelai director (directorul curent);
.. (punct, punct) indic spre directorul printe;
Aceast comand afieaz tot fiierul, inclusiv dac acesta este mai mare de un ecran. Pentru a putea
naviga prin output-ul unei comenzi (n cazul acesta, al comenzii cat), se pot folosi comenzile more sau
less.
more permite navigarea doar ntr-o singur direcie (de la nceput ctre sfritul fiierului) i cte un
ecran odat, pe cnd less permite navigarea n ambele direcii, cte o linie, la fel ca un editor. more i
less poart numele de paginatoare (pagere). Interfaa less este foarte asemntoare cu cea a
editorului VIM (Vi IMproved).
Pentru mai multe opiuni se poate consulta ls --help sau man ls.
Comand
touch <nume_fiier1>, <nume_fiier2>
mkdir <nume_director>
ln -s <destinaie> [<nume_legtur>]
mkfifo <nume_pipe>
10
O alt ntrebuinare a comenzii touch este aceea a actualizrii datei ultimei modificri i a datei
ultimei accesri folosind urmtoarele opiuni:
-m (actualizeaz doar data ultimei modificri)
-a (actualizeaz doar data ultimei accesri)
fr parametru (actualizeaz ambele date)
-r (preia informaiile legate de timp de la alt fiier)
comanda mkdir (make directory) creeaz unul sau mai multe directoare specificate ca
parametru
comanda rmdir (remove empty directory) terge unul sau mai multe directoare goale
specificat ca parametru
11
n Linux, comanda cea mai utilizat pentru tergerea fiierelor i directoarelor este rm.
Sintaxa comenzii este rm [opiuni] <cale>.
Una dintre cele mai folosite opiuni este -r/-R, utilizat pentru a terge recursiv un director. Aceast
opiune trebuie folosit cu atenie pentru c poate avea rezultate negative dac directorul care este
ters conine informaii utile. O eroare celebr este utilizarea comenzii rm -rf /, care terge recursiv
totul ncepnd cu directorul rdcin, fornd tergerile (datorit opiunii -f).
Pentru tergerea directoarelor goale se poate folosi i rmdir.
Copierea
Copierea unui fiier sau director se realizeaz cu ajutorul comenzii cp.
Sintaxa comenzii este cp [opiuni] <surs> <destinaie>
Opiunile cele mai folosite pentru copiere sunt:
-r (copiere recursiv; copiaz i copiii directoarelor, presupunnd c exist aa ceva n surs)
-p (copiere cu pstrarea atributelor: permisiuni, dat)
12
-u (copiaz doar dac fiierul surs este mai nou dect fiierul destinaie sau dac fiierul
destinaie lipsete)
Mutarea
Mutarea unui fiier sau director se realizeaz cu ajutorul comenzii mv.
Sintaxa comenzii este mv [opiuni] <surs> <destinaie>
Implicit, mutarea este recursiv i pstreaz atributele fiierelor. n cazul n care sursa i destinaia se
gsesc pe aceiai partiie, la o mutare, se schimb doar printele fiierului sau directorului care se
mut. O operaie de mutare este, astfel, mai puin costisitoare dect o operaie de copiere.
Redenumirea
Redenumirea este, de fapt, o mutare i se realizeaz cu ajutorul comenzii mv, n urmtoarele condiii:
n cazul n care sursa este un fiier i destinaia este un fiier, se realizeaz copierea/mutarea
fiierului cu schimbarea numelui sursei;
n cazul n care sursa este un director i destinaia nu exist ca director, se realizeaz
copierea/mutarea directorului cu schimbarea numelui.
13
14
f i nume_arhiv.tar se consider un singur parametru; din acest motiv, de fiecare dat cnd se
folosete opiunea f pentru a indica un fiier arhiv, aceasta trebuie s apar ultima n lista de
opiuni, fiind urmat imediat de numele fiierului de arhiv.
Pentru a realiza compresia unui fiier, dou utilitare sunt folosite preponderent n lumea Unix:
gzip, mai rapid dar cu rat de compresie mai mic;
bzip2, mai lent dar cu rat de compresie mai mare.
Comanda tar poate utiliza direct unul dintre programele de comprimare menionate anterior folosind
parametrul z pentru gzip sau parametrul j pentru bzip2.
Pe lng opiunile de compresie/arhivare se mai pot folosi i alte opiuni. Printre cele mai utile se
numr opiunea --preserve, care impune pstrarea drepturilor de acces ]n momentul
arhivrii/dezarhivrii.
15
5.2 Backup
Backup-ul este realizat pentru a pstra ntr-un loc separat o copie a datelor. Aceast copie se
utilizeaz pentru a reface datele n cazul n care suportul original nu mai poate fi folosit din orice
motiv. Este una dintre cele mai utile aciuni asupra datelor pe care toat lumea tie c ar fi bine s o
fac dar nu o face. Cteva metode de backup au fost deja prezentate. Tabelul 4 prezint cteva
metode de backup i situaiile cnd sunt ele potrivite.
Metod
Descriere
Metod foarte simplu de aplicat. Devine greu de folosit pentru
tar+gzip/bzip2
dimensiuni mari de date.
Metod simplu de folosit i independent de sistemul de fiiere.
Permite pstrarea intact a structurii sistemului de fiiere. Inflexibil
dd
cnd vine vorba de recuperarea datelor. Util pentru cantiti mari de
date.
E asemntoare comenzii cp, dar la care s-a adugat suport de
rsync
sincronizare ntre mai multe sisteme de calcul. Permite replicarea
structurii de fiiere (inclusiv permisiuni) ntre dou sisteme de calcul.
16
Compresie
Da
Nu
Da
rdiff-backup
Da
Tabelul 4.
Efectuarea unui test de performan la scrierea i citirea secvenial al unui fiier de 1 Giga octet pe
hard-disk folosind blocuri de 128 de octei la scriere i de 64 de Kilo octei la citire.
17
18
19
Comanda locate
Comanda locate folosete o baz de date local n care sunt indexate toate fiierele. Comanda locate
este mai rapid dect comanda find, dar pune la dispoziie un singur criteriu de cutare: numele
fiierului. Un alt dezavantaj este faptul c baza de date trebuie reactualizat periodic pentru a
conine informaii despre fiierele noi create n sistem. Actualizarea se realizeaz cu ajutorul comenzii
updatedb.
Comanda ntoarce o list cu toate fiierele ale crui nume conine irul de caractere precizat ca
argument.
Unele distribuii Linux folosesc comanda slocate n locul comenzii locate. Avantajul comenzii slocate
este acela c nu permite afiarea fiierelor din directoarele n care utilizatorul nu are drepturi de
acces.
Comanda whereis
Aceast comand poate fi folosit pentru a cuta ntr-un set restrns de locaii din sistem, de
exemplu directoarele cu fiiere binare, directoarele cu biblioteci sau directoarele cu pagini de
manual. Comanda whereis nu poate fi folosit pentru a cuta n directoarele utilizatorului. Comanda
va cuta toate fiierele care ncep cu irul de caractere precizat ca argument. De exemplu, pentru a
localiza comanda ls sau gcc folosim urmtoarea comand:
21
Comanda va afia calea ctre executabil, dar i calea ctre pagina de manual a comenzii.
Comanda which
Folosind comanda which se poate obine calea ctre executabile care pot fi rulate din linia de
comand. De exemplu, pentru a afla calea ctre comanda chmod se va folosi comanda urmtoare:
n mod implicit, comanda which returneaz doar prima potrivire gsit, iar pentru a afia lista
complet a potrivirilor se va folosi opiunea -a.
Comanda type
Aceast comand poate fi folosit pentru a determina modul de interpretare a unei comenzi, de
exemplu comand integrat n shell, comand extern sau alias.
Un exemplu de comand integrat n shell este:
Pentru o comand extern rezultatul comenzii type este calea ctre executabil:
22
6. Drepturi de acces
O prim msur de protecie a datelor o reprezint drepturile de acces la fiiere. Att timp ct un
utilizator nu are drepturi de administrator pe un anumit computer, acel utilizator se supune
drepturilor de acces la fiiere.
Tabelul 5 prezint drepturi ce pot fi configurate pentru un fiier, fr a particulariza la un anumit tip
de sistem de fiiere.
Drept
citire
scriere
execuie
modificare
tergere
Descriere
dreptul de a deschide i citi coninutul unui fiier
dreptul de a scrie ntr-un fiier
dreptul de executa un fiier (aplicaie) sau, pentru directoare, dreptul
de a intra ntr-un director
dreptul de a modifica datele dintr-un fiier existent
dreptul de a terge un fiier
Tabelul 5.
NTFS are un sistem foarte avansat de drepturi de acces, bazat pe liste de acces; pentru
fiecare entitate adugat n lista unui anumit fiier pot fi configurate mai multe drepturi.
Drepturile de acces sunt date de primele 10 caractere din ieirea comenzii ll:
primul caracter reprezint tipul fiierului:
- - = fiier normal
- d = director
- p = pipe
- b = dispozitiv bloc
- c = dispozitiv caracter
- l = legtur simbolic
urmtoarele 3 caractere (rw-) reprezint drepturile de acces pentru utilizatorul root, care
este deintorul fiierului; se observ c utilizatorul are doar drepturile de citire respectiv
scriere, dar lipsete dreptul de execuie;
urmtoarele 3 caractere (r--) reprezint drepturile de acces pentru utilizatorii care fac parte
din grupul root; se observ c este prezent doar dreptul de citire, dar lipsesc drepturile de
scriere i execuie;
24
urmtoarele 3 caractere (r--) reprezint drepturile de acces pentru utilizatorii care nu sunt
root i nici nu fac parte din grupul root; se observ c este prezent doar dreptul de citire, dar
lipsesc drepturile de scriere i execuie;
Exist dou moduri de reprezentare a drepturilor:
n form numeric: pentru fiecare entitate exist o cifr n baza 8 care descrie drepturile,
cte un bit pentru fiecare drept;
n form literar: drepturile sunt referite direct prin iniiala lor, pentru fiecare tip de entitate.
Astfel, pentru exemplul de mai sus, avem drepturile:
rw-r--r-- n form listing;
110100100 n form binar;
644 n form octal;
u=rwx g=r o=r n form literal.
Dac se dorete modificarea utilizatorului sau a grupului, se folosete doar o parte a sintaxei:
25
n mediul Linux, un utilizator neprivilegiat nu poate schimba proprietarul i/sau grupul unui fiier. n
Linux, comanda chown este folosit doar de utilizatorul privilegiat.
Comanda chmod permite modificarea drepturilor de acces ale unui fiier. Comanda poate fi folosit
doar de utilizatorul ce deine fiierul sau de utilizatorul privilegiat. Noile drepturi ale fiierului pot fi
precizate n form literal sau octal.
Pentru schimbarea drepturilor se va folosi mai nti forma literal. Drepturile pot fi precizate pentru
oricare dintre cele trei niveluri de privilegiu: utilizator, grup, ali utilizatori printr-o singur liter: u, g,
o. Drepturile pot fi:
adugate prin folosirea operatorului +;
nlturate prin folosirea operatorului -;
precizate explicit prin folosirea operatorului =.
n format octal este suficient o singur comand pentru a modifica simultan drepturile pentru toate
cele trei grupuri de acces.
26