Sunteți pe pagina 1din 537

Cuvtlnt 'inainte

No/iunea de ,~tem de operare repreziutii, prob.lbil, mud diut.." termenii rei mai des InUilui/i in domeniul culcu/uto(Jfdor, $i ,I!! ,mmai. Dc la [ormde gret>aw dczt'oilale f" an" '60, cnllO<lcn/c door pmjc.';oui1ti/()t', ., j. /Cf"clc (ic "pemn; n" c""osc.l/ ()

Imn.fonlwre ool1lill1', strilns ooreidli'i cu dezvollarw sis/eme/or de calc!!'1

IdmologiilOf' a,\oc;utf.. In Zlua de (~~Iiizi, si,ltemd" d~ opr.mcc ole"": 0 inter/alii Juri/a $' prietem)(Jsii alat !, /;/izatoriior ob':"lwi/i ai .ler1litiilor [n/emet, cal # ulilizatori/or co,,,crr;,,t; "i uplit"fiilor dooif~'tr, r"'/ot' re joiou-'<c jar:ili liifi/c mll/timedia ~i jO~llri, so." ce/()r pmfel!ion~,ti Cilre dezvoltii op/iea/i; sm' in/refin 8;., leme de cnlc,,' ~; retel~ de calclJatmwe. Evo/utia lelmo/ogic.l a Jus la deZllollarea sis/erne/or de OIJerare IJen!ru un nunl(lr t()1 m()' marc ,Ie ,1i.$Pfi:ritive, de /" si,lemt S"r1Jcr, dC$~1op ~i [OP/OI' la PDll-uri
$'

$'

smartp/wlle-uri.

Corlea de fa/il 4i prop'm~ jo mi/iarizorftl cititon,/t,i CIl Imnea .ti<lemeior de 0l'~rare pw-ticular, Cli lallira prePfimlerent te/mica a ace,dora . Am creat aeMalii Ilicrare av6wl In permanent,! f'~ vedere cww$tin/ele de /!aU! , 'i cadrul conocl,tual neocsare 'm"i student /a 0 jactl/latc de ealc~laloare. /" acea,,/ii structw'(i, eartoo este flu"j' aJrl.drtnM pe"tm a fi "Ii/il orirtlr!'; citit()r cm"C ClJ.!l t a !m prim co"tact tfl domeflj,,/ . i..temc/"r de olJerare, SIJerUm ca I"'rcmyerea sa sli ojere $i #11 set de deprittderi ~j abardiiri In $olul io tlarta probh'11ldor rart dqlaM"lc sfc", sisteme/Of" de opera,.".
''', ill

Diver,li/atea $flbicdcior aba,.,lal~ a repre:cntat 0 ddic~llale in crean", ,me; ~"cc" $iuui clare de "",pilole. Strotcrlia almsil ulc ""a strolijimlil, fiecan; capitol oozfiwl"-se pc cdc ,d1,dialc Ilnten'or. 1(Jt".,i, a" ,xi,ltllt ",o",e'l l ~ r" Ca!'!! a /rcb"U .'if ,dilidim a""milc n"ti,mi inai"te de a fi deftttit cadnll conlXp/,wl, sa" la cIi/rvu mpit()/e dis/m,/Ii lie IJre.::e!llm-ea lor. In ailtfel de ., ;llIa/;i dliloru/t,; Ii .' lilll ojerile rejerin/e cd:tre capito/e/e in r{lre s!mt d"rijir",/c no!ilmile i,,,,i>CI'/r.. C"rll'n ,w",a,.,ejir. prez",oI"n'~' ~i di.~r"IIlrea noti,milor de baz" flOCI'-'!Ilrc 1m"i sllu/cnl ,n primii an; lie jnc,l/'ate, in dmn"",i,,1 mlc"lnt(l(Jrel()r. Dillersi/a/ea 811biecfel()r ~i nit'd,,/ de de/aim reoomandii 0 ruimilare In IJroj"nzlme a injormallilor. dilleolo de dumta "lIlli semestNt $au a mllli {m. Sperntl! ca .~hJ(len l u/ domic lie al,rojundare .!a riisjoiiiilca aceMti'i carle In momellleie III care CllIlUi sprijin s!lplimenlar pentr" rezoivarea "nei probkmc din d()mc"i". Din p",'cl dc "fAere 1e/lllic, male";a/"I dc ja/Ii ojcrii () pt;rspcciiva cc all<l, ti'IC IJrel'onderent lmivpr.,,,/td U"'!X. Am consider"t rontact,,1 <:1' /..i,,,,x ca pe 0 oIJort""ilate ~pat'lc lientr" 0 majorilate a ulilizatorilor cc IJrovill din medml Windmli8, in can; descori oltcrna/i"e/e in (I()mc"i,,/ . i.!lcmdor de operon; nil n;pn;zjnlii () opli1l"c luotif ill considerare, Dorillto noa.<tra e. te ca "ti/i:zllrea Will; 1I0U sistern de olJerare, c" o ri'i.!pimdire 1i 0 ctlo/,,!.e tot mai i"len.le, Sa ojerr 0 no"" pe,.lpcct1Vl' U/mprYi il,mii calculal.od!-elor In general a sis/eme/or de ol'ernre In IJ ar/.;culllr. D~i carle.1 e.1/e

$'

.1

/oco/izaM pe Li"UX, /irx<m:. cnl'ilol inc/tule ,~ectiu1li ,Ie .~tudii de caz prezen/ale mecanismele simi/ore dillir-Im siskm Windows.

z n

C(lrc

s~"t

Stt1;ctum carli, cslc wnceputa' pClllru a v/cri aim 0 prezclliare a cndmlui conccptuul, eM ~i 0 f'<1,t<: aplinrlitui r,l)n8ln,itii prin P$cmple. FiOO1rc capitol e,< /e pIT/aiat de 0 midi secfitme "Ce se !lwala III ace.'t COI)itoJ?'; utilii petl/t1; repemreo prillcipo/elor lIolilm; Capitolcic ~c f"cheie Ct, 0 uclilme de "Cum,d e dICic' .I i afKJi de ,,!ntrelu'iri'; pcnif1' n )len"ik ~ililonll"i 0 au/neva /,wn: a cmlO~/inlclor dobli."di/c. Unele ~(Xli,mi 8'mt mam>tc CU Ai",/Joluri yra/iN! CU () .,cmnijioolic specwlli; i7llp<>f'tant, notli. OZN (pCf,if1' lell!lo/O<jiile recente de lip,d "bleedinq e;lqc") .,i alom (pen ln' aspecte te/mice avansalc) , Recomondiim I"'rcI,rgern, ~e<;t"enl;nlii a clirtii, dar citito nd atlatlSa/ I"'a le "iiri direct la 1m capitol de interes particular, Dot jiind continulul praclic ddaliat, e.,le Ittilii /olositY:1i mlrulatorulu; 1'(;1,1", r"larc;z comenzi/or IH-czentalc $i llent", C:tpJonHwJ. OIJ/i!tniior exislente, Itl pamlel Ctl p<lrturyerea rloliuni/IJI' loorelice. Mu/tumim !!tturlJl' eeJ"r care all contrihuilio ,-eaitzarea clirln. Mooul dc orya",zare 8. prczcnim-c, ca ~i d;l.Icr~ilatm iujom'otiilor prc~cutotc .IC iJW;ca;;if. pc 40rtlll coII/i""" ~i posi1mea 'mei echipe elltuzi"ste. fn pnmul mud. ii m"/I'''lIim domlw llti pro/esor NiCIJlac TiipM, prccum ~; ooIcyilor ,w"tri Vlad Vayaru, Mi/'" i MaNl.!cuc, Dantci Ro"uer ~i Andrei Bu/wiu, a caror impiicare 0 can , /ituit un /Je"efir:iu direct In d"oon".,1 a aocsle. cIlf'/.. M,dr"",im, de a,~emct' m, t/JleyiJOf' Alex t:/timie ~ i A",I,""i Fn1J.r )lenlnl CIJ,,/ribt</ia ad't$ii, ~i co/cqilor Alex .h",C1l, l. ucian Grijinw, Ciilif> lorgulescu , Void,ila Imlc!!, Andre. DUm;!r", Laura Gh eorghe perllr" reviZ'tlirea material"I,,; pe parcllrAtJi f;nali~,'rii acestuia. Adre.,iim mult"mi"'; .'pecin/e ecliil'et c"r.<,d"i de Uti/izarw S~I~mc/or de Ol't:mt'f' C<1rtl IIe-u o/eri! 0 atlllo4erii de SIlfKJ,i, imlJlican .1i enoyie penlnl realizarea cartii, Form" ac/"a/ii a rArlii .~c bazcazii pe cfOtt"I.~u.'lillut depU$ dea IImy,,1 nt"'lCroo.~elor acti!!itiiti di,. j'''.''/ curs"/,,i de U/ilizarro S~temelor de Operare. Nu ill u!timul mnd, muillimim cilitarilor, la p'~mul pa,~ 1 11 domcmu/ pl;n de IJro1.lociiri Eo Slmj cei olmm Ie dcdiol'm ar,ca.5/i1 carle. Nc-a /licut pliiccre sa 0 .,cnem, ~i "IJenlm di ,,,,<Car 0 parle dill ent"ziasm"l ,w, </r" sii se convcrlea,~cd" i" pa.,i!ltw p<m!n, ciWoni aocstor pay;";.

$' de satis/ac/i' al cn/cula/oordor,

ii

C JPYrighted

mataf~1

Cuprins
1
lolroducere 1.1 Ce (ISle un sistem de operare? .

1 1

'2

'3

Funcliile unui sistem de ope rare Tipuri de sistema de operare Funclionarea sistemelor de operare 1. 1.3 SCUTt istorie al sistemelor de operaTe 1.2. t Prima gene ratie 1.2.2 A doua generatie ' .2.3 A Ireia generalie 1.2.4 A patra generati e Sistema de operare modarl'le , 1.3.1 Sistema de ope rare desktop si server
1. 1.1
1. 1.2 1 32 1 33 1 34
1 35

3
4 5 7 7

8 8
9 9 10
11
11

Familia Windows
Mae OS X I ;nux Alte (In ix. ,.r j

12
13

1.3.6 1.3.7
14
1.4 . t

Comunitati open source Sistema de ope rare pentru dis(,1ozitive mobile

14 15
16

Studju de

cal

Virtuali zare. Rularea unui SO dintr-o masina virtuala

16
23

Inslalilrea Linux. Configurarl d e bazi

2.1

Linu~ .

Distribtitii Linux .
Prir.c ipale le d istributi i Linux
Dabia n

23
24 25 27 28 28 29 31 32 38 38 40 44 45 45 47

2. 1.1
2 1

22

23

2A

I Jblmlll 2. 1.3 Tipuri de dislribulii linu x . Insralarea I jOttX Alegerea dislribuliei linux 2.2.1 2.2.2 Pregatirea sistemului I iveCD 223 InSlalare Kltbltntll 224 Interactiunea eu sislemul de operare ' 2.3.1 Interletele eu utilizatonJl 2.3.2 Interlala in linie de eomandii (ClI) 2.3.3 Oprirea sistemului de caleul , Configurari de baza ale SO . 24 1 Adrninistra rea siSlernuitri I ioux 2.4.2 Asigurarea eonectiviliitii la Internet 2.4.3 Aelua iizarea sislemuiui si a pacneteior 2.4.4 Adrninistrarea utilizatorilor si a grupurilor de uWizatori

47 48
.1

iii

iv
2 5

INTRODUCERE iN SISTEME DE OPERARE Stud;; de caz I ii i

Gestiunea pachelelor si utilizalorilor 31 Geslillnea Illilizalorjlor 3. 1.1 UID,GID 3.1.2 Adaugarea si stergerea utilizatorilor 3. 1.3 Ad1lugarea si stergerea unui grup de utilizalori 3 14 ModifiC area daletor unui utjljzalor 3. 1.5 Ad1lugarea si stergerea uflizatorilor 3.2 GeSliunea pachatelor . 3 3 Sludi; de caz 3.3.1 Fisierele in care SU l'lt stoeate inlorman despre ut"lizatori 3 3 2 ACll1a lizarea unui sisl em Dehian sau lJbunlu Sisteme de lisiere 4.1 Notiuni introdUClive 4.1. 1 Ce esle un sistem de Hsiere 4. 1.2 lerarhia sistemului de lisiere 4. 1.3 CAi relative si cAi absolule . 4 14 Vadabila de mediI! PATH 4.2 Tipuri de lisiere 4.2.1 Terminolog ie 4.2.2 Detectia tipului l isierelor . 4.3 Operatii uzuale asupra fisierelor si direetoarelor . 4.3.1 Alisarea si sehimbarea direetorului eurent 4.3.2 Alisarea eontinutului lisierelor ... 4.3.3 Listarea conlinutului unui director. 4.3.4 Crearea fisierelor/directoare lor .. 4.3.5 Copiere/mutare/redenumirefslergere 4.3.6 Arhivarea lisierelor si dezarhivarea 4.3.7 Backup 44 Red ireclAri de oomenzi 4.4.1 Dasedplodi da fisiar 44' Red irecll1ri 4.5 Drepluri de aeces 4.5.1 Ulili zatori si grupuri de ulilizatori vs. liste de aeces 4.5.2 Clasilicarea drep!urilor de aeces 4.5.3 Vizualizarea dreplurilor de aeces 4.6 C1Iularea lisierelor 4 6 1 Comaoda fjnd 4 5 2 Comanda locale 4 6 3 Comanda whereis 4 54 Comanda which 4.6.5 Comanda ty pe 4.7 Ti puri de sistema de fisiera 4.7.1 Integri talea dalelor . 4.7.2 Alegerea unui sislem de lisiere 4.7.3 Adresarea intr-un sistem de fisi ere

53

53
55

55 56 56 57 58 64
64
55

69 69 69 70
72

74

74
74 75 76 76
77

77
79

80 82 85 85 85 86 87 88 89 89 90
90 91
91

92 92 92

93 93 95
atanal

CUPRINS

,
Lucrul cu sistemele de fisiere . 4.8.1 Crearea unui sistem de fisiere . 4.8.2 Montarea unui sistem de fisiere . 4.8.3 Repararea unui sistem de fisiere 4.8.4 Crearea unei imagini pentru un sistem de lisiere . 4.8.5 "Stergerea unui sistem de !isiefe .
4 B6 Monjtorizarea uliliz:1irii d jsculuj

4.8

95 96 97

"0 100
101

'"

"

"

..
104

410 Studjjdecaz 4. 10.1 Comen zi pentru luerul cu l isiere in Windows 4. 10.2 Utilizarea in sigurantA a comellZilor PEl fisiere

104

104

1,

Proc ese

5.1

--'!<

111

52

~, ~
,

~ ~II

.~

5.3

54

5.2.2 Ulilitarul pstree . 5.2.3 Utilitarul pgrep 5.2.4 Utilitarul lOp 5.2.5 Timpul de executie at unui proces. Comanda time. 5.2.6 Sistemul de !isiefe procts Rularea proceselor in background. Job-uri. Daemoni . 5.3.1 Rularea unui proces in backgroulld . 5.3.2 Suspend area unui proces 5.3.3 Controlul job-urilor . 534 Daemoni Semoale
ii 1 tli~ '~ """'1 ,

122 123 124 126 127 130 130 131 131 133 135

II
5.6
57

Swapping Studj; de caz 5.7.1 Managementul proceselor/servici"lor pe Windows 5.7.2 Procese importante 5.7.3 Prioritatea unui proces

14 1

142 142

" 3

" 5
.1

INTRODU CERE iN SISTEME DE OPERARE


6 Pornirea si initializarea sis temului 6 1 porn irea sistemllilli

it
i ii
I i
154 154

6 14 62

POST

Bootloader 6.2.1 Dispozitive bootabile 6.2.2 Structura sectorului de boot pel"ltru UI"I dispozitiv boot-ab il . 6.2.3 Mecal"lismul de IUl"lctiol"lare a ul"lui bootloader

155 156 156


159

624

GRllB

63 64

~~rza;:~e:.,~=,~,~;
6.4.1

162
165

65

66

Imaginea de nucleu 6.4.2 Optiuni de boot-are pentru nucleu Initializarea sistemului . 651 jnit 6.5.2 upstart 6.5.3 getty si login 6 54 Sesjune de shell Studju de caz
661 Gwb2

165 166 167


167

. 173
174

'"

175

Analiza hardware a slslemulul 7.1 $tructura unui sistem de ope rare . 7 2 Considerenle hardware 7 2 1 St(llclma unui sislem de calcill 7 2 2 Procesorul 723 lerarhia de memorje 7.2.4 Placa de bazi'!; il1lerconectarea componentelor 7.2.5 Dispozilive peri/erice; magistrale 7.3 $uportul penlru d ispozitive la nivelul kerne l-ului 7 3 1 I istarea mad,delor indrca te la ,10 moment dat in sistem 7 3 2 indrcarea IInlli modlll 7 3 3 Desclircarea 11011; mad, II din kernel 7.4 Analiza hardware a unui sistem (magistrale. chipset, CPU, memorie, dispozitive) 7.4.1 Usta hardware Isys 7.4.2 Comen zi pentru af isarea dispozitivelor 7.4.3 Monitorizarea stArii dispozitivelor hardware

185

165
186

187 188 188

19' 192 193


194

195
195

196 196 196 199

I
;
7.6.1
Tipuri de dispozitive lnlreruperi hardware Mrese I/O Adrese DMA

.203
. 204 205

7.6.2
763
764

206
atanal

CUPRINS

vii

77

78

7.6.5 Manipularea dateler la nivel scazut (comanda ddt Ana liza sislemului 7.7.1 Informati i despre sistem 7 7 2 Kernellunables Studii de cal

.206
208

.208
210
211

8.1

Conliguriiri de retea Conceple de relea 8. 1.1 Notiuni de baza 8 12 IPyfi

2H 217

218

,
8.3
823 DNS Contigurari temperare . 8.3.1 Inleriele de relea.

223 225
Conligurari permanente 5i conligl.lrari

,
8.4
Conligurari permanente .

230

"

8.5

86

8.4.6 Configura rea numelui statiei curente Teslarea configurati ifo r de retea 8.5.1 Ping 8 5 2 Traceroule 8.5.3 Cum se depisteaza problemele uzuale In cazul configl.lrarilor de relea Sludii de caz 8.6.1 Verificarea in linie de comanda a parametrilor de relea in Windows 8.6.2 Configurari de relaa in Wind ows Vista 8.6.3 Configurarea PPPoE in Linux

235 .236 236


237

238
240 240

241

.243

9.1 .2 913 9 14

fmpfementarea partiala a stivai TCPIIP . Madelul clientserve r por!mi

252
254
255

.,

viii 9.2

INTRODU CERE iN SISTEME DE OPERARE

Execulia comenzilor la d islanta . 9 2 1 Te lne! 922 SSH

.257 25 7 258

,
933
94 WWW

Clienti de email Secudtatea seryiciuluj de ema il

.266
267 268

95

9.4.4 Clientii Web SIIu1ijdecaz 9 5 1 lJtililarui cURl 952 FIP

.273 273 273 274


279

10

Elemenle de securjlale 10.1 Pro~ematjca securillltii . 10.1.1 Prirocipiidebaza. 101 2 Termeni 102 Securjzarea sis!em uluj 10.2.1 Secudtatea sistemului de operare 10 22 Cootmlul accesuluj JO 2 3 Parole

279 .280 283 284 284 285 287

I i
10 3 1

Ii '

Ii. Moojlorjz area sistem llilli

"
1 I,

10.4.3 Scanarea porturilor 10.5 Securizarea retele i .. 105 1 Fjrewall.uri 10.5.2 Criptarea inlormatiei , 10.5.3 Monitori zarea retelei , 105 Studill de caz 10.6.1 Drepturile pe lisiere In NTFS 10.6.2 Recuperarea parolei ,
, 1 Campilare si linking 1 1 1 lotrodll oore 11 1 1 Ediloare

.307 309 310 310 312 314 314 315

'"
,,

319 320

11 1 4 pachete necesare 11.2 Compi lare. GCC 11 2 1 I Jtilizare GCC

"

323 324 325

",.r

CUPRINS

;,
327 328 330 331

11.2.2 Compilarea din surse multiple .. 11.3 Etapele compil1irii (inclu~v link-editarea) 1 t .3.1 Preprocesarea. 1 t .3.2 Compilarea . 11 33 Asam blarea

1 t .3.6 Fisiere executabile . 11.4 Biblioteci de fur.ctii .. 11.4.1 Tipuri de biblioteci 11.4.2 Informalii despre bibliotecile de fur.ctii 11 43 IJtilizarea bibliotecilor 11 5 A"tomatizarea sarcinilor _ make

339 341 342

343
344 345

1 1

11 57 Sintax1i Make/ila 11 58 Modllri de ulilizare a Make 11 6 porlabililate 11 6 1 Portabililatea la niyelul arhile<:lurii sislemllilli de calclll 11.6.2 Portabilitatea unui limbaj de programare 11.6.3 Portabilitatea la nivelul sistemului de ope rare 11 7 Stlldill de caz 11 7 1 GCC in Windows 11.7.2 Linkeditarea modulelor C si a module tor C++ 12 Shell scriptin g 12.1 Notiuni inlrodl.lCtive 12.1.1 De ce shall scriptir.g? 12.1.2 FacilM.ti oferite de scripturile shell 12.2 Interactiunea Cll shellul . 12 2 1 Edilarea comenzilo[

352 353 354 354 . 354 . 356


356 356

357
365

365 366 367 368

"
"
12.4 Programarea shell . 12 4 1 Vadabile 12.4.2 Caractere speciale shell . 12.4.3 Instructiuni de decizie 12 44 Ciclttriinshell 12 5 EiUre de lexl
384
384

387 391 395 399


.1

,
12.5.1 cat, tac, nl 12.5.2 sort, uniq 12.5.3 head. tail
1254 ellt 1255 Ir
1 2 56

INTRODU CERE iN SISTEME DE OPERARE

.400

.400 .402
403 404 405

we 12.5.7 grep
sed

_405
406
410

125 B 1259

awk

12.6 Gomeoz; de lucru cu lisiere . 12.6.1 xargs


1262 loca te
1263 lind

.414 .414 415


4 16

12.7 Expandarea in sheH . 12.7.1 Simbolul$ 12.7.2 Expresii regu late in shell 12.8 Parametrii unui script shell
128 1 Comanda shift

.419

.419 .421
.421 422

iI

il
428 . 426

t2 11 Studt; de caz 12.11.1 Contorizarea oumil.rului de ulili zatori autentiliCati in sistern

12.11.2 Schimbarea promplului shell


12.11.3 Batch scrip~ng in Windows 12.11.4 PowBrShBIl pB Windows. 13 Madiul grafic

. 429
_ 431 . 433 441

13.1 Concepte in mediul grafic.


13.1.1 Tipurideimag ini 1312 Eontu d Iin iende

.442
.442

" "
13.5.3 13.5.4 13.5.5 13.5.6
I Ii i 13.5.1 System Settings 13.5.2 Schimbarea aspectu lui interfetei grafice

.452
_ 452

ConfiQurari de baza ale sistemului de operare ConligurAri administrative . Configurarea retelei Managemenlul ulilizatorilor

.453
. 454 . 454
.454

atanal

CUPRINS

,;

"
13.7 Aphcatii KDE vs. GNOME 13 a Studjj de caz

.460

14 Utilitare pentru delvottare 141 tntmd 'l cere 14.2 Cod ing style (indent. astyle) t43 Editowl Vim 14 4 Sjsteme de control al vers junji 14.4.1 Princ ipii. 1442 SIIbversion 1443 Gjt 14.5 Analiza si parcurgerea codului

469 469 .470 473 479 .479


480

481 .481

;
14.7.2 Ulilizarea bibliotecilor parlajale

. 486

"

"
.494 .494

,,
.496
496

14.9.1 Eclipse 14.9.2 Anjuta 14.10 Managemenlul prOiecleior software 1410 1 procese de dezvoltare software

14.11.1 DOCumenlatie otieia la 14.11.2 Documenlarea programalor propri i 14.11.3 Carli situtoriale . 14.11.4 Documentatie din Internet. 14 12 S'"di" de ca z 14 12 1 Mjcrosof! Vjsual Studjo

. 496 . 499 500


. 501 502 502

15 Vlala in Linux 151 Muzjca in Linux 152 Ejlme in I jnllx

50'
507 509

.,

xii

INTRODUCERE iN SISTEME DE OPERARE

153 Scr jerea IIrui COJQVD in t jnllx 15.4 Messe nger in linux 155 BjtTorrentio linu x 15_ 6 Imprimanta in linux _ 157 .Jocl.riinliOl'x 158 Dll al-mon itor in t inllx 159 Doc ll mente office in I jnllx

510

. 511
512
_ 51 4 515

516
518

Rilspunsurlla intrebfltl

521 529

BibliografiB Glosa r

531

C JPYnghted matanal

Abrevieri
ACL - Access Control LiSt
ACPI- Advanced Configuration and Power Interlace AGP - Advanced GraphiCs Pori

API - Application Programming Interlace BIOS - BaSic Input Output System eLi - Command Line Interface CMOS - COmplementary Metal Oxide Semiconductor
CPU - Cenlral Processing Unit

DOD - Data Display Debugger DE - Desktop Environment DHep - Dynamic Host Configuration Protocol DlL. - Dynamic-link library OM - Display Manager OMA - Direct Memory Access DNS - Domain Name System DoS - Denial of Service DRAM - Dynamic RAM ELF - Executable and Linking Formal FSB - Front Side Bus
FTP- File Transfer Protocol

FUSE - Filesystem in Userspace


GCe - GNU Compi ler Collection

GOB - GNU Debugger


GID - Group Identifier

GNU - GNU's Not Unix GNU CPP - GNU C preprocessor


GU I - Graphical User Inlerlace

HOD - hard disk drive


HTML - Hypertext Markup languaoe

HITP - Hypertext Transfer Protocol


ICH - 110 C()(Itroiler Hub ICMP - Internet Control Message Protocol IDE - Integrated Development Envirooment IDS - Intrusioo Detection System IMAP - Inlernet Mail Access Protocol IP - Internet Protocol IRC - Internet Relay Chat IRO - interrupt request ISP - Internet Service Provider
~iii

xiv

INTRODUCERE iN SISTEME DE OPERARE

LAN - Loc al Area Network LTS - Long Time Support LVM - LogK:al Volume Manager MAN - Metropolrtan Area Network MBR - Master Boot Record MCH - Memory Controller Hub MIME - Multipuprose Intemet Mail Extensions MinGW - Minimalist GNU for Windows MSVC - MK:rosoft Visual C++ NAT - Network Address Trans lation PC I - Peripheral Component Interconnection PID - process id PKI - Public Key Infrastructure POP3 - Post OffK:e Protocol POSIX - Portable Operatil"lQ System Imerface POST - Power-on Self Test PPP - Point to Point Protocol PPPoE - PPP over Elhemet RAID - Redundant Array 01 Inexpensive Disks RAM - Random Access Memory ROC - Remote Desktop Connection RPM - Rotations Per Minute RTOS - sisteme de operare in timp real S.M A R.T. - Seil-Monitori ng. Analysis and Reporting Technology SMTP - Simple Mail Transfer Protocol SNMP - Simple Network Management Protocol SO - sistem de operare SRAM - StatK: RAM SSH - Secure Shell SVN - Subversion TCP - Transm ission Control Protocol TFTP- Trivial File Transfer Protocol TLD - Top Level Domain TTL - Time To Live TUI - Text User Interface UDP - User DataQr"am Protocol UID - User Identifier URL - Uniform Resource Loc ator USB - Universal Serial Bus VBR - Volume Boot Record VCS - Version Control System VN C - Virtual Network Computing WAN - Wide Area Network WIMP - window, iCoo, menu, pointing device WLAN - Wire less LAN WM - Window Manager WWW- World Wide Web XHTML - Extensible Hypertext Markup Language

C JPYnghted

mataf~1

CAPITOLUL 1. INTRODUCERE

15

crestere iar dezvoltarea intensli a distributiilor Linux conduce la crearea de pachete speCifice care laciliteazli accesulla aplicalii;e necesare. in momenlul de lalli, versiunea slabild a dislribu!iei Debian GNU/Linux olerli pesle 25 de mii de pachele ' . Cea mai mare comunitata de programatori ca dezvo~1i aplicatii opensource pentru un numar foarte mare de platforme ~i sistemele de operare este Source Forge' . Microsoft a i ncurajal dezvollarea unei comunitlili, numilli CodePlex', axatli pe dezvoltarea aplicaliilor opensource lolosind tehnolog iile Microsoft, precum .NET Framework, WirKIows Presenlation Foundation, XNA etc. pentru sisteme de operare de la Microsoft, cu preponderentli WirKIow XP si Windows Vista.

1.3.7

Sisteme de operare pentru dispozitive mobile

o data cu dezvoltarea hardwareului si a Internetului, un numar din ce in ce mai mare


de dispozili~e mobile inleligenle siau flicut aparilia in posesia ulilizaloril or. A~ numitele smartphoneur;' poseda sistema de operara eu laeilitilti aVar1sate de eonectare la Internel, na~igare pe Web, cilire/scriere de emailuri, folosirea unei tastaturi virtuale atc. Example de astfel de dispozitive sunt iPhooe l da la Apple, BlackBerrye, Nokia E71 T, HTC 8 etc. Cel mai rlispanrj it sislem de operare lolosit pe dispozili~e mobile in general, ~i pe smarlphoneuri in particular este Symbian OS de la Symbian LId. Acesta detine aproape 50% din piata sfstemelor de operare penlru smartphoneuri. Sistemul coniine kernel-ul si 0 serie de aplicatii utile in lucrul cu talefonul mobil. Symbian as olerli 0 inlerfalli de dezvoHare (SDK) in C .... pentru scrierea de noi aplicatii. inliinlatli in 2006, FurKIalia Symbiar1 are ca seop lolosirea unei licenle libere pentru intreg codul platformei Symbian. Windows Mobile este sistemul de opearare ~i suila de aplicalii pentru dispozrtive mobile de la Microsoft. Esle proiectat sli arate simiar interfelei Windows ~i este folosi! cu preponderentli in cadru l d i spoziti~elor Pocket PC. Cota de pialli a Wi ndows Mobile a sclizut constant in uHimii ani pana la 0 ~aloare circa 9%. IPhone OS eSle sistemul de operare dez~oltale de Apple pentru iPhone ~i iPod. Inlarfata acestuia lolose~te gesturi de lip multi-louch - sa atinga ecranul penlru aclionarea unui eveniment iPhone OS olera un numar impresionanl de aphcatii. Detine, in acest moment, ap(Qape 15% din piata dispozitivelor mobile inteligente. Android eSle un sistem de ope rare care lolosesle nucleul Linux. Android este dezvoltat de Open Handset Alliance, un consal1iu infiintat de Gaogle impreuna cu mari companii producatoare de hardware si soltware precum HTC, Intel, Motarala, LG atc. Dezvoltarea acestuia se realizeaza in cadrul unei licente ribere (cu unele exceptii), lucru care permite dezvoltarea relati~ lacila de nai apticatii. in aceste momente, Android are 0 cola de
1hnp1il'ackages .deb;an.orgl\e n ny/ 'hnp,//so urceforge. ne I ' h lip ://www.codeplex.com/ ' hllp,//en .wikiped ;a.orWWil<ilSm ~rlphone 'h lip :/ _.""pi" .co mliphon e/ ' h lip ://www.b I3cktNo .. y.comi ' htlp :lI"ufQp".nokia.comllind pmdocl$ldevice.lnokia .87 1 ' htlp l/www.htc.comlwwwlproductldru m/overview.hlml

C JPYnghted matanar

16

INTRODU CERE iN SISTEME DE OPERARE

piala de dcar 3%, cauzata ~i de apari!ia sa receola. Cezvoltarea Android S8 realizeazA independent de platforma hardware pe care va rura.
UnUlf esle loklsit ca baza pentru mai multe sisteme de operare penln; dispozrtive mob1le. Pe lang1\ Andr~d, LiMo, Maemo 5i Openmoko sunt example de sisteme de operare bazale pe Linux,

1.4
1.4.1

Studiu de caz
Virtualizare. Rularea unui SO dintr-o
ma~ina

virtuala

o ma!1 ina virlua la aSia 0 ap1icalia ce creeaza un mediu de executie penl1u rularea unui ncu sistem de operare, lolosind resursele gestionate de sistemul de operare
gazdA, prin intermediul mecanismelor olarita de masina virtualA.

o caracteristieA particulara a ma~inii virtuale asia capacrtatea acesteia de a ilola procesele ce ruleaza sistemul de operare din interiorul sau de cele ale sistemului de operare gazda. Sistemul de balti, In cadrul caruia (sau peste care) ru leaza ma$in a virtualti se cMama sistem g azda (hostl_ Masina virtuala se mai numeste si sistem oas pete (gues t)_ Aplicatia care permite rularea unui sistem de operare vir1valil at se numes te hipervizo r (hypervisor) sau virtual machine monitor (VMM) sau sistem/solu!ie de virtualizare. Exemp le de solulii de vi rtualizare sunt VMwara, VirtualBox, VirtualPC , Xen , KVM.
Apli<Atii Aplica\ii Apl i<alii

Si<t~m o. ' pet~

IQue.t) I<uport p ~ nt r u
a c~ ~ .~ i

51 <t"'" o.'pet~ IQue,t) I<uport p ~ nt r u


a C ~~ f i

a,Me<toJ, 1

~ a'd

... te) ao"Mecty, 1 ~ a'd". t e)

5i.tem o.<pete IQue <t) I, uport p ~ ntfIJ aceea" a'l1It e ct wr~ h. rdware )

Extensi l P<'ntru ge<ti wn ... MV

Hipervizor (VMM)

Sistem fizie (h ardw(lre)

Figura 1.2: Ma$inll virlual1\ C JPYnghted matanal

CAPITOLUL 1_ INTRODUCERE

17

In general, sistamul gazdA alocA pAl1i din resursele sistemului lizic pentru mai?ina virlualA: un procentaj dedk:at din memoria RAM , un spaliu lizk: de slocare de pe hard-disk-ul catculatorului gazd11 (alocal In prealabil sau In timp leal) pe care ma\lina virluala il va lolosi ca pe un hard-disk propriu_ accesul la dilerite dispozitive perilerice. Accesul ce lui de-al doilea sislem de operare la Pfocesor se lace prin intermediul procaselor masinii virluale, care vor rula alMmi de calela ~e aplk:alii I?i VOf imparti acel ea~i resurse. No)iunea de virtualizare nu trebuie conlundala cu cea de emulare ' . Un emulator traduce fiecare instructiune din sistamul oaspete In instrucliuni specifice sistemului gazda. Prin lolosirea unui emulator esle astfel posibila rularea unui program pentru 0 arhitectura dilerit11 de cea a sistemului gazd11, Un sistam virtual izat va lolosi In proportie cat mai mare sistemullizic gazda, din motive de elieienta. Rolul hipervizorului este de a inter media unele opera)ii privilegiate care nu se pot executa direct peste sistemul fizic gazda, Notiunea de virtualizare este exlinsa si la nivalul ap licatiilor, Programale Java ruleaza In cadrul masinii virtuale Java'. Masina virtu ala Java esle un mediu independent de plattorma care permite execulia in acelasi context a aplical iil Of. Un alt exemplu eSle Common Language Runtime' , ma~ina virtuata lolosita de .NET Framework' . Valgrind (vezi secliunea 14.8.2), Iolosit penlru depanalea programe lOf, este, de asemenea. 0 mal?inA virtual11la nivalul aplica!iil or.

De ce virtuelizare? Dezvoltate i ncii din anii '70, masinile virtuale au Inceput s11 fie folos ite intens odata cu dezvoltarea sistemelor hardware. Cresterea eapacitalii de caleul (procesoare multi-core, memorie) \li a capacilatii de stocare (hard-disk-uri) a condus la aparil ia solu tiilor de virtualizare care sii 1010seascA alk:ient resurse le hardware pusa la dispozi~e , Adaugarea de supor! hardware pentru arhilecturile x86 si x86_54 (AMD_Vs si Intal VT") a condus la accelerarea lolosirii solutiilor de virtualizare atat pentru utilizatorul obisnu it cal , mai ales, In mediul business. Unul din principalele motive penlru lolosirea virtualizarii, ma, a~s in mediul comarcial, este consolldarea incarcartl slstemelor fizlce, i n locul 'olosirii a patru sisteme fizice, se poale 1ol05i un singur siSlem lizie in cad rul d .ruia sa ruleze patru ma$ini virluale. cu elect In diminuarea costuri lor de achiz~ie \li administrare. Un al avanlaj imporlat In reprezinla secorlzarea aplicalll1or. Fiecare masina virrua la eSle un madiu izolal si sigur (sandbox). 0 problema care apare pe 0 masinii vi rluali!. nu va afecta niciun all sislem si va putea Ii diagnosticata rapid lolosind sislemul gazdi!.. Virtualizarea este un concept important pentru construirea de platforme de catcu l sigure. Soluliile de virtualizare permit crearea de instan!e de sisteme de operare sau medII de execulie co limitiiri impuse. Sa pot configura procenlaja de resurse care sa fie lolosile de masina virtuatizata:. Sa asigura astfel un conlrol lin pentru gestiunea resurselor.
, h lip :lIen ,wikiped ia ,o,glwikiIE mulalor
. ht!p.llI<www. j ~va.comle nl~wnloadllnde x.jsp

' h lip :11m . d n,m", osofLeo mie n -u.~ ib<a,yl<ldkOO9ch(VS ,71 ),a'P' ' hllp:llmodn ,m"ro. ofLeomi.. n_u.lnelf,am..wo ,kldefau lta .px http ://www.amd. co m1ulllproduct. hechr>Olog ... $ ... i.tua li~atlonlPag~.Ivi.tua~lation .a.p. ' htlp l /www, intel.eom/lechoologylvirtualizalioroJ

ipynghted matanal

18

INTRODUCERE iN SISTEME DE OPERARE

Per'llTu utilizatorul obisnuil, cel rnai important avantaj al vi rtual i z~ri i aSIa posibilitatea ruhirii mai mullor sisteme de operare. Sisteme de operare diferite, vers iune de sistema operare diferite, pol rula simultan pe ac~~i sistem. Pomirea ~i repornirea unui sistem de operare oaspete se rezuma la interactitmea ell solutia de virtualizare lara a impliea actiuoi asupra sistemului fjzie.
PenlTu un dezvoltator, 0 m~in<'i virtuala rep rezinta un mediu ideal penlru dezvollare ~i

tes tare. Orce pro~ema a ap liealiei pa care 0 dezvollMesteaza va alecta doar sistemul
de ope rare oaspele. Dezvoltarea la nivelu l nucleului (kernel programming) se realizeaza, in general. folosind masini virluale. Scenarii camplexe de monitorizare a performan!ei sau depanare pot Ii implementate pe 0 ma~i na virtuala far1i pierderea productivit1i!ii.
Un avantaj al lolosirii masiflilor virtuale aste mobilitatea acestora. 0 masina vi rlual1i este. de obicei, v1izut1i ca un set de fi~ie re. Mutarea acestora pe un alt sistem de calcul este echiva lent cu migrarea masinii virtu ale pe acel sistem. Sistemul de ope rare din cad rul m~i nii virtuale va ru la in ace l~i mod pe un nou sistem. Este posibil1i migrarea unai ma~ini virtu ale in timp ce aceasta ruleaza, tehnicli denumit1i Live Migration'.

Exemple de

ma~ini

virtuale

data cu proliferarea tehnologi ilor de virtualizare, ultimul daceniu a insemn at aparitia mai multor companii si solutii. Printre cela mai cu noscule solutii de virtualizare actuale sunt VMware , VirtualBox, Virtual PC, Xen, KVM , OpenVZ. Acesle solu!ii de virtualizare ru leaza, in general, pe arhitacturi x86 sau x86_64. VMware, Inc,2 esle 0 compan ie americana care produce mai multe aplica!ii de virtualizare. Cela mai cunoscute SUr'lt VMwara Workstation, VMware Player, VMwara Server si VMware ESX. VMware Workstation, Player si Server sunt aplicatii care ruleaza intr-un sistem de operare gazda (Wi ndows sau Linux). VMware Fusior'l este versiur'lea per'l\ru Mac OS X. VMware ESX. versiunea er'l\erprise, esle un sistem de operare complet peste care se instaleaza ir'lslan!e de ma~ini virtu ale. VirtualBox 3 asta 0 solutie de virtualizare dezvo ltata de Sun Microsystams. Similar cu VMware Workstation . esle 0 apl icatie care ruleaz1i peste un sislem de operare gazd1i (Windows, Linux, Mac OS X, Sofaris) ~i in cad rul ~ rei pot Ii instalale alte sisteme de operare. VirtualBox Open Source Edition este disponibila sub licenta GNU. Microsoft Virtual PC' esta un sistem de virtuafizara pentru sisteme de opera ra din fam ilia Windows. Similar VirlualBox si VMware Workstation, Virtual PC olera suport pentru sisleme oaspete doar din lamilia Windows. Se pol rula si sisleme de operare Linu x, dar cu pasi supl imentari de configurare.
Xen 5 este un hipervizor (virtual machine monitor) creal la Universitatea din Cambridge si dezvoltat actual mente de comunitatea Xen ca software liber, sub licent1i GNU. Xen eSle similar VMware ES X. Are suport i n nucleul sistemu lui de operare Unu x, NetBSO si Solaris. Peste sistemu l de baza pot Ii instalate alte sisteme de operare oaspete. Xen
, hnp 11en .wikiped ia. orgIWikiIl. iV<l_ Mig,a!i<> n . ht!p:!lwww.vmwa.e.co m!

, http://www.virtualbo . or(JI ' httpJIwww.mic", . oft cQmlW indow $lvirtual' pel http) lwww. en .orgl

C :opynghted matanal

CAPITOLUL 1. INTRODUCERE

19

folose~te 0 form a de virtualizare denumita paravirtual izare care permite perlormantli ridica. Paravirtualizarea necesita insa modilicarea sfstemului de operare oaspete pentru a putea rula peste Xen. Daca sistemul de baza olera suport de virtu alizare hardware, aturICi nu mai este necesara modifica rea sislemului de ope rare: electul este posibi litalea rularii unui sistem Windows nemodificat peste Xen.

KVM ' (Kernelbased Virtual Machine) este 0 inlrastructura de virtualizare a nueleului Unu x. KVM olera suport pentru virtual izarea hardware (tntel VT ~i AM DN). KVM este indus in nueleul Linux incep1iI1d cu versi unea 2.6.20. 0 parte din utilitarele necesare sunt lurnizate de QEMU ' .
OpenVZ' este 0 tehnologie la nivelul sistemului de operare bazalli pe Linux. Licenliat GPL, OpenVZ const itu ie baza penlru Parall els Virtuozzo Containers, 0 aplicalie proprietara furnizata de Parallels, Inc: OpenVZ este mai degraba un container decat 0 ma~i na virl ualli. OpenVZ nu virlual izeaza intreg sistemul de operare. Nucleul sistemului de ope rare gazda este Iolosit de toate ma~inile virtuale (denum ite si containere sau madii virtuale). Procesele din cadrul lieclirui container sun! izolale, dar se lolosesle acelasi nueleu. Prezenta acelu i~i nueleu inse amna, totu~i, overhead radus pentru lucrul cu diversele containere rezultfmd in viteza 5i perlormanla ridicate.

Cuvinte che le

programe de baza sistem de operare nueleu (kernel) portabilitate API biblioteci Windows Mac OSX Linux Unix
Intre barl

opensource smartphone virtualizare hipervi zor VMware Virtual Box VirtualPC

""
KVM

Open VZ

1. Care dintre urmaloarele aplicatii peale Ii privita ca 0 componenta a Sistemului de ope rare?

o
o

procesor de text playsr penlru lisiere video

, h lip :11www.linu. -k.m.o' gJpagelMain_ Page ' h lip :11www.non9nu.O '9I'1"mui , http ://w iki .openv z,o ,~ a in_ Pago htlp :l1www.!>...a ll.I. coml...-..

C JPYnghted matanal

20

INTRODU CERE iN SISTEME DE OPERARE

o interpretor de comenz;
o client de email
2. Care din Ire urm1ttoarele NU replezinta 0 resursa partajata in cazul virtualizar ii?

DRAM

o harddisk
I:)

procesor

810S

3. Care dintre urmatorii asia autorul unu; limbaj de programare?

o Larry Wall
I:)

linus Torvalds

o Wi lliam Henry Gates III


D Andrew S. Tanenbaum

4. Care dintre urmatoarele NU aSia 0 funq;e a sistemului de ope rare?


o controlul accesului la memoria

o cautarea 5i elim inarea programelor virus o asigurarea comunicArii intre procese

o organizarea fi~ierelor in direcloare


5. Care din urmatoarele sisteme de ope rare NU esle folosil pentru dispozitive mobile?

o o o o o o
o

OpenSolaris iPhone as

o SymbianOS
Andro id

6. Care din urmatoarele tehnologii de virtualizare ruleaz;"i NUMAI pe un sistem Linux? VirlualBox VMware VirlualPC OpenVZ

7. Ce reprezint;"i termenul GNU din distriburie GNUlLinux?

o
o

0 anlilop;"i din Afr ica 0 anagram;"i a cuv;"intului gun (arma) un proiect care produce 0 componanla importanta a aplicatiilor ca rulaaza peste nucleul Linu~ compania care se ocupa de dezvoltarea nucleului Linux C JPYnghted matanal

o
o

CAPITOLUL 1. INTRODUCERE

21

8. Care din urmAtoarele sisteme de operare are cea mai mare cotll pa piata sistemetor desktop?

o o o o o o
o o

Windows Mac OS X
Li nu ~

OpenSolaris

9. Care din urmllloarete sisteme de operare are eea mai mare cotll pa piata dispozitivelor mobile intetigente?
Windows Mobile iPhone OS Android SymbianOS

10. Care din urmAtoa rete sisteme de operare este eet mai vech i?
ODDS

o o o

Uni~

Unu x Open6SD

C JPYnghted matanal

Copyrighted material

Capitolul2 Instalarea Linux. Configurilri de bazil


Unix is Ihe answer, but only if you phrase the question very carefully

Ce se inva!i din a cest capitol ?


Ce aSia Linux Dislribu!ii GNUI Linux Parti!ionarea discului: pregatirea pentru instal are Instatarea Kubuntu Inlertala cu utilizatorul: interfala in linia de comand<1
Autentilicarea in sislem

Conlig urari de baza inlr-un s istem Unux


Interoperabilitate LinuXiWindows

2.1

Linux. Distribufii Linux

Terme nul "Linux" esle deaeori lolosil pentru a rep rezenla 0 intreaga cl asa de sistema

de operare ~i IlU un sistem de operare concre!. Inilial, lermenul "Unux " a lost folosi! penlru a raferi nucleul Linux ' (Linux kernel), sistemals de operare bazale pe Linux si pe utilitarele din proiectul GNU 2 l iind numite sis/erne de operare GNU/linux. Ulterior, termenul a ajuns sA fie folosit pentru a referi atat nocleul Linu~ eM ~i programele care furx:lioneaza cu acesta. Linux sunt dezvoltate ca pro iecte open source (vezi capitolul 14) ~i, de~i sunt dezvoltate lntr-o maniera colaborativa. sunt produse independent unele de altele. Licenlele sub care se alia aceste proiecte permit
, h ttp : //www . ~ ~ro~ l. orgl ' http l lwww.gnu.orgl

o mare parte din u!ilitare le folosite in

23

C JPYnghied matanal

24

INTRODU CERE iN SISTEME DE OPERARE

redistribuirea codului sursi'l, facfmd astlel pasibila aparitia Ur'lor noi pro iecte mai mari, care sa adl.me la un loe programe dezvoltate independenl si sa Ie laea disponibile la un

lac sub forma unei distribtJtii.


o dis tribul ie Lin.... reprezinta astlel 0 co leC\ie de programe, unele din ele modihcale special penlru acea distribulie, care SUI,)! combinate cu 0 versiune de kernel. de muile

or; 5i aceasta modiiicatA pentru aeea distribulie, pentru a crea un sistem de ope rare.
DistributiilB Linu. au ci'lp<'ital de-a lungul limpulu; cele mai variate forme si destinatii.

Unele au ca seop principal utilizarea lor pe servere. allele sun! destinate ulilizarii pe
SsistemB desktop, iar allele sun! optimizatB pentru a oc upa cAt mai puline resurse putand asUel Ii lolosite in sistemele embedded.

2.1.1 Principalele

distribu~ii

Linux

in momentul de lata exista peste 300 de d islribU\ii active (care sunt delvoHate in cont inuare). Dintre ele doar put in peste 10 sunt cunoscute la scara larga, liind utililate pentru seopuri generale. De cele mai mutte ori 0 distribulie nu eSle dezvoltatA de la zero, punclul de plecare constituindu-I un anumit stadiu al unei alte distributii. Noua distribujie paate mosteni de la cea d in care este dezvottalA d iverse elemente, cum ar Ii modul in care se instaleazA aplicalii noi, locul in care se gasesc diverse l isiere de conligurare, lelul in care aratA aceste lisiere elc. Popularitatea d istribuliilor poate Ii urmaritA pe pag ina web http://distrowatch.com . Aici esle rea lizal un clasament al diSlrilxJtiilor pe baza numarului de accesari zilnice ale iniorma!iilor des pre d istributie pe pagina amintiH!:. Acest clasament nu ia in considerare efortul depus pentru mentinerea distributiei, dar arata in mare mAsura interesul manilestat de ulilizalori. Cele mai accesate 16 distributii in ultimul an (Ia data de 19.09.2009) sunt prezentate in tabelul 2.1 (coloana "Accese" prezinta numarul mediu de accese zilnice pe periOada ultimut an; Distribulia SLS esle descrisa online ' ). Pe langA distributiile de uz general (pentru servere sau penlru calculatoare personale) exislii ~i distribulii dedic ate unui scop precis (one purpuse) - spre exemplu Musix', distributie dedicatA producerii de maleri al multimedia. SystemRescueCO', d istribulie Live CD (veli sectiunea 2.2.3) spec ializata in repararea unui calculator pe care sistemul de operare nu se mai inijializeaza din motive ce l in de software. sau BackTrack', distribuJie Live CD care olen'\. utilitarele necesare atacarii un ei retele de calculatoare.

o clasA aparte de distributii 0 reprez intA cele care au ca tinta ocuparea a cAt mai pulin
Cea mai cunoscuta distribujie ce urmareste aces! lucru este spat iu. DamnSmaIiLinux", dislributie care reuseste sa includA in doar 50MB 0 d istribut ie completa cu inter/alA grafica si cu toate aplicaliile uzuale.
, hnp 11en .wikiped ia. orgIWikilSortiand ~lino. _ Sy,'e m ' hnp:iIwww.mu. i. o rg.8,leni

, http://www.s y. reseed .orgl


httpJIwww. remo l ee.pIoiI . or~acklf.. ck.hlml

http) Iwww.damn.m. lliiou .org!

C JPYnghted matanal

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

25
Iii

TabeluI2.1: Cele mai

Iii

"

Pe langa aceslea, comunilaWe au dezvollat distribulii caracteristice unor anumite zone geografice - Kiwi Linux 1 este 0 distr ibutie adaptata utilizatorilor d in Romania. d islribu!i ilor ~i lalul in care au derival una din alta. 0 simpta cautara a sirului de caractere "Iinux dislro timeline'" pe Google Images' va oteri cateva zeci de varianle ale acestei diagrame. 0 versiune care contine doar principalele distributii este prezentata in figura 2.1 .

Pe In ternet sunt disponibile mai multe diagrame care prezinta

evolul~

2.1.2

Debian. Ubuntu

Una dintre primete distribulii aparute este Deblan. Din t 993 si pana in prezent aceasta distribu!ie a reprezentat punctul de pleca re a peste 40 de d i stribu~i. Unul dintre cele mai mari avanlaje ale dislribu!iei II reprezinta suportul bun disponibil pe Inlernet, alat pe pagina web ofiCialaJ cAt Si pe alte sileuri. Distribu!ia ofera posibi litalea de a instala 5i configura sistemul de operare lolosincl pachele, liind d isponibile peste 25000 de pach ele' - exista disponibi l suport pentru actualizarea lacila si organizata a sistem ului de operare. De asemenea sunt disponibile Irei varianle ale dislribu!iei: slable, testing si unstable, exitAnd astlel posibilitatea alegerii gradului de stabil itate si noutate dorit. eea mai cunoscuta distribulie derivala din Debian esle Ubuntu ~ . in momentul de fala Ubuntu este si distribu!ia cu cea mai mare popu laritate dintre toate distribujiile exislente, fiind pe primul loc in clasamentul dislrowatch,com de aproape patru ani. Atu ul principal
1hnp,IJIo. iwilinu . o!g/ ' h lip :11im ages.\/OOg"'.co mI ' h Itp :I/www.d e bian .oryt.,-"porl! ' in ""rsiunu Oeb ian ~ .O (Ioonny) http ;l/www.ublJntu .c om

C JPYnghted matanal

26

INTRODU CERE iN SISTEME DE OPEAARE

, , ,

o o

o o o o o o o o , , , ,

1 .-

T*

.,

~ . ~ ' ----~--~--nr T ~ I -T I --r+

"':=' If

I I ~ II ,. ~ ! ; ; ---1 , ;:' - +1 --+-+-

.I..

"~rTT1.-~,~t l ++~~ ;,~ 1 ~!


I

~r

~ :::p=

I! +-+-+-+-+-+-

o o o o o o o o , , ,

Figura 2.1 : Evolu!ia principalelor distribu!ii Linux

al acestei distributii esle usurinla in ulilizare. Oistribu!ia conIine loate aplica!iile de care
un utilizator are nevoia 5i reali zeazE!. multe dintre conligurE!.ri in mod automat. Un avantaj

mare pe care il olerE!. esle suportul disponibil pe forumul aliciaL

Nivelul de adoptie al acestui sislem de operare a creseu! usor odata cu distribuirea acesluia preinslalat pe calculatoare. Prima ini!iativa in aces! sens a avuto unul dinlre

cel mai man prodl.'Catori de e<:hipamente IT care, in mai 2007, a anuntat

ca. va seoate

pe piala ca lClllatoare desktop 5i laptop-uri care au preinstalat Ubuntu,' in prezent, un mare num.:ir de computere desktop, laptop dar si de tip netbook sunt vAndute cu Linux preinstalat.

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

27

2.1.3

Tipuri de distribu,ii Linux

in IT exista douA concepte importante legale de stabilitatea, siguran!a si gradul de noutale al aplicaliilor (1;i nu numai): ~ersiun il e stabile (slable ) si cele cu un grad de noulate richcat (bleeding edge). Acesle doua conceple reprezinlA doua exlreme ale modului in care esle dez~oltata 0 aplica!ie. Verslunile stabile (slable) reprezinta ~ers i un i ale programelor care au lost testate un timp indelungal, ale cAro r buguri au losl rezol~ale, care nu prezinl<''i proble me de incompatibilitate ~i care au un grad de siguranlA ridica!. intro versiune stabilA este destul de improbabil sa apara brese de securitate, Aceste ~ersiuni apar rar deoarece este nevoie de l imp pentru a crea stabilitatea necesarA. stabile este acela ca aplica!iite nu prezinta nieiun grad de noulate. De mu~e ori pot sA dureze ani pflnil. cand 0 nouA ~ersiu ne a unei aplica!ii sA lie introdusA inlro ~ersiune stabil a. a unei distri bulii Unux, Versiunile stabile sunt lotosite i n special pentru severe daloritA gradului de stabilitate si siguran!A oleri!. Versiunile cu un grad de noulale ridical (bleeding edge) reprezintA versiuni recente ale programetor, ~ersiuni care includ ultimele imbunAtAtiri ~i ino~atii. Aceste vers iuni apardestul de des, Irecven!a lor de apari!ie l iind in mare masurA inlluentalA de mArimea comunitalii ce dez~o~a aplicatia si de imbumilatirile aduse. Dezavantajul versiunilor cu grad de noutate rid icat este acela cA prezintA un grad de slabilitate ~i de siguran!A incert, de multe ori scazut. DatoritA testArii slabe a aplica!iilor (d in lipsA de timp), acestea prezinta deseeri gAuri de securitate sau probleme de slabilitale, Versiunile cu grad de noutate ridical sunt recomandate celor care doresc sA aibA ce le mai noi tehnologii implementate cu orice cost. Ele nu sunt recomandate pentru servere, ci pentru calcu latoare unde slabilitatea si siguranta nu sunl elemente che ie. inlre cele douA tipuri de aplica!i prezentate exisla numeroase niveluri de compromis. Alegerea unui asHel de nivel pentm un sistem de opera re (m ai aproape de Slabi litate sau mai aproape de cele mai noi tehnologii) trebuie 11I.cuta )inand cont de scopul calculatoru lui pe care va Ii instatal si de gradul de securitate ~i de stabililate pe care trebu ie sA it prezinte acesla. DistribUliile au mod uri diferite de tralare a conceptelor slable Spre
e~emplu, ~i Deza~ant ajul ~ersiunilor

bleedingedge.

distribu!ia Debian poate Ii instalatA in 3 versiuni:


aplica~i

siable - versiune stabil1l.. cu

testate mult timp

tesling - versiune de testare , dupA 0 perioadA de timp devin e vers iunea stable unslable - versiune care incorporeazA programele in vers iunile lor bleedingedge, devine versiunea testing dupA 0 perioadA

Ubuntu are un cic lu de dez~oltare de 6 luni (in englezA release cycle - ciclu de lansare). Acest lucru presupune dezvoltarea distributiei timp de S iuni si lansarea unei nOi vers iuni dupA aceastA perioadA. in prezent, Ubuntu lanseaza distri~!i i in aprilie (numarul X,04) si i n octombrie (num1l.rul X. l0) - X reprezinlA ultimele douA c~re din an (pentru 2009 9, 2010 - 10 elc.).
~,.,

...., ...."'.1

28

INTRODU CERE iN SISTEME DE OPERARE

Pe IA091\ aceste versiuni. Ubuntu are si 0 vers iune LTS (Long Term Support) cu un ciclu de dezvo~are de 2 ani, versiUI18 pentru care asIa oleri! supor, limp de 3 ani penlru sistema desktop (S ani pentru sistema server).
Pentru fiecare versiune de Ubuntul Kubuntu, cele mai utilizate Ire; varianle de instalare

sunl:
Instala rea server asle rna; apropiatA de Oebian
~i

de slabilital ea acestu ia. Este

recomandata pentru calculatoare care 'rabuie sa alare stabilitate 5i Siguran!a.


Instala rea deskto p (cea rna; uzuala) permite ulilizatoru lui 51\ instalaze varianta desktop a sistemului de operare folosind un aSis!Snl in mod grahc. Pentru 0 buna lunctionare, S8 recomanda utilizarea unui sistem cu eel putin 384MB de RAM. Instalarea alternate pe rmite utilizatorului sA instaleze varianta desktop, insA asistenlut de inslatare nu va mai Ii unut in mod gratic ci unut in mod lexl, bazal pe asistentul de inslalare al distributiei Debian. Din acest motiv varianta alternate poate Ii instalatA ~i pe sisteme cu mai pulin de 384 MB de RAM. Un all avantai al variantei alternate este acela ca permitea rea lizarea unei partilionari avansale a hard-disk-ului, oferirod suport pentru utilizarea RAID ' sau LVM' (ambele tehnologii perm it real izarea de part itii care includ spatiul de pe mai multe hard-disk-uri). Pe IAnga aceste vers iune mai exista ~i versiunea Netbook Remix (pentru calcu latoare de tip nelbaok).

2.2 Instalarea Linux


2.2.1 Alegerea distributiei Linu x

Dupa cum a lost mentiona! si in sec!iunea 2.1 , exista mai multe tipuri de d istributii. CAteva criterii de alegere a unei d i stri bu~ i au fost men\ionate anterior, Principalele criter ii lolosite In alegerea distributiilor sunt: nivelu l de stabilitate ~i gradul de noutate al aplicatiilor (in relatie cu nivelul de stabilitate, d upa cum a fost mentionat antenor) suportul oferit de comunitate (s au de compan ia care dezvoltA distributia) lamiliaritatea cu anumite compone nte ale sistemulu i, In principal sistemu l de pachele (aces ta nu reprezintA un criteriu loarte important pentru noii utilizaton ) suportul pentru hardware-ul dispon ib11in calculator - distribu!iile pot Ii disponibile pentru platforme dilerite (procesoare dilerite) si pot oferi acces fac il la dnver-e pentru hardware variat resursele disponibile pe calculator - in cazul in care resursele calcu latorului pe care va instala Linux sun! scazute, se recomaroda cautarea unei distribu!ii cu cannle scazute
1Redunda nt Am' , 01 Inex!"' n..... Disk. ' Log;;:a t Vo"'me Ma nager

C JPYnghted ma'ana.!

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

29

dastinatia sistemului da operare - in cazu l in care sa urmareste utilizarea Linux pentru 0 anum itA activitatel sarcina se rBComandA instalarea unei distributii special concepute (in cazul in care exisla) - (vezi sec!iunea 2. 1, 1). Oistribulia aleasa ca supor! pe ntru aceasla carle esle Kubunru 9.10 Desktop', distribulie derivata din Ubuntu. care: olan''j un nivel acceptabi l de stabilitate raportat la nivalul de noutate al pachetelor are 0 comunitate loarte larga, formata din toti utilizatorii da Ubuntu si darivate ale acesluia olera suport lacil pentru hardware proprielar, hardware care nu are drivere open source disponibile implicit in distributiila Linux; majoritataa dispozitivelor comune sunt suporlate poate lunc!iona bi ne pe un sistem desktop actual, dat fiind ce rin!ele acesteiaZ sistemul pe care va Ii instalat va Ii utilizat ca desktop

2.2.2

Pregatirea sistemului

Verlficarea eerlnlelor slstemului. Spaliul de swap Fiecare sistem de operare (~i implic~ distribu!ie Linux) esle insotrt de 0 serie de cerin!e minime hardware. Aeeslea sunl recomandari care, in cazul in care sunt indeplinite, asigura buna lunC!ionare a sistemului de operate. in anum ite situa!ii, programele care se ocupa de inslalarea sislem ului de ope rare vor detBCta r.eindeplinirea cerin!elor minime hardware ~i vcr raluza cOI1tiuarea procesului de inslalare. Oistribu!ia aleas a in aceasla carte (Kubuntu 9. 10) ale urmAtoarele cerinle hardware (recomandari, in parantazA se regasesc cerinlele minima): prccasor x8S 700 MH z (m in: 300 MHz) 384 MB RAM (min: 64 MB RAM -Ia instalarea lara madiu gralic) 8 GB spatiu pa HOD (m in: 4 GB) placA video capabila sA aliseze rezolutia I024 x768 (min: 640x480) pentru instalare si aclualizare a sistemu lui - conexiune la Internet (min: CDROM sau placa de retaa) Printra principalele probleme ce lin de ulilizarea facila a unui sislem de operare 0 reprezintA lipsa memoriai RAM. Sistemul da operare loloseste pentru stocarea datelor temperare memoria RAM. Aceasta are avantajul unui timp de r3spuns ~i al une; viteze de cilira loarte mari, insa esla limilatA din punclul de veclera al capac itAlii (s isteme le ac tuala nu au, in mod normal, mai mull da 2GB da memoria RAM). Atunei cAnd intreaga memoria RAM aste umplutA cu data, existA douA solutii alternative. Prima din ele constA in nealocarea de memorie RAM penlru programe le
, http ://www .~lJbo.mlu .0'lP ' http.;I"' .. lp,<.Jbontu,cornlCQmmunilylln.tallal"nlS~lemRequireme nt.

C JPYnghted matanal

30

INTRODU CE RE iN SISTEME DE OPERARE

care cer acest IUCfU. Ca urmare programul respectiv nu va putea lunctiona si va genera BrorL At unei cancl programul in cauz3 asle unul vital pentru func!ionarea sistemului de operare, funct ionarea lntregului sistem de operare poate deveni instabilA. A daua varia nt1\. aSle aceea in care dalete care ar trabui slocale in memoria RAM sunt stocate intr-o alta memoria (pe hard-disk sau pe 0 memoria pEl USB). Oeoarece memoria RAM eSle rea mai rapida memoria din sistem, utilizarea unui all tip de
memoria

va

alrage dup:!\ sine penalizAri de perlormanW:. Aceasl<''i solutie S8 numes!e

swapping dalaritA modului in care funclioneaza: dacA memoria RAM asle plina 5i apar cereri pantru alocarea de noi zone de memoria, 0 parte din dalate allate deja in memoria RAM sunt mutate pe un alt tip de memorie, in acest te l eliberandu-se memorie RAM. in momentul in care datele mutate anterior pe un alt tip de memorie sunt cerute de pl"ograme, ele sunt mutate inapoi in RAM (daca nu esta suliCientloc in acel moment se va elibera 0 parte din RAM copiind alte date din RAM pe suporlul de memorie).
Cea mai uzuala ~i ieltina solu!ie de memorie lolosila penlru swap este hard-disk-ul (vezi secliunea 5.6). SiSlemele de ope rare de lip Linux lolosesc in general a zona dadicata pe hard-disk numita pllrti!ie de swa p. Aceasta partitie are in gelleral dimensiuni apropiate de cele ale memoriei RAM (de ord inul 12 G8). Windowsul ~i sislemul de operare Mac OS X lolosesc pentru swap li~ iere a caror dimensiune se poate extinde sau micsora in IUIlC\ie de necesitati.

Parlilionare o pattllie reprezinta 0 diviziune logica a unui harddisk. Prin parti!ionare un hard disk este impartit in mai multe parl ilii . Pe un harddisk poate exista 5i 0 singura. partitie. Un harddisk este nepar'i!ionat atunci cand pe el nu exisla. nicio parlilie. Partition area unui hard-disk illace pe acesta sa. aiba aceea~i comportare ca mai multe hard-disk-uri independenle. Di/erenla intre partilii ~i hard-disk-uri reale consla. in /aptul ca parliti ile de pe un hard-disk lolo sesc acelea~i resurse hardware (si. implicit, in cawl une; delocliuni hardware a hard-disk-ului, dalele de pe loate parti!iile POI deveni inaccesibi le). in plus partitiil e pol Ii redimension ate dupa. ce au lost create, in schimb discurile au 0 dimensiune lixa. inlro partitie se poale crea un sistem de lisiere pentru slocarea lisierelor sau partilia poale Ii ulilizala. in scopuri speciale, cum sunl de exemplu partitiile de swap. Parlitiile de swap nu lolosesc un sistem de lisiere ca NTFS. FAT32 sau ext3. Sistemul de operare are melode proprii de a organiza dalele in ele si de a Ie lace usor de accesat (vezi cap iloluI4). Avantajele
utili~ri i

de parti!ii sunt urmatoarele:

posibililalea instalarii mai mu~or sisleme de operare pe acela~i hard-disk - se poate alege ulterior. la pornirea sistemu lui de calcul. care din ele va Ii lolosit (vezi seC\iunea 6.2); posibililalea de a separa datele personale de dalele lolosite de sislemul de ope rare ~i de programe - daca dalele personale ale utilizaloril or se gas esc pe 0 atanal

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

31

alta partitie, sistemul de operare ou mai poate Ii pornit si este necesarA reinstalarea lui, datele nu vor Ii alectate in niciun lei; se poate utiliza acelasi spatiu de swap intre mai multe sisteme de operare de tip Unux instalate pe acetasi sistem de calcut (Iolosind aceea~i partilie de swap penlru toale).

Tfpurl de partl,.. Primul sector l izic de pe un hard-<lisk poartA numele Mastllr Boot Rllcord (MBR) conbne (vezi sectiunea 6.2.1). Acest sector are 512 octeti .si. . inlormabi . importante despre modul in care este partitionat hard-<liskul.

&

DacA acest sector esle sters sau suprascris toale inlorma\iile de pe harddisk se pierd. ' In cadrul MBA se gasesc inlorma~i despre liecare parti!ie de pe harddisk. Aceste informalii sunt stocate lntro tabela de partilii prim are care are doar patru intrarL Prin urmare MBRul poate reline inlormalii pentru door patru parli!ii primare. Una dintre aceste patru partitii va Ii marcata ca activa ~i de pe ea se va incerca pornirea sistemului de operare. o parti! ie primarii poate co ntine doar un singur sistem de I~iere. Pentru a el imina limitarea pe care 0 prezintA MBRul (de a putea reline doar patrv parti!ii primare) a lost creatA parti!ia extinsa. Acest tip de par1~ie ocupa tot 0 intrare in tabela de parblii din MBR insa poate conIine la randul sau mai mulle partl!iI loglce, liecare partilie avand asociat un sistam da fis iera. NumArul da partitii logice incluse introO partitia extinsa este limitat doar de dimensiunile part~iei extinse si de strvctura de date lolosrta pentru a retine inlormaliile despre parli!iile logice. Unele Sisteme de operare ITebuie sA lie instalate pe partitii primare pentru a putea porni. in aceasta categorie intra MSDOS ~i toate vers iunile de Windows care depind de el (Windows 3.x, Windows 95, Windows 98, Windows Millenium), precum si BSD.

2.2.3

live CD

PenITu Ubuntu 9.10 (si derivatele prec um Kubuntu) varianta grafica de instalare este disponibilA sub forma unui live CO Un Live CO (sau live DVO) este un CD (DVD) care conIine un sistem de operare care poate Ii pomit direct {bootabil}, larA a avea nevoie de instal area pe un harddisk sau de prezenta acestuia. Exista 5i live USBuri, dispoziUve USB bootabile cu sisteme de ope rare care au. de multe ori, adAugatA si posibilitatea scrierii informa!iilor pe USB {comparativ cu live CO/OVOurile unde inlormatiile se retin implicit doar in memorie}.
' c hiar daci info rmali'''' d in MBR .~ pierd, folo$i nd util ~are 'f>"Cia~late ." pot recup"r. date'" de "" hard d isk prill recunonte",. tip.relor ca,acte ri. ti<:e . i.temelo, de fi,ie",

.1

32

INTRODU CERE iN SISTEME DE OPERARE

Termenul "Live" vine de la faptul cA pe un singur disc se gAs esc (cate fis ierele r'lecesare
func!ionarii unui sistem de operare,

mra a Ii necesara cop ierea unl.li fi~ier pe

hard-disk

inaintea pornirii sistemului de ope rare.


Astfel un live CD nu modi/iea in niciun fel sislemul de operare instatat pe hard-disk,

excep!ie Uicfmd situa!iile c;'md utilizatorul doresle in mod expres aces! lucru. Un sistem
de operare prezen\ pe un live CD esla totusi unul normal, astfel inci11 are nevoie de

existenla unui suparl penlru a putea salva informatii de stare in fisiere etc. Pentru a rezalva problema lucrului cu fisiere, in cond itiile . . in care in mod implicit nu se
lucreaza cu un hard-disk, un live CD !oloseste un ramdi sk (0 portiune din memoria RAM) precum un hard-disk. Toale dalele care se scriu in ramdisk sunt accesibile pe loala perioada in care sislemul de operare ruleaza. Atunei cand acesla esle opril. dalele din RAM se pierd ~i, implicil , tot continutul ramdisk-ului eSle ~ters. De aceea, la oprima unui sistem pornit de pe Live CO, sistemul de ca~ul revine la starea anterioara pornirii. Utilizarea unei portiun i din memoria RAM pe post de harddisk olen! avantajul unui timp de acces si a unei rale de transfer mai bune decal in cazul unui disk. Oezavanlajul este acela ca aplieatiile vor avea disponibila 0 cantitate mai mica de RAM. Pentru a putea ru la in cond i!ii normale un live CO are nevoie de 5t 2MB de memorie RAM. m inimul necesar liind 256MB.
A~adar un live CO ofera pos ibilitalea teslari i ~i ulilizarii unui siSlem de operare in condibi de deplina siguranta penlru soltwareul instalat pe sistemul de ca~ul. De multe ori, Live COurile sunt lolosrte pentru recuperarea datelor allats pe 0 partitie ce nu mai poate Ii accesata d in sislemul de operare instalat pe hard-disk (spre e~emplu atunci cand sistemul de operare nu mai pomeste).

2.2.4 Instalare Kubuntu


Kubunlu este 0 distribu!ie derivata din Ubuntu, distributie care lolose~te ca desktop environment KOE i n loe de GNOME (vezi seqiunea 13.l). Kubuntu este parte a proiectului Ubuntu si lolose~te aceeasi arh itectura, aceleasi repository-uri ~i aceleasi pachele ca ~i Ubuntu (vezi seqiunea 3.2). Pentru a instala Kubuntu (si in general oriee distributie linux) pe hard-disk este nacesara crearea a cel pu!in doua parti!ii: una pe care va Ii instalat sistemul de operare 5i una perliN swap. Acest lucru poate Ii realizat inaintea instalarii propriu-zise (Iolosind programe specializate in adm inistrarea partitiilor cum ar Ii fdisk. GParted, PQMagic etc.) sau poate Ii realizat in timpul install'irii folosind utilitarul de partitiooare pus la dispozi~e in acest serlS de programul as istenl de instalare. Instalarea Kubuntu 9.10 (va rianta Desktop) incepe prin inlrOducerea Live COului in unitatea opticl'i ~i repornirea ca~ulalorul u i (allemativ, se poale realiza inSlalarea de pe USB stick) . In cazul in care BIOSul nu aste conligurat sl'i in~ial izeze sistemul de operare de pe unitatea opl ica (USB stick). trebu ie realizata aceastl'i conligurare. Oupl'i ce calculatorul a ini!ializat sistemul de operare de pe CO, va Ii afi~at un acran ce permite alegerea modului in care va Ii lolosit live CO-ut (Iigura 2.2)
~,., ...ov ... atanal

CAPITOlUl2. INS TAlAREA lINUX. CO NFIGURARI DE BAZA

33

Figura 2.2: Alegerea modului in care va Ii lolosit Live CDul Prima op!iune din lisla va porni Kubuntu 1010 sind configurarile implicile. Din mediul grafic porni! se poate alege ulterior pornirea instalarii. A doua op!iune (Install Kubuntu) va porni direct instal area. Check disc fordefeclS este util pe ntru verilicarea CDului. Memory lesl va porni un test al memoriei RAM , util pentru depanarea problemelor hardware atu nei cand memoria RAM este suspectata ca ar Ii defecta. Oupa ee este aleasa prima op!iune sistemul de operare va Ii ini!ializat. Desktp-ul implicit din KUbuntu este prezenlat in ligura 2.3.

._,-

-, --_..
,_ .""' ........

Figura 2.3: Oesklopul implicrt allive CDul ui Kubuntu In acest moment KUbuntu poate Ii lolosit ca live CD. Pentru a il instala pe harddisk, se va accesa pictograma "Install Kubuntu 9.10" de pe desktop. Rezultatul va Ii pornirea unui asistent de instalare (figura 2.4).

"
_ .. _

INTRODU CERE iN SISTEME DE OPERARE

...... """"'" ........ .... "-, ..... ..... .................


_.-

_ _ -.... -- - . . _ ... --- I . ._~.-- ,~-.,- ~

.... _ _ .... _ _ _ _ ......

... ............ '"


rim<~

..

-,--~.-~-

......

'-

~~

---

.......... _"""'

-. -' ............... ......


"""

_. _

Figura 2.4: Alegerea limbii folosit<'\. de asistentul de instalare Prima elap1i consta in alegere limbii 101 0sil1l de asislentul de instalare. Elapa urmatoare permite alegerea locului in care S9 gAseste utilizatorul (vezi figura 2.5). AceastA
conligurare are elect asupra fusului Ofar ce va Ii stabil i! pe ntru calculator.

---- ----._,-~_

Wh . ... . r. you?
___
~

... _

.....

_..-~,

...

,_ .... ",-,"" ~-'""""

Figura 2.5: Alegerea locului In care se alia ulilizatorul


Pasul urmator esle reprezental de alegerea felului in care sun! amplasale laslele pe tastaturA (keyboard layout) (Iigura 2.6). Dupa ce se rea lizeazA aceastA eonligurare urmeazA pasul eel mai important din cadrul lnstalArii: parti!ionarea hard-disk- ului (vezi ligura 2.7) Discul poate Ii ~te rs integral. caz in ca re datele deja existente vor Ii ~terse. sau poate Ii partiiionat manual, alegAnd dimensiunea partitiilor si tipul lor. in continuare va Ii prezentatA partilionarea manualA.

CAPITOlUl2. INSTAlAREA lINU X. CO NFIGUR ARI DE BAZA

35

...... -~-- . . -,.,.

,. ,. - -..

... . .

, , ',

~ .

_." . .. " , . , .

, ','

.. , , ..,

Figura 2.6: Alegerea lelului in care sunt amplasate tastele pe tastalurA

--

_ . ,.._ .. ...---, _ ..... _ ..---

Figura 2.7: Parli!ionarea manualA a hard disk ului in cazul in care diseul este neparlilionat este necesarA erearea unei noi labele de parlilii apasand bulonul New Par/ilion labie. Rezullalul va Ii afi~area labelei de parli!ii, prezentatA 5i in ligura 2.8. In cazu l in care exisla deja partitii pe disc, aceslea vor Ii ali~ale in tabela de parti!ii. in conlinuare, se presupune eli harddiskul nu esle parti\ionat si se vor crea doua part~ii: una e)(/4 ~i una penlru swap. Pentru a realiza acest lucru se apasa bulonul Add... din fereastra care prezinla tabe la de partitii (figu ra 2.9). Oupa. cum se observa in ligura 2.9. partitia e)(/4 este primara, are 4096 MS, este creatE! la incepulul spa!iului liber 5i va Ii accesala de sistemul de operare prin direc!orul I (moun/poinl) .

36

INTRODUCERE iN SISTEME DE OPERARE

p"" ....... p,IOt1 I'I G~'

.... ....
,

"

--

"-'-,

16'

.. -

. ~,-~----

Figura 2.8: Tabela de parti!ii - initial discul nu are nicio parti!ie


.. 0 <...............
ern _ ... w ...,"I<lon

~"'_M ' _

-.. c .........~ ...

.-"- -


,.
,

h~

.... _

.. ".,._

!!

.,.

Figura 2.9: Crearea unei parti!i;

--

-, ""_"'_M. _
"

Crute _ "" .. p.,,1I<1on

---~-.-

. ",,---

( _~N

~-.--

'"

-.
.


,
wi

.. .-

Figura 2.10: Crearea ul"lei partilii swap

Parli!ia de swap (hgu ra 2.10) eSla tal primarii, are 197 M8 5i 9S19 c real;} la lnceputul
spal iului tiber ramas. Ea nu va putea Ii accesata printr-un director, ci va Ii 10105ilo3 de

sistemul de ope rare in mod transparent.


Aceasta schema de parti!ionare esle pur demonstrativit parli!ii, labela de parti!ii arala ca in ligura 2.11. Dupa crearea celor doua

Dupi:\ crearea part~iilor, Irebuie dalele personale ale ulilizalorului: numele lui, numele de utilizator dorit, parola si numele sta!iei (hostname), As istentul de instalare mai permite si alegerea modului de autentificare in sistem ~ i daca directorul cu dalele uti lizalorului

CA PITOlU l2. INSTAlAREA lINUX. CO NFIGURAR I DE BAZA

37

...... -... .... -

P.... .,..

",,"I'lo~.

_.-.-

'"

,.

" .,

-- '" ~

--.~ -

Figura 2.11: Tabela de partitii dupa ce au lost create cele doua partitii va Ii cr iptat (vezi figura 2.12) (\/ezi sec!i unea 10.5.2).

-_ . ,...--_ ....... .
_
-.----~--._~_ ~

Who ... you)

.. , --,,--. .. .... --, ._ __ _ N_ -----. ,--,----_ .. ..... _ -.... ..............,


.....
-~
~

...... _ ....... 'M


~

_--

~.----.--

..--.--...... --""..... --_...... _.._----~

Figura 2.12: Configurarea datelor personale ale utilizatorului In pasul urmator (ultimul pas al instalarii) pot fi revizuite configura rile real izate. Apasand pe butonul Advanced... se poate conl igura unde va Ii instalat bootloader ul (vezi sec\iunea 6.2) bool loader/GRUB (\/ezi figura 2.13). Penlru a incepe copierea fisiereior pe hard-disk se aparli butonul Install. La terminarea instalarii va Ii afi~at mesajul din ligura 2.14. Oupa inchiderea asistentului de instalare sislemul de operare va rula in continuare ca Live CO. Pentru a porn i sistemul de operare proaspAt instalat , cak:ulatorul trebu ie repornit.

38

INTRODU CERE iN SISTEME DE OPERARE

-" ..... ----,--""


...---.-._-..

-"

~---

_..._--_.
e

Figura 2.13: Ver ificarea datelor si alegerea harddisk-ului pe care va Ii instatal GRUB 0 ......." ... ( ... P ...

.....

.... , ... ""'. , ... ..... rt _ _ , _ _ .....


" " . . '" _ ..... "" ,... .... oil

--_ .........
_ I

-~

- " ' - "',

.............

oot . . .,, _

[ _

,................

Figura 2.14: Mesajul care marcheaza inslalarea eu sueces a sistemului de ope rare

2.3
2.3.1

Interac~iunea

cu sistemul de operare

Interfetele cu utilizatorul

Primete interlele eu ulilizatorul au lost, din motive tehnice, create pe moniloare care

De aceea, posibilitatile acestor interlete de a crea componente grafice au lost limitate. in aceasta categorie (interlete care utilizeaza doar
caractere in mod lext) intra eLi (Command Line Interiace) si TU I (Text User Interface). in limp. atal moniloarete cal ~i pt~ei te video au avansal lehnotogic ~i au ap~ rul astfet afisajete grafice {eu rezo tutii mai mari deefll eele text}. in acest tet a apMut si 0 nou~ ctasa de interfete eu utitizatorut numit~ GUt (Graphical User Interface). in CLI, inlerae!i unea cu sislemut de operare se bazeaz~ pe comenzi serise de la tastatur~. Exemple de eLI pot Ii v~zule in ligura 2.17 si in figu ra 2.18. Avantajut aceslei metode esle ace ta ca pot Ii invocate comenzi comp lexe utilizand secvenje seurte de caractere. Pentru a reatiza sarcini echivatente intr-un GUt poate Ii uneori nevoie si de cateva zeei de ctickuri de mouse. Un all avantaj at Cli esle rapid ilalea dobAndila in ulilizare, dupa ce comenzi le au fosl rel inute (in special daca este lotosit istoricul de comenzi: prin apasarea tastei S!igea. t !iSus pot Ii reexecutate comenzi le date anterior). Luand ca exemplu configura rea unei adrese tP (vezi secliunea 8.2. 1) pe 0 interfata de re!ea, diferenta de viteza intre prima si a zecea oar~ cand se rea lizeaza aceasta configurare intr-un GUt este mica. datorita numaru tui mare

alisau doar caractere lext.

CAPITOlUl2. INSTAlAREA lINUX. CO NFIGURARI DE BAZA

39

de elickuri necesar. in eazul unui ClI, lolosind si iSloricul de comenzi, d iferenla de ~iteza esle extrem de mare,
Deza~antajul principal al Cli eSle curba abrupta de lnva!are, uti lizatorul obisnuinduse mai greu cu 0 comanda decal eu relinerea locului In care se ana un bulon.

Desi de la aparrtia sa a Iosl coneural de TU t si GUI, Cli rAmMe metoda de co ntrOl al sislemului de ope rare preferatA de utilizalorii a~ansa!i datorita elicien!ei in ulilizare. in TUI , inleractiunea cu sistemul de operare se rea lizeaza pr in inlermediul lerestrelor, meniurilor, butoane lor si mouseului. Pentru desenarea inter/elei sunt utilizale caractere disponibile pe orice terminal text (Iig ura 2. I 5) .

... ,_ " _,.,. '" .,..,.." _'''M, ,.., '""" ." "",. ~
tr- ,.,_ ..... ' ....,., ... , .....
, .............., " .. " .,..... >

....... -.. ..

Figura 2 I 5: Text User Interface Acesl lip de inlerfa\a se apropie de modulln care aral1'i 0 interfa\a grafica lnsA, dalorila faptului ca lolosesle caractere text, rezolutia ecranului esle mai mica. GUI este un sistem de interactiune cu ulilizatorul de tipul WIMP (window, icon, menu, pointing device) (Iigura 2. t 6) ,

-o
. -"~ . _ _ n M _ M
_~" >H

_ ..."--

Figura 2,t 6: Graphical User Interface

40

INTRODU CERE iN SISTEME DE OPERARE

Penlru desenarea intertetei GUt sun! lolosite moduri grafice de rezolutie lnalta, cum ar Ii VGA ..640x480, SVGA..800x60Q, 1024x768, 1280xl024 , , 600xI200 etc_

2.3.2
Consola

Interfa~a

in linie de comanda (eLi)

o consolii eSle un tip de echipament care permite introducerea lolosil in administrarea si uti lizarea sistemului de ope rare.

~i afi~area

de text

Ini!ial consolete erau formate dinlrun term inal (un monitor ce avea atasata 0 tastatura) care S9 conecta la sistemul de calcul pri ntrQ conexiune serialA. Aces! tip de conso le
esle loarte rar inlalni! in ziua de astazi.

Pe un ca lculator obisnuit, monitorul impreuna eu tastat ura au acelasi rol ca un terminal. Ete permit, in Linux, accesarea a douA tipuri de console: (erminalele virtuale (console in mod text) si emula(oarele de ferminale (conso le in mod gralic).
Terminalele vlrlllale au 0 rezoh,!ie micil (in general 25 de linii cu 80 de caraclere pe linia) . Ele pot Ii accasate din in terfa!A gralicA cu ajutorul tastelor CI RL+ ALI+ Fx, unde Fx reprezintil taste le Fl panilla F6 (in mod implicit). Din aceste term inale virtuale se poate reven i In interfa!A gralicA cu ajutorul combinatiei de taste (C IRL+ ) ALI+ F7 . Treeerea dintrun te rminal virtual in allul poate realiza prin trei combinatii de taste. Primele doua sun\: CI RLtA LI t F x si ALI +Fx (unde x este numilrul term inalului in care se va treee). A treia combina!ie de taste este ALI+Sageat!i St a n ga sau ALI + Sageata Dr e a p ta 5i permite treee rea dintr-un terminal in cel precedent, respeetiv in ee l urmAtor. De exemplu treeerea din terminalul 4 in terminalul 3 se poate realiza eu CI RL+AL I +F 3 sau AL I +F 3 sau ALI +S agea ta Stlnga. . Valor ile taste lor F prezentale sunt cale implicite pe majoritatea distribu?ilor. Aceste valori pot Ii schimbate. De exemplu. interlata graficA poale Ii plasata pe terminalul trei sau pe te rminalul cinei; nurnarul de term inale accesibile poale Ii sase (valoa rea implicitA) sau zeee (hgura 2.17).

Figura 2.17: Te rminal virtual (eLi)

C JPYflghted matanal

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

"

Conso/ele In mod grafic reprez inta emutatoare de term lnat (f igura 2.18). Dimensiunea tor pot Ii exti nsA peste cea de 25x80 a tarminatetor virtuate. De asemenea, un utilizator poate porni un numar nelimitat de aslfel de emulatoare. Cele mai cunoscute emulatoare sunt k onsola (pent ru KOE), qnoma- t arminal (pentru GNOME) ~i xt arm.

, . . . .~ .... JOO1 . . 1. ,., .. 00 .. " ,

Figura 2.18: Emulator consota (CLI) Atunei eand un utitizator aeeeseaza un terminat virtuat et trebuie sa se autentihee folosind un nume de utilizator si 0 parolA. La pornirea unui emulator de terminal utilizatorul nu mai trebuie sA sa autentilice, deoarece autentilicarea sa produs inainte de pornirea interfe!ei gralice. De asemenea, la pornirea unui emulator de term inal utilizatorul curent va Ii cel care esta autentilicat in interfata gralicA. in ultimii ani, indepartarea de linia de comanda a sistemului de ope rare Linux este d in ca in ce mai accentuatli in detrimentul utilizArii interfetei gralice, mai intuitive si cu faeil itali mult mai avansate. Cu toate acestea, interiata in linia de comanda ramane 0 compone ntA esenlialA in conligurarea rapidA a unui sistem si a administrArii de la distanta. Inter/ala in linia de coma ndA perm ite toate operal iile care pot Ii realizate si d in intarfa!a graficl.

Shell in IT, denumirea de shell are mai multe sensuri. Unul dintre acestea este sensul de compone ntA software care rea lizeazA interfata cu utilizatorul. Aceastli inter/atA poate Ii una CLI , eaz in care shellul esle un interprelor de comenzi. sau una GUI, caz in care shell ul este 0 inter/alA gralicA dintre utilizator si resursele sistemului de operare (cum ar Ii Explorer in Windows). Come nzile Linux sunt transm ise la 0 con soiA. Conso la (ind ilerent de tipul ei - emulator de terminal sau terminal virtual) ruleazA un shell. shell care permite introducerea

.1

42

lNTRODU CERE iN S IS TEME DE OPEAARE

comenzilor. ExistA rnai mulls aplicatii shal l de interpretare a comenzilor in linux, cea mai uwalA fiind denumrta bash (Bourne Aga in SHeil).

Prompt-Ul
Shell-ul (interpretorul) de comenzi olera utilizatorului un prompt. Acesla are un format de genu!:

La acest prompt, ulilizalof\.ll poate introduce comenzL use r name reprezinta nurnele utilizatorului, iar l ocalhost esle nurnele stal iei (has/name). Simbolul - ind j~ direClorul curent, home-ul utilizatorului george' . Simbolul "$ " marcheazA terminarea

prompt-ului 5i inceperea zonei de introducere a comenzilor.


urmator:
george h a93 rd ; -$

Oe exemplu, in cawl

ge o rg e esle nurnele utilizatoru lui

~i

asgard esla nurnele stalieL

Pentru mai multe informa!ii des pre interactiunea cu shellul consulta!i seqiunea 12.2.

Comenz! Comenzlle sunt cuvinte che ie care se introduc la consolil (s i interprelate de inlerpretorul de comenzi). folos ile pentru a configura sislemul de ope rare sau pentru a ob!ine informa!ii de la acesta. Comenz ile pol fi simp le sau pot avea parametri. 0 comandii simplil eSle 0 comandii care co nUne un singur cuvanl che ie suficienl pentru a execula 0 actiune. Majoritalea comenzi lor sunt insil com enzi com puse si pol primi unul sau mai mul!i parametri care pot alecla rezultalul comenzii. Separarea inlre numele comenzii si parametru sau intre doi paramelri se realizeazil prin intermediul caraclef\.llui "spaliu". De multe ori. primul parametru (sau si alti paramelri, in funclie de caz) eSle marcat prin caraCleru l .'.". Mai jos eSle preze ntal un exemplu de comandii simpla si apoi aceeasi comandii cu paramelri. Comenzile au de obicei rezultale, rezultale care sunt afisale de cillre interprelolul de comenzi (shel l) pe consola ulilizatorului. in exemp lui nOSlru, fiecale comandil are un rezultal care esle al isat.
,
2
qeorq~ @ asq a rd:-S p~

FlD I H

riME tMD

,
7

13391 pts/O 13666 pt , /O

00 : 00 : 00 ba ~h 00 : 00 : 00 p '

"
..

qeorqe @ a.qard : -S p. - 0 uid , pid , cmd


UlD PID CMD

1000 13391 - ba.h 100013669 p. - 0 \lici , pici , cmd

"

george @a aga rd : -S

' d.lalii de .",. ie ' arhia $i$lemului de li. ie r ga c in

$roct i ""u ~ .

1.2

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

"

Setul eel mai important de comenzi este eel care interactioneaza cu sistemul de fisiere . Aceste comenzi sunt lundamenlale pentru interac!iunea cu sislemul ~i rularea allor comenzi imporlante.

Ciutarea de ajutor
Daca se doreste cautarea de informati i in fegatura cu 0 comand;"i (parametri, date de iesire, lunclionalilate elc.) distributiile . de Linux pun la dispozitie mai multe optiuni: . Transmiterea parametrului --help unei comenzi penlru a parametrilor posibili ai acelei comenz i. De exemplu:
, george@asgard ; -S cp -- he l p Usage; cp IOPTION] . [- T I SOURCE DEST or: cp IOPT I ON] ... SOURCE ... DIRECTORY or; cp [OPTION] . - t DIRECTORY SOURCE . Copy SOURCE to DEST . or mu ltiple SOURCE{S) to DIREC10RY .
afi~a

un sumar al

, 6 ,
~

Mandatory arguments to long options are mandUory for short options too. --archiv@ --b a ckup (- CONTROLj destination tile
-a .
-b

" 11
12
1J

.ame make

-dpR backup

"

each existing dO@5

li ke --b .. ckup

,.
1$

argument -- copy - contents recursive


-d

copy contents

'"'
"

00'

accept

,.

special fi l es when

.ame a. --no-dereference --pre.erve- link

,.

[ . .. I
afi~a

Comanda what is este folosita penlru a


; -S , george@asgard ", , george@asgard : -$ " ,,, ,., george@asgard:-$ , , 0, ", , george@asgard : -$ po"e roff '",

0 scurta deseriere a unei comenz i:

what is l s - list directory contents whatls p .. d - print name of current/wor k ing directory what is cp - copy tJ Ie. and directories ~hUis powe roff - HOp the 'Y't e m.

Comanda apropos afiseaza comenzi le care au legatura cu cuvAntullransmis ca parametru:

, ,
, ,

george@a$gard : -$ apropos Zl P bl ocl: - sort i ng fi l e compreuo r , vl . 0 . 3 bu n 'ip2 b:cmp compare b:ip2 compressed files bzdift compare bzip2 compre9Sed files bz e gre p s earch p09Sibly bzip2 compres s ed filM expre'"ion bzfgrep MHCh p09Sibly bzi p 2 compr e Med files b . e x p r e "ion

,,, ,,, ,,, ,,,


,,,

'0. r e gular
regular

"
ali~ali1:

lNTRODU CERE iN SISTEME DE OPEAARE

Comenzile man si in f o sunl utilizale penlru a afisa paginile de documenlatie complete asociate unei comel'lz i dOfile. Ace sle pagini conlin informalii detaliate des pre op~unile posibile ale comenz ilor 5i utiliz1\rile acestora. Comenzile man 5i info primesc ea argument numele comel'lzii a care i documentatie sa dore~te a Ii
qeorge~a"gard : -S man i" Re formatt ing hili . plM " e "ait . , .

,
,

'l""o r g,,@asgard : -S man p"d Re fo r rna ttin9 p"d(i) . plM5e wa i t .

7 "eorge@asgard : -S info coreut il . 1.


s george@asgard : -S Info coreutils cp

Aule ntifica rea , i pirasiTea sistemului

Autentilicarea locala in sistemul de ope rare se poate reallza Iolosind un term inal virtual sau S9 poate realiza in interfala grafk:a, prinlrun display manager (ve~i secliunea 13.2.2). in cazu l in care utilizatorul sa autentifk:at in inter/ala grafk:a, el poate parasi sistemul de operare (logout) 101 din mediul gralic, folosind optiunea Logout. In caz ul in care utilizatorul sa aulentilicat intrun term inal virtual, el poale parasi sislemul de operare lolosind comaroa loqout sau com anda ex it . Comanda logout este lolosrta pentru a parasi un login shelt. Acesta este un shelt creal aturICi cand utilizatorul sa autentilicat in sistem. Comanda e x it este folosiUi pentru a parasi atal un login shell cal si un shelt creat din acesl login shell (cu ajutorul comenzi i IIU de exemplu).

2.3.3

Oprirea sistemutui de calcut

Penlru a opri sau reporni un sistem de calcul se lolose~te comanda shutdown . Aceasta comanda poate Ii utilizata doar de catre un utili zator cu drepturi administrative (vezi secliunea 2.4. 1). Sintaxa comenzii este:
sh~tdown

[ OP'l"lON [.

'1"1"' (MESSACI

Printre optiunile folos ite in mod uzual se numara : - r pentru a reporni slatia si - h penlru a 0 opri. time reprez inla momentulla care va Ii oprita sau repornila stalia, iar message eSle un mesaj ce va Ii trimis pe loate lerminalele legate la sistem. De exemp lu, pentru a opri slatia imedial, se ruleaza comanda:

root~a.g~rd:/home/george~ Bro~dcost

shutdown - h now

,
,

m es.~ge from george~a.gud I/dev/pts/O) at 18 : 28

The

~y~tem

is <;Ioing down

fo<

h~lt

NOW !

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGURARI DE BAZA

Penlru a reporni statia imediat. se ruleazli comanda:

,
root@asg~r d; / h o me/georget $hutdo~ n - r n ow Broadcast message [rom george@asgar d (/dev/pts/4) at 11 : 04 ...

,
6 The system is going down for reboot NOW !

Penlru a opri statia la ora 20:00:

Broadcast message [rom georg e @asgard (/dev/ p ts/4) at 11 , 03

The system ts going down for reboot In 537 mInu t es!

Penlru a opri statia in 10 minute de la executarea comenz ii se


roo t @ asga r d : / h ome/george# l
s hu t do~n

lolose~te

comanda:

- r +1 0

Broadcast message f rom georgehsgard I/dev/pts/O) at 18 : 33 The syste m is going down tor reboot in 1 0 minutes!

o altli posibilitate de a reporni sta)ia este utilizarea comenzii restart. Pentru oprirea statiei se pot lolosi si comenzile h alt sau powe r off, Toate aceste comenz i pot Ii executate doar daca utilizatorul are cu drepturi administrative.

2.4
2.4.1

Configurari de baza ale SO


Administrarea sistemului Linux

in sistemele de operare Windows pan1\la Windows XP (inclusiv), in timpul procesutui de instalare se crea un utilizator cu drept de administrare. De cele mai multe ori. sistemul era folos it cu acest utilizator, situatie care putea crea probleme de securitate daloritii drepturilor extinse de care beneficia utilizatoru l (vezi sectiunea to,2). in sisteme le de operare Linu~ se lace 0 distinctie implicila. inlre drepturile de administrare si drepturile de utilizare a siSlemului. in Unux, un singur utilizator are drepturi de administrare depline. Acesta este un utilizator special numil root. Utilizatorul root poate realiza configurliri, poale modifica modul in care sistemul de ope rare. poate acorda drepturi partiale altor utilizatori etc _
porne~te

Penlru a putea realiza configurlir i sau acliuni pe care doar utitizatof\.ll root Ie poate realiza, un utilizator are tre i posibilitlili. Prima posibililale 0 reprez inta autentificare in sistemul de operare lolosind numele de utilizator root si parola asociatli acestuia. in cele mai multe sisteme de ope rare lolosite

"
Schlmbarea intre
utili~atori

lNTRODUCERE iN SISTEME DE OPEAARE

in produclie autenlificarea ca root eSla dezactivatll. din motive de sigurantA. De aceea aceas@. metoda poate sa nu funcUo neze.

(au)

in caz ul in care utilizatorul eSla deja autentificat in sistem, exisla posibililatea schimbarii
utili zato rulu (a doua posibililale de obtinere a dreplurilor administrative). Din sllell ul in ca re S8 g1ise~te deja, utilizatorul poate sa porneasca un nou shell in care sa se

autentifiCe ca un alt utili zalor. Atunei cfu1d p1l.rAsesle shell-ut nou creat (de exemplu prin
comanda exi.t) el va reve ni in shell- ul iniliaL

Pornirea unui nou shell in ca fe 59 real izeaze autentifiCarea ca alt utilizator 59 face eu ajutorul comenz!i au (s wifCh user) . Aceasla comandA poale primi ca parametru numele utilizatorului in contul carU ia se va lace autenlilicarea:
george @as gatd , -$ su uso

P~SS"Otd '

usohsgard :/home/georgeS exit 5 exit george@ugard-5

Din mOlive de securilate, ca racterele lastate i n dreptul parolei nu vor Ii ali~ate, 1 n exemplul ante rior, uti lizatorul autentificat in sistem este george . Utilizatorul george schimba utilizatorul in uso folosind comanda SU u80 ~i se autentifica uUlizand parola utilizatorului usa. Utilizatorul paraseste she ll -ul nou folosind comanda exit, moment in care se observa revenirea acestuia in shell-ul ini!ial. In cazu l in ca re comanda 8U nu prime~te niciun parametru, implicit se va co nsidera ca se doreste autentificarea ca uti lizator r oo t . Ca root, execu)ia
comen~ii

8U U80 va permite autentificarea ca

ulili~ator

U80 tara

introducerea parolel pentru acesta.

Pentru a parasi un shell creat cu 8u nu se peate lolosi comanda loqout , deoarece sesiunea autentilicata in sistem (login shell) apar)ine tot utilizatorului initial (utilizatorul ini!ial liind george in exemplul de mai jos) ~i nu noului utilizator (noul utilizator liind uso in exemplul de mai jos):

george @as ga r d : -$ S\l \ISO Pass"ord :

, 10

usohsgard: /home/georgeS l ogout 5 b&sh : logout : not login s hell : use ' exit '
usohsgar d: /nome/geo~geS

ent

ent
g@org@@a'ga r d -$

Ubuntu (~i Kubuntu) au dezactivat in mod implicit contul de roo t , nefiind eonligurata nieio parola pentru acesta. De aceea, autentifiearea ca root atiit la prompt-ul de login in sistem eiit si eu 8u va e~ua.

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGUR ARI DE BAZA

47

Exec u,ia co menzil o r cu drepturi admini strat ive (sudol in cazul in care este dezaclivata autenlificarea ca root. a trela posibll1tate de oblinere a drepturilor adm inistratiV1'l 0 reprez inta utilizarea comenzi i audo. Aceasti!. comaOOi!. permite executarea unui program ca all utilizator. Spre deosebire de su, care cerea parola utilizatorulu i al carui cont va Ii utilizat, sudo cere parola utilizalorului curenl '. Din acest motiv comanda audo au va aV1'la succes (este cerulA parola utilizatorului curent, nu cea a utilizalorului root, dupa care comaOOa au esle executata ca root) :
g~o r ge@asgard : -$ ~ud o ~u

P~55"ord :

roo t @asga rd: /homelgeorge# Atunci cflnd utilizatorul root 10lO5esie comaOOa Budo penlru a perni un shell in care sa se autentifice ca all utilizator, nu i se va cere nicio parola.

2.4.2

Asigurarea conectivital ii la Internet

Una dintre primele configurari ce trebuie realizati!. pe sistemul de operare instalat este asigurarea conectivitapi la Inlernet. Kubunlu este 0 distributie de Unux care se bazeaza pe pachete si necesili!. 0 conexiune la Internel pentru a putea copia ~i instala V1'lrs iuni mai recente ale acestora, realizAOO in acest fel actualizarea intregului sislem de operare. Pentru asigurarea conectivitatii la Internet exista mai multe allernatiV1'l, Cea mai simp lii varianta este aceea in care 101i paramelrii de relea (vezi secliunea 8.2) (adresa IP, masca de retea, gateway, server DNS) sunt configura!i in mod automat IolosiOO DHCP'. Aceasta metoda este cea incercata implicit de catre sistemul de operare. Daca aceasta reuseste , utilizatorul are aeces la Internel, nemailiiOO necesara 0 alta configurare. Daca incercarea de configurare folos ind DHCP esueazi'l., utilizatoru l va !rebui si!. configureze manual parametrii de retea. Acest lucru se poate rea liza temporar (electe le configurarilor vor dura pana la urmatoarea pornire a sistemului de ope rare sau pflna la o noua configurare) sau permanent (electele configurarilor se vor pastra si dupii repernirea sistemului de ope rare). Configurarile temperare pentru adresa fP, masca de rele a ~i galeway se re al izeaza folos iOO comenzile ifconfiq si r out .. , Pentru a putea Iolosi aceste comenzi utilizatorul trebuie sa oblina drept de adm inislrare. Pentru mai mulle informatii legate de conligurarea relelei consultali capitolul8.

2.4.3

Actualizarea sistemului Ji'i a pachelelor

Printre primele acliuni care se realizeaza imedial dupa instalarea unui sistem de operare se regaseste actualizarea acestuia, [nlrun sistem bazat pe Debian (precum Ubuntu ~i Kubuntu), acest lucru se face prin executia urmiitoarelor comenzi ca root :
' aCMI compo,' amftn' ... ,.. ""poI nd.. nl d" d i~l, ibuli" _In Ubunlu oi in d i;t, ibu!iiifl d",iYal". comand .. udo ce,e parola ul ~ izalo,u Ui eu,enl ' Dynam ic Host Co nligu""ion Prolocol

48

lNTRODU CERE iN SISTEME DE OPEAARE

,
~

r oot ~as g ard:'J

apt - get update

root@&'gard : -I a p t-get dist-upgude

Prima comanda actualizeaza lisla de pachele cunoscuti'l. de ca:tre managerul de pachele, iar a doua comandi'l. actualizeazi'l. pachetele instalate pe baza inlormatiilor
adunale de prima comanda. Pen\ru mai mulle informa!ii des pre gestiunea pachelelor

consu ltati sectiunea 3.2.

2.4.4

Administrarea utilizatorilor

~i

a grupurilor de utilizatori

Majorilatea programelor de instalare a distribu!iilor Linux permit cetui care realizeazil. procesul de instalare sa adauge direct utilizatori non-rOOI in sistem, lara a Ii nevaie de
configurari ulterioare.

In cawl i n care mai trebu ie adaugati utilizatori sau grupuri, adm inistratoru l are Ie dispozilie comenz ile addus e r ~i ad d qroup pe sisteme Debian (~i implicit UbuntulKubuntu). adduser perm ite edaugarea in mod interactiv de utilizatori.
Daca se doreste lucrul mai avansat cu ulilizatori si grupuri (precum stergarea, modilicarea ulilizatorilor/grupurilor) consu ltati sectiunea 3.1.

2.5

Studii de caz
sislemului de
ti~iere

2.5.1 Inleroperabililalea Windows

fnlre

Linux

~i

Atunei cand pe un calculator esle instalal ~i un sislem de operare Windows ~i unul Unux se pune de eele mai multe ori problema partajarii de lisiere inlre ee le doua. Ca exemp lu concret: eum se pot accesa din Linux (pentru seriere si cilire) datele allale in Windows eum se pol accesa din Windows dalele afiale in Unux (penlru citi re
~i

seriere).

Solul ia la aceasla problema se bazeaza pe ideea ca pentru datele allate pe cal pulin 0 parli)ie se va as igura suporlul de cilire ~i de seriere alaI din Linu~ eal ~i din Windows. in aeest sens exista Irei variante . Prima din Ire ele const1i.ln ulilizarea unei parli)i i FAT32 penlru a sloca dalele ce se doresc a Ii parlajate. Avantaju l acestei solutii aste laptul ca, atoll in Windows cal ~i in Unux, exisla suport naliv pentru sislemul de lisiere FAT. Dezavanlajele majore sunt limitarea dimensiunii unei partitii FAT32 la maxim 32GB 5i limitarea dimensiunii maxime a unui li~ier la 4GB (ca atare pe 0 astfe l de partitie nu se poate salva imaginea unui disc DVD de exemplu). A doua solu!ie 0 reprezinta utilizarea unei part i!ii exl2 sau ext3 pentru slocarea dalelor partajate. Aceasta so lulie nu prezin!a limitarile parti!iei FAT, lnsa Windows nu olera suport naliv pentru aees! tip de partit ii. Pentru a pulea aeeesa din Windows 0 parti) ie

CAPITOLUL 2. INSTALAREA LlNUX. CONFIGUR ARI DE BAZA

49

ext2 sau exl31rebuie in slalalun driver special. Acesl d river se nurneSle Ext2 IFSsi este disponibil online' .
Acest driver olen! suport de scriere ~i citire pentru sisternu l de I~ i ere ext2. Sistemul de /i$iere ext3 este asernAmitor eu ex t2, diferen\a dintre ele hind reprezentalA de supo rtuf de jurnalizare pe care it o/erA ex t3. Ext2IFS poate citi ~i scrie date de pe 0 partitie exl3, insA nu va lolosi suporlul de jurnalizare pe care 11 olera aeeasla.
Exl2 IFS nu fuoctioneaza cu sistemul de fi~iera ext4, struclurile de dale aflate pa disc /iind di/erite. Aces! lucru trebufe luat in considera re in colld i!iil e in care se dore~te utili zarea aceslai variante pe r"ltru partajara, rnai ales dmd d islribu!iile actuale au ca sistem de fis iere implicit exl4 (vezi si secl iunea 4.7).

A treia varianta 0 reprezinta aceesarea unei partitii NTFS din Unux. in linux ex ista suport pentru citirea datelor de pe un sistem de lisiere NTFS, Oatorita faptului ~ slano'ardul NTFS este unul lnchis. dezvoltarea unui driver care sa ofere supor! de seriere a lost greu de realizal. in momentul de Ia!a exista lnsa un driver care olera acesl supor!. EI sa nume~te ntfs3g2 ~i suporl panlru acesta eSle olaril implicit in Ubunut/Kubuntu.

2.5.2

GParted

GParled esle 0 ap lieatie de parti!ionare specifica Gnome' (f igura 2 19). Aceasta poate crea. slerge, redimens iona, mLJIa, verilica ~i cop ia parli!ii. GParted of era si 0 versiune d ispon ibilA sub forma unui Live CD' , Aceasla eSle bazata pe dislrib\.ili a Gentoo ~i permite administrarea parti!iilor in cawl in care sislemul de ope rare nu mai pornesle. De asemenea perm ita raalizaraa unai copii de siguran!1'i a datalor i n aeel ea~i condi!ii.

Cuvl nte che le

eLi consola dislri butia Linux gestionare utilizatori GUI Kubuntu live CD MBR inSlalarQ

madiu gralic partilie swap shell shutdown

".,
TUI

'"

, hnp.llI<www.ts -d.i.....o.g/ ' h lip :11www.nll. -3g .o.gI ' Gnome n l" un De sklop Enviro nmenl p",,',u mediul Q,ahc d in lInux _ ma i mu lt" inlo,matii." f>Ol ~,;:. i in $o>ctiun .. a 13.7 ' http ;llgp" ,t"d.sourc" forge.n.tilivecd,php

C JPYnghted

mater'~1

50

INTRODU CERE iN SISTEME DE OPERARE

.....
7~,.'

U"'"

Gill) :

Goil

...... .ldov/.<!b l
l ....... cIb'

~.

,m!IO/d., .-]

01,"' GiS 07 .0' GoB

. , ."

M."

~1 . S9G<B

.-~

.-

fOll2

fotl>

""",>0'<1 ' !I'nedi>J<i k l

1 ." . "'"
' .0:; """

91." <>8
97.0 1 c;;e

07." Gill

f.,'2

/l'nedioM.'

IU'G6

00 ,0' ",,8

lU(lGS

Figura 2.19: GParted

intrebari
1. Cali utilizatori eu idantifiCatorul 0 pot exista pe un sistem eu 0 partitie primarA ~i

douA extinse:

o niciunul
0 1

2
oricAti

2. Care dintre urmatoarele NU asle necesara penlru a rula un sistem de operare de pe Live CD:

o conhgurarea unei

part~ii

primare

o o

BIOS

DRAM
procesor

3. Din ce sistema de operare NU se pot rea liza conffgurarii din TUI?


o Windows Vista

o Debian
o ubuntu Live CD

o PalmOS

CAPITOlUl2. INSTAlAREA lINUX. CO NFIGURARI DE BAZA

51

4. Operatia de reporni re a sistemului poate Ii initiata doar de utilizatorul privilegiat. in urma repornirii sistemului tol conlinulu l memoriei RAM esle golil.

adevarat, adevarat adevaral, fals fals, adevarat fals, fals

o o
o

5. Care dintre variante esle adevarata, daca la execulia comenzi i


au nUvan

se obtine un prompt de shel l lara a se

solicita autentiliCare:

o
o

comanda a losllansata de ulilizatorul root comanda a losllansata de I)\ilizatorul rra zvan comanda a lost lansata din d irectoru l fe t e comanda a fosllansata din d irecloru l / root

o o o o
o o o o

6. Care din urmatoarele NU reprezi ntA un sistem de lisiere?


FAT 32 swap exl3 NTFS

7. Care din urmaloarele NU esle un tip de parti!ie? extinsa logicA pr imara virluala

o o o o o o o o
o o

6. Care din urmatoarele distribupi este derivata din Debian? Ubuntu Fedora Gentoo OpenSuSE

9. Care din urmAtoarele NU se relerA la ell? comanda prompt terminal window manager

52

INTRODU CERE iN SISTEME DE OPERARE

10. Care din urmatoarele comenzi NU eSle 0 comarKIa de ajutor po un sistem Linux?

Oman

info

apropos

o adduser

C JPYnghted matanal

Capitolul3 Gestiunea pachetelor !iii utilizatorilor


Users InmJ: collective term for Ihose who use computers. Users are divided into three Iypes: novice, intermediate and expert.
Novice Users : people who are afraid that simply

pressing a key might break their computer. Intermediate Users : poop/e who don't know how /0 fix their computer after they've just pressed a key thaI broke it.
Expert Users : people who break other people 's

computers_
The J argon File

Ce se invali din a cesl ca pitol?


Gestiunea utilizalorilor si grupurilor in Linux Fisiere lolosite pentru gestiunea l1Iilizatorilor Ce asle un pachel Care SUi'll operatiile de baza asupra unui pachel in linux Gestiunea pachetelor in DebianJUbuntu: utilitarele apt $i dpkg Personal Package Archive (PPA)

3.1

Gestiunea utilizatorilor

Gestiunea ulili zaloril or 5e refsni la adaugarea de noi uhlizalori, slergerea unui ulilizal or existenl, modificarea informaliil or despre un ulilizator ~i afi~area diverselor inform alii. In sislemele Unix, informaliile des pre ulilizatori sunt relinule in fisierul / etc Ipasswj, Fiecare linie din aces\ fisier conIine numele utilizaloru lui, identificatorului du, home-ul, shell-ul rulal in momenlul autenlificarii si aile informal ii de deseriere:

53

INTRODUCERE iN SISTEME DE OPEAARE

2
~

.oot~anaco nd a : " cat /etc/pass wd and re i r: x: 1114 ; 1 02 6 ; And~e i Rho i u : Ihorne lot udenu/ andre i r : Ibinlba sh &I exn : x : 111 5 : 1 026 : Alex Negce& : (home (st u d e nt. I a lexn : /b in/b&sh

(. .. 1

Din motive de securilale, hash-ul asocial parolei nu se gase~le in lisierul /ete/ pass wd, ci in lisiarul fete/s hadow cara nu poata Ii accasat de majoritatea utilizalorilor (vezi sec)iunea 10.2.3):
.oot~anaco n da : -I

1$ - }

/etc($h~do~ 2008 - 0~ - 12 1 1:5~

- r"'- r ----- 1 root s h ado'" 7068

Jete/shado w

Pentru a alia iniormalii des pre un ulilizalor al siSlemului se pol Iolosi comenz ile id sau ringer:

root~anacon d a " 1 id andreir ..lld-111 4 (andrei <! gid-l026 (students) groups - l 026 {students! , 103 7 (rl! . oothnacond~ ; " finger ale~n Log i n : ale xn Directo~y : Ihome/.tudents/alexn Neve r logged in. No ma i l. No Pl"n .

e
1

Na me ; Alex Neg~e a Shell : /bin/bash

Utilizalorul privilegiat lntr-un sistem Unix eSla utilizalorul root cu uid-ul 0 / roo t :
root ~~ n~co n d~ : -I

~i

homeul ln

head - I

/etcfpass~d

Ioo t : x : O : O : r oot : /root : /bin/b~~h

Utilizalorui root (de lapt utilizatorul cu uid-ul O) are drepturi absolute in cadrul sistemului si poale rula orice comanda. Se recomanda lolosirea unui conI neprivilegial. Door alunei c:l.nd este nevoie se va lolosi contu l privil egial. Schimbarea unui ulilizator se realizeaza cu ajutorul comenzii su urmala de inlroducerea parolei pentru acel ulilizator. Dac1i ulilizalorul ini)ial esle r oot , nu se solicil1i introctucerea parolei:
.oot~anacon d a ; 'J

head - I /etcfpasswa

,
2 5
~

root : ~ : O : O : root ; l<oot : /bin/bash

"ndrei~@aMconda : -S
passwo~d :

root @"Mconaa : -1 su - andrei~ su - u<v"n

Sistemele Ubuntu dezacliveaza, de obicei, utilizatorul roo t si recomand1i lolosirea comenzii sudo. De obicei, un ulilizalor neprivilegial care are drepl de 5000 va rula comanda sudo bash penlru a ob!ine un shell cu drepturi privilegiale (vezi secliunea 10.3.3). Schimbarea parolei unui ulilizalor se real izeaza cu ajulorul comenzii pa sswd. Utilizalorul privilegiat poale schimba parola oricarui utilizator. Un utilizator neprivilegiat i~ i poale schimba parola doar siesi:
" a n a conda : -' pao$wd gu<>n Enter ne~ UNIX password ; Retype new UN I X paHword : pass~d' pusword updated $uccessfully

CAPITOlUl 3. GESTIUNEA PACHETElO R SI UTILIZATORllOR

55

3.1.1

UID, GID

FiecArui utilizator din sistem ii este asociat un identilicator numit urD (User Identilier). UIO este un numar inlreg ce poate lua valori inlre 0 ~i 32767 sau 65535, lunc!ie de distributie. Valoarea 0 eSle rezervata pentru ulilizatorul root . Pentru a gasi identitatea unui utilizator SiSlemul de operare loloseste UID, si nu numele utilizalorului. De aceea. daca in liSierul /etc/passwd se inlocuieste UIDul unui utilizator normal cu 0, aeel utilizalor va d .pata drepturi administrative agale eu ale utilizatorului root . Pe sistemele de operare Linu~ utilizatorii pot Ii organizali in grupuri. in acest lei se pot realiza diverse configurAr i administrative mai us~r, aplicAnduse politici la nivelul intregului grup si nu per utilizator. Un grup peale conIine mai mulli utilizatori. Un utilizator poate lace parte din mai muite grupuri. Penlru fiecare grup sistemul de operare asociazA un identificator, numit GIO (Group Identilier). Acest identilicator este un numar intreg ce poate lua valori intre 0 5i 32767 (Iimita superioar1l poate sa dilere in func!ie de distribu!ie). GID 0 este rezervat penlru grupul utilizatorului roOI. La lei ca la UID, sistemul de operare loloseste GID penlru a identilica un anumit grup ~i nu numele grupului.

3.1.2

Ad augarea!?i !?tergerea uti1izatorilor

AdAugarea unui utilizator poale Ii rea lizata. doar de root, in douA moduri. Primul dintre ele este utilizarea comenzii useradd. Ulilizarea acestei comenzi esle greoaie. moliv penlru care adAugarea unui utilizator se realizeaza in mod uzual cu ajutorul eomenzii adduser. adduser este un script care apeleaza la randullu i useradd. Apelarea adduser se poate realiza cu urmalorii paramelri:
adduser l options l [ -- home OlF\] [-- s h el l l - s $Het.LJ ( -- no - create - home [-- u id W I [ --firsto id IDJ [--h.tuid 10 1 [ -- ingr oop GROUP I - - gid 10 1 [-- disab l ed - passwordJ ( -- disabled-l ogin l [ --gecos GeCOSJ [-a dd...extra_ groupa l user

Daca adduser esle apelat doar cu numele utilizatorului ce va Ii creat. el va porni un asislent care va cere loate dalele necesare crearii conlului:
root@~sgard,/home/georgef

adduse, uso

Add; ng user 'uso ' Md;ng new group ' uso ' Adding
n~w

, 6 , 8 ,
10

(1001) (1001) "Hh g r oup


' /hom~/u50 '
' U30 ' ...

user

' u~o '

CIM t ing horne d i r " ctory

Copying ti l e. hom ' /etchkel ' En t e r new UNIX p.os~"ord : Retype new UN I X paH"ord : pas.wd, pas.wo~d updated. successfu ll y Changing the user infor"'~tion for u ao Enter the new Y ~ lue , Or press ENUR for the default

"

1>

13 ,. '"
,~

56

lNTRODU CERE iN SISTEME DE OPEAARE


Fu ll Name [] : 0$0

" " " " ..

Room Nurn!)"r II ' \lorl: ?nooe [ I; Home Phone [ I:


Ot h er [I,

EGJO~

Is tne

! ~ for m "tlon

correct? (yiN] y

" ,.

root@a $ qard : /home/george f

Din motive de securitale caracte rele tastate in dreptul parolei I1U vor Ii af~ate.
La crearea unui ulilizator eSle creal si un grup ell ace lasi nume la care este adaugat utilizatorul creat.

$tergerea unui utilizator se poate realiza cu u s erdel sau cu del us er (d el u se r este un script care apeleaza la rdndul lui us e r del ):
Ioo t @asga r d , /home/georgef de lu5e r U50

Remov i ng- u ser Done .

' uso '

...

3. 1.3

Adaugarea

~ i ~te rg e re a

unui grup de utilizatori

Adaugarea unui grup de ulilizatori se poate real iza cu ajulorul comenzii qroupadd, sau cu ajutoru l comenz ii a d d 9ro up . a d d 9 r oup este un script care apeleaz3 la randul lui
gro upa dd.
roo t @asga r d : /horn"/g"org'" addgcoup usog r o u p (GID 1002)

> Adding g r o u p ' u,ogcoup '


Done .

$tergerea unui grup de utilizatori se realizeaza tot prin doua comenzi, gro updlOl si de l group (de l g roup este un script care apeleaza g ro updel ).
,

>

coo t @a' gard , /horn"'g"ocgel de lgc oup u s og r o u p Removing group 'u'09roup ' ... Done .

3.1.4

Modificarea datelor unui utilizator

Modificarea datelor unui utilizator se realizeaza cu ajutorul come nzii u s ermo d . Aceasta pe rmite modifica rea grupului din care face parte un utilizator, a directo rului de !>aza (home). a numelui de utilizator. a parolei etc. De exemplu. pentru modiflea directoru l de baza al utilizatorului geo rge se optiunea - d .
folose~te

,
,

usohsgard:-$ pwd Ihome! uso

CAPITOLUL 3. GESTIUNEA PACHETELOR SI UTILIZATORILOR


6

57

U.o@~.g~rd:-$

.udo SU

10

roothsgara:!nome!usol u sermoa - a !nome!usoair! uso roothsgara,!nome!uso' exit exit


u ~ o @ ~5ga r a , -$

" " ,.

1~

e"it

"
1~

uso @ "eq"ra ; -$ pwa


!nom~!u5o

11

" ,.

usoh.gua:-$

in e~emplul anlerior a losl sch imbal directorul curent in directorul de baz~ al ulilizatorului usa, apoi a lost a1isat directorul curent (pentru a vedea care este directorul de baz<'i actual), a lost pornit un nou shel l in care utilizatorul autentilicat a lost root, a lost modificat directorul de baza al ulilizatoru lui usa in /home/usodi r , a fost inchis she llul de root , apoi Si utilizatorul uso a p<'!. r<'!.sit sistemu l de operare. Schimbarea directorului de baz<'!. al unui utilizator se rea lizeaza doar dupa ce ulilizatorul paraseste sistemu l ~i se auter"ltilic<'i din nau:
u ~ o @ ~5ga r d , -$

pwd

!home!u.od i r!

Modilicarea parolei unui ulilizator se poate face

~i

cu ajutorul comenzi i passwd:

root@"sg"rd : !nome!u501 p&5s~d uso En t er M .. UNIX p&; ~ word : RHype ne .. UN I X p .. ~ ~ word : p&sswd : p"""ord updHed s uccessf u lly

Din motive de securitate caracte rele tastale in dreptul parolei nu vor Ii

ali~ate.

Daca nu este specilicat niciun nume de utilizator va Ii schimbat<'i parola utilizatorului curent. Doar utilizatorul root poate schimba parola altui utilizator.

3.1.5

Adaugarea ~i ~tergerea utilizatorilor

in sisteme le Debianbased, ad<'iugarea, respecti v sterge rea unui utitizator se real izeaz<'i prin intermediul scripturilor adduser ~i deluser:
root@"n"cond~ : -~

.. dduser test

"

Adding u" ~ r " t ~ "t ' ... Adding ne .. group " t,, ~ t (1038) Adding M" u" ~ r "t es t ' (1003) with group " t ~ 't ' ... CIM t ing home d i r e ctory /hom~/t~st ' 6 Copying fil ... from !<>tc/ ~ hl' 7 Ente r ne .. UNIX p .. ssword : A Re type ne .. UNIX p .. ssword , p~s.wd : p ...... ord updated succ@ssfully 10 Ch~ng i ng the user information for t ... t " Enter the ne .. value , or press ENTER tor the def8ult ,~ Full N ~ me [) , Test lIser Room Numbe~ [) :
J

sa

lNTRODU CERE iN SISTEME DE OPEAARE


Wor k Pho"" I I :
Ho me Phone II :
Other [I:

" " " " " "


00

IS the infor mation correct? (yIN] y


rcothnacond3 : -J 1<1 test uid-1003 [test) gid - 103a {test] groups - 1038 (test I Loo t @a n aconda : -f d"luser -- remove - home t e ,t

"

~ ~

Loo k Ing for file" to b ac kup /remove


Removing fil " , ... Remov i ng use r ' test ' Done .

.. 20 ..

Avantajul si, in acela~ i limp, dezavantajul folosir ii comenzii addus er este interactivitatea. Automatizarea sarcinilor presupune comenzi non-interactive. Penlru aceasla, se pol folosi comenzile u s eradd, u s erd el ~i use rmod. u s era dd, respectiv u,u. rd .. l sunl folosite de sc riptu rile a ddu" .. r si de lu" .. r .

,
3 e

r oot @a naco naa : -J

~seradd

- m - d /ho me/ test test

,
,

r oot h n aco n(!a : -I id test uld-1J16(t""t) gld - 1116{t"st ) groupa - 1116(t""t) root@ .. Mconda : -J
u~ e rrnod -~

!b,n!sh t e ,t

" , 10 11

root@anacon da : -I us"rd"l -r t @st Ioo t @a n acon da : -I i d t.,s t i o : t eot : No ouch us"r

3.2 Gestiunea pachetelor


Un pachel, sau un pachet software. este 0 ap licalie sau 0 compo nent.li accesibil.li in forma unei arhive care poate fi instalat.li de un sislem de gesUune a pachetelor (PMS - Package Management System). De obicei. pachetele reprezint.li programe precompilate care pot fi inslalate u ~or. spre deosebire de instatarea din surse care este mai anevoioas.li (vezi sectiunea 14.6. 1). Lucrul cu pachete (instal are, dezinstalare. configurare) se realizeaz.li prin inlerme(jiul unui sistem de gestiune a pachetelor (precum dpkg. rpm, pa cman). Un astfel de sistem contine , in alar.li de fisierele asociate programului si un set de meta informatii precum versiunea pachetului, descrierea ~i dependenlele acestuia. PMSul folose~te aceste informatii pentru a decide dac.li se va real iza instalarea pachetului, upgrade-ul acestuia. instalarea dependentelor etc_ 0 dependent.li intre pachetele A si B inseamnti c.li instal area pachetului A necesita instal area pachetului B. La lei. dezinstalarea pachetului B va forw. dezinstalarea pachetului A. Majoritatea distribuliilor GNUfLinux folosesc noliunea de repository (depozit de pachete). Acesta este un URL care precizeaza localia diverselor pachete ale distrib uliei. Aceste depozite sunt precizate in f~iere de co nfigurare specifice distributiei.

CAPITOLUL 3. GESTIUNEA PACHETELOR SI UTILIZATORILOR

59

Ap licatii frontend peste PMS pot interoga depozitele si PO I descArca si instala noi pachete. in lumea Li n u ~ e~ istA diverse form ate de pachete, cele mai cunoscule jiind formalul DEB , specifiC distributiilor Debianbased si formatul RPM folosit de Fedora/RedHat. Mandriva, SuSE. etc. Fiecare for mat are propriul PMS, Utilijarul alien ' per mite convers ia intre diverse formate de pachete ,

Gestiunea pachetelor DEB Utililarul de bazA (PMS) pentru gestiunea pachelelor DEB esle dpkg. Folosit electiv penlru inslalarea sau dezinstalarea unui pachet, acesl ulilitar of erA optiuni penlru interogarea stAri; actuale a pachetelor sau a conti nutul acestora. Prinlre 0p!iunile uti le se numarA:

lislarea conlinutului unui pachel

, ,

,.

root@anaconda : Itmpf dpl:g - L coreuti l s

" " " " "

Ib in lbin/ml:dir lbi n/mv !bin/true Ibin/mknod !bin/"leep Ibin/touch Ib in /ch'ijrp Ib in /uname Ib in /echo Ibin/sync
[

. .. [

afisarea pachelelor al caror nume se potrivesle cu 0


roOt@anaconda : /tmpf dpl: g - 1 " linux ,"

e~ p res i e

regulalA

> Des i r e d - Unknown/ I nsta ll/Re move IPur'ij" I Hold J I Status _Not I I ns t al h d/Conf ig - f i l es/Unpacked/F a i h d-conf i g I Hal f " i notall ed I I Err? _ (none ) /Hold/Rei n st - required/X - both -p roblems upp,,"case-b a d) Ve rsion Description II I Name I Status , Err,

+++-----------------------------------------------------------------, linux <none> de s criptIon linux-doc-Z . 6 . <none> '"" descr . pt i on "" "" linux - gnu '"" <none> descr i ptIon "" linux - image '"" <none> " "" 1i nux - ima'ije - Z . <none> '"" d es crIption available)
~,,~il~bl e J

~"~il ~ bleJ

~,,~ihbleJ ~,,~il~bl e )

" "" " u


1J

li nux-ima'ij@-2 . 2 . 6 .18 .6Hch3

Li nUK hrnd U

'""

de ~ cript i on

Irnaq"

00

Pprol

C" l "

I , .. ]

cAuta rea pachelului ce contine un anumit liSier


root@ ~naconda : /tmpf

dpl:g - $ !bin/ p "

> procp ; : Ibin/ps


, http;lll< itenet.neV-joeylcode/alieni

60

lNTRODUCERE iN SISTEME DE OPEAARE

1 n mod obi snu~, insa, cea mai mare parte a acestor actiuni vor Ii rea lizate prin intarmediul
utililarului APT (Advanced Packaging Toefl APT esle un front-end peste dpkq 5i permite interogarea depozilelor de pachele conf igurate. ve rificarea dependenlelor, descarcarea automata a pachetelor din reposijory, actualizarea acestora, upgrade-ul unei distributii

etc.
Fisierul de conf;gurare a unui depozit DEB pentru folos irea eu
/etc/apt/so ur c e s . list :
root @a n aconda , /t rnp '
2 ( ]

AP T

eSle

cat

/@ tc /~p t /s ou r c @" . l i ' t

d eb h ttp : //ft p . l ug . ro/debhn etch mai n co ntr ib non - free deb- sre h tt p: //tt p . \ ~9 . r o /de''u n etc h m3! n contrit, n o n - f "ee

Adaugarea unui nou depozil inseamna adAugarea unei noi linii in fisierul de oonfigurare. Ac!iuni le care pot Ii real izate cu ajutorul utilitarului a pt sunt: actualizarea listei de pachete
2 3 " 7
$
~

10

r o o t8a na c ond a : / t rnp ' ~p t - g ~ t upd at ~ GH : 1 htt p : // ft p . lu g . ro Hch R " l ,,~ s e . g1'9 [386B] Get : 2 h tt p : // f t p . lu g . ro et ch / upd ~te$ Re l ease . g pg I I S9BI Hit h tt p , llftp. lug . r o etc h Re l ease Get : 3 h ttp : // ... ~~ . b~ cl: ports . org etch - bac ~po rts Relebse . g p g 11996 1 Get : 4 h tt p : // f t p . lu g . ro etc h l updates Rel<oase [3 7 . 6k B I I gn h tt p : //deblan . p l:g s . cpa n. org un stab le Release . g1'9 Get : S htt p : // .. ~~ . bac l: ports . or g etch -b ac kpo rts Release 143 .7k 1.l 1 Ig n h tt p : //ft p . lug . <o et c hlrMi n p ac kages/ Di ff ln d e x I g n h n p : /lft p . lug . r o Hch /contrib p a cka9M/ Di ff l nde x

"

I ... I

cautarea de pachete
rooth naconda : /tmpf apt - cac h e search h evea 2 h evea - tunshtes f r om L~Te X to HTML. i. nf o . or te xt , l yx - High Level W o r d P rocessor h e"e3 - doc - HeVeA d oc ume n t3tlo n

afisarea de informatii des pre un fisier


r oot 8a n a c ond a : / t rnp f ~p t - c ~c h ~ ;how h e y e a 2 Pa cka g " : heY"a 3 Pri. or i. ty : opt i o no! Sect i o n : te x " In sta ll ed - Size : 212 5 a inta i n er$ <de b i. a n - o caml - m~ int@l i . t . " Ma i nta iner : De b ian O C ~ ml M d e bi a n. org> 7 IIrch it e cture : all $ Vers i on : 1 . 09-3

inSlalarea unui pachet (si a dependenle[or sale)


2 3 " 7
$

r oot8a na co nd a : / t mpf ~p t-g e t i n sta l l apt - fil@ Read i ng p ackage list. . . Don e Bu il d ing dep endency tr e e ... Don e The fo llowi. ng @ xt r~ p~c k ~ g es will b @ i n~taIl@ d : li b a p t - p~ g - p erl libconf i g - fi l e -per l Th e fo ll o wing NEW pac l: ~ g es wi ll b e in stalled 3 p t - flle l1 b apt - p l:g - per l Il b conflg - f1Le - p erl 0 upg uded . 3 ne~l y i n sta ll e d. 0 to rem Ove and 66 not u p g r3ded .

CAPITOLUL 3. GESTIUNEA PACHETELOR SI UTlLlZATORILOR


'" " Need to get I06 k B o f ~ rchi ve . "'Her un p ~cking 4 06 k B of o dd it i o no l disk space will be u se d . 00 you want t o c o nt i nue IY/ n ] ? ~

61

dezinstalarea unui pachel


a n aconda : /tmp ~ apt - get re move --p urge a p t - f i le 2 Reading package li sts ... Done ) Bu ild i ng depe ndency t ree ... Done Th e fo ll owing p~ ck ~ge5 wi ll b e REMOVED ~ p t - file. 5

Cura!area cac heului local de pachete

,
5 7 ,

r oot@an~conda : / t rnp f apt - qe t cl@a n i n otalarea surselor u nu i pac h et

root@anacond a : /trnpl ~p t - qet .our ce a p t - file Read i nq p ~ckage lists ... Don e Bu il ding dep endency tree .. Don e Need to get l'l . ll<B of sou rce ~ rchive" . Get : 1 http : //ftp . lug . ro etch! m ~ in ~ p t - file 2 . 0 . S . 2 Idsc) Get : :I http : //ftp . lug . ro etc h / m ~ !n a p t - f i le Z . O. S . 2 [t3r)

[ 5 0 5S ] [ 17. :l l 6 ]

lislarea tuturor pachetelor din cacheullocal de pachele, impreuna cu dependelele acestora


, "
&

root@anac o nd a : /trnpf ~pt - cac h e dump Us ing Verslonlng System , Sta ndard . deb
P~ck~ge : p \ p en l ghtdre~ms

Ver9ion : 0 . 10 . 0- 13 rile : /var/ li b/apt!lists/ro.arch\ve . ubuntu .


co ~u b untu _d I 5t5 _ jaunty _u n iverge- in"ry - 1 386 _ F a c k ages

7 '" " 12 " ,.

Dep e nds : libc6 2 . 6 . 1- 1 D e p e nd ~ : lib\l c c1 1 : 4 . 2 .1


li b ~ d l-im~qe l . 2 1. 2 . 5 libs dll . 2 d ebi .. n 1 . 2.1 0 - 1 D e p" nd ~ : li b st dc ++6 4 . 2 .1 Dep .. nds : p ip@niqh t d r e~ m " -d ~ta 0 .1 0 . 0 - 13 De.cr ip t io n L ~nqu~qe : Fil e , !var/ li bhp t/ l ists/ro. a rchive . ubu n tu. D e p e nd ~ : co ~u b untu _d l $ts _ j&unty _ un iv"r."- inary - 1 386 _ Pac ' ages De p "nd~ :

MOo :

7dO U c6 0 ae 2 f4 22 dflada81~Ofb80333

"
list area reposito ryurilor d in care face parte un pachet, versiu l1ea dispo l1 ibila, vers iunile cand idate etc.
r oot@~n~cond a : /trnpl ~p t - cac h e

po li cy firefo x

, " 7

'" "

firefox : I n st .. ll"d : 3 . 0 . 14 +bu l l d 2 +no b i no n ly - OubuntuO . 9 . 0 4 . I C"nd i d a te : 3 . 0 . 14+bui ld2+nob ino n l y - Oub untuO . ~ . 0 4 . 1 Version table : 3 . 0 . 14+bo l ld2+n o binonly - Oub ontuO . 9 . 04 . 1 0 500 h t tp : //<o . arch.ve .u buntu . com j a unty-updUes/""'in p .. c l ~Q e~ 500 http : //sec u rity .ub u ntu . com j a unty - security/""'in p .. c l " ges 100 Iv .. rllibl d p k qlst~t u " 3 . 0 . S+nob 1nonly- Ou b u n t u 3 0 500 h tt p : //ro . ~ r c h i ve. ubu ntu . c om jaun t ylm~in P ~c k ~qe"

62
PPA

lNTRODUCERE iN SISTEME DE OPEAARE

Exisla 5i concept ul de Personal Pa ckage Archives, un sistem ce-j petmile programatorului sa~i locarce pachetele proprii pentru a Ii incluse in updateurile ul\erioare de pachete, fiind astlel mai usor distribuite caIre ut i li~ato rii finali. Astlel, acesta ~a putea instala programul scris de altcineva ca pe un pachel normal.
Totusi, penlru a pre~eni problemele de securitate, acesllLICru nu poate Ii Hicut oarecum. in continuare vern enumera pasii necesari pentru a putea instala programe dintr-un PPA, numit someone561 necesar pen\ru a instala 0 vers iune mai recenta a unar compi latoare.
t _ Vorn crea un fiSier nou cu un continu! 5i 0 locatie ca mai jos pentru a oferi detalii

cu privire la adresa de unde se vcr descArca pachetele


2 , mi ha i 8keldon : Itmp# ca t IHc/apt/ " ource~ . li ~ t . d!h~5k~1l . l i ~ t deb http : //ppa . hunchp~d . nH/,o m ,,on,,S61/ppa/ubun t u j ~ u n t y ma i n d"b - , rc h ttp : //ppa . l~u n chp~d . net / ,omeone561 /pp~1 ubunt u j~unt y rna i n

(se va schimba jaLJnty CLJ nLJmele versiLJnii distribLJtiei fofos ite)


2. PasLJI LJ rmAtor constA in aLJtentihcarea acestLJi PPA. Desi poate Ii li\cLJti\ si prin editarea unui li~ier sau este opUonali\, acest lucru nLJ esle recomanda\. Se preleri\ fo losirea urmAtoare i comenzi:
mi h a i 8ke ldon : /tmp# ~pt - k ~y adv ubuntu.com E51 D9310
-- r e cv - key ~ -- k~y ~ ~rv~ r k~y"e r ver .

uncle ultimul argument reprezintA un cod unic de autentilicare al posesorului PPAuILJi. DacA nu dorim sA realizAm autentiliCarea vom avea mereu mesaje de avertisment in cazul instali\rii unor pachete din aceste repositoryuri.

3. UI1imul pas va consta in reactualizarea cacheului local de pachete


pachetelor din acest PPA

~i

instal area

,
,

mi h a!@teldon : /tmpf apt - get upda t e mlha!@teldon : /tmp# apt - get insta ll ghc6

update-alternatives in timpul rLJIArii linu x, este LJn caz obisnuit sA exisle mai muHe programe avAnd aprox i mati~ acela~i scop. in special, compi latoarele ~i editoarele de text sunt exemple des intfllnite ale acestui Cal. Prin urmare, deseori apare probfema alegerii programLJILJi potrivit. AceastA problemA este accentuatA de laptul ca exi sta multe programe ce vor apela aile programe dupA un nume - de exemplu, mulle programe permit utilizatorilor sa editeze un li~i e r, lArA a Ii ele insele un editor. Ar trebui deci rLJlat un all edito r din sistem, dar care din ele? Un exemplu ar Ii managementul taskurilor utilizancl cron. Prin urmare. pentru 0 clasA de aplica!ii care pot lolosi 0 suitA de aile programe. este nevoie de 0 modalilate de a conligu ra variante alternative. 0 variantA simplA ar Ii folos irea unor ~ariab i le de mediu (EDITOR de exemplu).

CAPITOLUL 3. GESTIUNEA PACHETELOR SI UTILIZATORILOR

63

Varianta propusa de Oebian este de a avea un set de comenzi standard, precum e ditor . ..---b r o wser, v ie w etc. De lapt, toate aeestea sunt linkuri simbot ice spre comanda reala. Pentru a seta aceste linkuri, se va lolosi comanda up date-alte rnat ives. Acest sistem poate lunetiona in doua moduri: automatic mode - sislemul decide singur catre ce program vor indica linkurile manual mode - admi nistralorul sislemului va decide acest lucru Implicit, modul este automatic. Linkurile simbol ice su nt structurate in grupuri con!inflnd priorita!ile diverselor programe (edilorul cu prioritate maxima esle ee l ales in cazul rularii ed i t or). Putem realiza urmatoarele: listarea intormatiilor despre un grup
m!ha!@~eldon , ~' update - ~lternatives --display editor 2 editor - status is auto . ) lin~ curre ntly pOInts to lu"r/bin/vim . gnome lu.r/bln/vlm . tlny - priority 10 $ slave editor . ru . I . g-. : lusrlsnare/manhu/manl/vim . l . g-. ;lave e di tOr . pI . 1506859 - 2 . 1 . g-z : lu"rhnare/m~n/pl . IS08859 - 21manll v i m. l 9 z 7 ,lav....di tor . it . IS06659- 1. l .gz : lu'r/"har .. /m~n/it . ISOa859- 1 /manll v i m. l. g' ,lav....ditor. I . g:: lusr I,ha r .. /man/manl/vim . I . gz . l ave ed i tor . pI . UTF - S . 1 gz : l u . r 1 $har .. /man/pi . UTF - S/man l /v im . I . gz 10 slave editor.it.l.g:: lusr/share/man/it/ma nl/vim . l.g' " slave ed itor . f r . UTF - 8 . 1 . g>= 1usr /share/manl f r . UTF - 81 manl/v im. I . g. 12 .lave editor . f . I . g:: l u sr/.nare/manlfr/ma nl/v i m. l . g% " slave editor.it.UTF - 8 . 1.g:: lusr!share/man/it.UTF - 8/man l /vim.l.g' ,. .lave editor . pl . l . g:: I"sr/.hare/man/pl/man l /vlf . l . gt 1$ slave edi to~ . f< . IS08859-1 . 1 . gz : lu.rlsha~e/m&n/fr . IS09959-1/manll vim.1 . gz ,. Ib i n/" d - priority - 100 17 olav.. edit or. I . gz : I usr I ,ha r .. /ma n/=nl/ .. d . I . gz ,. Ib i n/nano - pnon t y 40 , .lave editor.l . gz : lusr/sha r e/man/=nl/nano . l . gz 20 lusr/bin/vim . gnom~ - prio r ity 60 21 slave editor.ru . l.gz : lusr/sh,ore/man!rU/manl/vim . l . gz '2 slave edi tor .pl . IS08859 - 2.1 .g:: lusr/share/man/pl . 1509959 - 21=011 v im . l. g' 2' slave editor.it.IS08859 -]. 1.g': lusrlshare/ma n/it.1509959 - 1/maoll vim.l.g' .lave edi tor . I . g. : luse Ishare/rna nlm a nl/vim . I . g< "lav~ ed i tor. pl . UTF - 8 . 1 . gz : lu; r I" ha~ e /man/p I . UTF - 8 Iman1/v im . 1 . gz l a ve editor . i t . I . g%: f u sr/.ha re/rnan/l tlma n l /v i m. 1 . g% slave edi to~ . fr . UTF - 8 . 1 . gz : lu.r/"ha~e/manl f< . UTF - 8/man1/vim . 1 . gz slave e di tor. fr. I . gz : l u srlsh a r e /ma.n/f~/manllVlm . 1 . g. sl a v" edi tor . it . UTF - B. 1 . gz : luorhhare/man/it . UTF - B/man l /v i rn . 1 . \1' dave edi t or . pI . I . gz : lu," I ,hue I=o/pi/man I / vim . 1 . gz .lave edi tor . tr . 1508659-]. 1 .gz: lu.rhhare/m~n/tr . IS0665~ -1 /=nll v i m.l. gz 32 Cuuent ' b .. st ' version is luor/bin/vim gnome .

" " " " " ,


" "

lislarea luluror !intelor din grup

.
m j h a!@teldon : ~ ~

INTRODU CERE iN SISTEME DE OPEAARE

update - alte~ na t!ve.

-- jist

edlto~

) 5

/u.rlbln/ v im . t1n y Ihin!ed Ibln/Mno / u .rlbin/vim . gnome

schimbarea inleractivii a unei OPtiuni

, The r e are 2 alternHive. which p r ov i de w,",w - brows e r'. s e l e ction ----------------------------------------------, fusr/bin/ .. )m / usr /bi n I e li n k . 10 Pr,,"" enter to l<eep the de fa ult [.], or type .election
J

r oot@ keldon : Jhomeim.hai. update-a ltern atives --c on f i g www - brow.er

..
~

n u mber :

schimbarea unui link simbolic


bin/elinks IJslng ' /usr/bin/elin k s '

(neinteracli~)
~ww - brow"er

root@teldon : /home/mlhalf update - a l t e rnati ve s -- se t


to provide ' www - b r o"'ser '.
lolose~te

fusr/

Pentru configura rea luturor alternative lor se -- al l

update-al te rnat i ve s

3.3
3.3.1

Studii de caz
Fi ~ ierele

in care sunl slocale informalij despre ulilizalori

Inlorma!iile despre grupuri si utilizatori sunt stoeata in trai lisiere text: /ete/passwd - informa!ii despre conturile utilizatorilor / etc/ shadow - informa!ii despre parolele utilizatorilor lete/group - inlormatii despre grupurile de ulilizatori lete/ passwd contine cate 0 linie pentru fiecare utilizator. Aceasta linie are sapta camp uri despa!1ite prin ca racterul ":". Campurila sunt (in ordinaa in cara apar in
Fi~ieru l fi~ier):

Numa da utili zator Parola. Un caracter x in aceasU! pozi!ie arata faptul ca parola este stocaHl. in hsierul /alc/shadow. UID GID Informatii legale de utilizator (Nume, Adresa, Telelon) Directorul de baza (directorul home)

CAPITOLUL 3. GESTIUNEA PACHETELOR SI UTILIZATORILOR

65

She"ul folosit

Un exemplu de li~ier f etcfpasswd este:


root@asg~r a: / h o me/george'

cat letc/passwa

,
3 "

sync : x, 4 , 655~4 : sync : III in : fllin/sync g e o rge : x : 1 0 0 0 : 1000 : George , , , , Ihome I george: Ill i n/llash uso : x : )001 : 1 00) : uso , eG306 , , : (home/uso: II)! n /ll~sh

I )

(. .. I

Initial. tot In lisierul fetc/ p<lsswd se retinea u si parolele. dar, pe mAsurA ce atacurile bazate pe dic!ionare au devenit lezabile. parolele au Iosl mutate inlr'un li~ i er cu permisiuni 600 numit lete/sh<ldow. el cate 0 linie pentru liecare ulilizator. Pe fiecare linie se giisesc opt cfimpuri despi'l.rlite prin caracte rul ":". CAmpurile sunl (in ordinea in care apar in lisier):
Fi~ierul ~i

fetef shadow coniine

Numele de utilizator Parola in formal eriplat. Daca in loc de parola se alia un caracler "!", utilizalorul respectiv nu se poale autentifiea in sistem Data la care a lost real izata ultima schimbare de parolii (data eSl e notatA in numarul de zile Irecute de la 1 ianuarie 1970) Numarul minim de zi le care pol trece intre doua sehimbAri de parola Numarul maxim de zile penlru care parola 95le aeti va Cu ~Ie zile inainle de expirarea parolei e51e anuntat utilizatoru l sa parola
j~i

shimbe

Numarul de zile care trec dupii expirarea parolei pana cand co ntul va Ii dezactivat Data la care contu l ianuarie t 970)

va expira (data este notatii in numarui de zile trecute de la 1

Criptarea parolei se face Iolosind 0 lunc!ie de hash, in general MD5'. dar. de preferat, SHA2'. Aceste lunctii sunt oneway, deci nu 5e poate alia parola simplu nk:i mi'l.car folos ind fete/shadow . La liecare autentilicare. parola introdusa de utilizator 8ste trecuta. prin algoritmul de hash si comparata cu valoarea din l ete/ sh<ldow. Mai mulle detalii des pre cr iptarea parolei se poat alia din pagina de manual a comenzii c rypt .

Un exemplu de lisier f etcf sh<ldow este:


,
J

"
6

, 8

roo t @a sga r d : /home/georgedirff ca t /etc/shadow roo t:' : 13714 : 0 : 99999 : 7 ::: daemon : . : 13620 : 0 : 99999 : ; ::: bin :: 13620 :0: 99999 : ; ::: sys:. : 13620:0 : 99999 : i ::: sync : . : 13620:0 : 99999 : ; ::: geo rge : $1 $Lell~03w4 $40;: Rf UMfCs fR9LOm H6,D(;0 : 13;; 4 ; 0 ; 99999 : 7 : : . uso : $ 1 $lPSj/ETo$IUqelNrqmOr4LYaMih h 6x 1 : 13115 : 0 : 99999 : ; : : :

, http ://. n.wikiped ia .orglwikiIM05 ' http ;11. n. w ildped ia. o rglwikiiSH A 2

66
( ... I

lNTRODU CERE iN SISTEME DE OPEAARE

Fi~ieru l fetc/g r oup conIine cate 0 linia pentru fiecare grup. Aceasta linie are palru campuri desp1!.rlite prin caracterul ":". Cflmpurile sun! (in ordinea in care apar in f~ier):

Numele grupului

Parola (cAmp cs nu mai aSIa lolosil)

GID
Numele utilizatorilor oe lac parte din grup, In afara de utilizatorul care are nume eu numele grupului Un exemplu de fisier f et e/group aSIa:
r oo t @asqa r d: ! ho m@!georgedir/ l
2 root : x : O:
c~ t

acela~i

fete/g r o up

Ip , x , 7, cup.ys
h p lip . ge o rge

sc~ nn er : ': 1 0 4 ; cu p sys . 5 george : x : l 000 :


~ u ~ o : x : 1001 :

(. .. 1

3.3.2

Actualizarea unui sistem Debian sau Ubuntu

Utilitaru l apt olera posibilitatea de a actualiza loa1e pachetele instatale pe un sistem care foloseSle pachete de tip. deb.
Primul pas in acest sens este asigurarea cA lisla local<l. de pachete eSle actualiza\A. Acest lucru se lace folosincf apt-qet update, DupA aceastA opera!ie. utilizatorul are doua alternative pentru instalarea ceior mai nOi pachele disponibile: apt-qet upg'rade actuatizeaz<li toate pachetele care pot Ii acl1.Jalizate fara a inSlala sau dezinSlala aile pachele, Este. din acest motiv. altern at iva mai conservalivA, pentru c<li nu inlroduce depencfenle aditionale, si nici nu dezinstaleaz<li programe poten!ial utilizate; apt -qet dist-upgrade este mai agresiv si instaleazA sau dezinstaleaza pachete dupa cum dependantela versiun ilor noi car. De asemenea, aceasta comanda solulioneaza eventualele conflicte' intr-un mod "inleligent", adica , in cazul unui conflict. va actualiza pachetul pe care 11 consider<l. mai important. In ce le din urmA, 0 comandA utila dupa un upgrade este apt- q .. t autor..mov... Aceasta va dezinstala pachetele care nu au lost instalate explicit de utilizator, dar nici nu mai sunt necesare niciunui pachet actual.

Cuvinls cheie utilizator grup uid gid


d if8r~ e

' Un conflict apar8 oind cJouii pach"t8 C8 r e xp lic it v@ roiu roi in.la la rfta ., r c.li la lt .o.zirl.ta larea ,

d intr_un al lrt! i" a, or; dnd un LJI ""r8

CAPITOLUL 3. GESTIUNEA PACHETELOR!?I UTlLlZATORILOR

'00'

linger l elc/passwd

l elc/shadow l etc/group

passwd

'"

adduser. deluser

useradd, userdel pache l

Package Mangement System DEB,RPM

fetc/a pt/ sources. Iist


depozit (repository)

'pI
dpkg dependen\a inslalare, dezin stalare actualizare (update) upgrade

intrebiiri t. Care este comarda lolosit:l: pentru ad:l:lIgarea noninteractiv:l: a unui utilizator in sislem?

"ddu" .. r useradd newuBer


fing .. r

o o
o

2. De ce nu sunt linute hashurile parolelor in fi~ierul letc/passwd ?

o
o

/etc/ passwd se poate al ia pe 0 part~ie nesigur:l:. permisiunile asupra letc/pass wd nu asigurA securitate maximil. intrebarea este let c / passwd .
0

capcanil.

hashurile

parolelor chiar se alia in

o / e t c I P3 sswd nu poate Ii modilicat cu ajutorul comenzii p ..... wd, de aceea


este nevoie de un fi~ier cu perm isiuni speciale.

3. Care dintre urmAtoarele alirmatii este adevAratii despre sistemele de pachete?

o o
o

rpm este bazat pe apt dpkg este un wrapper peste apt ap t este un wrapper peste dpkg sistemele Red Hat lolosesc dpk y

o o

4. Care este mecanismul prin care update-altell'natives schimM programe le folosite pentru anumite taskuri?

legaturi simbolice

C JPYnghted

mataf~1

68 o legaluri hard

INTRODU CERE iN SISTEME DE OPERARE

o inslalare si dazinslalare on-demafld a pachetelor

o 5cripl-uri wrapper care citesc conf iguratia de liecare data cand programul asle ru la! 5i lanseaza allemativa corespul"lz1:iloare 5. Care din tre urm1:iloarele in formalii NU esle re!inut1:i in / et c/passw d? o direc\o(U1 home al utilizatorului
o interpretorul de comenzi (shell-ul)
o grupurile din care lace parte

o numele utilizatorului

6. Un Personal Package Archive (PPA):


o contine vers iuni ale unol pachete diferite de ceea sa gaseste In repository-

urile centrale

o peate inlocui in inl regime repos itory-urile centrale


o asle inerent l1esigur
~

nu poate Ii protejat

o poate Ii folosi! de

or~e

distribu!ie

C JPYnghted matanal

Capitolul4 Sisteme de fi!?iere


The Unix 1ile syslem', Sure if corrup ts your data, but look how fast it isl

Ce se inva~ din acest capitol?


Ce sun! ~i cum S8 utilizeaza sistemele de li~iere

Tipuri de sisteme de !isiere Utilizarea caJlor relative ~i absoliJte Lucrul cu fisiere (cream, copiere, mutare etc.)
Descriptori de fi~ iere Redirectarea comenzilor in fi~iere Arh ivare 8 ~i dezarhivarea Drepturi de acces la fi~iere

Cil itarii familiarizati cu notiunile de fisier, sistema de fisiere


fi~iere.

~i

cu terminologia asociala

pot porni direct de la seqiunea 4,3, continui'md apoi cu analiza detaliata a sistemelor de

4.1

NoJiuni introductive

4.1.1 Ce este un sistem de fi$iere


Fl slerul (file) asle reprezenlarea logica a unei informalii sub forma unei jn~iruiri de octeti. Fis ierul poate Ii considerat ca liind versiunea electronk:l1 a documentului scr is.

69

.1

70

INTRODUCERE iN SISTEME DE OPERARE

Directorul (directory) aSIa 0 enlita!e in care S8 POI regasi lisiere


directoare. Acesla peate Ii cons iderat vers iunea electronic;'! a dosarului.

~ilsau

alle

In

interle\ele grafice, directorul aSIa de obicei denumil Iolder.

Fisierele organizeaza informa!iile pe mediil e de stocare. Mediile de stocare pot Ii considerate spatii continue de aeteli. in aceste spalii, sa pot regasi mai multe ti~ie re, de dimensiuni ~arjabile. Sistemul de llliiere reprezinta modul de organiza re a lislerelor pe un mediu de
stocarB penlru a Ie lace mai usor accesibilB. OrganizarBa include alai partea logicA {modul in care sunt adresate fi~ierele} cal ~i partea fizic1i (modu l in care sunt slocate lisierala ca insiruire de octeti) , . .

Fiind 0 compone ntA a sistemului de oparare, sistamul de l isiem mentina numele si atributete lisierelor si permite stocarea lor intr-o ierarhie de dire<:toare numitA si arbore de directoare. Pentru ca utilizatorii sA poatA avea acces la li~iere. sistemu l de operare oleli:! 0 interlal A penlru lucrul cu sistemul de /isiam. Acaastil. interlatil. poate Ii una texlualA in mod teKl cum este in terpretoru l de camenz i, sau 0 inter/aid graficA.
cunoa~te

Orice mediu de stocare poate Ii utitizat pentru scrierea si ciUrea de sistemu l de l isiere utilizat pentru organizare.

I~iere

dacA se

Sistemele de operare lolosesc f i~ierele pentru a organiza date, indiferent dacA aceste date sunt ala utilizatorului sau sunt generate pa moment de sistam. Spre examplu, in Linu x si in Mac as x, orice informatia sa gAseste intrun lisier: datele se regasesc in I~ i ere ; directoarele sunt ~i ele lisiere, dar cu atributul de director; lie<:are dispoziti~ poate Ii accesal printr-un li~ier, inc l usi~ mouse-ul, memoria ~i placa video. Intern , Windows folose~te 0 schema asemAnatoare structurii de fi~iere si dire<:toare pentru a denumi dispozitivele, dar aceastA structuril. nu se suprapune pesta structura de I~iere precum in Linu x ~i in Mac as.

4.1.2

lerarhia sistemului de ti~iere

Sistemele de lisiere perm~ utilizatorului sil organ izeze datale intrun mod accesibil. Structura eel mai des intalnitA pentru organ izarea li~ierelor este arborele. Tabelele de mai jos prezinta structura ierarhicil. din sistemele de operare ce le mai cunoscute. in Tabela 4 .1 se gAse~te 0 reprezentare gralica. parlialil. pentru 0 ierarhi e dintr-un sistem de lisiere in Linux. i n rAdAcinA (/ ) se regilsesc di rCtoare~ home, bi n, us r . .. , in home se regilsesc directoarala ubunt u ~i myuser s.a.m.d. cu Linu x, structura in Windows esle mu~ mai simplA pentru directoarele aflate imediat i n ril.dAcinA. in schimb, 0 mare parte din directoarele importante se ascund in directorul 1'1 i ndo ws.
~,., ...ov ... atanal Comparati~

CAPITOLUL 4. SISTEME DE

FI~IERE

71

TabeluI4.1: lerarhia inlrun sistem de fisiere din mediul Unix

precum

,,'
io
etc.
"

utilizatorilor

" "
operare instalateicompilate de

,
log uri.
I~ i ere

,
temporare, cache (dale reutilizabile). spool

Figura 4.1: lerarhia sistemulu i de

Ii~ iere

in linux

C JPYnghted matanal

12

INTRODU CERE iN SISTEME DE OPERARE

TabeluI4.2: lerarhia intr-un sislem de !isiere din mediul Windows XP .1

Settings \use r na me\My Doc uments

calea implicila, ea poale Ii modificata )

Sistemul de fisiere folosit de Windows are 0 particularitate: exista mai mulle direetoare rMac ina, cate unul pentru fiecare parli!ie sau disc. Spre exemplu, pol ex ista simullan urmatoarele directoare rMacina: A : - floppy disk (de obicei literele A : floppy disk-un):
~i

B ; sunl rezervale de Windows pentru

c : - parli~e de pe hard disk; daca exista mai multe parti!ii se asociaza litere in ordine penlru fieeare dintre ele; D : - CD-ROMIDVD-ROM (urmaloarea lilera disponibi la dupa ce s-au asoc iallilere partitiil or de pe hard disk(uri. Dupa cum sa preeizat anterior, pe 0 parti~ e poale e~isla un singur sistem de fi~iere la un moment del. De obieei, sistemele de fiS iere cu suport fizic se gasesc pe 0 singura parli\ie. Trebu ie men!ional fap\ul ca Windows aloca lilerele dupa parli!ii, nu dupa sistemul de fi~iere. Astlel, dacA sistemu l de fi~iere de pe 0 paru!ie sa schimba, acesta va avea asociala 101 litera C : . Tabelul 4.3 prezinta 0 analogie intre cAi le import ante din sistemala de operare majore existente in prezef1l.

4.1.3

Cai relati ve 5i cai absolute


fi~fer

Exista doua moduri pnn care se poale ae<:esa un absoluta sau 0 cale relaliva.

sau un director: folosind 0 ca le


fi~ iere

Calea absoluta este calea care ineepe cu directorul rMac ina al sistem ului de cazul LinuxlMac as x este / : in cazul Windows esle c :, 0 ; etc. Calea re lativa este acea cale care indica spre un
f i ~ ier

- in

porn ind de la directorul curen\.

Fiecare director coniine doua directoare speciale: . (punet) indicA spre aca las i director (d irectorul curent); .. (punet, punet) indica spre directorul parinte. C JPYnghted matanal

CAPITOLUL 4. SISTEME DE

FI~IEAE

73

TabeluI4.3: I

ti intre caile sistemelor de

an d Set t i ng s\ USe l: name (WinXPj, C: \Usel:s\

use rname

,.
Files

I bi n; Isbi n; l u sr/bi n: l usr /sbi n;


l o pt/ . / bin

Ibi n; Isbi n

f'

sistemului

directoare specilice liecarei aplicatii, aflate in homeul utilizatorului; fe te

username/ Libl:ar y ; lete

Astlel, daca se doreste "urcarea" in ierarhia de fis iere, se foloseste . . care indica directorul pArinte. Se poate urca mai mult in ieramia de directoare inlAntuind cAteva grupAri de .. delimitate prin separatorul de directoare. in exemplul de mai jos: comanda pwd (print working directory) aliseaza directorul curent; comanda schimba directoru! curent in ed . / . / . pArintelepArinteluipArintelui directoru!ui cu rent (sar putea spune "strAbuniCul directorului curenn.
u b untu@ u b unt u : -/ c s/us o $ p wd

> Ihome/ u b unt u /c$/uso

ubu n tu@ubu n tu : '/cs/uso~

cd .. 1 .. 1 .

6 ,

ubu n tu@ubu nt u,/ h ome$ p wd Iho me

se loloseste pentru a indica in mod explicit 0 cale care are ca punc! de pomire este u!ilizat frecvent pentru a scrie comenzi care executa directorul cure n!. script uri/programe allate in directoru! curen!. $pre exemplu, comanda de mai jos executa lisierul p rogram_ din_di r ectorul_curent - aces! lisier trebuie sa poata Ii executat de utilizatorul curen!.
u b untu @ u b unt u:-$
. /pr09r~ ~ d1~ d ir~ctor u l _cu r e nt

"
4.1.4 Variabila de mediu PATH

lNTRODUCERE iN SISTEME DE OPEAARE

Penlru rna; mulle example de utilizare a cAi lor relative 5i absolute S9 poale co nsulta sectiunea 4.4.

1 n mod normal, pentru executia programelor uzuale, nu eSla necesari'i specificarea eilii complete sau schimbarea directorului. Sistemele de operare utilizeaza variabile de mediu (environment variables) pentru a sloca diferite informa!i i. PATH eSle 0 variabila de mediu care co ntine lisia cll.ilor uzuale unde se gAsesc programe. Programele care se gasesc in oricare din cai le din PATH pot Ij executate lara a preciza calea catre ele. Mai mulle informalii despre variabile de mediu si modiliCarea acestora S9 regasesc in sec)iunea 12.' 0.1.
Pentru a afisa var iabila de madiu PATH inlr-un madiu linuxlMac OS X se utili zeaza comanda:
2

ubuntu @ ubu ntu:-$ echo ~PA T H lusrlloc 3 1 /a b ! n : lusr/ l oca l /b l n : l usr labi n: Ius rIb In : Isb l n : Ib . n : lusr/ g 3 m"a

CaJle din lisla sunt desp;lirtite prin separatorul : (doua puncte). 1 nlrun mediu Windows , comanda eSle:
,

C : > e c ho tpATH' C : W I NDOWS \ 'y , t "m32 ; C : \ WI NDDWS ; C : W I NDOWS \ Sy s tem32 \ Wb em

Separalorut folos it in WiOOows aSle ; (puncl

~i

vi rgula).

4.2
4.2.1

Tipuri de

fi~iere

Terminologie

Sistemele de lisiere pun la dispozitie uUlizalorilor dilerile forme logice de organizare si acces la date. bineinleles sub formA de lisiere. 1 n alarA de directoare si lisiere, sistemul de fisiere pune la dispozi!ia ulilizatorului si legAluri (link-uri). Astlel, sislemele de lisiere maderne olerA posibililalea ulilizarii mai multor lip uri de fisiere , prezentate in taoe lul 4.4. Tabelul4 4: Tipuri de l isiere Denumire tip in englezli I Descriere regular Illes unitate logiCa de acces la date organizeazalisiere si alte directoare directories/folders symbolic links legatura caire un all fisier

Tipurlllsier fisie re normale directoare legaturi simbolice

Exista posioilitatea de a crea legAturi ata.t pentru l isiere ca.t si pentru directoare - in 1000. amoele enlilali sunl l isiere (dar cu alribute dilerile). Legalurile se ulilizeaza la

CAPITOLUL 4. SISTEME DE

FI~IEAE

75

scrierefciti re la lei fi sierele normale. Sistemul de ope rare lmpreuna cu sistemul de fisie re se ocupa transpa rent de iraducerea" acestora i n fi~ i e re normale pentru aplicalii. Linku ri le sunt create cu ajutorul comenzii In. Mai jos su nt prezentate doua exemple de folos ire. in primul exemplu se creeaza un link alli~ i erutui fete/apt / so urees . l i st. iar apoi la un lisier local precizAndu-se un nou nume pentru link.
,
~

ubu n t u @ u b untu : -/trnp$ h - I tot ~1 1 - rW- I -- r -- 1 ubuntu ubun t u

37 2007 - 09 - 04 10 : 59 he llo . t x t

1
8

"

ubunt u @ ubun t u : - /t rnp$ In - s IHc/apt /.ou r e ... . li st ubu n t u @ ubun t u : -/trnp$ ls - 1


tot ~ l

,0

- r,,- r -- r -- 1 ubuntu ubuntu Ir"'xr"x~wx 1 Ubuntu ubuntu SO urC eS . list

37 2007 - 09 - 0 4 10:59 hello . txt 172007- 09 - 04 10 : 59 sources . list - >

letc/~ p tl

"

,~

ubunt u @ ubun t u : -/tmpS In - 5 hello . txt hello u b u n tu @ u buntu : - /tmpS t ot a l lr"x r ",x r "x ubuntu u b un t u

1In ~. txt

" " n'

" "

, ,
, ,

" -,

9 2007 -09 - 04 11: 00 hello_ lin k . t xt 37 2007-09 -04 1 0 : 59 h@llo .txt 17 2007 - 09 - 04 10 : 59 sources . lis t

-~

h .. ll o .

" "

-I,,- r -- r -ubuntu u b un t u ubuntu ubuntu lr ",x r "'H"x source li st

-~

lete/a ptl

4.2.2

Oetec,ia tipului

fi ~iereror

Pe sistemele Windows . detectia tipulu i f i~iere l or se bazeaza pe verilicarea extensiei. in fu nctie de aceasta, sislemut de ope rare delermina care aplicalie eSle potriv~a pe ntru a deschide un fi~ i er. Pe sistemele Linux. delectia tipului lisierelor eSle real izata prin intermediul comenzii file. Aceasta utilizeaza un f~i er special de conligurare in care sunt inscrise secvenle de octeti care se regasesc in diferite tipur i de li~ i ere. fi l e lucreaza independent de exl ensia lisierului. precum esle dovedit in exemplele urmatoare:
ubuntu@ubun t u : -$ fi le photo . jpg photo . jpg: JPG image dau . JFlF sta ndard 1 . 0 1 ubu n tu@ubu ntu:-$ mv photo . jpg f isier . txt ubunt u @ ubunt u : -S file fh i er . txt pho t o.txt : J PEG image dau . J FIF

6 ,

st~ nd a rd

1 . 01

76

INTRODU CERE iN SISTEME DE OPEAARE

4.3
4.3.1

Opera,ii uzuale asupra


Afi ~area ~i

fi~ierelor

liOi directoarelor

schimbarea directorului curent

Comarxla pwd afi~eaza calea absoluta catre directorut cure nt. De asemenea, prom pt ul bash conIine implicit directorul cu rent. Pentru a schimba directorul cure nt se folose~te comanda cd <c a1e> . Calea poate sa fie 0 cale abso luta sau relativa. Mai jos se gase~te un exemp lu de folosi re a comenzi lor p wd ~i cd - a se observa ca la fiecare schimbare de director 5e modifica ~i prompt-ul bash. lerarhia de directoare prin care 5e navigheazA este cea prezentatA anterior.
ubuntu@ubuntu ; -~

p wd

, ,

7

Ihorne/ u b unt u
ubuntu @ ubuntu:-~

cd ..

ubun tu @ ubuntu : /hom.. $ pwd /home ubuntu@ubu ntu : /home$ cd .. /usr/b i n ubuntu @ u b unt u ; /u"r/binS
p~d

" "
'.

Ius< /b l n
ubuntu @ ubunt u: /u'r/binS c d ubuntu @ ubuntu: /u.r/ bi n$ cd I ubuntu @ ubuntu: / $ cd ubu ntu @ubun tu :-$ pwd /home/ubu ntu ubuntu@ubu ntu:-$ cd / u sr/bin ubu ntu@ubunt u ; /u"r/binS cd Ihome ubuntu @ ubuntu : /home $ c d lu"r/bin ubuntu @ ubuntu : /u,r/ bi n$ c d ubu ntu @ubuntu : -$ pwd Ihorn@/ u b untu ubu n tu@ubun tu:-$ cd . 1 . 1 . 1 . / ubuntu@ubunt u ; -Scd .. 1 .. ubuntu@ubunt u; /S pwd

" ,.
" ,. " ,. " ."
21

"
~ ~

"

" "
~

"

"
"

J2

" ""
3?

,
" ,.
"
.,

ubuntu @ ubuntu : /$

Observatii: cd . . schimba directo rul in directorul parinte:

CAPITOLUL 4. SISTEME DE

FI~IEAE

n
nu modilici'l directorul;

. (punct) este a relerinti'l la directorul curent. deci cd

- este echivalentul directorului home pentru utilizatorut eurent (cd - ); cd apelat fara parametri sehimba directorul in directorul home; c d - sehimbii. direetorul in direetorul anterior.

4.3.2

Afi!i'area con,inutului fi!i'ierelor

Con!inutul unui fi~ier poate Ii ali~at pe ecran prin intermed iul eomenzii ca.t, Sintaxa acestei comenzi eSle C""t <nWlle fi"ier>. Un exemplu de ulilizare este:

u b untu @ ubunt u ; - S c a t le tc ires o l v . con f f Ce n ersted b y d l\c pcd fo r I nt erface et llO s e arc h l ocs ldo ms i n M m eSe rv ~ r 192 . 1 6 8 . 0 . 1

Aceasti'l comanda aliseaza tOllisierul, inclUS iv daca acesta eSle mai mare de un acran. Pentru a putea naviga prin output-ul unei comenzi (in eazul acesta, al comenz ii ca.t), se pot Iolosi comenzi le more sau less. more perm ite navigarea doar intro singura directie (de la incepul catre sla~ilul fi~ierului) si cate un ecran odata. pe cand less permite navigarea in ambele direc!ii, cAte 0 linie. la fel ca un editor. mor e si less poaria numele de paginatoare (pagere) , Interiata less este loarte asemantUoare cu cea a editoru lui Vim (vezi sectiunea f4.3).

,
3

u b u n tu @ ubunt u : -S edt

l~ tc / X 11 fxorq . con f

mOr e
l<,,~

ubu n t u @ ubun t u : -$ cat l etc /Xllf xorq . con f

4.3.3 lIstarea conlinutului unui director


Cea mai frecventi'l opera!ie care se executa asupra directoarelor este listarea, Comanda utilizata esle la. i n aceaslii. sec!iune, prin li~ier Inlelegem orice l ip de lisier (inclusiv l ipul 'director"), mai pulin In caz uri le cAnd este menlionat explicit. Sintaxa comenzi i penlru listare este ls [op1;.iuni I [<cale> 1. In momentul in care lipse~te calea, se real izeaza listarea con!inulului direclorului curent. OPliunile cele mai des fo losile cu aceasta comandA sunt: - 1 afiseazii informatii detaliate des pre fiecare fis ier/director (data modificare, dimensiune. utilizator. grup, drepturi de acees); - a afiseazii ~i fisierele care incep cu . (caracterul puncl); in Unix. aceste fi~ie re sunt considerate de majoritatea interfetetor cu utitizatorut ca liind fi~iere ascunse; - h afi~eaza dimensiunea fisieretor in format humanreadabte. respectiv inlocuilii cu dimensiunea in dimensiunea in octe!i este Ki looctelifMegaocleWGigaocleti dacii depii~este un anumit ordin de marime. Formatul utilizat la afisarea detaliata conIine mai multe informalii des pre acellisier:

78

lNTRODU CERE iN SISTEME DE OPEAARE

ubuntu@ubu nt u ; -$ Is - }
2

Ihome/myuse~/myapp

- ' ''xr----- 1 myu "er

use~5

11 76348 2 007-03 - 03 20 : 2a

IhomeJmyuserfmy~pp

Semnificatia coloane lor afisate este:


primul caracler reprez intEl. tiput
fi~ieru l ui:

- = fi'$ier normal
d .. director

p _ pipe

b .. dispozitiv bloc c
1
"dispoziti~
~

caracter

leglitura simbolica

urmeaza 3 grupuri de eate 3 caractere (.-",x) care reprezinta drepturile de acces pentru ulilizatoru l myu se r (care esle delinAtorul fisieru lui), drepturile de acces
pentru lJIilizatorii care lac par te din grupul u se r s (care detine fisieru l). drepturile

de acces pentru

ceila~

ulilizatori: mai multe detalii despre dreplurile de acces se


fi~ier

gAsesc in secliunea 4.5;


numarul de link-uri catre -

J:
users;

ulilizatoru l ce de\ine fisie ru l- myuse r: grupul de care apartine dimensiunea


fi~ierului fi~ i eru l -

- 1 17 63 48 :

data l isierului - 20 07 - 03 - 03; . orafis ierul ui- 20 : 28 : numele fi!; ierului - /ho me/myuser /rnyapp. Exemplele urmAtoare prezinta. cAteva utilizar i mai intAlnite pentru comanda 111 care combi na paramelrii prezenta\i anterior:
ubu n tu @ ubuntu : -$ 1 $

Desktop
ubuntu@ubuntu:-$ 1$ -

,
'" " " " ,. " " " "

Des Hop
ubuntu @ ubuntu tot"l 0 dc"xr - xr -x
; -~

" -, " -"

ubuntu ubun t u

'""

2007-09-03 13 :1 5 De $ ktop

ubun t u @ ubu nt u: -$ d""xr - xr - x d"wxr- xr - x

" , , - c,,------- , - c,,- r -- r -- ,


tot~l

dr"xr- xr-x

- <w- r -- r --

"

, , -<,,------- ,

ubuntu r oot ubuntu ubuntu ubun tu

ubuntu 2007 - Q~ - Q~ 1 ~ : sa root 00 2QQ7 - Q~ - 03 06,14 2007 - 9 - 3 19 : S8 . b~$h _his t ory ubuntu ubuntu 2346 2QQ7 - Q~ - 0~ 06 : 14 . ba$hrc 2QQ7 - Q9 - 03 13 , 15 Desktop ub untu

",

2007 - 09 - 03 06 ; 1 4 ubun tu ubuntu ubu ntu ubuntu 9524 2007- 09 - 03 11 : 40

" '"" '"

. p r of ile . xsess, on - e r rO r S

CAPITOLUL 4. SISTEME DE

FI~IEAE

79

" " ,

" " , " " " " "

ubu n tu@ubun tu:-$ total d. w xr-~r - x ; ubun t u ar .. xr-x r - x root - rw- - ----ubun t u -r"-r--r-ubuntu drwxr - xr - x ubuntu - rw- r -- r -ubuntu - rK------ubuntu

,,,

, , , , , ,

"

- alh ubunt u root 00 ubunt u ubuntu 2 . 31\ ubuntu ubun t u ubuntu 9 . 51\

'"" "

" , " " " " "

ubu n tu@ u b unt u : -$ bin i nitrd l nitrd . boot m cdrom hom.. lib

..

'"" '"'

2007-09 - 03 2007 - 09 - 03 2007 - 09 - 03 2007-09-03 2007 - 09 - 03 2007 - 09 - 03 2007 - 09 - 03

19 ; sa 06 , 14 19 ; sa 06 : 14 13 : 15 06 : 14 17 : 40

. bash_ h i story . b a shrc Des ktop . profile . xse ss 1 on - e r rOr S

" "

. ./ .. /
medi~
,~,

" "

ubu n tu@ubu ntu:-$ boot He corom home bi n i nitro

...

ln i t r d . i mg lib meoi&

.,

~".

.,.

proc rof. r oot

.,.

.b i n

. ~,

vmlinuz

". "" m
rota root 'bin

~"'

."

proc

". '" ." ."


.~,

vmilnuz

Observatii: dacii se dore~1e afi~area COlltillutului direc10rulu i curellt, IlU es1e Ilecesarii scri erea ca:i i ca parametru pelltru comanda h : ls -Ill afi~eaza lista detaliata a fi~ieretor dill directorul home al utilizatorului curell!. illclusiv li~ i erele ascullse (a se observa cii si . ~ i .. sUll1 ali~ate ;
h

-lI.lh afiseaza lisla detaliata a fisierelor din directoru l home al utilizatorului curen1. utilizflndlormatu l humanreadabla pentru afi~area dimellsiullii l i~ ierelor (a se observa dimenSiunea fi$ierului . xsession - errors );

18 . / . prezintii utilizarea lui 18 cu parametru dat sub formfl de cale relativii (directorul afisat este I ):
h -II. I prezinta fiSierele ascunse ale direClorului / - se observa cfl si acest director contine directoarele standard . ~ i .. .

Folosind optiullea - R se poate afisa arborele de directoare si fisiere care are ca rMiiciM direClorul specificat ca argument:
ubu n t u@ubun tu : -$ is - R diel > ai,l : J d ir 2 fi. i "r l fisiec2 air1/air2: " fisier3 fisier4

Pelltru mai multe op\iulli sa poate cOllsu lta 1s --help sau man h.

4.3.4

Crearea fi~ierelorfdirectoarelor

Pelltru a crea orice elltitate pe un sistem de fisiere, se utilizeazfl 0 serie de comellz i, prezelltate i ll tabe lul 4.5. Primul mod de creare a unui lisier este utilizAnd comalld comanda touch. A doua metodfl se bazeazfl pe 0 fUllctiona litate bash Ilumitii redirectare i n l i~iere (vezi

80

lNTRODUCERE iN SISTEME DE OPEAARE

Tabelul 4.5: Comenzi

sectiunea 4.4). Pa scurt, ceea ce realizeaza comanda a 2-a esle redirectarea iesirii unei comenzi (nule) caIre un 1i~ier, creandu-se astle l un fi~ier gol.

,
,

ubunt u@ubuntu,-$ ubunt u@ubuntu:-$

touch Osierl

fisier2

" " " " "

ubuntu@ubunt u; -$ mkdir d i d ubun t u @ ubu nt u: -$ mkfifo fifo! ubun t u @ u b u ntu : -$


tot~l

dn,xr - x r- x pr,,- r -- r -- r",- r -- r --

, ,
, ,

" -,

rn He"" users

- r.;- r -- r --

mi ree" us .. rs mlrcea users mnce" users

..

2007 - 09- 20 1 0 : 2 6 2007 - 0~ - 20 1 0 : ~ 0 2007 - 09- 20 1 0 : 2 6 2007 - 09- 20 1 0 : 2 6

d i rl f i fol

lister!
fisier2

o alta intrebuinlare a comenzii t ou<;: h eSla aceea a actualizarii datei ultimai modiliCari ~i
a datei ultimei accesari. Fo losind op!iunea - m se va actualiza doardata ultimei modificari iar totosind optiunea -a se va actuatiza doar data u~imei accesa.ri. Folosind comanda t o u c h lara aceste opli uni va duce la modilicarea ambelor date. Optiunea -r poale fi tolos ita pentru a prelua informaliile legate de timp de la alt ti~ier. In exemplul de mai jOs, se obse rva. modihcarea timpului de acces al fisierului de la va loarea 17 : 03 1 a 17 : 11 .

,
,
,

ubuntu@ubuntu:-$

- r"'- r -- <--

, root"
; -~ ; -~

- 0>

root

" "

2009 - 09 - 21 17 ; 03 f l s l erl

ubuntu @ ubuntu ubuntu@ubuntu

touch fi s leci

- n,- r -- r --

, "
rOOt

- 0> root
2009- 08 - 21 17 : 11
fI ~ ier1

Exemple privind ere area de link-uri sunl prezentate in seqiunea 4.2. I.

4.3.5

Copiere/mutare/redenum ire/.tergere

Copie rea si mutarea sunt operatii care necesita. 2 parametri: sursa de unde se copiazatmuta.: deslinalia unde se copiazlilmuta.

CAPITOLUL 4. SISTEME DE Copierea

FI~IEAE

81

Copierea unui fi~ier sau director se realizeaza cu ajutorul comenz ii cp oSintaxa comenzii eSle c:p [op~iunil <lIursa> <d.. "tinat i .. >. OP!iunile ce le mai felosile penlru copiere sunt: - R - copiere recursiva {copiaza ceva in sursal;
~i

cop iii directoarelor. presupunarod ca exista

a~a

- p - copiere cu pastrare a tuturor atributelor (permisiuni, data); -u - copiaza doar daca f~ierul sursa esle mai nou decM dacA lisierul destinatie lipseste.
li~ieruf

destinatie sau

, , , ,

ubunt u@ ubunt u ; - $ u b unt ~ @ ub u n l u : - $ fl . txt ubu n tu@ u b untu : -$ ubu n tu @ u b untu : -$

t ouc h fl . txt

"
0,
f 1. t xt f2 .t x t

fl . t xt

f2. txt

"

Mutarea Mutarea unui lisier sau director se rea lizeaza cu ajutoruf comenzi i my. Sintaxa comenzii este my [op1;i.uniJ <.sur"a> <destinatie>. Implicit. mutarea este recursiva ~i paslreaza atributefe li~iere l or. in cazu l in care sursa ~i destina!ia se gas esc pe aceea~i parti ~e, la 0 mutare, se schimba doar parintele li~ i erului sau directorului care se mut1i.. o operatie de mutare este. astlel, mai pulin costisitoare decat 0 operatie de copiere.

, , , , " "

u b uI"ltu @ u b u nt u: - $

,.,
"

Itmp /q
ubu ntu@ u b unt u : -$ fl . txt f2. t x t ubuntu@ u b u n t u : -$ Ub unt ~@ub u nt ~ : - $ f2 . txt u b un t
~ @ u bu

fl . t x t

Itmp/r

"

" "

nt u ; - $

fl . t xt

"

It mp /rl

Aedenumirea Redenum irea este. de fapt. 0 mutare si se realizeaza cu ajutorul comenzii urmatoarele conditii:
mY,

in

In cazul In care sursa est e un liSler si destina!ia este un liSier. se realizeaza copierealmutarea I~ierului cu schimbarea numelui sursei:

82

lNTRODUCERE iN SISTEME DE OPEAARE

In cazul in care sursa esle un director si destina!ia nu exists ca director. S9


real izeaza copierealmutarea directorului cu schimbarea numeluL
ubunt u@ ubunt u ; -S Is
~

,
7

f2 . txt
ubun tu @ ubunt u: -$ mv [2 . t x t

f3 . t x t

ubu ntu @ ubunt u: -$


f ) . t xt

l~

Siergerea fisierelorldirecloarelor
in Unux, comar.da cea mai utilizata pentru ~terge rea fi~ierelor si directoarelor esle Sintaxa comenzii eSle = {op 1;; iuni J <ee1 e >.
:t:m.

Una dintre ce le mai jorosite opliuni esle -r/-R, utilizatti pentru a sterge recursiv un director. Aceasta optiune trebuie folosita cu atentie pentru ca poate avea rezultate negative daca directorul care esle sters contine informalii utile. 0 eroare celebra esle utilizarea comenzi i rm - rf / , care sterge recurs iv totul i nceplind cu directorul radaci na, lof\and ~te rgerile (dal orita opli unii -f ).
Pentru
~tergerea

directoarelor goale se peate lolosi

~i

rmdi r .

4.3.6

Arhivarea

fi~ierelor ~i

dezarhivarea

Arhlvarea este proeedeul prin care mai multe li~iere ~i directoare sunl adunale la un loe (intr-un singu r lisier), realizAnd eve ntual si 0 reducere a dimensiunii prin eliminarea dalelor care se repeta si inloeu irea lor cu 0 serie de codilicari. in general. in cadrul procesului de arhivare se creeaza un diclionar cu secvenle de oeteti Irecvente $i a cod ilicare a lor mai scurta (pe mai pupni ocleli). Arh iva contine atat dictionarul clit si conlinutul fisierelor dar. in loe de secvenlele Irecvente lungi. se regasesc referinle cai re diclionar. Dad. lisierele contin multe date care se repeta, dimensiunea unei arhive scade considerab il. Dupa cum se peate identifica si din descrierea anterioara, exista doua etape mai imporlante In ceea ce privesle manevrarea l isierelor: concatenarea Oipirea) hsierelor intr-un lisier mai mare, din care sa se poala extrage toate jisierele si informatiile despre ele; compres ia fis ierului mare, astlelincAt sa se reduca dimensiunea lui dar lara a se pierde din informalii In Linux exist<'l utilitare de arhivare care se ocup<'l ori de una dintre etape ori de amb-e le elape. Comanda tar se oeupa de prima elapa. Numele ulililarului asle 0 abreviere a tape archive, Intrudl.t, la inceputui utiiizarii sale, rezultatu l comenzii era tra nsferal pe benzi magnetice.

CAPITOLUL 4. SISTEME DE

FI~IEAE

83

Un lisjer . t ar contine l isiere necomprimate impreuni'l cu informatii despre modul de extragere al acestora (sp re exemplu: de unde panA unde se gAse~te un f i ~ier in cadrul arhivei). Din acest motiv, un lisier . t ar eSle de obieei mai mare decal suma Muror dimensiunilor l isierelor ce sunt incluse in eL Penlru a crea 0 arhiva ta r . se utilizeaza comanda:
ubu n tu@ubun t u:-$ t ar cvt n ume_ a rhiva tar <ca l e >

cu parametrii: c creeaza arhi~a: v


f
ali~eaza

ce anume se arhiveazll;

nume_ arhiva . tar speciliea numele arhivei;

<cale> precizeaza directoru l/directoarelelfisiere care vcr Ii arhivate. Pentru a dezarhiva 0 arhiva . tar, se utilizeaza:

unde: x dezarhiveaz;'i (eX/rac/); v aliseaza ce anume se dezarhiveaza;


f

nume_ arhi va . t ar precizeaza numele arhive i care se dezarhiveaza: specilica. op)ional. locul unde se real izeaza

- C <cale_ dest i nat i e> dezarhivarea.

f 5i nume_arhiva . tar se cons ideri'l un singur parametru; din acest motiv, de liecare data cand se loloseste op)iunea f pentru a indica un lisier arhiva, aceasta trebu ie sa apara ultima i n lista de op!iuni, fii nd urmat imediat de numele lisierului arhiva.

Pentru a rea liza compres ia unui lisier, doua utilitare sunt lolosite preponderent in lumea Unix: qzip. mai rapid dar cu 0 ratil de compres ie mai mica; bzip2 , mai lent darcu 0 rata de compresie mai mare. Comanda tar poate uliliza direcl unul dintre programele de comprimare mentionate anterior lolosind parametrul z pentru q%ip sau parametrul j pentru b%ip2 , ca in labelul 4.7 Tabelu l 4.6: Comprimarea si decomprimarea folos ind gzip si bzip2 Comprimare Decomprimare c;: %vf <" <" x%vf f i sier.tal:.q% di.l:/ t"isier. tar. q% cjvt eo" eo" .. jvt fisiar. tar. b,.2 fi s iar . tar. bz2 dirt

gzip
b~ip2

Pe 1 9.n91\ optiunile de compresie/arhivare se mai pot lolosi si alte op)iuni. Printre cele mai utile se numAra op!iunea --preserve, care impune pastrarea drepturilor de acces in momentul arhivarii/dezarhivar ii.

84

lNTRODUCERE iN SISTEME DE OPEAARE

CAteva exemp le de utilizare a comenzii t a r pentru comprimare si decomprimare, in conjunctie ell b z i p2 ~i qz i p sun! prezentate mai jos:
ubuntu@ubuntu ; /tmp/qS 15 f1.txt f2 . t x t f3 . txt
ubuntu @ ubuntu:!tmp/qS tar cvf f1.txt f2.txt
f) .txt
Hh1,,~ . t ~ r

,
,
7

f . txt


10

ubuntu @ ubuntu : /trnp/qS fih Hhiva .t a r arhiv~ . tlI.r ' POSIK t"r archive IGNU) ubuntu @ ubuntu ; !trnp/qS
Q ~l p

" 12

arh i v a . Ur

" ,.
,!

ubuntu @ ubuntu:!tmp/qS l s a rh i va . ta r.'1: fl . txt f2 . txt

O . txt

11 ,.

"
"

ubuntu @ ubuntu:/tmp/q$ file ~r h1 " .. . t;H.gz ~chiva . ta r.\l z ' 9zip compre ~ s ed data. was " arh iva.. tac" , modif i ed : Thu S@p 20 11 : 37 : 30 200 7 ubuntu @ ubuntu:/trnp/q$ h ~rhiva . t"r.gz fl . tKt t2 . t xt

from Unix .

la,t

20 21

n . txt

..
~

"
"

ubuntu @ ubuntu , ! t rnp/q$ mv arh l va . tar . gz fialer . t x t ubuntu @ ubunt u: /t mp/q$ H l e Os i er . txt f l s i er . txt : g.lp compressed data , .. a s " a rhlv3 . t 3 r ", modHied : Thu Sep 20 11 : 3, : 30 2 007 ubun tu @ ubuntu:/tmp/q$ l ~ f1.txt f2 . t x t f3 . txt ubun tu @ ubuntu : /tmp/q$ tae cz"f ne".tar . gz f. f1.txt f2 . txt
f) .txt

2<

fro m Unix ,

l a st

"
~
;!g

"
'" "
,..

"
"

ubuntu @ ubuntu,/ t mp/q$ is f1.txt f 2.t. t n . t xt oe~

. tar . g:

"
~

.. .. ..
.,
~ ~ ~

..

4(l

ubuntu @ ubuntu:!tmp!q$ fi l e ne~ . tar . g: ne .. . tar-g. : g.ip comp~eMed data , hom Unix , 11 : 40 : 022001 ubun tu @ ubuntu : !tmp!q$ mkdir t mp ubuntu @ ubuntu:/trnp!q$ mv new .t ar . gz tmp! ubuntu @ ubuntu : !trnp!q$ cd tmp/ ubuntu @ ubuntu : ! t mp/q/tmpS tar xvf ne~.t a r.g f1.txt f2 . txt f3 . txt ubuntu @ ubuntu : !tmp/q/tmpS I s fl . txt f2 . t x t f3 . txt ne~ . ta~ . gz

l a st mod ifi ed : lhu Sep 20

""
$1

~ ~

CAPITOLUL 4. SISTEME DE

FI~IERE

as

4.3.7

Backup

Backupul esta utilizal penlru a p<htra intrun loe separat 0 co pie a datelor. Aceasta. copie se utilizeaza. pentru a relace datele in cazul in care suportul original nu mai poate Ii lolosit din once motiv. Este una dimre cele mai utile actiuni asupra datelor pe care toata. lumea stie ca ar Ii bine si! a laca dar nu a lace. Cateva metode de backup au lost deja prezentate. Tabelul urmator prezinta. cAteva metode de backup 5i situa!iile cAnd sunt ele potri vite.

pentru dimensiuni mari de date. Permite comprimarea

I
f~ i ere_

fi~ i ere.

Utili!

it . i i Permite pastrarea intacta a structurii sistemului de Inllexibila cAnd \line vorba de recuperarea date lor. mari de date. de sincronizare intre mai mulle sisteme Permite replicarea structurii de fisiere (inclusiv

"

r a yne. backupuri incrementale. La un moment dat se realizeaza un backup complet pentru un director (asemanator rs~ncului). Backup-urile incrementale satveaza doar mod ificarile ce sau facu! de la ultimul backup pAna in prezent, inc:merent de tipul backupului. in acest lei se poate reveni la orice stare anterioara, in masura in care litl!i t il

"

4.4
4.4.1

Redirectari de comenzi
Descriptorii de
fi ~ ie r

Fiecare program in execulie utilizeaza 3 lisiere speciale pentru a interactiona cu utilizatorul: stdin (standard input) - lisier care reprezinta locul de unde programul isi citeste datele de intrare {de obicei tastatura}: stdou t (standard output) - l isier care reprezinta locul unde programul scrie datele de ie~ire (de obicei acesta este cons ala curentil); stderr (standard error) - fi~ier care reprezintil locul urxle programul serie mesajele de eroare (de obicei acesta este consola curema).

86

lNTRODU CERE iN SISTEME DE OPEAARE

in C/C++. ex istli 3 variabile de tipul F IL E. eu numele stcti n, s t dout si st der r care sunt in~i al i zate ~i disponibile in ariee moment Ete indeplinesc ro lurile descrise anterior ~i pot Ii lolosile ca pe criee alta variabila de tipul FILE "
Fiecare fi~ier deschis de 0 aplicalie Unux are asocial un indice. Aces! indice sa nume~te descriptor de jisier. Fisierele descrise anterior au descriptorii de !isier urmMori:

stdin-O
Sldou! - 1

stderr - 2
Oriee fi~ier deschis de apli ca!ie va avea un descriptor mai mare sau egal ell 3.

4.4.2

Redirectari

Exist!!. silua1ii cAnd, perltru 0 apliCatie, utili zatorul dore$te sa. modifiee intra rea sau iesirea
- spre exemplu, utilizatorul dore~te ca iesirea unui program sa se laca inlr-un l i ~ i er ~i nu in conso la curenla, sau inlrarea unui program sa lie un l isier si nu tastatura . Acesllu-cru se poale lace doar lucrand la nivelul descriptorilor. Cazurile in tAlnite sunl prezenlate in Tabela 4.8. Tabelul 4.8: Comenzi de redireclare exemplu comandi

I s ursi
inlrare (sldin) iesira (stdoul) aroare (slderr) aroare (Slderr) aroare Si iasire

I destina!ie
li~ i er li~ i er li~ i er

iasira (sldoul) lisier

,/p r0 9 ram ,/ p r0 9 ram ,/ p r0 9 ram ,/ p r0 9 ram ./program . /pro9 ram

, , '" , en " , ,
< >
00<

2>'1 2>,1 >


.>

- 00< - m

,"0

00<

Sa observa cii penlru a red irecta iesirealinlrarea se lolosesc semnele > (mai mare)
pentru iesira (caIre exler iorul programului) si < (mai mic) panlru inlrare (cl'ilre program). Pentru red ireclarea iesiri i de erori se indica descriptorul de lisier 2 . Pentru a redirecta catre iesirea slandard (stdout) , se loloseste sintaxa & 1 . Pentru redirectarea iesirii de erori si iesirii standard cl'itre un fis ier, se redirecleazii inlAi iesirea de erori ciilre iesirea standard lolosind 2>& 1 dupa care sa red irecteazl'i iesirea Ba s h olera 0 sintaxl'i standard ciitra un lisier >fi\lier_iesire_\li_erori. simplificatii in cadrul operalorul ui & >. Ca exemplu de rad ireclare a intrarii, in comanda anterioara se trimite conlinutul fisierului cont i n ut _ma.il ca inlrare penlru comanda mail. Se va Irimile un mesaj ulilizalorului user1 cu inlormatiite din fisier.
ubu n tu@ubun tu , -$ ma i l userl < conti n ut_ ma il

in exemplul de mai jos se scrie lisla de fisiere si direcloare din direclorul curenl in lisierul listare .

CAPITOLUL 4. SISTEME DE

FI~IEAE

87

,
3

ubuntu@ubu nt u:-$ Is > ll stare ubuntu @ ubuntu : -$ cat lis tace hs i erl

Pentru a adauga

rezu~atul

eomenzii date la
li~ tar~

sfa.r~ i lu l

hsierului se folose~le operaloru l :

,
3

ubuntu @ ubuntu:-$ dat e

ubuntu@ ubuntu:-$ cat list o re tisier 1 SH Aug- 22 1 6:07 : 5 0 EEST 2009

"

in lislingul de mai jos se irrcearca copierea unui fi~ier lara specilicarea deslinaliei. Aceasta comanda genereazll 0 eroare care eSle scrisa in fiSierul eror i :

,
3

u b untu @ ubuntu : -S cp f .si er i 2> erori ubuntu@ ubuntu:-S cat "cod cp : mi .s ing- d"stination fi h opH~nd Try ' cp --h" lp' for more i ntorm ~ tion .

"

~ft ~ "

' f i si @rl '

Pentru a adauga noi mesaje de eroare la sltlrsitul l isierului se

lolose~le

operalorul 2 :

,
,

ubuntu@ ubunt u:-$ cp fisier4

2~~

erori

, ubuntu@ubunt u:-S cat e r o rl cp : missing d " stinatio n h i e operand aft" r S Try ' cp -- help' for more .nformation . cp : missing d "H inatio n f il e operand a ft e r Try ' cp -- h e lp' for mOre i nformation .

'fisi"d '

'fi s i " r4 '

Comanda de mai jos serie speeilicat:

~i

rezultate le si erorile generate de eomanda Is in l isierul

ubuntu @ ubunt u:-$ l s f l s i e rl f , s i er4 2>.1 > re z ult a te

sau mai simplu:

,
J

ubuntu @ ubuntu:-$ l s f i s 1er i

f1 ~ i~r4

>.

r e zultdt e

"

ubuntu @ ubuntu:-$ cat rezu l t a te l~ : c~nnot d CC."S fi s ied : No ~ uch f il e or d i r e ctory fisiH 1

Tabelul4.9 prezinta etlteva exemple de redirectllri fo losind

li~iere

speciale:

4.5

Drepturi de acces

o prima masura de proleclie a datelor 0 reprezinta dreplurile de acees la lisiere. Alat timp cat un utilizator nu are drepturi de administrator pe un anumit computer, acel utili zato r se supune drepturilor de acces la lisiere. Tabelul4. to prezinta drepturi ce pot Ii conligurate pentru un lisier, lara a parlicu lariza la un anumit tip de sistem de fisiere.

88

INTRODU CERE iN SISTEME DE OPERARE

Tabe lul 4.9: Comer;zi de redireclare care !olosesc lisiere speciale Comandi Elect ./proqram 2>/da v!nul1 masajele de la iesirea de erori nu sun! ali~ate niciun mesaj nu asIa ali~at ./proqn.lD. 2"&1 >/dev/null > ~out creeaza. un lisier gol ell nurnele

0"

/dev/null > f _out

lisier w acela~i continut ca / de v/n ull, adic;,\ un lisier gol

creeaz(t

, "0'

co

sau,
if

4.5.1 Utilizatori ~i grupuri de utilizatori vs. lisle de acces


Exista. doua metoda mai intalnite pentru definirea drepturilor de aeces la Ii~iere: drepturi de aeces la nivel de utilizator/grup. liste de aeces - Access Control Lists (ACL).
Prima metoda (drepturi de aeces la nivel de utilizatorlgrup) cOllsta in definirea unor drepturi penlru urmatoarele entita.~:

posesorul unui fisier (user); grupul care detine fisierul (group); toti ceilalti utilizatori (others). Un utilizator se poate alia in mai multe grupuri (vez.i se<:tiunea 3.1 ). AceastA metodA esle cea mai folosilA cale pentru definirea drepturilor de acces. MetodA olera un nivel de pmte<:tie suficient pentru majoritatea situa!i ilor. ocuj)And un spatiu limitat. In cad rul sis temului bazat pe liste de acces, unui fi~ier i se pot asocia mai multi utilizatori ~i/sau grupuri de utilizalori. Pentru liecare dintre aceste entit;lili pot Ii conhgurate mai multe tipuri de drepturi . Aceasta variantA poate Ii privita ca 0 extindere a sistemului cu drepturi de acces prezentat anterior. Comptexitatea peate lace ca sistemul sA he destul de greu de inlrelinut. Fiecare sislem de l i~iere of erA un sel de drepturi ce pol Ii modilicate penlru liecare fis ier in parte. Ca drterente notabile intre sistemete de fisiere se pot aminti urmatoarele: FAT32 nu olerA suport pentru drepturi de acces la lisiere; existA doar posibililalea de a marca un fi~ier ca read-onl y: orice ulitizalor poate sA schimbe acest drept; atanal

CAPITOlUl4. SISTEME DE

FI~IEAE

89

majoritatea sistemelor de fisiere In mediile Unix (inelusiv Mae OS X) au suport pentru drepturi de acces bazat pe utilizator/grup ~i , lolosind 0 extensie, pot Ii extinse cu liste de aeces; NTFS are un sistem Ioarte avansat de drepturi de acces, bazat pe liste de aeces (vez i sectiunea 10,6,1); penlru liecare entitale adAugatA in li sta unui anumil lisier pot Ii configurale mai mulle drepturi.

4.5.2 Clasificarea drepturilor de acces


Sistemele de li~iere din mediile Unix care au ea implementare standard drepturile de acces la nive l user/grup au la baza urmAtorul set de drepluri de aeces: eilire (read) - desehidere si cilire de lisiere; scriere ( write) - creare si scriere de
li~iere:

execu!le (execute) - execu!ie lisierelintrare In directoare. In aeeste sisteme de li~iere exisla 3 entitA!i pentru care poate Ii stabililA orice combina)ie a drepturil or delinite mai sus : utllizator (user) - posesoru l lisierului; grup (group ) - grupul de care aparline fisierul: al!i! (others) - utilizatorii care nu fac parle din grupul posesori.
I~ i erului

si nici nu sunt

4.5,3 Vizualizarea drepturilor de acces


Penlru a vedea dreplurile de acces penlru un anumit fisier este suficienl1!. utilizarea eomenzii 1 s cu parametrul -1. Spre exemplu, pentru a vedea drepturile de aeces asupra unui l isier, lransmilem ca parametru comenzii Is direct numele fisierului:
2 u b untu@ ubunt u : -$ l ~ - 1 f1 ~ i~c , txt -c"x r ----- 1 u b untu u~@c ~ 0 2007 - 0~ - 20 1 2:41
fi~i.or , txt

Orepturile de acces sunt dale de primele 10 caractere din iesirea comenzii Is : primul earaeler reprezint1!. Upul -
li~ier obi~nuit

li~ieru l u i'

d director
p . pipe

- b dispoziliv bloc c "dispozitiv caracler 1 " legatura

90

lNTRODUCERE iN SISTEME DE OPEAARE

urmlltoarele 3 caractere (r w>< ) reprezint1'i drepturile de aeces pentrtJ uti lizatorul ubuntu, care asle delin(\torul fi~ieru lu i ; sa observa eEl. utilizatorul are toate dreplurile {scriere/citirel execulie}; urmatoarele 3 carac\ere (r -- ) reprezinta drep\urile de aeces penlru ulilizalorii ca re lac parte din grupul users ; se observa eli esle prezen! dreptul de cilire dar lipsesc dreplurile de seriare 5i execulie;

urmatoarele 3 caraclere (---) reprezinta drepturi le de acces penlru utilizalorii care nu sunt ubunt u 5i niei nu lac parte din grupul use rs; aces! utilizatori nu au niciun drep\.
Exista doua moduri de reprezentare a drepturi lor:
In forma numerici : pentru liecare entitate exista 0 cifra in baza 8 ca re descrie drepturile, cate un bit pentru fiecare drept; in fo rma IIterala: drepturile sunt referite direct prin ini!iala lor. penlru fiecare tip de entitate. Astfel, penlru exemplul de mai sus, avem drepturile: Cw " c----- in forma listing: 1111000oo informabinara: 740 in lorma octala; u - rw" . g- r in lorma Irteraht Mai mul1e informa!ii des pre securitatea fisierelor acces se gasesc in secliunea 10.2.4.
~i

modul de schimbare a drepturilor de

4.6
4.6.1

Cautarea

fi~iereror

Comanda find

Comar.da fin d folose~te abordarea brute-Iorce pentru gasirea fi~ i e relor cautand in arborele de direcloare. Comar.da pune la dispozilie un set exlins de criteri i de ca utare, cum ar Ii numele fi~ i erului, ulilizator. grup, lip. permisiuni, dimensiune. dala, si allele. Exemple de criterii de cautare sunl prezentate in continuare specificand op!iunea corespunzatoare a comenzii fin d : - name - ca utare dupa numele fi~ierelor - perm - cautare dupa permisiunile fiSierelor - si ze - ca utare dupa dimensiunea
fi~ierelor

Comar.da urmatoare cauta toate fisierele care au numele stat. in mod recursiv in directorul /usr :
ub~ntu@ub u nt u; -S

find lusc - name stat

I uS r I s reI I i nu. - hea ders - 2 . 6 . 24 -1 9- qene riel i ncl udel con f i ql cpu I f reql stat
lu ~ r/bin/"t a t

CAPITOlUl4. SISTEME DE

FI~IEAE

91

Urmiltoarea comariClii cautil toate lisierele care au permisiunile 644 :


~

"

ubu n t u @ u b u nt u : -$ find Jusr - perm 64 4 J u sr Jloc~lJ inc1ude/gl .b - 2 . O/gl .b . h I u S r I loc ~ l/ i ncl ude / gl ib - 2 . 0 I gobje ct / g'ou r c e clo ~ ur e . h / UH /loca l / incl ude/glib - 2 . O/gob j ~ct/gty p e pl ug i n . h
(

... )

Pentru a cauta l isierele cu dimensiunea mai mare de 500 K8 se poate lolosi una dintre urmll.toarele comenzi :
, ,
J

u b untu @ u b u nt u : - $ find

Ju ~ r

-s .,e +500000

" 6
1

u b untu @ u b u nt u : - $ find Ju Sr -s i,e + 500 ~ l u s r /loc~ 1 Il ib ll ib gio - 2 . o. s o . 0 . 1800 . 4 I u s< / l oca 1 / lib / lib go b j~ ct -2 . o . so . 0 .1 8 00. 4 Ius< / l oca l / li b / libglib - 2 . 0 . 50 . 0 . aoo . 4
( ... )

4.6.2

Comanda locate

ComariCla locate foloseste 0 baza de date localii in care sunt iriClexate toate li~ierele. ComariCla l ocat .. este mai rapida decfll comariCla fi n d, dar pune la dispozitie un singur criler iu de cautare: numele li~ i erului. Un all dezavantaj este iaptul ca baza de date trebu ie reactualizatil periodic pentru a contine informatii des pre lisierele noi create in sislem. Actu alizarea se realizeaza cu ajutorul comenzii updilt edb. Comanda l ntoarce 0 lislil cu toate li~ i e rele ale cilrui nume contine ~ irul de caractere precizat ca argument. In exemplul urmiitor se cautilloate lisierele care conlin p wd :

u b untu @ u b u nt u : -$ locate pwd Ibin/pwd


/~ t c / . p w d . l oc ~

" 6

/5bi n / un i x _ch ~ p wd

l u s r /b in /pwd x /us r / inc 1ud@/pwd . h

1 I ... ]

Unele distribulii Linux lolosesc comanda slocate in locul comenzii locate. Avanlajul comenzi i sloca te asle acela ca nu permite alisarea lisierelor din direcloarele in ca re utilizalorul nu are drepluri de acces.

4.6.3

Comanda whereis

Aceastil comariClii poate Ii lolositii pentru a ciluta l ntrun set restrfms de localii din sistem , de exemplu directoarele cu li~iere binare, directoarele cu biblioteci sau directoarele cu pagini de manual. Comanda where is nu poate Ii lolositil pentru a ciiuta in direcloarele uti lizatorului. Comanda va ciiula toate lisierele care i ncep cu sirul . . de caraclere precizat ca argument De exemplu , pentru a localiza comanda ls folosim urmiitoarea comandil:

u b un t u @ u b u nt u : -$ wh@r@ i s 1 5 is : Ibin/l, /u " r/ " hareJ",~n/",~n1/ ls

. 1.q,

92

lNTRODU CERE iN SISTEME DE OPEAARE

ComarKIa va afisa ca lea caIre executabil dar si calea caIre pagina de manual a oomenzii

"
4.6.4 Comanda which
Folosind comanda whic h S9 poate obline calea caIre executabilele care pot Ii ru lale din linia de comarda. De exemplu, pentru a alia ca lea caIre comanda chmod S9 va lolosi comanda urmatoare:
ubuntu@ul>untu -$ which chmoa
2 /bin/chmod

In mod i mphc~ , ccmarrda whi ch returneazA dear prima potrivire gAsita, iar pentru a afisa lisla completa a pOlrivirilor S9 va lolosi op!iunea - a.

4.6.5

Comanda type

AceaSla comanda poate Ii /olosit1i pentru a determina modul de interpretare a unei comenzi, de exemplu comanda integrata in shell, comand1i externa sau alias.

Un exemplu de comandA integrata in shell eSle:


2 ubuntu@uountu,-$ typ e cd cd is ~ .he ll builtin

Pentru 0 comancla externa rezuttatu t comenzii type este calea catre executabil:
ubun tu @ u b unt u, -$ type cat
2 CH i . Ib in /CH

In cazul unui alias este afisata comanda echivalenta:


2

ubuntu@uou nt u ; -S typ e Is Is is alia sed to ' 15 --colo< '

4.7

Tipuri de sisteme de fi!iiiere

in limp au aparut mai mulle tipuri de sisteme de fis iere. in mediul opensource sau dezvoltat ~i inca se dezvolta cele mai multe dintre ele. Cateva dintre cele mai imporlante sisteme de fisiere utilizate in prezent sunt men!ionate in tabefuf 4.11 , impreuna cu sistemele de operare i n care se intiilnesc. Prin nativ se intelege ca suportul este olerit prin drivere ce insotesc sistemu l de operare (in cazul Linux inso!esc kernel-ul). Sistemele de fisiere se pot ciasifica si dupa locul uncle se gasesc dalele. Tabelul 4.12 prezinta succint aceasta clasificare.

CAPITOLUL 4. SISTEME DE

FI~IERE

93

TabeluI4.11: Sisteme

virtua~

4.7.1 Integ rita tea date lor


Un sistem de fi~iere trebu ie 511 asigure integritatea datelor inclusiv ~i in cazul unei eAderi (failure). Oe eele mai mu~e ori, aceastA functionalitate este implementatA prin jurnalizare. Jumalizatea este ac~vitatea prin care se realizeaz1l un jurnal cu toate modilieArile fiecare operatie electuate asupra unui sistem de l isiere. . . care se executii asupra sistemului de fisiere esle inlai scrisA in jurnaL Operatia poale presupune modilicAri in mai mulle locuri din sistemul de li~iere. Driverul sistemului de h~i ere execut1l la un anumrt in terval de timp operali il e din jurnal pentru a aClualiza starea discului. 0 opera!ie se slerge din jurnal doar dupA ce toate modilicarile asociate ei au lost executate. in aces! lei, in cazul apar~i ei unei caderi (intrerupere de curent elc.). se pot executa operaliile din jurnal care au rAmas neexecutate (operatiile incepute si care au lost intrerupte sunt inca. prezente in jurnal Si vor Ii reexecutate In inlregime).

4.7.2

Alegerea unui sistem de ti!;>iere

in momentul in care !rebuie ales un sistem de lisiere, eele mai utilizate criterii de seleclie sun\: disponibilitilteil- dacA se poate lolosi sistemul respectiv de l isiere in sistemul de ope rare ales (sau in mai multe sisleme de operare):

94

INTRODUCERE iN SISTEME DE OPERARE

gradul de siguranli - majoritalea sistemelor de jurnalizare:

fi~iere

existente in prezen! au

restriC1ii speciale date de modl.ll de organizare a datelor in sistemul de fisiera ; de exemplu, la FAT32 sa folosesc doar 32 bil; pentrl) a stoca dimensiunea unui fi~ier, dec; dimensiunea maxima a unui I~ ier esl e 4GB {mai pulin decal 0 imagine de DVO, lapt ce iI face nepractic pentru 0 parte din apHcaliile multimed ia}:
opllmlzari de perfotmanlii. reatizate spre exemplu in lunetie de lipul suporlului de stacale, in lunelie de dimensiunea fi~iere l or etc.

Tabelul4.13 realizeaz;!. 0 analiza sumIDa a caracteristicilor sistemelor de fisiere. Tabelul 4.13: Caracteristici ale 1 1 operate maxima fil?ier mai cunoscute

Linux I Mac OS X

i i i - int:l.lnit in mod special pe USB stick-uri, I~i\ drepturi de acces; Windows-ul limiteaza la creare dimansiunaa unai parlitii la 32GB, dar poate citi partrtii mai mari realizate l;i formatate cu aplicalii third-party lolosit pentru a asigura compatibililatea cu dispozilive sau sisteme mai vech i

Linux OS X

sislem de ;1

li~iere

penlru

mai unei istorii de dezvoltare toarte lungi; ext3 e compatibil cu versiunea anlerioara
,,~

mulle

as x

Lin:"'~~;:l;f"~C~':f:;,;-tcm""--l:p~,""~::~
de

Linux I Mac OS X

organizare inle'rna conceputa penlru ca datele sli fie citibile usor Iii i pe mediile , cu suporl alAt

atanal

CAPITOLUL 4. SISTEME DE

FI~IEAE

95
fi ~ iere

4.7.3

Adresarea intrun sistem de

Din punct de vedere l izic. li~ i erele ocupll pe dispozitivul de stoeare un spa!iu bine delinil. Utilizatorul nu lucreaza direct cu dispozilivul de stocare si nu poate adresa un fis ier dupa pozi!ia fizica a acestuia pe dispozitivu l de stocare. Sa introdus astlel adresarea fi~ierelor folos ind nume. 1 n lunctie . de tipul sistemu lui de lisiere, exista 0 serie de restrictii . asupra acestor nume. Majoritatea fis ierelor au ~i ceea ce se numeste "extensie". Aceasta extensie se regase~te dupa numele fi~ierelor si este utilizata pentru Ktentificarea tipului acestora (exemplu format nurne . ext . In majoritatea cazuri lor aceasta exlensie are 3 caractere. Sistemele de operare de tip Windows utilizeaza extensia pentru a asocia un tip de lisier cu 0 anumita aplicatie care poate deschide acel tip de fi~ier. in mediile Unix, extensia de obicei lipse~te. Idenlilicarea tipului l isiere lor se real izeaza in general pe baza conlinutului l isierelor. in Uni x, comanda utilizata penlru a descoperi tipul l i ~ i erelor este U.le:
ubun tu@ u b u ntu ; -S fi Ie Jbootlkerne126 . l mg Iboot/ ~ erne126 . !mg ; g. l p c ompresse d d ata , Mar 3 20 : 28 : 31 2001 , max compression from
Unl~ ,

last modifie d,

Sat

Numele l isiere lor poate Ii scris cu un anumit set de caractere. In prezent, majoritatea sistemelor de lisiere folosesc standardul Unicode (de obicei UTf"8 sau UTf-16) pentru codilicarea caracterelor. In tabelul 4.14 sunt prezentate cflteva sisteme de fi~iere ~i restrictiile de nume asociale lor. Dupa cum s-a men!ionat si la lnceputul acestui capitol, directoarele se utilizeazli pentru 0 mai buna organizare a l isierelor. intr-un sistem de li~ i ere modern, fi~ierele ~i directoarele se reglisesc lnlr-o slructura ierarh ica - sub lorma unui arbore. Acest arbore are un director parinte din care se poate ajunge in orice loe in sistemul de l isiere. Calea clitre un fisier este lormatli dintr-o lnsiru ire de directoare, separate de caractere speciale. in mediile Unix separatorul este caracterul I (s/ash). In mediile Windows , separatorul eSle caracterul \ (backs/ash).

4.8

Lucrul cu sistemele de fi~iere


fi~iere.

Aceasta secliune trateaza ac!iunile ce le mai cunoscute la nivelul unui sistem de Ac!iunile cele mai freevenle sunt: crearea unui sistem de
fi~iere: fi~ i ere: fi~iere.

monlarea unui sistem de repararea unui sistem de

Printre actiunile rare dar care pot prezenta interes trebuie mentionale: crearea unei imagini pentru un sistem de
~tergerea

l i~ie re:

unui sistem de

fi~ i ere

(din dilerite motive).

96

INTRODU CERE iN SISTEME DE OPERARE

TabeluI4.14:
do

ii

cale

caraelere cu
LFN'

(lume te fi~ierulu i ~i 3 caraolare eK\ensia; FAT32 a capatal

pentru nume lungi (LFN) pentru un lisler: FAT32 reline atal numele lung cal

suporl

caraclare

..

Ii folosit, mal pU!in caraClarele:


NU LL, ., / , \ , "

? , <, >, I,

{utilizale in general perltru , I

NULL numele

permis

ma~ima

standard, !iecare cu restrict iile


8 lui

a caii:
I

~ioo""'iitmi"""'"" numale

Pe lang.:\ aceste aeliuni. folosil"ld programe speciale, sa pot efectua si alte opera!ii asupra unui sistem de li~ i ere, precum:
redimensionarea unei parMii - duce implicit la 0 red imensionare a sistemului de lisiere (in cazul in care acest lucru nu sa intll.mpla, !rabuie reformatatll. partilia): convertirea unui sistem de fi~iere dintrun tip in altul; mularea unei parb!ii - de obicei nu are eleele asupra sislemului de lisiere aHat pe aceasta.

4.8.1 Crearea unui sistem de

fi~iere

Dupli cum sa mentionat anterior. majoritalea sistemelor de lisiere au un suport fizic . . asocial uncle se regasesc efeeliv datele. Suporlul unui sistem de fisiere se nume~te atanal

CAPITOLUL 4. SISTEME DE

FI~IEAE

97

partitie , 0 partitie poate avea un singur sistem de fisiere , Partitionarea a lost descrisii in secliunea 2.2.2. Sislemul de fi~iere esle plasal pe 0 partilie prin Iormalare. Formatarea esle procesul prin care pe partilie sunt sense Slructuri de date specifice sistemului de fi~iere. Aceste structuri sunt utilizale de driverul asociat sistemu lui de fi~iere pe ntru a identihca ~i uti liza datelor scrise pe parti!ie. intrun sistem Linux. !ormatarea se real izeazA prin intermediul utilitarului mkf s cu sintaxa:
root @ ubunt u :- f mk fs - t d i.po z it i v >
\ t e xt less {)t i p_. i . te ~d~ _ f i siere>

\ t e xtl e {)

Exemplu de utilizare:
r o ot@ ubunt u: -I
m~ ts

- t ext3 I d ev/s d a2

Comanda prezentata anterior !ormateaz<'i partitia a 2a de pe primu l disc utilizflnd sislemul de !isiere e_t3, Pentru fiecare tip de sislem de !i~iere exista un program penlru formatare. Aceste programe au numele de forma mkfs. <fstypa> $i pot fi apelate direct pentrtl a formata 0 parti!ie. Comanda echivalentA exemplului anterior este urmAtoarea:
root @ u b unt u : -I mk fs . e x t3 / d e v /s d a2

Daca un seclor este defect, se va marca si nu va Ii fofosit pentru stocarea datelor. Urmatoarea comandii va determina verificarea sectoarelor si formatarea partitiei I dev I sda2 :
r oot @ u b unt u : -I mk rs . extJ -c
Idev/s d ~2

o ope ratie suplimentara Iormatarii este verificarea sectoarelor din cadrul partitiei.

Pentru a crea un siSlem de fis iere MS DOS pe 0 anumitA partitie sa poate folos i comanda mkdosfs care este un !rontend pentru comenzile mkfs . vfat ~i mk f s . msdos. Cu optiunea - F se poale specifiCa tipuf tabefei FAT care poate sa fie pe 12, 16 sau 32 biti. Urmatoarea comanda va crea un sistem de lisiere FAT 32 pe partilia specilicata:
r oo t@ ubunt u: -I
m~ dos!s

-f

32 I d ev/s d a2

4.8.2

Montarea unui sistem de fi!iliere

Sistemefe de operare ofera aeces uniform la datefe din toate tipu rife de sisteme de lisiere prin intermediul ieramiei de fisiere. Pentru ca un sistem de fisiere sa. fie viz ibif sistemu lui de ope rare ef trebuie TnUIi sa lie montat {mount} intrun director, numit director de montare (mount point) . Operalia se numeste montarea unui sistem de li~iere . Aceasta operare:
opera~e

este executata de cele mai multe ori in mod automat de sistemul de

in Windows, sistemele de lisiere primesc automat litere dilente; pot fi ulterior modificate. cu anumite restriclii. folosind Co ntr o l Pa nel > Admin i strat i ve Tools > Comput e r Management > St orage > Dis k Management ;

98

lNTRODU CERE iN SISTEME DE OPEAARE


In Linux, sisteme le de fisiera sunt monlalS atflt in locuri bine definite (definite de utilizator la ins\alare) cal ~i in locuri special create {de exemp lu !media!<nume>/ } penlru a gflzdui sistemale de fisiera de pe medii externe, precum USB stick-uri, CDIDVD-ROM-uri etc.

in Mac OS X, sistemale de fisiera sunt montate automat in /Vol urnes I <flume> .

Mo nlare e manua lii


Pentru a monta un sistem de fisiere , 1nlr-un madiu Linux S9 utilizeazi'i comanda mount ,

eu sinlaxa:
root@ubuntu : -I mount - t
<dir~cto r ~ontar ~ ' <tlp_ ~ lstern...fHi " r e >

[ - 0 <opt1un.

<dispOz i tiv>

in exemplul de mai jos sa loloseste mount pentru a menta partitia a 2-a de pe primul disc. eu sislemul de fi~iere ext3, in directorul fmnt/da t a (directorul /mn t / el ata trebuie s;\ existe anterior executiei comer'lz ii).
root@ubuntu:-I mount - t ext3
laev/.a~2 Imnt/a~ta

Montarea unui sistem de fi!;iere doar cu drepturi de citire (read-only) se poate rea liza prin optiunea -r:
root@ubunt u :-I mount -r -t ext3
Idev/"d~2

Imnt/data

Alte exemple de utilizare a op~unilor de montare se gas esc in sectiur'lea 4.10.

Mo ntarea automata lntrun sistem Unux, fisierul letc/ fstab descrie sistemele de fi~iere care vor fi montale automat la pornirea sistemului de operare. Fis ierul coniine cAle 0 lir'lie penlru fiecare sislem de fi~ i ere. Comenlariile incep cu I. Sintaxa unei linii esle:
<di ~ pozit i v>
p~s>

<d i r " cto"

mont~"e>

<tip si,te", fi,i,,",,> <opt iuni> <du mp> <

campuri le au urmatoarele semn ifiCatii : <eli spozi t i v> - fi~ier care indiCa locul (de obice i un d ispozitiv) unde se gase~le sistemul de fis iere; <el i rector montare> - director existent in structura de directoare unde se va putea aceesa con!inutul sislemului de fi~iere monlat: <tip sistem fi~iere> -tipulsistemuluidefi~ i ere ; <op t;iuni> - oPliuni pentru montarea SiSlemului de fis iere - difer;\ de la un sistem de fisiere la altul: <dump> - indica daca sa se realizeze automat backup al parti!iei utilizand programul dump; opt iunea este ir'l prezent rar folosita, preierandu -se alte metode de backup: acest parametru are in mod ob isnuit are valoarea 0:

CAPITOlUl4. SISTEME DE

FI~IEAE

99

< p a s > - indica ordinea in care fsck va verifica sistemele de fisiere (0" flick nu

va veriliea sistemul de lisiere). Un exemplu de linie din I et c l f st ab este:


! d ev!sd~l

rei serf' defaults 0 0


li~iere

Unia deserie montarea primei parti!ii de pe primul disc in I . utilizand sistemul de ReiserFS eu op!iuni implicite, lara backup si lara verilicari. Dupa efectuarea unei modificari in letel fsta b. eomanda
roo t @ u b unt u : - I mount - a

va monta toate parti!iile men!ionate. Fara niciun argument, mount dat.


~

afi~eaza

lista sistemelor de fisiere montale la un moment

ubu n tu@ubu n tu : -$ mount !dev/" d ~l on / typ e re i serf. I r .. ) 3 !'lO ne o n Iproc typ e p roc l u ) !'lO n e o n Isys t ype s y s f s (rl<) u ~ bf5 o n / pr o c / b u~/u ~ b t ype u ~ bh I r w) ~ !'lO ne o n I d e v / p " t ype devpt s ( r ,, ) 1 non ~ o n / d ev/ ,hm typ e t mph ( rw) 3 t mpfs o n /t mp typ e t mp h ( e ,,)

Se observa ca in lista nu apar doar sistemefe de fi~ i ere montate manual sau ce le monlate automal (deserise in /etc/fsta b). Exista si ca re sunt . sisteme de fisiere . create ~i montate automat de sistem in ierarhia de lisiere pentru a oleri informatii despre starea sistemufui (precum I proc - vezi sectiunea 5. I .3). Usta sistemefor de fisiere montale fa un moment dat se poate regasi de asemenea fisierul / etc /m t ab.
~i

in

Opera!ia inversa monlarii unui sistem de f i ~ i ere se nume~te demontare. Pentru a rea liza demontarea se utilizeaza comanda UII1ount , cu doua sintaxe posibile:

,
J

root@ u b unt u : -I umount <d i sp o .'tiv' roo t @ u b unt u : -I u mount <d 1Ce ct 0 r _ d e-",on t a r e >

Folosincf mount si g-rep se aliA tipul parti!iei I dev I sda2 :


>
ro o t @ u b unt u : -I mount I 9rep ! d ev/ . d a2 I d ev/.d~ 2 o n / ho me typ e reiser f s Ir w)

Pentru a demonta acest sistem de fisiere se poate utiliza oricare din urmatoarele doua comenzi:

,
,

ro ot @ ubunt u:- I u mount Idev/sda2 root@ u b unt u: -I ,-,mount /h ome

100

INTRODUCERE iN SISTEME DE OPEAARE

4.8.3

Repararea unui sistem de

fi~iere

Dup.:i cum sa men!ionat ~i la inceputul acestui capito l, siste mele de li~ie re moderne au suport pentru jurnalizare. Acest suport este util in mod deosebit atunci cAnd se produce o cadere a sistemul ui, precum atunci cand se intrerupe aJimentarea cu energie electric.:i. La repornire, sistemu l de operare efectueaz.:i 0 verificare a integrita!ii sislemelor de li$iere. La aceasta. veriliCare, 5e executa comanda fack penlru liecare sistem de li~iere. Aceasta comanda este particularizat.:i pentru liecare sistem de Ii~iere cu numele f ac k. <tip_siatem_ do_ fi a iero> , precum comanda mkfs . Pentru a verilica un sistem de lisiere comanda f ac k se ape leaza cu urmatoarea sintaxa:
root@ u b untu : - I f"c k - t
< t ip_ "l" t e ~ fi"ie r e >

<di"po zitiv>

Dac.:i se doreste . veril icarea celei dea doua partiti . i de pe primul disc, cunoscand use ca ar trebui sa se gi:!seasca un sistem de li~iere exl3 pe aceasla, se ulilizeaz.:i comanda:
r o ot@ubu nt u: -' fsc k - t ext3 I d ev!s d a2

i n lunc!ie de op!iunile ca re se lolosesc la executia come nzii, fac k poate repara erori le pe care Ie l nt<'!lneste.

4.8.4

Crearea unei imagini pentru un sistem de

fi~iere

Imaginea unui sistem de li~iere reprezinta copia lidela intr-un lisier a liecArui octet care descrie sislemul de lisiere (inclusiv datele din acesta). Aceast.:i imagine poate Ii ulterior copiata. pe 0 alii:! parti~e sau arhivatA pentru 0 eventuala rec upera re a date lor daci:i partilia surs.:i este d istrusa accidental. 0 utilizare Ioarte Ireeventa a imaginilor se inla.ineste in copierea con!in utul CDIDVD-u ri lor pe alte medii de stocare. Pentru a realiza 0 imagine a unui sistem de l isiere se utilizeaza comanda dd (vezi sectiu nea 7.6.5. in exemplul de mai jos se copiaza conl inutul primei parti!ii (sistemul de fi~iere) de pe discul al 2-lea in f i~ieru l Imn t I d a t a/par t itiel _ img .
roo t @ u b unt u: -' dd if- !devlsd bl o f - ! mnt! d ata! p u t i t iel . img

Aceasta comandA este independenla de 5istemu l de li~iere caruia i se lace imaginea. Lucreaz.:i direct la n!velul octetilor ca re alc.:ituiesc sistemul de li~iere si pastreaza inlreaga struclura interna a acestuia. In cazu l utilizArii come nzii pe sisteme de lisiere loarte mari, se va observa ca timpul de execulie este destul de mare. Motivul pentru care se intampla acest lucru este laptul ca, in mod implicit, comanda dd lucreaza cu blocuri de date de 512 ocleli, ceea ce inseamna ca pentru lieeare 512 octeti comanda executa 0 citire si 0 scriere. in prezent, buffer-ele disc uri lor au valori dimensiuni mult mai mari ~i pot lucra eu ~ocuri mai mari de 512 octeti. Pentru a modifica dimensiunea blocului citiUseris de dd se utilizeaza parametrul bs - <d imen si une > , unde <d imensiune > peate sa lie xKB. xMB etc. $p re exemplu:
roo t @ u b untu : - I dd
b ~ - 2 MB

1 f - I d ev / " d bl of- ! mnt! data/pac t 1 t ie 1 . imq

CAPITOLUL 4. SISTEME DE

FI~IEAE

101

va executa aceeasi operatie dar citine! blocuri de 2MB. Exista si un dezavantaj al ulilizarii unor blocuri de dale mai marl. in anumile cond itii, nu se va pulea face copierea unui bloc Inlreg, din diferite motive precum un defect hardware al suprafelei magnetice, sau ultimul bloc nu are dimensiunea de 2MB (deoarece dimensiunea talala nu eSle multiplu de 2MB). De cele mai multe ori se doreste recuperarea cAt mai multor date de pe disc, de preferat toate. i n aceste conditii Irebuie delerminat daca 0 viteza mai mare (dimensiune mai mare a blocu lui) esle a decizie acceptabila ~Iiind ca se pot pierde date mai multe la cil ire. Pentru recuperarea datelor de pe discuri cu delecle hardware. se poate lolosi programul ddrescue' . ddrescue eSle 0 aplicatie asemanaloare dd dar care este specializata in recuperarea cAt mai multor date de pe disc uri.

4.B.5 " $tergerea " unui sistem de

fi~iere

Exista doua tipuri de stergere a unui sistem de fisiere:


~tergerea ~tergerea

logica fizica

$tergerea logica se obline prin stergerea parti!iei corespunzaloare sislemului de fisiere din tabela de partilii (descris in sectiunea 2.2.2). Din moment ce nu mai exista partilie care sa incapsuleze sistemul de fisiere , acesta se poate considera sters. Practic, datele lui incA mai rez ida pe disc, panAla 0 suprascriere cu alte date. Faptul ca dalele nu sunl sterse lizic de pe disc a pus si inca pune probleme oame niior care doresc ca datele odala ce sunt sterse sa rama na ~terse penlru elernitate. Din acesl motiv, pentru a elimina orice posibilitate de a recupera un sistem de fisiere sau datele dintrun sistem de fisiere, se utilizeaza ~tergerea fizica . $tergerea fizica este realizata de tapt prin suprascrierea blocuri lor de pe suporlul tiz ic (unde era inainle sistemul de fisiere) cu dale aleatoare sau cu zero uri. Pentru suprascriere se utilizeaza cel mai rapid 101 programul dd prezenlat anterior dar, in loc ca partitia sa fie folos ita ca sursa, ea este fo losita ca destinatie pentru un set de date aleatoare (sau zerouri). Pentru a suprascrie cu zerouri 0 parli!ie, se poale lolosi comanda:
roo t @ u b unt u: - I dd if - /dev/zero of - / d ev/sda l

Pentru a suprascrie 0 partitie . cu date alealoare, se foloseste . comanda:


root @ ubu nt u: -I dd if - /dev/unndom
of - /dev/"d ~ l

4.8.6

Monitorizarea utiliziirii discului

o problema ca re nu poate fi neglijata este umplerea hardiskului. Pentru a evila acest lucru, se lolosesc comenzi care sa afiseze cat spa!iu este consumal, de exemplu comenzi le df si duo
, http;liwwN.g nu.o,g/soflwareJOdrescue/dd ' n cue.htm l

102

lNTRODU CERE iN SISTEME DE OPEAARE

ComarKIa d f oterll inlormatii despre dimensiunea totalii, spatiul utilizat, spatiul tiber si procentul de folosire at fiec1\rei partilii.
ubuntu@ubuntu , -$ af
, ' FihsysHm iaev/.cta l l K-bloch U, @d 56S9ia4 4449900 15361340 101,4596
Av~ il abl ..

140~664

laev!.aa2

U,,,\ \ Mounted on 76\ \ I 5186744 61\\ /hom..

Atunei cc'lr1d procentul de 1010sir9 depasesle 60% S9 recomandA cu ra!area partitiei.


Se poate lolosi optiunea - a pentru a include si pseudo sistemele de fisiere care sun! afisate cu dimensiunea 0, de exemplu /proc , I sys:

UbUfit u@ubuntu,'$

f l lesystem
!de"fsd~l

"

l K - b l oc~s

fdev/sd .. 2 Iproc
l ~ y5

5859784 15361340 0 0

used Ava ilable Use\\ Mounted on 4449900 1409aa4 76\' 5186144 67\ , thorne 10174596 0 0 Ip<oc 0 0 l ~ y5

Comarxla du cauta in mod recursiv in directoarele specificate pentru a af isa cal spa!iu consuma liecare director. In exemplul de mai jos se aliseazA spatiul ocupat de directorul

fe t e/ne t work :
ubuntu @ ubun tu:-$ du letc/net~ork , 8 letc/network/it - down . d , 12 /e t c/ne t wor~/lf - post - down d 12 letc/networ~/i f- pre - up . d ,24 /etc/ne t wor~/It - up . d "64 /etc/net wor~

Pentru
> 8 . OK
" , "

afi~area

dimensiunii in formal mai

u~or

de c~il se poale lolosi optiunea - h :

ubuntu @ ubu ntu : -$ du - h fete/ne t wor k IHc/ne twork! if - down . d / et c/ n"twoek / if-po 5t -down. d 12K / H c! n .. twork I i f - pre - up. d 12K 24K / "t c/ n"t woek / if-up . d / .. tc/n .. twoek 64K

Pentru a opri cautarea recurs iva si a af isa doar spa~ul ocupat de directorul transm is ca argume nl se folose~te op!iunea - 5 :
, ubuntu @ ubuntu : -$ du - h -~ /e t c/netwo rk 64K / " tc/n"twoek

4.9
4.9.1

Tendin,e in sistemele de fi!1Oiere


Sisteme de fi!iliere in userspace

Sislemele de lisiere pol Ii citilelscrise de sisteme le de ope rare doar daca exista drivere care sa Ie implemente2e. Implementarea unui driver pentru un sistem de lisiere nu este locmai usoara. Acesla este si principalul moliv pentru care exisla deslul de pu!ine sisteme de fisiere care sa implementeze un sel de funClionalih'l\i acceptabil. Majorilalea sistemelor de fisiere prezenle in siSlemele de ope rare au multi ani de dezvoltare.

CAPITOLUL 4_ SISTEME DE

FI~IERE

103

Dup~ cum s-a prezer"ltat anterior, exista situatii in care s-a putut loarte usor abslractiza aecesul la 0 serie de dale prin intermediul fis ierelor (precum informalii despre sistem, i n I proc) . Practic, aproape once informa!ie poate Ii prezenlata sub lorma de li\lier. Singura prob~maa care a Impiedicat mu~ limp aceasta trecere caire reprezentarea de dale lolosind fisiere a lost dificultatea scrierii unui driver adeeval.

in ultima perioada a luat ampklare utilizarea de drivere pefltru dilerite sisteme de lisiere in user-space, spre deosebira de driverala clas ica care functioneaza i n karnelspaca , Driverele din userspace se bazeaza pe faptul ca exista un driver in kernel care se ocupa de translatarea apelurilor la date Intre kernel \li sistemul de f~i ere din userspace. Acest suport pentru sisteme de fisiere i n userspace este prezent in kernelul Linux cu numele FUSE' (Filesystem In USErspace) iar i n Mac OS X cu numele MacFUSE'. Tabelu l 4.1 5 prezinta avanlajele
~i

dezavantajele sistemelor de fi\liere i n user-space:

TabeluI 4.15: Avantaj eldezavantaje sisteme de fisiere in user-space Oelavantaje Avantaje suport pentru scrierea ae dri ver-e in mai lente deeM sistemele de fis iere numeroase hmbaje de programare; normale; au 0 Ilexibililate mai micA in delvoltare mult mai rapida datorita alll.! ceea ce prive\lte nivelul de acces la limbajelor de nivel inal1 c;'\t si datorita hardware, comparativ cu un driver da posibilita!ii de testare mult mai rapida kerne l (de obicei nu este 0 limitare (+ debugging); nu blocheaza sistemul loarte importanta, dal fiind scopu l in cazul unei proaste function;'\ri; sistemalor de lisiere de acest tip) compatibililate a implementarilor intra linux \li Mac OS X

Prinlre cele mai folosite sisteme de

fi~ iere

in lISerspace se numara:

NTFS-3G - sistam da fisiere care olera suport read/write pentru NTFS; sshls - sistem de f i~iere care olera aeces la fisierale de pe aM intermediul SSH ca si cum ar fi parte din sistemul de fisiere local;
ma~ in ~

prin

EncFS - Encrypted Fi~system - sislam de fisiera cara cripleazA automat fisiara le din directorul pe care 11 foloseste ca suport; AVFS - Anti-Virus Filesystem - sistem de fisiere care realizeaza scanarea pentru viru si i n momentulin care se realizeaza un aeces la fisiere: este i m~ementat ca sistem de fisiere intermediar pentru accesul protejal la alt sistem de l isiere. Fiecare dintre aceste sisteme de l isiere se monteaza in tr-un mod diferit, datorila modului in cara au losl g;,\ndita s~ lucraza cu datele: unala au nevoie de un numa de utilizator si o parola, altele au nBl/oie de calea catre un all sistem de fi\liere etc. Mai mulle informa!ii se pot gasi pe paginile web ale liecArui proiect.
, http ://fuse,,oufCofor!l'' .net! ' http ;llcOO . 1I"09 Ie ,com/plm .cru. et

C JPYnghted matanal

104

INTRODU CERE iN SISTEME DE OPERARE

4.9.2

ZFS, ext4, btrfs

ZFS (Zettabyte File System) este un sistem de fi~iare pe 128 de biti si logical volume manager care prezinta mulle facilitali avansate cum ar Ii clone copyonwrite, snapshot-uri, dynamic stripping, verificare continua a integritatii datelor, backup ~ i reslaurare rapida, compresie incorporall\. scalabilrtate. ZFS a 1051 dezvoltat de Sun Microsystems ca soltware open-source ~i este sub licen!a CCOl. ext4 este un sislem de li~iere jurnalizat dezVQltat ca imbunata!ire a lui ext3. ext4 aduce nou suport pentru sisleme de fisiere foarle mari {pflna la 1 exabyte _ 1024 petabyles}, extents (posibilitatea de a mapa blocuri mari contig ue pentru un singur lisier), compatibilitate inapoilinainte. Compatibilitatea inapoi este data de faptul ca un sistem exl3 poate Ii montat ca un sislem ext4. Compatibilitalea inainte esle posibila deoarece un sistem ext4 poale Ii monlal ca un sislem ext3. ext4 a lost inclus in kernelul linux incepand cu versiunea 2.6.19 dar la momentul serierii acestei carli el este marcat ca fiind in dezVQltare. btrfs (Better File System) este un sistem de lisiere de tipul copy-on-write dezvoltat pentru linux. La lei ca ~i e~t4, btrfs contine suport pentru extents. 0 caracteristica principali'! a acestui sistem de /isiare este posibilitatea efectui'lrii unor operatii critice in timpul lunctionarii , de exempllJ defragmentarea, modilicarea dimensiunii parti)iei si verilicarea consisten\ei. btrfs prezinta multe alte caraclerislici prinlre care electuarea de snapshoturi 5i de backup-uri incrementa Ie. Initial dezVQltal de catfe Oracle, btrls este licentiat GPl.

4.10 Studii de caz


4.10.1 Comenzi pentru lucrul cu
fi~iere

in Windows

Tabelul 4.16 prezinta ed1ivalenta comenzi lor de baza Windows si Linu x penlru prelucrarea I~ierelor.

4.10.2

Utilizarea in siguranta a comenzilor pe

fi~iere

Exisla 0 serie de optiuni pentfu comenzile op, mv si rm care lac utilizarea aceslora sa fie mult mai siguri'! din punct de vedere al pierderii datelor in mod accidental. Fiecare comanda are printre op!iuni -i, 0 op!iune care determina comanda sa ceara 0 conlirmare pentru fiecare li~ier sters/suprascris. Pantru a anula efectul aceS1IJi parametru paale Ii lolosit parametrul - f . Fiecare comanda reclJnoaste OP!iunea - v , OP!iune care determina af i ~area lisierelor procesale fa momentul respectiv. Aceasta optiune poate reprezenta 0 metoda buna pentru a vizual iza ce anume se i ntAmpla in spatele comenzii. mai ales daca se executa comanda penlru un set mare de lisiere. Aceste doua optiuni (- i v ) pol Ii for1ate odata cu toale executiil e real izate de utilizalor pentru aceste comenzi daca se realizeaza aliasuri. Alias-urile sunt descrise de obicei atanal

CAPITOlUl4. SISTEME DE

FI~IEAE

105

."'.
"""

TabeluI4.16: Comenzi pentru lucrul cu fisiere in Windows Comanda lInux Comanda Descrlers Windows comanda comanda afiseaza informalii des pre comanda --help od od schimba directorul curenl p.d chdir afi~eaza directorul curenl ~Ierge ecranul consolei cure nte clear 01. copiaza un f~ier op copy d.l ~Ierge un f i ~ier afi~eaza conlinutul direclorului curent 10 dir edileaza un fi ~ i er lexi vim edit inchide shellul curent exit exit compar1'i doua fi~ i e re si afi~eaza dlferentele ditt to intre ele find find caut1'i fi~iere formateaz1'i un disc format (mke2fsJ free afiseaza informatli despre memoria hbera si cea ocupat1'i creeaza un nou director rnkd1r mkd1r .v move muta un fisier .v redenumeste un fi~ i er t ime afi~aza ora sistemului

"

.0.
0,.

intrun lisier care eSle incarcal la pornirea shellului (precum -I .bashrc) (vez i sectiunea 12.10) :
~li ~s

,
J

~li~5 ali~5

cp- " cp mv - "mv

- iv - iv rm_"rm -i v
~i

Astlel, la execulia oric1'irei dintre aceste comenzi, automat se vcr lua in co nsiderare aceste op!iuni.

4.10.3

Montarea unui sistem de fisiere FAT32 astfel incat tOli utilizatorii sa aiba drept de scriere pe el

Pentru a realiza acest lucru se utilizeaza op!iunile de montare a sistemelor de fisierelor. Pentru a forla la montare drepturi le Ii~ierelor se utilizeaza ma~ti {mask}. Masca esle 0 insiruire de biti care daca sunt 1 semnifica un drept care lipsesle. Exista mai multe lipuri de masti: _ umas k - masc1'i aplicala tuturor fi~iere l or noi (vezi secliunea 10.2.4); f mask - masca aplicala luturor fisiere lor; _ dmas k - masc1'i aplicala tuturor direcloarelor;

106

lNTRODUCERE iN SISTEME DE OPEAARE

folos ind acesta masti sa definesc optiuni pentru montarea unei partitii FAT32 in felul urmator:
roo t @ u b u nt u: -f mount - t vh t - 0 drnas x - OOO , fma sk- ll l
Idevfs d~2 Imn t / m ~ d i a

Paramelrul - 0 dmas k - OOQ , fmas k - l l l specrtiCa faptul ca pentru toti utilizatorii

fisiere le normale trabu ie s1l apar!i eu drepturi readlwrite iar directoarele eu toate drepturile. Trebuie mantiona! ell pe 0 partitie FAT32 nu ar Irebui sa sa g1'iseasc1'i aplicatii/script-uri ce pot Ii executate din Unux. Pentru a preveni aceasl1'i silualie. tuturor fisiere lor Ie aSIa indepartat dreptul de executie, prin masca 11 1. Comarx:la de mai sus sa poate trans/orma foarte usar intrQ linie in (e tc/ f stab :
/<lev/scta2
I m ~tlmed(a

vht

deh u l t" , <lm a" ~ - OOO . f",as ~ - lll

"

Sa pastrat opliunea defaults pentru ca aceasta activeaza alte op!iuni uti le la montarea automat<'l.,

4.10.4

Montarea unui sislem de fi~iere FAT32 astfel incal ulilizatorii dintr-un anumit grup sa aiba drept de scriere pe acesta

Exisla situ alii ctlnd se do re~te ca doar un grup de utilizatori sa aiba acces la 0 parti!ie. 1 n aceste conditii, posesorul fisiere lor trebuie modificat in r oot iar grupul in grupul doril. Grupul trebuie sa aiba toate drepturile. 1n primul rand trebuie determinat identiticatorul grupului (gid, group id). care se doreste a avea drepturi asupra fi~iere lor_ Cunoscanduse numele grupului, eomanda urmatoare va afi~a identificatorul grupului,

ubu ntu @ ubuntu:-$ cat /etc/group I gr e p nume grupn umegrup ox ' IOO '

Comanda filtreaza liniile din letc/group si ali~eaza pe ecran doar liniile care incep cu numele grupului doril. Numarul ce se gaseste intre caracterele : este identificatorul grupului, Comanda care monteaza un sis tern de este urmatoarea:
fi~ i e re

FAT32 eu restric!iile men!ionate mai sus

root@ubuntu:-' mo unt - t v[at - 0 amas x - 007 , fmasx - 117 , gid-100 , uid- O / d ev/ sda2 /mnt/media

Se observA ca, spre deosebire de cazul anterior. au mai lost introduse douA op!i uni: g i d - l 0 0 - idenliticatorul grupului care va avea dreptu ri asupra fisierelor; uid - O - idenlificatorulutilizatorului; utilizatorul root are uid - O. MAstile au lost schimbale pentru a nu permite niciun fel de drept altar ulilizatori in afara grupului ~i utilizatorului root {au 7 pe ultima pozi)ie).

4.10.5

Sistem de

fi~iere

intr-un

fi~ier

Dupi'l cum sa prezentat si in subcapitolele anterioare, in Linux se poate accesa (aproape) lot printrun fisier. 1n particular, liecare dispozitiv are asociat un fi~ier. Spre

CAPITOLUL 4. SISTEME DE

FI~IEAE

107

exemplu, prima partitie de pe primul HOD are asociat (de obicei) lisierul I dev I sdal. In mod similar cu utilizarea li~ i erului Idev/sda l , orice alt fi~ i er poale Ii Iolosit ca suporl pentru un sistem de li~iere. Dou1!. dinlre motivele cele mai lolosile pentru a realiza acest lucru sunt: experimentarea unor noi sisleme de li~iere , lara a repart iliona discul: incapsularea datelor in1run sislem de li~iere (eventual cripta1 ). in tabe lul 4, 17 este prezentat modul in care se poate real iza un sistem de li~ i ere stocat in1run lisier. Sunt prezenta1e comenz ile at," pentru sistemul de lisiere allat intro parti1ie cat ~i pentru sistemul de fi~iere allat Inlrun lisier. TabeluI 4.17: Sisteme de fisiere peste partitii sau peste lisiere Sistem de fI~lete Acliune inlr o partitie Intrun li~ier alocare partitioneaza di5cul: oct if - /dev/~ero of - ~/date spaliu obline partilia /dev/sdal bs - l MB cou nt - 20 se creaza astlel un lisier eu 20 btocuri, liecare 1MB, 5e ob!ine echivalentul unei parti!ii d, 20MB Iormalare I sbin/mk f s vfat /s bi n /mkfs v f at -/ da te Idev/sdal veriliCare file -/da t e montara mount vfa t moun t vi at - 0 loop Idev/sdal di r l Ictate di rl demontare umoun t di r l umount dirl

"

"

-,

-,

Op~unea - 0 loop specifiC1!. sistemului de operare ca partilia nu se dispoziti v liziC ci Inlrun lisier.

gase~te

pe un

4.10.6

n1l5-39

nlts3g' eSle proiectul care olera suport read write panlru partili i NTFS sub Lin ux. Penlru instalarea ntfs3g se loloseste comanda:
Ioo t @ u b unt u: -f apt - g@t
in ~ t all

ntf, - 3g

Pentru a identiliCa par@a NTFS se poate utiliza comanda:


root@ubuntu : -I
rdls~

- 1 I grep NTrs

care

al i ~eaza

doar liniile care contin NTFS din ie~irea come nzii f d isk - 1,

Penlru a monla sislemul de lisiere in mod automat, In I etcl f stab se adauga 0 linie de lorma:
<d l spotitiv> <director montare> ntfa - 3g de fa ults , loc al e - en_ US .u tf8 0 0

, http;l/www. ntf. 3g.o.gi

108

lNTRODU CERE iN SISTEME DE OPEAARE

Cuv inle cheie

sistem de
montara

fi~iere

arhivare

dezamivare

,,,"

damontare

lisier director jurnalizare

backup

descriptor de lisier
redi rectare

drept de aeces

cale absoluta, cale rataliva ierarhie


copiere, mutare.
~tergere.

Is , pwd, cd

cp, my, rm

redenumire mkdir, rmdir, touch

iOlrebiirl
1. Sistemele de fisiere din prezan! ole ra un grad mai mare de siguran\<'i impotriva
eMer itor de lensiune prin implemenlarea:

o drepturilor de acces la nivel de ulilizator ~i grup o drepturilor de aeces prin lisle de acces o suportului pentru legaturi hard
o suportului pentru jurnalizare 2. Care aSIa fisieru l lolosit pentru montarea automatii a unui sislem de lisiere in
Li nux?

o o o

/etc/ r esol v . con f /etc/fsck / mnt /hda5

o /e t c/fs t ab

3. Un fi~ier are drepl1.Jrile 653. Ulilizatorul ce deline fi~ieru l ruleaza. comanda:


c hmod a - x , u+w , g - r , o+r

Care sunt noile drepturi ale


0606 0762

f i~ierulu i ?

0534

451

CAPITOlUl4. SISTEME DE

FI~IEAE

109

4. Care din urmAtoarele comenzi NU poate Ii aplicatil asupra unui director?

fil ..

o o o o o
o o

touch
rm - r

cat

5. Care din urmAtoarele NU este 0 intrare va li dA1n sistemul de fi~iere?


fi~ier

executabil

director al dl.rui nume 1ncepe cu . legilturil simbolicil cAire /bin interlata de retea de looback

6. Care din urmiltoarele sisteme de f~ i ere este un sislem nativ Unux?

o o o o o o o
o

HPF S
FAT32 EX T3
UF S

7. Un utili zator conligureazil un fisier cu drepturile 755. Ce utilizator are dreptul de


execu!ie pe root ulilizatorul care de!ine li~ieru l niciun utilizator toti utilizatorii
li~ier?

6. Ce reprezintillitera v din comanda de mai iOs?


ubuntu8ubuntu : -S
t&~

c<vf

~ . tg<

dirl

o o o
o o

crearea unei am ive dezarhivarea unei arhive crearea unei am ive GZIP af isarea de mesaje despre arhivare

9. Care comanda esle lolosita pentru montarea unui sislem de lisiere in Unux? mount umounl mountfs fsck

o o o

110

INTRODU CERE iN SISTEME DE OPERARE

10. Pantru a putaa utiliza un sistem da lisiara pa 0 partitia dat<'i, prima actiuna absolut necesara care trebu ie executata este:

o o o o

stergerea sistemului de li~iere existent anterior montarea sistemului de fi~iere de pe partitia respectiv<'i formatarea parti!iei cu sistemul de lisiere dorrt schimbaraa drapturilorda acces pentru directorul in care asta montata partitia

C JPYnghted matanal

Capitolul5

Procese
Us a wel/lmown fact !hat computing deviC6s SI.1ch as the abacus were invented thousands of years ago. 8ul it's not well known that the first USB of a common computer protocol occurred in the Old Tes/amen/. This, of course, was when Moses aborted the Egyptians' process with a
control-sea

Tom Galloway

Ce S8 hwala din acest capitol?


DBfini~a I)nui prOCBS; d ifare nla intre un program si un proces

No\iunea de multitasking leramia de procese jnlr-un sislem de operare Comenzj de vizualizare a proceselor (ps, pSlree, top) Daemoni: rularea proceselor in background/foreground NOliunea de semnal; adminislrarea proceselor prin intermediul samnalalor Comunicarea intre procese: operatorul l (pipe) de comunicare intre procese
Adm inislrarea proceselorlservici ilor in Windows

5.1

No,iuni introductive

in lumea sislemelor de ope rare Unix ($i nu numai) exislA dow''j concepte fundamentale: fj~lerul ~i procesul. Fi ~ ierul esle lolosil penlru a abslractiza informatia ~i modul de slocare si utilizare a acesteia In sislemul de ope rare . Pe de altA parle, procesul este lolosil pentru a abstractiza executarea sarc inilor sistemului de ope rare.

'"

112

INTRODUCERE iN SISTEME DE OPEAARE

5.1.1

Ce este un proces?

in defini!ia sa cea mai simpla, un proces este un program allat in executie. Daca un program esle considerat 0 entitate pasiv1!., un proces este considerat 0 entitate activa Defini!ia anterioara simp lilica semnifica!ia pe care 0 are un proces, incadranduse in gradul de detaliu pe care 11 atinge capitolul curen\. Procesu t eSle unitatea de baza a Sistemului de operare lolosita pen tru a indeplini sarcinile indicate de uti lizalor. Orice solicilare a utilizatorului se traduce in crearea unui proces si rezowarea ace tei soliCrtari. Un proces este, a$adar, 0 entilate de execupe.

5.1.2

Deosebirea dintre un proces

~i

un program

Un program esle doar un fisier executabil care se alia pe disc. Se spune ca un astlel de lisier este imaginea din care se va real iza un proces. Un program eSle, asadar, 0 entitale pasiva, care nu are asociale nO!iuni de ulilizara a memoriei $i procesorului (elemenle de baza intr-un sislem de ca lcul). Fisierele /binlls , / u sr/bin/vi sunt exemple de programe:
2

uzvan@aMcon<ia : -$ Is - 1 Jtnnlls - rwxr - xr-x 1 root root 96216 2008 - 06- 27 03 : 31 Jbinlls
r~z"an@anacon<ia : -$ I s - 1 JuseJbin/"i lcwx r wx r wx 1 r oot root 20 2009 - 02 - 27 1 5 : 43 /u s r/bin/vi - > tHe/ dU rnativ"./v i

7
"

,0 ra.vanhMcon<ia : -$ Is - I Jusrtb . nrvim . b a .ic 11 - ''''H - XC-X 1 coot root 1644100 2009 - 03 -1 9 17:32 Jusr/bin/vim . bas1c

razvan@ a n acon da : -$ ls -1 JHc/dt~ rn ativ .. " /v i lr"H "Hwx 1 root root 18 2009 - 04 - 2 4 09 : 59 /"tc/dltern a t ives/vi bi n /vim . bas i c

-~

/uor/

Un program contine, in cad rul fiSierului execulabil, doua compo nente (sectiuni) principale: seCli unea de cod, ce co ntine instruc!iunile de rulare a programului pe procesor; seC\i unea de date, ce conIi ne inlormatiile utilizate ta executia programului; Pe de alta parte, un proces porneste in momentul execu!iei unui program. in acel momenl, sislemul de operare creeaza 0 struclura (o enlitate, 0 abslraClie) denumila proces. Dincolo de inlormaliile con!inute in imagine (Iisierul executabil de pe disc), siSlemul de ope rare asociaza procesului 0 zona de memorie unde isi va menline dalele ~i unde se va alia codul de executa!. De asemenea, procesului i se asociaza limp de rulare a codului pe procesor si aile informali; ulile pentr u interacliunea cu alte procese sau componente ale sistemului de operare. Toale acesle elemente lormeaza impreuna contextul procesului. Mai multe informa!ii se gasesc in seC\iunea sectiunea 14.7,1. Exemple de procese sunl rularea comenzii 15 sau ru larea editorului vi. i n momentul rularii come nzii 18. sistemul de operare loloseste imaginea /bin/ls si creeaza un

CAPITOLUL S. PR OCESE

113

proces. Acest proces este ras punzator pentru uti lizarea resurse lor sistemului (memorie, procesor) pentru a oleri rezultatul ru larii comenzii (in cazul de lata ali~area con!inutului directorului curent):

, , ,
,
6 1

u zv ~ n @~Mco n dd :

Des kt o p Do"nl M d
M ~il dir

""

-s code e x tra- s c h oo l bkup b oo k s j un k

"

me d i~

p ~c k ~ges

my st u ff o ff i Ci d l

p eopl e pro j e c t s

p obl i c _ ht ml s c h oo l
s vn - rep o ~

webs i tes

r ~ z v~ n @~ n ~ con d a -$ Is - 1 / b i n lls - r .. xr - xr - x 1 r OOt root 96216 2008 - 06- 21 03 : 3 1 I b inll s

r ~ z v~ n@~ n ~con d a : -$ file lus r /b in / fil e 10 l u sr/b in /f il e : EL F J2 - b it LSB e x ec u tab l e , Inte l aOJa6 , vers ion 1 ISYSV ) , 11 d y n a mica Ll y l i nk ed (uses s hare d libs) , for G N U lL lnu ~ 2 . 6 . 1 5 , st~ jpp e d

In exemplul de mai sus, a doua comanda are ca argument executabilul lolosit pentru crea rea procesului. La lei ~i a treia comanda. Pot Ii considerate exemple triviale de

self.reference 1
Se poate observa ca un proce5 este 0 instanla de execulie a unui program. Un program poate avea insa mai multe inslan!e de execulie asociate (instanle care pol ru la simultan sau succesiv). Exista, asadar. 0 asociere many to one (mai mulle la unul) intre procese si programe.

5.1.3

Structura unui proces

Un proces este delinit, la nive lul sistemului de operare, ca 0 struct uri de dale. Un proces are proprietati $i dispune de resurse, cele mai importante fi ind: Identilicatorul unul proces, numil si PID (process kI). Esle un numar Intreg care identiliea unic In cadrul sistemului de ope rare procesul respectv; Imaglnea procesulul. reprezentala de programul din care ia na~tere procesul. Imaginea procesului contine codu l si datele necesare pentru executie; starea procesului. Un proces 5e poate ali a in starea de rulare (in momentul in care codul asociat se executa pe procesor) sa u in asleptare (un all proces se alia i n rulare); zone le de memorle utltlzate, ce reprezinta reg iunile de memorie !olosite de proces pentru a mentine codul si datele; lisierele deschise. Un proces menline 0 tabe la cu li ~iere le deschise. De obieei dimensiunea tabelei este limitata astlel incAt si numarul de lisierele pe care Ie poate deschide un proces este limilat. (in linux aceasta limita este stabilita implicit la 1024).
, http ;lJhUpjlen .wikipedia. o,glwi<iIInd" e et_ ... ~. , .. te 'e nee

,,,

lNTRODU CERE iN SISTEME DE OPEAARE

Vizu alizarea struc turii unui pracas utilizand procls

In Linux exista mai multe metoda de a obtine inlormatii des pre structu ra unui proces.

Una din aceste metode este analiza procis. Acesta este un sislem de lisiers vi rtual care
olera aeces la informalii din sistemul de operare. Pentru a analiza un anumi! proces va trebui accesal directorul Iproc/pid. pid este numarul ce identilica procesul (process id). in exemp lul de mai jos a lost accesal directorul procesului eu pid-uI6740:

, ,

r~'v~n@ ... gara

, -$ cd

Iproc/~7401

r .. van@a9g"rd : /proc/6140S auxv m.. p ~ 0"


"chMl

"

mounts
mountstats

oo",--" dj
OOO'L8COre

root

stat
HUm

HHu.

smaps " Diversele intrari din acest director olera informalii legate de proces:
cmdline

environ

task

pi dul esle dat de numele directo rului: 67 40; imaginea procesu lui este data de legatura sim bolica ax e:
2

ra:va nh.g a rd : Iproc/6740S 1 s - 1 .,," lrw~rwHwx 1 euvan rUvan 0 2009 - 07 - 19 19 : 38 exe - > l u sr/bin/vim . gnom"

Du pa cum se vede, procesu l de lata este 0 instanta a v i m in mediu gralic (G NOME). linia de comanda utilizata pentru cre area procesului:
2

r a zva n@a.gard : /peoc/6740$ cat cmdline v i l. txt

Se observa

ca sa ru lat comanda vi

1 . txt .

directorul curent - eel in care sa rulat comanda - este dat de legatura simbo lica c: wd :
l

ra:va n @asgard : /proc/6740$ 1 . -1 cwd l rw . rwxrwx 1 ra~van ra~van 0 2009 - 01 - 19 19 : 38 cwd - > Ino me/ra:vanl t mp/ f d _ t""t

Rezu lta ca directorul c urent al comenzii este Inome/ razvan/ t mp/ f d _t est.

zonele de memorie ale procesului sunt date de fisierul maps:


r a :va n@"agard : /proc/6740S c a t m ~ pa 08048000 - 081ceOOO r - xp 00000000 03: 03 180465 061ceOOO - OaldbOOO rw- p 00186000 0; : 03 la0465 061dbOOO-Oa2a1000 r~-p 061dbOOO 00 : 00 0
[

, ,
,

... ]

Ius r Ibi n/v 1m. g no me lusr/bln/vl m.gnom" (heap] Ilib/ld- 2 . 3 . 6 . ,., ( s t ac k ]

b1fdcOOO - b7fdeOOO cw- p 000 ] 4000 03 : 03 178741 bfc7aOOO-nfcSfOOO cw-p bfc7aOOO 00 : 00 0

Nu yom insista pe aceste regiuni l ntruclt d epasesc aria de cuprindere a capitolului de latli. l isierele deschise de proces pot Ii vizualizate pri n accesarea subd irectorului f d :

CAPITOLUL S. PR OCESE

115

ra:van@asgard:/proc/6740$ cd fd ) 0 razvan8asgard : /proc!6740!fd$ Is 01235'] razva n8 asgard : Iproc! 67 40! fd$ tot a l lr wx-----razvan razvan l r wx -----razvan razvan

, " "

, ,
,

" -,

I .. . I

l rwx -----ra:va n ra:van Ifd_ test/.l . txt.swp

" " "

2009-07-19 19 : 48 0 2009 - 07 - 19 19 : 48 2009 - 07 - 19 19 : 48

, -, -, , -,

!dev!pt,!3 !dev!pt;!3 /ho me/ruv<>n/tmp

Nu YOm insista pe descrierea tuturor intrilrilor. dar se poate observa cil fisierul cu numarul 7 este 0 legalura simbolica caire /home/ra.zva. n / t mp/fd_ testJ . 1 . t xt. swp. Acest fiSier este copia de lucru a edilorului vim pentru fiSierul l . txt . Informa!ii de!alia!e des pre procls sun! descrise in sec!iunea 5.1.3. Sistemul de lisiere procls este lolosil drepl suporl de comenzile care olera informatii despre procese, Astlel de comenzi sun! pa, pstree, pgr ep sau top, despre care yom discu!a in sectiunile urmatoare,

5.1 .4

Starile unui proces, Multiprogramare

~i

multiprocesare

intrun sistem de operare ru leaza, simultan, mai multe procese. Totus i un singur proces se poa!e executa la un moment dar pe un procasor singlecore (sau, cu alte cuvinte, un procesor singlecore poate executa codul asocial unui singur proces). Pe un sistem multicore' vor putea rula mai multe procese in acelasi timp, numarul acestora !iind egal cu numilrul de nuclee de procesare ale sistemului hardware'. Orice proces are asociatil 0 slare de activitate. in mod obisnuit exista mai multe stilri in care se poale 9i1Si un proces, dar noi ne yom referi doar la douil: tulare (running): procesul ruleazil in acel moment pe unul din procesoarele sistemului ;
a~te ptare

(waiting) : procesul a~teapta eliberarea procesorului pentru a putea ru la

pe acesla.
Se observa, a~adar. ca este nevoie de un algoritm care sa olere !iecarui proces ocazia de a Ii executat pe unul din procesoarele sistemului. Mecanismul de alocare a proceselor pe procesoarele sislemului poartA numele de planil icare (scheduling). Subsistemul nucleului care se ocupa de alocare se nume~te planilica tor de procese (scheduler), Rolul planificatorutui este de a alege un proces care sa ruleze pe un procesor Si, la indeplinirea unei cond iti i date, sil suspende executia procesului pentru a it inlocui cu un
, http ://ft n.w ikipftd ia .o r(jlwikiIMu Iti- co r8_ IcomfXJtin 9) ' Si.te mu l hardware F"'ale a ... a un proc e .or cu mai mu~e noc1ee . a u mai mu~e procMoare , fiecare cu ma i mu~e mx iee

116

INTRODU CERE iN SISTEME DE OPERARE

allul. lnlocuirea unui proces ell un all pieces sa numeste schimbare d e context switch).

(context

l a inceputul istoriei sistemalor de operare. daca un ulilizalor dorea ru teraa unui program, al incArca pe un supor! con~nutul prog ramu lui ~i a~tepta tutarae acestuia (in
contexlul unui ploces). Cand procesul era plan~icat pe plocesor, eeesta rula com pie! pAM Ie incheierea absoluta a execuliei. Abordarea prezentatA are dezavantaiul lipsei de interactivitate: dacA un procBS ru'eaza loarle mult sau dac a trebuie sa comunice des eu dispol.itive perilerice lente, atul'lCi alte procese ca re doresc sa luteze VO( trebui sa a~tepte un timp i ndelunga\. Urmatorul pas in evolutia sistemalor de operare a losl introduce rea noliunii de mllitiprogramat e. i nainte de a inlra i n delalii, trebuie amintila d iferen!a de ~ i teza dintre procesor/memorie si dispozilivete peri!erice. Astlet , daca un proces accesead hard disku!. ~a Irebui sa a~lepte foarle mult timp pentru ca informatia sa fie disponibila (numeric. diferenta dintre ~ileza unui procesor si vileza de acces la dalele de pe un hard disk eSle de ord inul milioanelor). in abordarea multiprogramata, mai multe procese coexisla in cadrul unui sistem de operare. In momentul in care un proces acceseaza un d ispoziliv periferic lent. ~a Irebui sa aslepte furnizarea inlorm aliei dorite: drepl urmare. procesul respectiv este suspeoclal temporar, si un alt proces este planificat in locul sau pe Pfocesor (context switch). i n acest lei se maresl e inleraclivitatea sislemului. Oaca un proces se bloc heaza i n comun icatia cu un dispozitiv perileric lent, acesla nu mru irose~te l impul procesOlului i n a1?lepla re. Ci esle inlocuil cu un alt praces. Urmalorul pas a lost apar rtia conceptului de multiprocesa re sau multitas king . Acesla a ~enil ca raspuns la cerin\ele din ce in ce mai mari de inleractivitate a sistemului de operare in raporl cu utilizalorul. Dezavanlajul multiprogramarii este cA un proces care ruleaza mult timp pe proceso! lara a executa 0 acliune blocanta nu va lasa alte procese sA ruleze. Acesl lucru inseamna pierderea inleractivilalii' . Solulia este asocierea, cu fiecare proces , a unui limp limita de rulare pe procesor (o euanla de l imp). La i ncheierea cuante; de limp. procesu l va Ii automat suspeoclat temporar si inlacuil cu un altut. In abordarea multitasking, sehimbarea de context se va prod uce cAnd procesul care ruleaza pe procesor execuIA a actiune blocanlA sau cAnd isi incheie cuanta de limp.

I, oj

Toate sistemele de operare moderna sunt sistema mu~iprocesare (multitaSking ).

5.2

lerarhia de procese in Unix. Vizualizarea proceselor sistemului

in sistemele Unix (ca atare 51 in Linux). procesele sunt organizate ierarhic. Astlel, se poale sp"ne despre un proces ea esle procesu l pi rinle al unui alt proces; viCBVersa. se spun e cil. un proces eSle procesul liu pentru un allut. Un lucru de rel inut este laplul ca un Pfoces are un singur proces patinte, dar poale avea mai multe procese fiu. Modelul ierarhiei de procese i n Unix esle prezentat in figura urmaloare:
ID.. n umi,e~ te hn>c" elle 'Iar""rion

C JPYnghted matanal

CAPITOLUL S. PROCESE

117

in it

'"

Figura 5.1: lerarhia de procese in Unix lerarhia apare ca urmare a faplu lui ca un proces este creat prin intermediuf unui afl proces. La crearea rna~terea") unui proces se real izeaza 0 cop ie a procesului pa ri nte si se inlocuieste imaginea de program a parintelui cu cea dorita. Astlel, la rularea comenzii Is din shell (in imagine Ibin /bas h). se creeaza 0 copie a procesului shell. ~i se inlocuieste imaginea de executabil I b in/ ba sh cu imaginea I bi nl 1 s. In Unix, parinlele luluror proceseior eSle denumil ini\. Imaginea de executabil asociala esle Isbin/i ni t . Acesla esl e primul proces creal de sistemul de operare. Esle un proces special penlru ca nu are pilonle. Din inil se creeazi'l. aile procese, care la ral'ldul lor vor crea alte procese, completilnduse astlel ierarhia de procese ale sistemului.

5.2.1

Utilitarul ps

Comal'lda p s eSle principala comal'lda de vizua lizare a proceselor sistemului. Informaliile prezentale de p s sunl oblinule analizi'ind inlormaliile din procls. La 0 rulare simpla (Iari'l. argumente). p s aliseaza informa~i des pre procesele pornite de uti lizalorul curenl pe lerminalul activ:

, ,

ra.vo n h .s g ,u a

'w

-,

3036 pts!O 3079 pts! O

00 : 00 : 00 00 , 00 : 00

"

TI ME

'""

I>~~h

Rularea comenzi i presupune afisarea unui cap de label 5i a unei inlrari pentru liecare proce5. La 0 rulare simpla (fara argumente) se vor al i ~a identilicatorul de proce5 (p 1 D),

"

.1

118

INTRODU CERE iN SISTEME DE OPEAARE

terminalul utilizat (TTY ), timpul de fulare a procesu lui (TIME ) 5i numele programului ce sta la baza aC9stuia (CMD) _111 exemplul de ma i sus, utilizatorul a deschis un termi nal cu

un interpretor de comenzi (bash) ~i apoi a rulat comanda pa. Sa observa ea un proces ps se aliseaza ~i pe sine. Comar.da pa accepta diferite tipuri de opliuni care pot Ii uneari conllictuale. in continua re vom insista pe optiuni UN IX, caracterizate prin iaptul ca sunt precedate de semnul minus (- ). Penlru detalii comp lete legate modul de utilizarea at comenzi i ~i de efectul oppuniior trebuie consultat!!. pagina de manual asociatli (man pa l.
De exemplu, pentru afisarea proceselor pam ita de utilizatorul curenl, indiferent de terminalul utilizat, se lolose~te optiunea - a.

r ~ z,,~n @ ~ 'qa rd : - $

no m
3074 pts/l 3094 pt , /O

00 : 00 : 00 00 : 00 : 00

"

rIME

. '"'
e'

"

Se observli. eli., In aceastli. situatie, se aliseazli. procesele ce ru leazli. pe term inalul pts! l ~i ce le ce ruleaza pe pts!O lara a se mai preciza procesele tip shel l de pe aceste terminale.
Comanda ps are un numar impresionanl de argumente care pot contro la continutul si formatu l afi~li.rii informaliilor despre procese. Vom prezenta cele douli. clase importante de optiuni: optiuni de seleqie 5i optiuni de lormatare.

OP!iuni de se lec!ie Optiunile de se lectie presupun se lectarea anum itor procese din sistem in functie de diverse criteri i. Sunt prezentate. in continuare , cateva opliun i utile: selectarea luturor proceselor di n slSl em: se realizeazi:!lolosind argumentul - e sau
- A:
uzv~n@asqard :

-$

..

, , ,

.w
... )

,, , , ,,

00 : 00 : 00 init 00 : 00 : 00 k M f tir q d/O 00 : 00 : 00 "ven t , /O 00 : 00 : 00 bash 00 : 00 00 00 : 00 : 00 bash 00 : 00 : 00

"

rIME

. '"'
.,

)057 307 4 3109 3131

pts/ l
pUl l

pul2 pt./O

se lec!ia proceselor dupa 0 anumita componenhi: pid. coma ndi:!, terminal, utilizator; aceasta seleqie se real izeazli prin ulilizarea unui argument specific (de exemplu - c , - p sau - u) urmat de lista de se leclie (e lementele listei sunt separate prin virgula . lara spatii intre ele):

"

, , ,

ruva n h.gar d

.w

303 4 3036 pts/O 3051 pta/l 3014 pts/l

-, -,
"

ba , h , vi , gnome - terml na l

rIME

00 : 00 : 02 gnome - termi n a l 00 : 00 : 00 bash 00 : 00 : 00 bash 00 : 00 : 00

'"'
"

CAPITOLUL 5. PROCESE
7 3109 pt./2
JlSO pt.n

119

00 : 00 ; 00 p o sh 00 ; 00;00 bash

1 n exemptul de mai sus au lost selectate procesele al cii ror executab il (- C) a fost ba.sh,
vi saU gnome - terminal.
razvan@ a'\lard : -$ p .
, 3 PID TTY I ?
- p 1 . 3026,)074 TIME CHD 00;00;00 init

"

3026? 3074 pt.!]

00:00 : 42 gedit 00 ; 00 : 00 vi

Cu comanda de mai sus s-au se lectat procesele cu pid-ul (- p) 1, 3026 sau 3074.
r<! , -S , utv a nhaga m " ,." , '" , 00 : 00 : 00 , 00 : 00 : 00 , , 00 : 00 : 00 &pache2
w~~ - dau

TIME

27B7 278B 2790

apach~2 apach~2

1 n exemplul anterior s-au se lectat procese le ce apartin utilizato rului (- u) www - da t a .

Observati cAdes i s-a f.:leu! selec!ia dupa. utilizator, numele acestuia nu apare in rezullalul comenzii. Pentru aceasta va r trebui folosite op!iunile de formatare p a pentru af~area altor cAmpuri in alara celor implicite.
Optiunile de seleClie pot Ii comb inate. in exemplul de mai jos se selecteaza procesele bash sau vi, cele care au pid-ul 2968 sau 2972 si cele care apal"\in utilizatorului ha l daemon :
r~zv~n @ ~.q<Hd : -$ p~

" "

, , ,

-c

b~.h,vi h~ld

- p 2968 , 2972 -u haldaemon

PIO TTY
25B3 2590 2968 2972 3036 3057 3014 3109 3180

, , ,
?

TIME CMD
00 : 00 : 02 00 : 00 : 00 00,00:04 00,00 : 00 00 : 00 : 00 00 , 00 : 00 00,00 : 00 00 : 00 : 00 00 : 00 : 00
hald - ~ddon - ~cp i

metacity

nautilus
b~ s h

pt./O pts/1 pt./1 pt./2 pt.13

bash b&sh
b~ s h

"'

Argumentele listei de selec!ie per"ltru opjiunile p a sunt separate prin vi rgula, lara spati i. Se pot nega op!iunile de seleetie eu ajutorul argumentului - N. Astlel , daea se dore$te selectia proceselor care nu apar!in utilizatorului privilegiat ( r oot) $i nici utilizatorului razvan , ~i care nu au ca executabil apache2 , se va lolosi comanda urmatoare:

, , , 2263 "'" m , 2575 , 2583 , , , 2590 2655 ,


"

r~zv~n @ a.qard :

-$

" TIME coo

-,

-.

root, razvan

-c

apa ch,, 2

"

2663 2664 2741 2756

, , ,
,

00 : 00 : 00 00,00:00 00,00,03 00 : 00 : 00 00 : 00 : 00 00:00 : 00 00:00 : 00 00 : 00 : 00 00:00 : 00

portm~p

dbu. - aaemon ha i a h &l d-addon-acpi


e~ l m4

fbquHd fbserver rpc . HHd

"'"

120

INTRODUCERE iN SISTEME DE OPEAARE

OP!iuni de formatare
Op)iunile de formatare pentru comanda p a controleaza calca nele care sunt alj~ate ca rezu ltat at ru larii. Implicit, ru tarea comenzii olen''j un cap de label eu elemer'lte le PID, TTY , T IME: ~i CMD. urmat de 0 lisla a proceseloL Aceste elemente pot Ii schimbate pr in intermadiul op!iun ilor de lormatare.
Afi~rea

tuturor op!iunilor freevente pentru p a:

, ,

I~zvan @ a"ga r d : -$

ow
r~'v~n

,W

PPlD

-, ,0< " " " " "'" " Se observa eli s-a modifiest capu t de label. Sun! prezentate mai mult optiu ni utile,
!a,va n
3036 3249 13:02 pts!O

P" - F C 3034 3036

1574

"

3352

'" '"

STIME m 12 : 0 ~ pn/O

TIME C<" 00 : 00 : 00 ba. h 00 : 00:00

printre ca re UI D (util izatoru l ce a creat procesu l), pp 10 (pid-ul procesu lui parinte), STIME (timpul rul:.irii procesulu i). CMD (comanda comp lelil: de rulare - cu argumenle) etc.

1 n mod evident, op!iun ile de formatare pol fi combinale cu op\iuni de se leclie:

, ,
, ,

'" " "

ra,v a n@ a sga rd , -$ ps - f - c bash , apache2 , g no me - t erm(nal , ps [ ... [ m PPIO C TIME 2786 root 241 2 2632 [ ... [ 00 : 00 : 00 apach~2 - k ' t a r t 2355 194B [ . . [ 00 : 00 : 00 """,- data 2787 2786 apach~2 - k st a rt 57746 2452 [ . . [ """,- data 2788 2786 00 : 00 : 00 apach @ 2 - k ,tut 51146 2456 [ [ 00 : 00 : 00 "'''''''- dat a 2HO 21a6 a p a che2 s t art ra.van 3034 8424 15020 [ [ OO : OO : OJ t ermina l 1574 JJ72 [ . [ p t s/O r uvan 3036 3034 00:00:00 ca :van 3051 3034 1575 3J48 [ ... [ pts/l 00 : 00 : 00 1575 JJ52 [ ... I pt,/2 rUvan 3109 3034 00 : 00 : 00 u.van 1575 JJ40 [ ... I pts/3 31 8 0 3034 00 : 00 : 00 3251 3036 rUvan [ ... I pts/O 00 : 00 : 00

ow

'"

" " " , "

" '"

, , ,
, ,

C<"
!usr!sbin! !usr!sb i n/ lusrlsb i n/ lusr/,b i n/ gnome bash bash bash bash ps - F - C b a sh

"

, apach~2,gno m ~- t ~ rminal , p s

" " " " " ". "'"

. . .

In exemplul de mai sus, procesul cu pid-ul 2786 este procesu l fiu al init (are PPID " 1). Urmatoarele trei procese sunt procese le fiu ale acestuia. De asemenea, procesul cu pid-ul 3034 (gnome - termina l ) eSle 101 un proces fiu al inil, iar cele patru procese bash sunt procese le fiu ale acestuia. La fel, procesul ps (p id 3257) eSle procesul fiu al prim ului proces bash (pid 3036). 0 reprezenlare ierar11ica a ce lor zeee procese de mai sus esle urmaloarea:

, ,
,
,

init

'"

--- > apach@2 {27S6]

\ -- > bash - term i na l

--- > apach,,2 {27Si] \ -- > apache 2 {27aa] \ -- > apach e2 {2790] IJOJ4] --- > b as h [3036] \ -- > b a sh [305") ] \ -- > bash (3109) \--> b a sh [31aO ]

--- >

"

(3257]

Afi~rea

de oplillni speclllce pentru procese

CA PITOlUl S_ PR OCESE

121

Spedicarea optiunilor de alisare pentru P" se realizeaza cu ajutorul argumentului - 0, urmat de argumentele de tormata re dorite (separate prin vi rgula, tara spa!ii). Cele mai !recvenl ulilizate argumente de selec!ie sunt: pid, ppid, args (Iisla de argumente), user (uti lizator), comm (comanda - doar numale execulabilului), cmd (eomanda eu argumenle), cput i me (Iimpul de procesor eonsumal), group, pmem (procent memorie ocupata), state (starea procesului - un singur caraeler) , stat (sterea procesului - mai multe caractere), t t y (terminalul de contrOl asociat), In eontinuare sunt prezenlate eateva exemple. pid-ului (pid), utiiizatorului (u ser), a starii procesului (stat ). comanda cu argumente (cffid). timpul de procesor (cput ime) si memoria Iolosita (pmem):
Afi~rea

" "

" 3180 ra :vo n : 00 : 00 0.0 '" bas h pid, uSer, .r a t, cmd , 00 3260 r a .va n 00 : 00 : 00 0.0 " "' " Fara a insisla pe semnifiCatiila starii procesalor, sa observa ci'l procesul ps (pi(! 3260)
( ... J

, , , ,

p1d, u ,, ~ r , ,tat, Ctlld . Cput ime , pm"m razvan@ a'qa rd : -$ USER STAr '"0 TIME . MEM root in. t 00 : 00 : 00 r oot [hoftirqd/OI 00 : 00 : 00 0 . 0 r oot ( ~vent s /O I 00 : 00 : 00 0 . 0

"'. , , , ,
I

3009 ruvan 3011 r azvan 3016 ruva n

" ,. " , ,

"

-. .

'"

"., " ".


U

l u s r /lib/gnome - p a n e l / no t ifi 00 : 00 : 00 /usr/ l ib/gnome - "pp l et./mi Ke 00 : 00 : 00 gnome - s creens o ve r 00 : 00 : 02

..

este in starea de ru lare (R - runn ing), iar eelelalte sunt in starea de asteptare (S sleeping). Sislemul de test dispune de un singur procesor si ca atare un singur proces peate rula la un moment da\.
Afi~rea pid-ului. argumentelor, limpului de procesor, memoriei utilizale si timpului de pornire a comenzilor pentru procesele ce apartin utilizalorului www - data. si penlru procesele care au numele comenzii ba sh:

osg"rd : -$ -c bash p i d , arg.'l , cputime , r.s , start "'''''''- data , r o ,vo n @ COMMAND T1ME " , 2767 '" lu. r /.b i n/apache2 -, start 00 : 00:00 ." 11STARTED : 29 : 03 -, 2788 Ius r Iso 01 apache2 stort 2452 11 : 03 00:00:00 , 2790 lu a r I ao 101 a p a che2 -, Su"t 00 : 00:00 2456 1 1 :: 29 29 : 03 bash 00 : 00:00 3372 12 : 09 : H , 3036 3057 b a ,h 00 : 00 : 00 3348 12 : 10 : 20 3109 o a sh 00 : 00 : 00 3356 12 : 23 : 3 1 3180 b a ,h 00 : 00 : 00 3340 12 : 44 : 33
- 0
t ~4a

Spatiul . de memorie utilizat (rss - resident set size). eSle masurat In kiloocteti . (KB). Sortarea rezultatu lui rutarii comenzii p s se realizeaza eu ajutorul op!iunii -- sort urmala de lista de criterii de sortare. Semnul + (implicit) sau - in lata unui eriteriu de sortare l nseamna sOrlare in ordine crescaloare sau deserescatoare:
pi(! , cm(! , cput i rne , pmem . rss -- sort , razvan@a.g;ud : -$ " ." , 3247 '" '"' eV1nce 00 : 00 : 37 .~" t o . 7 206556 evolut i on 00:0 1 :28 ,.. 14626a , S'" 121 lusr/ol n /x - www - browser 00:01:03 107444 ,., 7709 pi(!g!n 00 : 00:05 56104 , 3334 lusr/bin/x . 0 -a ud i t - aut 00 : 02 : 39 U 54960
T1ME
Ihom@/razvan/ ~ chool/

..

- rss

"

122
" 10 " 4391 4595 410 4389

INTRODU CERE iN SISTEME DE OPEAARE


Mutilu. -- no - <iehuit - "inao 00 , 00 , 26

LO 36324
LO 31252 L< 2aa44 L< 276 16

12

mono /usr/ l1 b/toml;loy/Tomboy 00 : 00:02 !usr/lit/evolut!on!evo l ut i o 00 , 00,01 gnome - p a nel --.",-c li ent- I d 00 , 00 : 15 ( . .. 1

Exemplul de mai sus real izeazA 0 sortare a proceselor dir'l sistem dupli memoria

ocupatd Se observa eli procesele cele mai mari consumatoare de memoria sun! evince {un viewer de documentel, evol ut ion (un cl ient de mail) 51 x - www - browser (unbrowserweb).

Alte

op~iuni

Utilitarul P'" perrnile alisarea ierarhiei de procese lr'1 forma arborescenta. Aces! lucrll sa
realizeaza cu ajutorui
op~unii

-H:

,
,

,
'" " "

ruvan@a sgard : -$ -c init , a pache2 , gnome - t ermlnal , bash - 0 pia , u se r , cornrn , cputlme,pme m -- sor t m USER COMMAND 11ME 'MI:M root init 00 , 00 , 00 0.> 2786 root apache2 00 : 00 : 00 U 2187 ""w - da t a ap ache2 00 : 00 : 00 U 2786 w.... - dat a apache2 00 : 00 : 00 0 . ' 2790 w.... - dat a "pache2 00 : 00 : 00 0 . ' 3034 <azvan gnome - t ec'U M 00 : 00 : 05 b,, ~ h 3036 <azvan 00 : 00 : 00 U b,,~h 3057 <azvan 00 : 00 : 00 U

"

'"

-"

'"

3109

,,,,van

3180 u.v"n

bash buh

00 : 00 : 00
00 : 00 : 00

in aces! caz procese le fiu sun! indentate eLi doua caractere spaliu fala de procesul

parinte.

5.2.2

Utilitarul pstree

Utilitarul pstree ali~eaza ierarhia de procese a sistemului. in cazul unei utilizari simple (fara niciun argument), comanda afiseaza ierarhia de procese incepand de la init:
r"tvan @a sqa rd , -$ ps t ree
Z

init - +- acpid l - apache 2- +- apache2 I ' - 2 -I "pache2 --- 2S. [ I "pache 2) II

I- ato
I- bonobo -acti vat i

,0 " '2
,~

"

l -clock - applH
[

.. . [

,.

[- gnome - t ermlnal - +- oash [ I - bash --- v i [ I - oa$h ---ma n --- pager [ I - bash --- psnee [ I -gnome-pty-helpe [ ' -l gnome - termiMl l

"

(. .. 1

CAPITOLUL S. PROCESE

123

Daca eSle dori!1'i alisarea ierarhiei de procese incepAnd de la un anum it proces. transmis ca paramelru pidul acelui proces:
,
r~.v~n@~.g~ra : -$ p.tr~~ 3034 gnome - terml na l- +- bash l-baSh --- vi l -baSh---m&n---pager I - ba s h ---pstree I -gnome-pty-helpe ' - {gnome - termInal)

va Irebui

Se poale

al~a

inclusiv pidul proceselor din ierarhie prin inlermediul op!iuni i - p:

ra.van@aag3ra : -S pstree - p 3034

> gnome - ter mina l (3034 1 - +- bash (3036)


, l - bash(30S7) --- v\ 00741
l - b~sh(3l09)---man(32951- -- pager(3302)

l-b&sh(3160) --- p.tree (33431 l-gnome - pty - helpe I30351 . - ! gnome - te rm i na l ) (3037 1

Ca ~i in cawl comenzii ps. pstree ulilizeaza procls penlru ob!inerea de inlormal ii despre ierarh ia de procese.

5.2.3

Utilitarul pgrep

Comar.da pgrep esle echivalenlul grep penlru lucrul cu procese ~i poale Ii lolosita penlru a afisa doar procesele din sistem care indeplinesc 0 condilie. 0 fUllC!ional itate echivalenta pgrep poate Ii oblinuta cu ajutorul comenz ii ps ~i al argumenlelor specilice acesteia: - p pentru selec!ia dupa pid, - c penlru selec!ia dupa comar.da, -u penlru selectia dupa ulilizator elc. In continuare sunt prezentate exemple ale rulari i pgrep pentru seleqia procese lor care au ca parime procesul init (pid 1). Implicit se selecteaza doar pidurile proceselor. Daca se doreste si alisarea numelor proceselor, se loloseste op!iunea - 1;

" " " " " " " " "

, , , , , , , 1021 , 226 4 (. .. 3025 I


3027 3052

r~.van @ a"gard :

-$ pgrep

-, ,

, , ,

r~:van @ asga r d :

-$ pgrep

-, , -,

" "

"

x softi r gdfO event.fO He l per kthr ead 1021 u a~va 226 4 port map

(. .. I
3025 gnome-.creen.av

124
22
2:l

lNTRODU CERE iN SISTEME DE OPERARE

3027 qnome - tem i n"l J052 .off i ce

5.2.4

Utilitarul top

Utilitarul top este utilizal penlru a a1isa informa!ii in mod dinamic (in timp real) despre procesele exislenle in sistem. 0 ulilizare Irecvenlii a acesleia aste monilorizaraa sislamului (vezi secliunea 10.3.1) . La 0 ru lara fiirl'i argumenle, top va afisa un ecran cu informatii des pre sistem si procesele care ru leazl'i. in mod implicit, acesl ecran esle actuali zal la liecare 3 secunde. Un exemplu de ecran ali~at prin ru larea comenzii t op esle prezenlal mai ios:

Ii Q
..

98'98: .op
~ .n

;';";;';",,'<1 .... ) ' . """ . . _


~

\Aeo< s<.....,.,~ eookM_ sett;,,;. HtIp .op. 21 ,501 .15.., 10, .... 2 , ..,... I ..d .....;., 0 . 06. Q.!g . 0 . '3 1. 2 """'i" , I~ <\t'pi.. . 0 "'w.d. G , bi.

90
A

,.

G. ""'i .

7H . '~i d .

0 ...... .

l OW ...&: .0Ul . lOU21&: .oul .

96l20010: ".d ,
29'l'}<8k

" . d,

5572&: fro.. 7... 2611: fro. .

D,,.....i. _

' ."', i .
buff . ...

D, ......

2800961:

,,(h. d

. ,~ .,~

,.,... 51.87 ?O7l 12718

g., ..n , -, , -, , -, " , -, ,-, , " "


5124 ;"f"9< 7555 90'0'9'
lOO5 . . . . .

'.Id . ... ""0'9' ""0'9' ;''''1' 9'" f"9<

" " "

, , .,' , .. .. ._='.... .,' " . ,' .,. , .,' .. , .. , " - .,'


]100 ,= .,' "" .,' .,' .,' ,,' o 80072 woo s " 2..... 1200 m. 'W. oo "' M' " " , " " , " "
5

OJ

, .. II2!i<I S
~

G,w. n
O, O'l.eJ 0 , 01.2(1
3 , 0)01.'1(1 . . "rood

.. .

0 , 00.111 0 , 00.00 0 , 00. 00 0 , 00.06 0 , 00.00 0 :00.)4

''''' Hh,.ul!d Olg"'"""1G

hol.irqdlG vo\ohdoqlG
."UIIl

~"OP

Figura 5.2: Ecran de rulare lop Ecranul alisal de top cuprinde urmatoare le zone: zona de sumarizare (summary area) : aceasla conUne inlorma!ii generale despre sistem: inca rca rea sislemului (prima liniel. numiirul de procese si starea lor (a doua linie), timpu l de procasor ulilizat (a Iraia linie), memoria ~i spa!iui de swap ocupal (ultimale doul'i linii), Gradul de incl'ircare a sistemului eSla 0 ml'isura a incarcE!.rii procesorului ~i poale Ii determinal ~i cu ajutorul comenzii uptime. zona de comandii (prompt/ine): aici ulilizatoru l poate introduce comenzi specilice de interacliune cu utililarul top; anletul de label (columns header): aliseaza antetul de label pen\ru inlormatiile ali~ate despre procese: zona de procese (tas/( area):
al~eaza

informa!ii des pre procese.

right

rna'enal

CAPITOLUL S. PROCESE

125

Interfala interactiv8 top t op are 0 interfala interactiva cu utilizalorul care ii permite acestuia allerarea formatului de ali~are , Comanda caa mai utila pentru lucrul interactiv cu t op aste caa da af~are a ecranului de ajutor Oasta h). Majoritalea comenzi lor top sun! de tipu l /oggle. adica ali~area sau oprirea afi~ar i i unei anumile componente din ecranul de alisare. in continuare var Ii prezentate cate~a din comanzile top cela mai utila i n func!ie de zona ecranului de al i ~are in care au alect. Delalii suplimentare se pot alia prin cons ultarea paginii de ajutor (prin apasarea tastei h) sau a paginii de manual (m " top).

Comenzi pentru zona de sumarizare. sumarizare sun! comenzi de tipul toggle:

Comenlile Iolos ite pentru lucrul cu zona de

lasla 1 esle folosilA pe nlru a acliva/dezacti~a afi~rea de inform alii despre incarcarea sislemului (prima linie din zona de sumarizare); tasta teste lolosil<'l pentru a activa/dezacliva alisarea de inlormatii des pre numarul de procese ~i utilizarea procesorului (l inii1 e 2 si:3 din zona de sumarizare ): tasta m esle folosita pentru a activa/dezactiva afisarea de informatii despre utilizarea memoriai sistemului (ultimale dou<'l linii din zona de sum ariz are ).

Comenzl penlru zona de procese. penlru procese amintim:

Dintre comenzile care alecteaza zona de alisare

tasta c este Iolosita pentru a afisa comanda complelA , nu doar numele procesulu i; tasta f este lolosil<'l pentru a adauga/elimina coloane ulilizate pentru afisarea de informalii des pre procese; tasta 0 este folosita pentru a schimba ordinea coloanelor din tabel ; dup<'l apasarea tastei f sau u. utilizalorului ii esle prezenlat un acran de configurare , in care poate speci/ica noi coloane sau 0 nouA ord ine {tot prin intermediul unOf taste}; tasta R {de tip toggle} eSle IolositA pentru sortare ascendentA sau descendentA; tasla F sau lasla 0 sunt lolosile penlru a conl igura coloana dupA care se lace sortarea proceselor din zona de procese. in mod implicit sortarea se realizeazi'i dupe. limpul de procesor, astlel incal procesele care inlrun interval dal de timp au utilizat cal mai mult procesorul vor apArea primele In lisl<'l; tastele < si > pot Ii Iolosite pe n\ru schimbarea coloanei dupa care se re lizeaze. sortarea, selecland coloana din stanga sau din dreapla.

Comenzi in zona de comandii AceSle comenl i folosesc zona de comandA $i afecteaza. de obicei , procesele sau zona de procese: tasta x permite terminarea unui proces. Apasarea acestei taste olera promptul p r D t o x i 1 1, unde utilizatorul va introduce pidul procesului a carui executie se doreste a Ii incheiatA:

126

lNTRODU CERE iN SISTEME DE OPEAARE

tasla fl pe rmite precizarea numarului de procese care vor Ii alisate in zona de procese: apasarea aceslei taste conduce la aparilia unui prompt unde utilizatorul

precizeaz1i numarul de procese pe care doreste sa Ie viz ualizeze/monitorizeze:


tasla u perm ite prec izarea unui utilizator, liind apei alisate numai procesele care apartin acestuia. Zona de comand1l aliseaza promptul W h ic h user (b lank for all) , unda S9 ce re introducerea un ui nume de utilizator.

lnterfa!a neinteta ctlva top


top peate Ii utilizat 5i in mod neinteractiv prin fo iosirea argumentului - b in Iinie de
comanda. Porn irea neinteractiv1'i eSle Iolosit1!i de obieei i mpreu na eu argumentul - fl , care precizeaza numarul de iteratii de alisare, Se obtine astlel un rezultat ce poate Ii red irectat intrun fisier pentru ana liza ulte rioara:
g@org@ @ a'ga r d : -$ top -b -n I top - 23 : 03:58 up 11 : ,4 , 2 us e rs , l oad aveuge : 0 . 11 , 0.52 , 0.52 3 Tas k s, 148 tot a l, 3 running , 14S s l eep ing . 0 stopped , 0 'Ombie 0 . 7ha , 0 . 2\hl , 0.3 \9 1 , Cpuls) : n . Hus , 6 . 3\sy , 2 . 0\nl. 77 . 1\1<1 , O. Oht 'Mem : 1016969k total , 9"]61641: use d, 4 090H free , n684l: butte~s 395716 1: use d, 648500): free , 371860 ): c ~ ched " S~ a p : 10442161: to t al.
2

PIO USER

PR

NI

VIRT

RES

SHR S 'CPU 'MEM

TIME+

COMMAND

10
11

" 13

,.
"
16

"
'"
,~

""
~1

5124 geo r ge 6232 george 11446 geo r ge 1 root 2 root J root 4 root 5 root 6 root 7 root 8 root 11 root
(. . .

20 20 20 20

0 0 0 0

155m 2656 2324 S 553m 134m 20 m 5 2444 1096 824 R 3084 540 488 S

IS
RT
15

-S
-5 -5 -5
-5

0
0
0

0
0
0

0 S
0 S
0 S

2.0 0.3 2 . 0 13 . 5 2.0 0.1 0.0 0.1 0.0 0.0

6 : 23 . 52 38 : 13 . 04 0 : 00 . 01 0 : 00 . 79 0 : 00 . 00

RT
15 15 15 15

-5 -5
-5

0 0 0 0

0
0

0 S
0 S

0.0 0.0 0. 0 0.0


0.0 0.0 0.0

0,0 0 0 0.0 0.0


0.0 0.0 0.0

pul s eau d i o firefo x t op init kth r eadd 0 : 00.00 migrat i on/O 0 , 00 . 07 ksoftirqd/O

0 : 00.00 ~ ~ tc h dog/O 0 , 00.41 events/O


0 : 00 . 00 cpu set 0 : 00 . 00 <helper 0 : 00 . 00 netns

0 0

0 S 0 S
o 5

5.2.5 Timpul de

e xecu~ie

al unui proces. Comanda time

Timpul de executie al unui proces se refera la durata sa de executie in sistem, din momentul crearii ~i pana in momenl ul te rminarii acestuia, Comanda t ime este utilizata pentru masurarea ti mpului de rulare a unui proces ~i a resurselor utilizate de acesta, Rezultatul rularii implicite a comenzii tim .. ofera 3 tim pi: rea l - timpul efectiv de execu!ie, masurat de la crearea procesul ui terminare a acestuia; use r - tim pul pelrecul in Spaliul utilizalor; sys - timpul pelrecut rula nd apeluri de sistem (in spatiul kernel).
~i

pana la

CAPITOlUl S. PROCESE

121

t i lll<l primeste ca argument numele unui program a carui durata de executie va Ii masurata. Un exemp lu de ru lare este prezentat mai jos:

,
)

ro o t@asqa rd : / h ome/razvan f t IMe u p d at e db real user s ys 4mI9 . 309" Om 2.680 , Om 5.550 ,

Se observaca rularea comenzii updatedb a durat 4 minute si 19 secunde. Totusi timpul real de rulare a procesului se mascara adunand timput pelrecut in spatiul utilizator (2.68 secunde)!;li timpul petrecut in spaliul kernel (5.55 secu nde), Cu alte cuvinte, din limpul cal a durat rularea comenzi i, procesul a consumal doar 8.23 secunde pe ntru a Ii executat de caIre procesor. Reslullimpului a lost ocupal cu rularea altor procese sau schimbarea conlexlul ui intre procese. Schimbarea conlexlului are loc in momenlul in care procesului Ii expira cuanta de timp sau acceseaza dispozilive pe riferice lente .

5.2.6

Sistemul de fi,iere procfs

Dupa cum s-a preze nlal, sislemu l de l i!?iere procfs este ulilizal de comenzile ce obl in inlormatii despre procesele din sistem: p s, pstree , p grep sau top. Pachetul DebianJUlxinlu ulilizat penlru inslalarea acestor ulililare se nume!?te pr ocps penlru a indica faptul ca prQCfs eSle utilizal penlru obtinerea de inlormatii despre procese. procls este un sislem de fisiere virtual (adicA dalele nu se gAsesc pe un suport fizic pe rmanent precum un hard disk sau CDROM). in cazu l procfs, liecare li!?ier esle de lapl 0 regi une de memorie (stocata l izic in RAM) care olera inlormalii despre sistem. procls olera informa!ii atat des pre procese le din sistem cat !?i alte inlorma!ii specifice: dispozilivele COneClale, ocuparea inlreruperilor etc, permilAnd tolodala !?i configurarea anumitor componente ale sistemu lui. procls este monlal in ( pro c :
~

ra.va n @aa g ard : -S cat letc/mtab I d ev/h d a3 I e ~ t3 rw , en o rs - r e mou n t - rO 0 0 t mpfs llib/in i t/rw tmp fs r" , nos u i d , mo d e - 0155 0 0 proc Iproc p roc rw , noexec , nosuid ,n o d ev 0 0

(. .. I

Din punclu l de vedere al ulilizaloru lui, procls esle vizibil ca 0 su ila de ' isiere si direcloare cu informatii des pre sistem:

, ,

ruva n hs g ard :-$ cd I p r o c/ ra,va n @as g ard :/ p roc$ 2584/ 21921 U 1021! 25851 2 1 931 1921 25911 21 941 1 9 3/ 26031 27961 1 941 26561 2 8 731

" 29611
2 9 631 29691
29") 11

29761

30271 30281 30291 3052{ 30661

acpil asoundl b uddy i n fo

'" '"

,"

filesystems idel
in t errup t ~

mt r r

netl
pa rt ition s
~ ~lf

iomem

slab i n fo

(. .. 1

128
Informal ii despre procese

lNTRODU CERE iN SISTEME DE OPEAARE

Intormalii despre procesele din sislem sunl oferite de procfs prin intarmediul
directoarelor al caror nume esle un numar. Aces! numar reprez inta pid-ul procesului

despre care S9 dareste allarea de informali;.


In conti nuare vom prezenta diverse informatii continule in directorul din /proc asocial

unui proces.

Vorn prezenta ca studiu de caz procesul Iolosi! pentru editarea unui


Fiind vorba de Open 011 iCe, numele executabilului din care a lost
p s -c s off i ce . bin

document Wo rd.

general proces ul esle sof f ice . b i n:


r&zv~n@~sq~rd : !proc$

" '"' '" Se peate observa ca procesul asociat Open Office are pid -ul 3066 si ca atare va fi
9tat

, , ,

PID TTY

TIME CMD

3066

00 : 01 : 02 s off1ce . bin /proc$ cd 30Hi

ro.v~n@ ... gH d: r~.v~n@ ... g,,"d

au xv
cmdline

...

: /p r oc/3066$ envnon mountstats ~" oO"Lad j mounts OO"LSCOre

"

root amapa

statm status task!

wchan

accesat directorul 3066. Acest director contine 0 serie de fi~iere , directoare ~i legaturi simbo lice care ole ra inlormali i despre proces. Astlel. legatura simbolica exe ole ra informatii despre executabilul utilizat pentru crearea procesu lui; fisierul e md lin .. si fisierul environ precizeaza linia de comanda folosita 5i mediul de crea re (environment):
2

,
,
,

ra.va n @aagara ; /proc/3066S Is - I exe lrwxrwxrwx 1 ruvan razvan 0 2007 - 08 - 04 12:0 1 exe - > lusr!lib!openofficel program/soffice . bln r&zvan@asgara : !proc!3066S CU cmaline I u ~ r I 1 ib! op ~ noff i c ~ /progr ami s o f f ice . b i n - wr i t ~ r -~ pl a s h - p 1pe - 5 razvan@asgara: /proc13066S ca t environ 55HJl.GENT_ P I D- 2 9S0SHE LL - 1 b in Iba s hGTK.-RCY I LES - I et c/9 t k I 9 t krc : Ihome! r azvan I . 9 rk r c- l . 2 - 9 nom.. 20 LD PW D_1 usr /1 ib! ope n off i c .. USER_ ra<vanOPENOFFICE_ MOZI LLA_ FIVE_ HOME _! usr/ li b/op .. noftice I
pro9 r amLD_ L I BRARY-YATH_/usr/lib/ope noff i c~/pro9ram

I I

FiSierul status olera, printre altele, informalii referitoare la utilizatorul ce deline l i ~ierul executabil ( ui d 1000 ), starea procesu lui (s - sleep), cantitatea de memorie ocupate, numarul de threaduri etc:

, , , , "
"

razvan@a'9a r d : /proc/3066$ ,.c s t a tu s soffic ~ . bin Name : Sta t e : Istee p in9i


5h~pA'lG '

m
1000 1000 1000 1000 1000 1000

I .. 1
Uid : Gid :

,. ,

1000

1000
205120 202392 0

'lmPea l:, '!mSite : vmLc k:

'" '" '"

CAPITOlUl S. PR OC ES E

129

" " " " "

VmHOIM , 'lmRSS : Threads:

84040
80%8

, ,

( ... I

'" ,'"

Direclorul ta.s k / olera inlormalii despre th readurile aceslui proces. Nu insislam PEl noliunea de th read, deoarece depa~e~te aria de cupri ndere a acestui capitol.

,
,

razvan@ asqard : !proc!3066$ cd tasK! razvan@a ' qard : !procI30H/tasK$ ls 3066 3067 3068 3069 3070 3071

Directorul fd/ detine legaturi simbolice dUre fi~iere deschise de procesul curent. Se observa, printre fisiere deschise, si fisierul cu extensia .doc care este editat (Raport.doc):
, , , " razvan@ a . qard : iproc/3066$ cd fdl razvan@ asqard : iprocI30HlfdS I s 22 24 0 10 12 14 16 18 2 1 1 1 13 1 5 I i 19 20 23 25 ra, v a n @asga r d,!proc/3066ifdS tota l Ir - x -----ruvan uzvan 1- ,," -----u.van ruvan I -w,,-----rUva n uzv a n

" " " " " "

26 2i

28 29

3 30

31 32

33

35

34

36

, ,.. . ,

(. .. I ir-x---- -(. .. I lr .. x ------

" , , , , ,

"

-,

"

, ; " , ,

ruva n r u v a n razva n rUvan

..
"

" " "

2009 - 06 - 04 13,31 2009 - 08 - 04 : 31 2 009-08-04 : 31 2 009-08 - 04

2009 - 08 - 04 13 : 31

" " "

: 31

, " " "

-. -. -,
-,
-,

Idev/null p i pe : ( 67701 p . pe : (9795] Idev/urandom I h ome/razvan/RapOrt .

Alte informafij utile In afara informal iilor des pre procese, procfs olera si alte informatii utile des pre sistem. Acestea pot Ii allate tot prin accesarea unor fi~iere ~ i directoare din /pro c . Prinlre informatiile utile (folosile, de asemenea, de diverse utilitare din sistem), se gasesc informatii des pre: procesor: prin accesarea /proc/ cpuin f o; memoria sistemului: prin accesarea /p r oc/memi nfo; partilii: prin accesarea /proc/partitions; timpul de rulare a sistemului: prin accesarea /proc/up t ime ; In plus. accesarea directoarelor de forma /proc/fs/ , /proc/ net / , Ofera informatii suplimenlare, permiland totoclala config ura rea unor parametri ai sistemuluL Astlel procls nu eSle numai 0 inlerfala de citi re a informaliilor des pre sistem, ci este si una de conlig ura re a unor parametri ai sistemului.

130

lNTRODU CERE iN SISTEME DE OPEAARE

5.3 Rularea proceselor in


Daemoni

background.

Job-uri.

Rularea unui proces din interpretorul de comenzi (shell) rezultA de abiesi in alisarea unui
rezultat ~i terminarea procesu lui. Spre exemplu, daca 5e doreste ali~area conlinutului directorului cure nt se ruleaza comanda 1a. Aces! lucru duee la crearea unui proces

fiu din shell, incarcarea executabilului fbi n 11 s ~i executia noului proces incheiata eu terminarea acestuia. Dupa te rminarea procesului, ulilizatorul poate ru la un nou proces
prin introducerea comenzii co respundloare la promptul interpreiorului.

Un proces care ruleaz1'i conform scenariului de mai sus se spune ea ruleaza in


foregrou nd (in prim plan). Un proces care ruleaza in loreground are acces la terminalul curen\. AWel spus, procese le care ru leaza in loreground pot citi de la intrarea standard (standard input) si pot alisa informa!ii la iesirea standard (standard output) . De partea cealaltii, un proces poate rula in background (1n fundal). Un proces care ruleazii in fundal pierde posibilitatea de a citi de la intra rea standard. dar i~i continuii rularea.

5.3.1

Rularea unui proces in background

Rularea unui proces in fundal se realizeaza cu ajutorul operatorului ~ dupa comanda. Acest operator va crea procesul asociat comenzii introduse ~i va forta rularea acestuia in fundal. Avantaj ul acestei abordiiri este faptul ca se of era inapoi promptu l interpretorului catre utilizator, in felul acesta utilizatorul putand introduce 0 noua comanda. De obicei acest lucru se reali zeazii cAnd comanda de executat dureaza mult timp. ca de exemp lu cautarea unui fi~ier, actualizarea bazei de date de cautare (updatedb). rularea unui proces cu inter/a!a gralica etc. Procesele care ru leaza in fundal sunt denumite job-uri. In exemplul de mai jos, se ruleaza comenzi le de deschidere a editorului XEmacs si a calculatorulu i din mediul grafic GNOME. Ambele programe sunt pornite in fundal:

, , , , ,

r~'v~n@ ... gara

ruvanhsgara
3420

ruvan@asgard

'" '"

3416

-, -, -,

Kem"cs

, ,

gnome - calculator

Oupa rularea unei comenzi in fundal se observa ca apare un mesaj specific de forma [N ) M. in acest format N este indicele job-ului (indicele procesului care ruleazii in fundal) , iar M este identificatorul de proces (pidul) pe ntru job-ul din fundal. Avantajul rularii acestor procese in fundal , a~a cum a fost precizat si mai sus. este faptul ca interpretoru l de comenzi olera inapoi promptul utilizatorului perm itflndu-i astlel rularea de noi comenzi.

CAPITOLUL 5. PR OC ESE

131

5.3.2

Suspendarea unui proces

Un proces care ruleaz11 in foreground poate Ii forlat s11 intre in bacJ<.ground (si implicit s1!. intre in starea suspendat - nu ru leazA) prin intermediul comb inatiei de taste CTRL - Z (control !inut ap11sat. dupa care se apasa z). Apasarea acestei combinalii de taste este interceptata de sistemu l de operare si procesut achy (attat i n foreground) este fortat sa lie suspendat in exemplul de mai jos, utilizatoruf a darit editarea fisieru lui out . txt fofos ind vi. Procesul creat prin executia comenzii v i out. txt rufeaza ini!iaf in foreground. Utilizatoruf a apasat apoi CIRL - Z si a fOl'\at suspendarea procesufui curent in background si oferirea promptufui catre utilizator:
r~zv~n @~ 'qard

-$ vi

OU~ .t x t

> (3];

Stopped

vi out.txt

Se obse rva ca procesuf a fost suspendat (slopped)

~i

sa creat jobul cu numaruf 3.

Un scenariu asemanator este prezentat ~i in exemplul de mai jos. De data aceasta utili zatorul foloseste utilitarul du pentru a vedea spatiul ocupat de fi~ie rele si dire<:toarele din dire<:torul cure nt:

, ,
, '" " "
"
,

'"
'"

" " " "

razvanh.gard ; -$ De,ktop Download 528K bin book; 756K code S32K jun k 3 . 2M officia l 4 . 0K out. txt package. 165M peop l e 617M pict ure, 11 6M project.
I022M

'" -"

'"

(4 ] +

Stopped

'"

- 00

r ~ zvan@a .gard : -$

5.3.3

Controlul job-uri lor

Termenul de job a fast introdus referito r la procesele ca re ru leaza sau sunt suspend ate in fundal. Interpretorul de comenz i (s hellul) bash pune la dispozi!ia utilizatorului mai mulle eomenzi prin intermediul earora se poate interaetiona eu procesele din fundal. Mai multe informalii despre ace ste comenzi pot Ii gasite prin consu ltarea paginii de manual (ma n ba sh , se<:liunea JOB CONTROL) sau pagina info (info b ash. se<:tiunea "JOB CONTROt.:'. Trebuie instalat pachetul bash-doc).

132
Comanda j ob s

lNTRODU CERE iN SISTEME DE OPEAARE

Comarlda jobs aliseazAjob-urile pentru term inalul curent:

, ,

r~' v~n@ ".g,,"a

-, -,

jobs

'" , '"

(3] -

( 4 1+

Running Running Stopped Stopped

.,
"

xemacs gnome - c a 1 cu 1at or


M
- ",

'"

ruvan @ asga rd

Se poate observa ca sunt patru job-uri dintre care doua sunt in rulare (Running) iar celelalte dOllA sunt suspendate (Slopped) . Semnul -+- esle lolosil pentru job-ut curef1t
(cel mai recent job). Semnul - esle folosit pentru job-ul anterior job-ului curen!.

Come nzile bg Si Ig
Utilizatorul poate determina rularea comenzilor care sunt suspendale (f ie au lost pornite in funda l, he au lost suspe ndate prin comb ina\ia de taste CTRL - Z). Acaste procese isi

pot continua execUlia in foreground sau in background. Daca se dore~te continuarea in


bacJr.ground a execuliei unui job suspendat, se loloseste comanda bq; daca se doreste continuarea axecutiei In foreground a unui job suspend at, se loloseste comanda f<;J.
in exemplul de mai jos, utilizatorul a decis continuarea execuliei job-ului [4] in background . Rularea comenzii bg 11Ir1l niciun parametN are ca elect continuarea job-ului curen\. Daca se dore~te rularea job-ului n, se lolose~te argumentul ~ n (spre exemplu bg \5 penlru ru larea in background a job-ului cu indicele 5).

" "

, , , ,

r a ""an@ as\"Ia rd : -$

( 41
I. 2(; 2 . 51-1 I. 7(;

"

. -" schoo l

.. "'
jobs
job ~

sha r e d - proj ~ c t "

v mwa r ..

ruva n h sgard Running Runn ing (3] + Stopped (4 ] [lone

-,

'" '" '"

~emacs gnome - ca l cu l ator v i out t n

&

au - ho
~emac" , gnome- c a lculator &

" " "

" "

r a ""an@ asga rd : -$
Runni~g Ru~~ing 5topp~d

(2] -

( 3) +

Se poate observa cll s-a conlinual rularea job-ului [4] in background dupa. care procesul asociat s-a terminal. Mesajul Done esle af i ~at la incheierea rularii unor job-uri. Spre exemplu. daca vom inchide din mediul gralic gnome-cak:ulator si xemacs, mesajele afi~ale vcr Ii aseman<litoare cu cele de mai jos:
2

ruv a n hsgard ' -$ II ] [lone (2] [lone

~emac"

gnome - c a lcul a tor

CA PITOlUl S. PR OCESE

133

"
6

r~.v~ n@~. g ~rd: -$

job s

(3] '

Stopp .. d

vi out . txt

DupA terminarea celor doua job,uri, mai rAmAne in background doar jobul3 (cel asocial editorului vi ). Avand in vedere ell. este singurul proces ramas, v i poate Ii adus In loreground utilizAnd eomanda t"q sau t"q %3:

ru"an@a9g3rd : -$ [g vi out.txt

Dupo'l rularea acestei eomenzi, utilizatorul poate continua editarea 1isierului out . t x t.

5.3.4

Daemoni

Un daemon este un tip particular de proces care ruleaza in fundal. Fa!a de procesele care ruleaza in lundal (pornite prin intermediul operatorului &) sau care sunt suspendate in lundal (prin intermediul comb ina!iei CTRL -Z ). un daemon se detaseaza de termi nalul de control. Astlel, un daemon nu va putea comunica direct cu utilizatorul prin intermediul te rminalului: nu va accepta comenzi de contro l de la taslatu ra ~ i nu va afi~a rezullale la terminal. Comunicarea cu un daemon sa lace prin mecanisme mai complicate (ca de exemplu semnale - vezi sectiunea 5.4). Ini!ial denumirea de daemon nu a avut nicio semnifica!ie. Ulterior a lost gasila 0 abreviare pentru aceasta (backronym) da la Disk And Execution MONitor. De obieai, procesele care sunt daemoni au numele terminat in d: hald, udevd, sshd, inetd etc. (lara a Ii Insa 0 regu la). Penlru selectarea proceselor care nu au alas ate niciun termina l (si ca atare pot Ii daemon i), se loloseste ps cu argumefltul - t (pentru saleetia dupa terminal) urmat de opliunea - (se mnul minus inseamna procesele care nu au ata~ate niciun terminal).

, ,, , , , (. . I , , , , ,. , " , " I " , " , " , " , "


26 5 7 2665 2666 2676 2669 2695

, ,

r~zv~ n @3.gu d

'" , ,

-,

00 : 00 : 00 In;t 00 : 00 : 00 l: .oft>r qdfO 00 : 00 : 00 evento/O 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 , 00 : 00 00 : 00 : 02 00 : 00 : 00 00 : 00 : 00 00 : 00:00

"

-,
TIME

,.,
ex.m4 fbguar d fbs ecver inHd ssh d vs ft pd g .. dit gnom .. - scr .... n sa v gn ome - termt nal gnome - pty - h .. l p .. r

! .. .

3006 3009 3016 3017

Se observa ca nu toate procesele care nu au atasate un term inal sunt procese daemon. Spre exemplu, procesul gedit (pid 3006) nu este un daemon In adevaralul

'"

lNTRODUCERE iN SISTEME DE OPEAARE

sens al cuvanlului. Desi nu are atasat niciun terminal de control, S8 poate comunica prin intermediul mediului gra/ie. in plus lala de a nu avea asocial niciun term inal, un procas daemon va ru la in background, eli min and posibilitatea comunicarii directe (tastatural mouse) cu utilizalorul

Interac!iunea cu procesele daemon

Se puna I1"1s1l intrebarea cum poate utilizatorul sa interactioneze cu procesele daemon,


In mllsura in care nu 0 poale face prin intermediul intr1lr1i ~i ie~iri i standard. Cele dOU3 mecanisme care permit acest lucru sUi'll fis ierul/l isierele de configurare si semnalele. In general, procesele daemon au unul sau mai multe fi~ i ere de config urare . De exemplu: setver-ul web apache2 folose~te I e t cl apache21 apache2 . con f ; server-ut SSH openssh IoloseSle letc/ssh/sshd_ con f ig ; server-ut X (mediul gralic) lolosesle letc/Xl 1 I xorg . con f; Acesle li~ie re de conHgurare sunt cilite in momentul crell.r ii procesului daemon ~i permit controlul lune!ionll.rii acestuia. De exemplu, in cazul serverului openssh, lisierul de conligurare permite conlrolul tipu lui de autentilieare (cu parola sau prin chei publ ice), porlul pe care serverul asculla, daca serverul permite X lorwarding etc. Daca se doreste alterarea comportame nlului serverului, se ed ileaza lisierul de config urare. Dupa salvarea li~ieru lui. trebu ie reporn it procesul daemon. acesta va cili lisierul de conf igurare si va slabi li noul compo rtamenl conform co nliguratiei din fis ier. Oprirea, suspendarea ~i repornirea unui proces. in general , si a unui daemon, in particular, se realizeaza cu ajulorul semna lelor. Daca in cazu l unui proces care nu esle daemon, acesla poale Ii opril sau suspendal si prin in termediul lerminalului (pr in combinatii de tasle). un proces daemon poate Ii opritlsuspendatlrepornit doar cu ajutorul semnalelor. Despre semnale se va discuta in seqiunea 5.4.

Comanda nohup Comarxla nohup poate fi utilizali'l. penlru a rula un proces cu caracteristici de daemon. Ulilizare a aceslei comenzi determina ignorarea de catre proces a semnalului SIGHUP (acest semnal este trimis de un term inal ci'l.lre procesele sa le cop il atunei cane! este inehis). nohup este lolosil, de obieei, atunci cand utilizatorul va dori sa pi'l.ri'l.seasca terminalul dar comanda sa l ie ru lala in continuare. Comane!a nohup este urmata de comanda ce va Ii rulati'l. penlru pornirea procesului si de caracteru l ~ . Un exemplu eSle prezental in conlinuare:
a ~ ga r d : /ho rn ~/ r a zv a nf

nohup

upda t ~db

&

, ,
"

(1)

3116

asgard:/home/rarvanf nohup : appe nding output to ' nohup.out ' as g a r d : Iho rne/ruvan' P$ - e

( ... 1
3116 pta/l 3124 pt"/l

00 : 00 : 00 upd~tedb 00 : 00 : 00 upd&tedb

CAPITOLUL S. PR OC ESE

135

" "

'" "

3125 3126 3127 3129

pt.! l pt.! l pts!l pt./l

00 : 00 : 00 fina
00 : 00 : 00 sort 00 : 00 : 00 frcode 00,00 : 00

Se observa ca procesu t creat (updatedb) nu pierde controlulterminalului curent. insa nu se poate comunica cu acesta prin inlermediul semnalelor de suspendarelrepornire sau intrarii/iesirii standard. Dupa cum reiese si . din rezuHatul rularii come nzii, iesirea . acesteia este redirectionata in fisieru t nohu p . ou t .

"

5.4

Semnale

Semnalele su nt mecanisme de notifiCare as incrona ca re SUflt utilizate pentru a Iransmite 0 condilie speciala unui proces. Semnalele sunt as incrone in raport cu Iluxut de rulare al procesului. Astlel, un semnal nu este core tat direct cu instruc!iunile executate de proces. putand Ii transm is/pr imit la un moment de limp nestiul de protes. Semnalele sunt transm ise in doua moduri: de nu cleu (kernel) pentru a indica 0 conditie neobisnuita care solicita oprirealsuspendarea sau doar nolificarea procesului; de utilizato t. Semnale care sunt Iransmise uzual de nucleu sunt urmMoarele (acesle semnale se pot trimite si de catre utilizator, dar cet mai adesea tunt tr imise de catre nucleu): SIGS EGV (signal segmenf vio/alion): in momentul accesarii invalide a unei zone de memorie; SIGBUS in momentul unei erori pe magislrala sistemu lui; SIGFPE (signal floating poinf error): in momentul aparitiei unei erori de virgu la mobila; Sl GTERM (signal termination): pentru oprirea unui proces; SlGKI LL (signal kill) ; pentru oprirea necondi!ionata a unui proces. Semnale care sunt transmise uzual de utilizator sun!: SIGINT (signal interrupt): inlrerupe procesui curenl; SIGQUIT (signal quit): semnaleaza opr irea procesului curent; SIGSIOP (signal SlOp): suspenda procesu l curent; SIGCONT (signal conlinue): reporneste procesul suspendat. Nu vom insista pe modul si condili ile in care nllCleul transm ite semna te unui proces, ci pe modulln care utilizatoru lle transmite. Utilizalorul poate transm ite unui proces semna le in doua moduri: prin intermediul unor comenzi speci/ice: kill . killall ; (vezi sec!iunea 5.4.2)

136

INTRODU CERE iN SISTEME DE OPEAARE

prin intermediul unor comb inatii de taste specifice. (vez; sectiunea 5.4.3) Informatii detaliate despre semnale sa pot alia prin consultarea paginii de manual (man 7 signal).

5.4.1

Semnale importante UNIX

inainte de a discuta des pre modul de interac!iune a utilizatoru lui cu procesele prin
intermediul semnalelor,

trebu iesc aminlite cflteva semnale importante (unale mentionale si anterior). UsIa comp leta cu semnalele pe care Ie clera sistemul de operare poate Ii vizualizata lolosird comanda kill CU op\iunea - 1 (lis/):
r ~ """n@ "'\'Ia rd : -$ kill

, , , ,

-,

", " " '" ", " ." " ,.


" ,. "

", ", ", m


", ", ", ",

" " ",

"

S I GHUP SIGTRAP SICKILL

SlCPIPE
S!GC~ L D

SIGT'I'IN SIGXI'SZ SlG10 SlGR'I'MIN + l SIGR'I'M I N+S SlGR'I'MIN + 9 SIGR'I'MIN +13 S I GR'I'MAX - 13 SIGR'I'MAX - 9 SIGR'I'MAX - 5 ." S I GR'I'MAX- l

. .. .

", ", '", '" ." .,, '" '" .,

" " ", ", '",

SIGINT SIGABRT

SIGUSRI
SIGALRM S I GCONT SIGTTOU S I GV TALRM SIGPWR SIGRTMIN+2 SIGRTMIN+6 SIGRTMIN+ I O SIGRTMIN+14 SIGRTMAX - 12 SIGRTMAX - 6 SIGRTMAX - 4 SIGRTMAX

.
'" ., '" ", on '"

", ", ", ", '" '" ",

" "

SI GQU I T
SIGBUS

SIGSEGV
Slt'l'ERM SIGSTOP S lGURG SIGPRor SlGStS SIGR'I'MIN + 3 S I GR'I'MIN+7 SIGR'I'MIN + l1 SIGR'I'MIN +1S S I GR'I'MAX - ll S I GR'I'MIIX-1 SIGR'I'MIIX - 3

., " ", ", '", ", '"' ." ." '",


'" '" ",
", ",

SIGILL SIGFPE

SIGUSR2
S I GSTKFLT S I GTSTP S I GXCPU S I GOI I NCH S I GRTMIN SIGRTMIN+4 SIGRTMIN+6 SIGRTMIN+12 SIGRTMAX- 14 SIGRTMAX- IO SIGRTMAX-6 SIGRTMAX- 2

Se observA d. un semnal are un numAr de identificare ~i un nume care of erA indicatii despre efectuf s<'iu asupra proceseior. Semnafefe refevante sunt cefe pan<'i fa 3t (SIGSYS ). Celelalte (SIGRTMIN . SIGRTMAX ) sun! semnale de limp real (SIGnal Real Time) si nu sunt re levante pentru prezentarea curenta. Vom prezenta cateva dintre semnalele cele mai importante:
SIGHUP (1) (signal hang up): esle lolosi! penlru reporn irea unui proces: acest

semnal este de obicei transmis proceselor daemon pentru reporn irea acestora si recitirea fi~ieru l uVI~ie(elor de conligurare:
SIGINT (2) (signal interrupt): este lolosit pentru a intrerupe un proces: de obicei,

efectul imediat este terminarea procesului;


SIGQUIT (3) (signa/quit): este lolosit pentru inchiderea unui proces ; este mai puternic decat SIGIN T: unele procese pot Ii terminate eu SIG QUIT dar nu cu SIGrN T ;

STGT L L (4) (signal illegal): procesut executa 0 instrucliune invalida; SIGKI LL (9) (signal kill) : eel mai puternic semnal; termin<'i in mod neeonditionat un proces SIGSEGV ( t t) (signal segment viola/ion): semnal transmis in momentul accesului invalid la 0 zona de memorie; rezult<'i, de obicei, in !erminarea procesului si la aparilia mesajului "Segmentation fau lt";

CAPITOlUl S. PROCESE

137

SIGTE RM (15) (signal lermimJ/ion): lermina un proces; in mod lipic mx:leul transm ite intai SI GTERM unui proces penlru a1anunla ca va Ii terminal: procesul realizeaza opera!ii de curalare (cleanup), dupa care kerne lul transm ite SIGKI LL ~ i procesu l esle term inat: 5 IG5TOP (t9) (sigmJl stop): suspenda procesul curent: 5I GCONT (tS) (sigmJl continue): re ia
e~eculi a

unui proces suspenda\.

5.4.2

Comenzile kill, killall

~i

pkill

Comenzile ki11 , kiUa11 si pkill sunl utilizate pentru a lransmrte un semnal unui proces sau unui set de procese,

Comanda kill Comanda kiU transmite un semnal unui proces, Comanda pr imeste ca argument pidul procesului (sau pidurile proceselor) catre care se doreste sa se transmitA semna luL in mod implicit comanda transm ite semnalul SI GTERM:
razvan@ a.ga rd : -$ xcalc
, I II 3590
p~

, , , ,0
"
,~

razvan@ a'gard : -$
PIO

TTY

TIME

3092 pt.!l 3590 pUl l 3591 pta!l

00 : 00:00 00,00:00 xc a lc 00,00,00 ps

razv a nhsgard:-$ nil 3590 uzvan @a sqa rd : -$ {l]+ TUmiMt e d razvan@ a'qard : -$
PIO TTY 3092 pt.!l
p~

1J

xCalc

" ,.
16 17

TIME CMD

18

3592 pt.! l

00 : 00 : 00 b~ s h 00 : 00:00 p.

Comanda poate Ii conl igurata penlru a Iransmite 5i alt 5emnal in alara de SIGTERM. Astlel, da~ se doreste transm iterea semnalulu i SIGSTOP catre procesele cu pidurile 1234 si 5678, se poale utiliza una din a~ernativele:

,
3

razvan @a sqa rd -$ kill - SIGSTOF 1234 5618 rnvan h sga ra -$ kill -STOP 1234 5618 razvan@ a'ga rd : -$ kill - 19 1234 5678

5e observa cA semnalul poate fi transm is ca parametru fie in torma literalA (SIGSTOP, STOP), fie in forma numerica (19) _

138
Comanda ki1la ll

lNTRODU CER E iN SISTEM E DE OPEAARE

Comanda killal1 eSle folos iUi pentru transmiterea unui semnal caIre un proces sau
catre un set de procese atunei cand se
cunoa~te

numele procesuluL Un exemplu de

utilizare eSle prezenlat mai jos:


<oot@asga~d : /nome/ra~vanf

ps -0 "pache2 - B

PIO TTY

TIME CHD

, " ,0
11

, , "

2792 ? 2793? 2794' 2796?

00 : 00 : 00 00 : 00 : 00 00 : 00 : 00

~pac he2

apache2 a pache2

00 : 00 : 00

apa che2

rooth."ara:/home/uzvanl killall - KILL ap,"che2


. oot @a"qa" <I:/home/ razvan ~

ps - C apaclle2

FlO !TY

riME CHD

in aces! exemplu, s-a trim is semna lul de term inare a unui proces (SIGKILL) caire

toate procesele apache2 din sistem. Modul de transm itere a semnalului ca argument al
comenzii esle
acela~i

ca in cazu l comenzii k i ll.

o op\iune care poate Ii utila este opliunea --user care perm ite transmiterea unui semna l caire toate procesele unui anumit ulilizator. Penlru a putea utiliza aceasta optiune, utilizatorul care apeleaza ki11 .. 11 trebu ie sa l ie root :
"oot@~.q~ra:/hOme/r~zvant

ps - 0 pia , comm , u.er - u quest

PHI COMMAND

USER

, ,
10

J761.u J762 bUh J802 J80J bash 3822 J82S

guest
gunt guest guest guest guest
kill~ll

'"

asq~rd : /ho m e/r ~ zy~n~

"

'"

-- user quest

" "
13

~ s qHd : /horn~/razy .. nt

ps -0 p,d,comm , u.e r - u guest


USER

PHI COMMAND

In situatia de mai sus 5-a transmis semnalul implicit (SIGTERM ) catre toate proeese le utilizatorului guest, rezu lUmd In term inarea ace lor procese.

Comanda pkill Comanda pkil1 poate Ii eomparata eu eomanda pqrep. In limp ee eomanda pq r ep of ere a informatii despre procesele care Indeplineau anum ite er iterii, eomanda pki11 transmile un semnal procese lor pe baza unor crilerii de seleqie a aceslora. La fel ca In calul pqrep. seleclia se poate realiza dupa pid-u l procesului parinte. dupa terminalul utilizal, dupa id-ul utilizatorului sau al grupului. Argumentu l semnal se transmite la fel ca in cawl comenzi lor kill si ki11a11.

CAPITOLUL S. PROCESE

139
combina~ii

5.4.3 Transmiterea de semnale prin

de taste

In alara comenz ilor de mai sus, un utilizator poate transmite anumite semnale procesului curent (cel care ruleaz1'i in acel moment in terminal) prin intermadiul unO( comb inalii de taste specilice. Astlel de combinatii sunt: CTRL- Z: transmite semnalul SI GSTOP c1'ilre procesul curent, care are drept oonsecinl1'i susperodarea aeesluia. 0 sitvatie util1'i este atunei cand se rule az1'i aditorul vi si se doreste rutarea attei comenzi. Se loloseste CTRL - Z penlru suspendarea procesului vi si revenirea la promplul lerminalului, unde poate Ii introdusa noua comand1'i. Oupa inlroducerea comenzii se loloseste oomanda f'l pentru a reacti~a procesul vi. CTRL- C: transmite semnalul SI GI NT cil.tre procesul curent, care, in general, va omori procesul. De obieei. combinatia de taste se loloseste in cazu! in care un proces esle blocal. CTRL- \ : transmite semnalul s I GQUII. Acesta are acelasi rol ca ~i CI RL- C, doar c1l este mai puternic. Trebu>e precizat ca nu toale aceste combinatii de taste au elect pefltru loale procesele, intrucAt unele procese pot ignora semnalele transm ise (pot avea un comportament nonstandard la primirea unui semnal).

5.5

Comunica~ia

intre procese

La lei cum in cadrul unui departament mai mu!!i camen i con lucreaza pentru a indeplini o sarcina, si in cadrul unui sistem de operare procesele acestuia interactioneaza. Interac?ur.ea proceselor intrun sistem de operare poarta numele de comunica~ie intre procese. De ce este nevoie de comunicalie intre procese? In primul rand pentru ca un proces peate avea nevoie de resursele pe care i Ie pune la dispozi)ie un all proces. Spre exemplu. in cazul utililarului t op, acesta culege informa~i pe care i Ie lurnizeaza alte procese prin inlermediul nucleului sistemului de operare ~i al sistemului de li~iere procls. In all1'i situatie, un proces A trebuie sa a~teple ca un alt proces B s1'i lermine 0 sarcin1'i pentru ca A sa poata continua. Aceasta forma de eomunieatie intre A ~i B se nume~te sincronizare: un proces Irebuie sa a~lepte un all proces. Comunicatia intre procese este intermadiata in diverse moduri: eu ajutorul unui li~ier, a unui socket. a unei zone de memorie sau a unui canal de comuniea)ie (pipe). Intermadierea prinlr-un li~ier esle destul de simpl1'i: un proces serie 0 informatie inlrun lisier, iar un alt proces 0 erteste. Nu vom prezenla comunica!ia prin intermadiul unui socket sau a unei regiuni de memorie. intrucat dep1'i~esc aria de cuprindere a acestui cap itol . Vom diseuta, i nsil., despre comunicalia prin intermediu l unui canal de comunicatie (pipe).

140

INTRODUCERE iN SISTEME DE OPEAARE

5.5.1

Operatorul l (pipe)

Operatorul I (pipe) esle folosil pentru a asigura comu nicatia intre doua procese ru lale din linia de comanda. lolosind un canal de comunica!ie numit pipe. Comunicatia prin intarmediul unui pipa asta 0 imbunatatire a comunicati ei prin inlermediul unui fi~ier. Astlel. in cazul comu nicatiei prin inlermediul unui fisier. un proces sc rie datele de ie$ire intrun fi$ie r iar un alt proces folose$te acel !isier ca inlrare. in caw l comunica!iei prin pipe. i e~irea primului proces este folos ita direct ca intrare pentru al doilea, lara a mai Ii nevoie de un lisier pe disc. Vom lolosi pentru exemplrticare comanda 9 r ep, care cauta un cuvanl in cadrul unui lisier. Dac!i, spre exemplu, dori m aflarea de inlorma)ii despre procesele bash din sistem lolosind qrep, ar trebu i, in prima laza. sa redireclam iesirea comenzii p a intrun lisier, iar apoi sa folosim q rep pe acel li~ier, ca in exemplul de mai jos:

" "
, , , ,

, , , ,

r a zv~n @ ~ sqa rd : - $
r~zv~n @ ~.q~ r d

p~

-e >

p ~ . ou t

-,

J029 pt.!O Jon pts/l 3299 pts!2 JJ17 pts!2 3740 pts!3 3758 pU/3 3181 pts/4 3799 pts/4

qr..p b~~h p ~ . ou t 00 : 00 : 00 ba$h 00 : 00 : 00 buh 00 : 00 : 00 b o sh 00 : 00 : 00 ba$h 00 : 00 : 00 buh 00 : 00 : 00 bash 00 : 00 : 00 b a sh 00 : 00 : 00 b~ s h

Acelas i rezultal ca mai SUS poale Ii insa realizat prin inlermediul operatorului I . faraa mai Ii nevoie de intermedierea printr-un fis ier:
r~'v~n @ ~.qu a

J029 3092 J299 3317 3740 3158 3781 3199

pto!O pts! l pts!2 pts!2 pU/3 pts/3 pts! 4 pts/4

-$ P$ - e 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00 00 : 00 : 00

grep buh b o sh ba$h buh bash b a sh bash

b~sh

b ~ sh

Pentru a exemplilica puterea acestui operator vem conside ra urmatoarea problema: dorim sa aflam primii 3 ulilizalori din sistem care au direclorul de baza in /home, ordonati i n ordinea alfabelica a numelui de ulilizalor. Informatii despre utilizatorii din sistem se gasesc in /etc/ p asswd. Vom lolosi grep penlru a exlrage ulilizatorii care au direcloru l de baza in /home :
2

, 5

rnva n hsgard : -$ cat letc/pus wd I g rep / h ome utvan : ~ : 1 000 : 1 000 : ruvan , , , : !home!ruva n : Ibl nlb a sh ha ldaemon: " : l OS: 106 : Hardware abst ract ion layer , . : / home/h~ 1 daemo n, fbi n / false guest : ~ : 1001 : 1 001 : Guest Account " , : fhomelguest : Ibin/ba s h ftp : x : 107 : 65534 :: fhome/f t p : !bIn/false

In COnlinuare vom sorIa rezultalul obtinut, dupa care vom reline numai primele 3 intrari:
ra.van@asgard : -$ c a t /etc/p&ss wd I grep Ihome I
so~t

CAPITOlUl S. PR OCESE
> ftp , x '1 07:65534 ,: / home/f tp : /bi n /hloe
3

1<,

,
8

"

gue st : X , 100 1 : 1 00 1 : GueH Account " , : I h o me I guest , Ibin/bash ~al d ae mon : " : 1 OS, 106 : Ha rdwa~e abstractio n layer " , : I h ome I ~a 1 daemon: lbi n l false ruva n:x: 1 000: 10 00 , ra~van , , , : Ihome!ruva n: I bin /bash
ruvan@asg~rd : -S cat letc/pass wd I grep !nome I so~t I ~ead -3 ft p : x : 101 : 65534 :: /home/ ft p : /bin/false gU~5t ' '' : 100 1 :1 001 : Gue~t Account, : !hom" !gU.,3t : / bi n/b~ ~ h ~a 1 d ae mon : ~ , 1 05 : 106 : H &rd ~ &ce &bst r action l~yer ", : I home Iha I daemon : Ibi n! fa he

10

5.6

Swapping

Ull cOllcept importallt ill studiul sistemelor de operare si al proceselor acestora este conceptul de swappillg. Swapping este 0 masura compensare a cantitatii insuliciente de memorie RAM de care dispune Ull sistem la un momellt dat. Pelltru compellsare, sistemul de ope rare va lolosi 0 portiuoe din disc penlru sioearea dalelor din RAM. in cazul unui sistem incArcat (cu multe proeese), memoria RAM se poale dovedi insulicientA pentru a satis/ace toate proeesele. In aceastA situa!ie 0 parte din pagilli le de memorie din RAM sunt evacuate (swapped) pe disc pentru a lace loe pentru pagini le de memorie utile ill momelltu l de laid. in momentul in care pagillile evacuate SUllt dill nou necesare, se vor evacua alte pagini penlru a se aduce la loe cele curente. Principiul swapp ing -ului este prezentat in /igura de mai jos .
Memoria RAM e,te pl lna $1 u n nou P' <><:u, ~re ne . oie de me mo,ie Una di n pag inl le d in RAM est" e. a < ua l ~ in SWAP loc ui pa ~l n ll Pn-l est" luat de 0 pagina a ~o u l ui pnxe .

Pn-l

'"
...
e;

>0, ...
SWAP
e;

'"

P ocr, n

'"
e;

...
SWAP
u

"
SWAP

" " RAM

" p0 " RAM


Figura 5.3: Swaping

" " RAM

Pe sisteme le UIlUX swappi ngul este realizat ill gelleral pe parti!ii dedicate (pa rt ilia de swap - vezi sectiunea 2.2.2). care sunt lolosite in cazul in ca re memoria din sistem este insulicieilla. in cazul Windows, spaliul de swap aloeat din partiliile sislemului. fiind utilizate in acest scop lisiere. Pentru a alia informalii despre spatiul de swap utilizat in linu x se poate folos i comanda fre e (aceste informa!ii se gasesc si i n zona de sumarizare din ecranul t op):

,
)

total Mem: 514748 -1+ b u ff e rS/c~che : swap : 497972

u$ed 336876 131784

tree
111812 382964 497912

shared

"

buUers 19892

cached 185200

nght

mater~1

,<2

INTRODU CERE iN SISTEME DE OPERARE

Sa observA eli sistemul beneficiaza de 512 MB de memoria RAM 5i . nu aSia folosi! spatiul . de swap_

5.7

Studii de caz

5.7.1 Managementul proceselor/serviciilor pe Windows


In Windows, un proces are caracteristici asemAnAtoare eu procesele din Linux. TOlu~i,

desi un proces asia creat prin intermediul altui proces, nu exista 0 ierarhie de procese ~i nici no!iunea directa de proces parinte 5i proces liu. La lei ca 11"1 Linux, un proces aSia identiliCat printr-un PID, are asociate zona de memoria 5i !isiera deschise etc.

Tas k manag er

inlerfata de vizualizare si gestiune a proceselor in Windows asia asiguratA de Task Manager. Pentru pornirea acestuia sa loloseste combina!ia de taste CTRL - ALT - DEL sau CI RL-SHI FT - ESC sau click dreapta pe bara de taSk-uri si selectarea optiunii Tas k Manage r din meniu.

Ell' "", ... 'J.- ""-""""

_ ........"'""" 1 .."""""',-

1 ...... ,

... ._,m ....".,.. . ._,, . .. -"""",,

Om_
,,., ,.,,.

. -.'"
_

-- . -- . - -.
_ ~ ,,"'. ,,"

" "

[JJ [JJ [JJ

" " " " , . , ,"""

"""""" ""VIC!'

00

"- . " ..,


. m

"""""" ,...VlC!'
,,.,, '"

~0."...

[JJ

00 00

Figura 5.4: Windows Task Manager Task Manager poate fi comparat cu utilitarul top. AliseazA inlormatii des pre procese ~i despre sistem ~i poate Ii configu rat pentru personalizarea afisArii sau pentru interactiunea cu procesele din sistem. In mod implicit, Task Manager afiseazA numele programului care a general procesul, utilizatorul care a creat procesul, procentajul de procesor to losit si memoria utilizalA. Daca se doreste afisarea altar campuri se paate accesa meniul View->Select

CAPITOLUL S. PROC ESE

143

Co lumns. Sa pot afisa PIDul procesului, memoria virtualli utilizatli, maximul de memor'e utilizat, numarul de fi~iere deschise, numlirul de thread uri etc. In atara vizual izlirii proceselor din sistem, Task Manager mai oterli urmatoarele servicii: permite crearea unui nou proces prin introducerea imaginii de executabil asociate (File->New l a-5k (Run ... J); permite monitorizarea ~i analiza performan!ei sistemului, prin accesarea tabului Pe r f orman c e; in tormati ile de aici sunt asemMlitoare eu eele olerite da top in zona de sumarizare: permite deeonectarea unui utilizator, sau oprirea, repornirea sau suspend area sistemului (meniul Shut Do '",n): permite tarminaraa unui procas: sa salecteaza procesul dorit 5i se apasli butonul End Proc e ss. Se poate observa cli Windows Task Manager olera caa mai mara parte din laeititati le lurnizate de comenzile Unix de interactiune cu procese sistemului. Un utilitar puternic de vizualizare Si control a proceselor pe Windows este ProcessExplorer ' .

Services

in Windows, procesele daemon poartl\ numele de servicii . Ga ~i in linux, serviciile sunt procese care ruleazli in background Si sunt lolosite pentru monitorizarea si intre\inerea sistemuluL Fereas tra de interae(iune eu serviciile Windows este afisata, in Windows XP, prin accesarea Star t -> Con t r ol Pane l ->A dm ini st ra t i ve l ool s-> Se evie es sau elic!<. dreapta pe My Comput e r - >Manage - >Ser vices. Eeranul afi~at prezinta toate servici ile sistemuluL Coloanale al~ate indica numele serviciului, 0 scurti!. descriere, starea lui (opril sau pornit), modul de pornire a servieiului (dezactivat, manual sau automat si, la Windows Vista, intarziat). Pentru pornirea, oprirea sau repornirea serviciului, ca ~i pentru sehimbarea modului de pornire, se acceseaza meniul contextual al serviciului (click dreapta) si . se se~cteazli optiunea . pr oper t ies :

5.7.2

Procese importante
~i

Oriee sislem de operare deline un sel de procese eu rol important In rularea intretinerea sistemului de operare.

Procese importanle Linux

Procese importante in linux sunt:


, httpl/wwN.mic rosoft.c omlt8ChoeV. ys;otern a t siutil ~ie.1P roce. sE Xplo'. f.m sp x

C JPYnghted matanal

1<,
'

INTRODU CERE iN SISTEME DE OPERARE


~

... ..

........ -_ . ....... _ .. ...... ...... ....... --, . _ ........ -. ....... ... . ..... -.- .- -- .......
... - "' ..
"

~~~~~~-

""

'''' Loo .......

- ".-.
coo. ..... ",
,
...-.~

..

''''

""
'''' ""

",,_s.,

""-~

....,
,

....

Ho",

"" 'oo........
""

Figura 5.5: Windows Services

u....~

I LOI1On I At<Ol' l D..... ,;., ..." I

~~~=--- .lJE

[iI'.lm
.<d.o: 00"Id
. ID""' ~"

<0<"', 0 _ N..... S""... 1ll"5] ::::J


n .. _ ri<wod.

..:J

y"" , .. ,.,..,.. .... ~ ......- . ., "'" _~_ ..... ~ ort "" . ...... ""

--

Figura 5.6: Intarfata de contrOl a serviciului Windows de DNS

i nit : esle procesul ell pid-ul 1 in sistemele Unix si esle pArintele Muror
proceselor; rolul sAu nu se limiteaza doar la a porni celelalle procese importante

CAPITOLUL S. PROCESE

145

in sistem ci si de a deveni procesul pilrinta pentru procesele rilmase onar"le ; k swapd (keme l swap daemon): aste responsabi l cu alegerea pagir"lilor de memorie care vor fi evacuate pe disc in momentul in care memoria este insuficientil: pdfl u sh (page daemon): esle respor"lsabil cu as;gurarea cOr"lsister"l)ei bullerelor lolosita da silamul da lisiara; gett y : eSla procasul resposabil cu autentificarea in sistem in term inalele virtuala; getty olera prom ptul login : utilizatorului: xor9: este procesul resposabil cu pomirea inlene)ei grafice si are asociat terminalul virtuallty7 {ce poate Ii accesal prin combi r"latia ALT +CTRL - F7}.

Procese importante Windows in Windows procese importante sun!: 1 Sass (Local Security and Authentication Server): verilica valid italea aulentilicarii utilizatorilor; in cazu l unei autentilicari coracte genereaza un jeton Iolosit penlru daschiderea unai prima sesiuni shell pe sislem ; Isass asle ~i numale unui virus: svch ost {Generic Host Process for Win32 Services}: asle procesul fo losit penlru gestiunea serviciilor din Windows; csrss (Client/Server Runlime Subsystem): esle responsabil pentru crearea ferastrelor de consol<'\ si gastiunea Ihreadurilor:
.;i n lag o n : eSle 0 componenta esentiala a subsislemJlui de aulenlilicare in

Windows ; e x pI 0 re r : esle esle shellul unui sislem Windows, insa cu interlata grafica. Mai multe informalii despre procesele importante Windows gasiti la' .

5.7.3 Prioritatea unui proces


in sislemele de operare moderne, procesele au asociata 0 ptloritate. Aceasta influenteazil probababilitatea ca un proces sil lie planilicat pe proceso(: cu cat un proces are 0 prioritate mai mare, cu alat probabilitatea ca el sa he urmalorul proces planilicat penlfu execu!ie cre~te. De obicei procesele care sa blocheaza des (denumite 1/0 intensive) au asociale 0 priorilate mai mare, in timp ce procesele care utilizeaza intens procesorul {CPU in tensive}, au 0 priorilate mai micli. Prioritalea proceselor nu este fixa. Sistemul de operare poate modifica prioritatea procaseior per"ltru a asigura echitatea planificArii. Totoctalli. si utilizatorul poate modillea prioritatea unui proces daca doreste acest lucru.
, httpl/wwN. n"LJber.comtlasllmanall"f' proce.s'

C JPYnghted matanal

.<6

lNTRODU CERE iN SISTEME DE OPEAARE

Schimbarea prioritBlli unui proces in Linux

In Unux, prioritatea unui praces poarta numele de niceness (cal de echitabil sa comporta un praces raporlalla ce lelaI1e). Un praces are 0 prioritale mai mare cu cal

va loarea sa nice 9Sla mai micA. Valorea nice pentru un praces S9 incadreaza in limitele
[-20, 19]. -20 inseamna un praces maxim prioritar, in limp ce 19 lnseamna un praces

minim prioritar.
Prioritatea unui praces intr-un sislem Unux se ana lolosind ps

" "
" "

, , , '" , " , , ,, , , , , I [ ... ,,


[ ... 1

r~ "v~n@".q"rd

-,

COMMIIND

<,vents/O ~h .. lp .. r

. "-

~i

opliunea nice :

- 0

pi<;l , tty , comm , n i ce -- sort nice

kthread
~blockd/O

k .. cpid
i nit

-.
" , ,

"' -, -, -, -,

3799 pt./4 4009 pt./l

bash

,,

0' k.oftirqd/O

Majoritatea proceselor pornesc CU prioritatea O. Pentru a modifica prioritatea de start a unui proces se fofose~te comanda nice, fofosind argumentu l - n:
r~zv~n @~"q~ r d , -$

"

nice '

c~nnot

nic@ -n -10 P" -@ -0 p i d . tty . comm . ni .@t nic .. n .. ss : Permission <I .. n i .. d -$ n1C" - n IS ps - C p. - 0 pid . tty . comm , ni
COMM/l.ND

r~zv~n@".q"rd

PH> 11

"
!

4051 pt./l

ps

"'
-00

asqard : /home/razyan~

nice -n -10 P" -C p. -0 pid . tty . co .... . ni

PH> TT

COMMANO

10

4048 pt./2

P"

" "'

Se poate observa ca un utilizator neprivifegiat nu poate stabi li 0 priorrtate negativa (putern ica) , dar poate stabili una pozitiva (mai sfabA). Utifizatoruf roo t poate modilica prioritarea unui proces in orice direclie. Schimbarea in timp real a prioritalii unui proces se poate real izeaza prin intermediul top. In ec ranu l top se lofoseste tasta r (renice). Zona de comanda olera promptuf PID to r e n ice : in care se introduce pid-ul procesulu i a carui prioritate va Ii schimbala. Dupa aceasta se va cere introdl.lCerea unei valori nice asociata procesufui. Un utilizator neprivifegial poate doar incrementa vafoa rea nice a unui proces (if va lace mai pulin prioritar).

Schimbarea prioritii)ii unui proces in Windows In Windows. utilizatoruf poate stabiti prioritatea unui proces fa n i~te vafori cu granufaritale mai mare: High, Very High, Normal elc. Pentru aceasta se loloseste lot interlata pusa fa dispozilie de Task Manager. Penlru atterarea prior itatii unui proces. se reafizeaz~

CAPITOlUl 5. PR OC ES E

147

clid\ dreapta pe intrarea asociatA proces ului. se alege optiunea Se t prior i t y si apoi se stabi le~te priorilatea dorilA. Un exemplu se poate gAsi Tn l igura de mai jos:

Flo

_.uor.. ..""""'" I....

Opt"", ..... 5IU t-. .....

~<>,..,..,. I Ntt_1.il\l1 """,

Figura 5.7: Stabilirea prioritAtii unui proces In Windows

Cuvinte che ie

proces program pid procls interaClivilatea unui proces context switch cuanta de timp multitasking ierarhie de procese inil

lop
background foreground operatorul & bg.lg suspend area unui proces term inal proces daemon nohup semnal ki ll killall. pkill

"

pSlree pgrep

CTRLZ. CTRLC, CTRL CTRlX

148

INTRODU CERE iN SISTEME DE OPERARE

operatorul I Task manager Services


inil, kswapd , pd/lush, getty

Isass, svchost, csrss prioritatea unui proces


nice

intrebiiri
1. Care din urmatoarele aSia un proces important Unix?

o o o o o a o a

p.
5 I GQ ll II

init

lsass

2. Care utilitar NU poale Ii lolosil pentru a transm ite semnale caire un proces?
kill

t op
nohup
kil l al.l

3. Gate procese init pot exisla la un moment del T ntr-un sistem Unux?

0'
o cale unul per procesor
o niciunul

oricate

4. ClUe procese bash pot exista la un moment del Tntr-un sislem Unux?

o cale unul per procesor


o niciunul

o o o o o

or icAte

5. Care din urmAtoarele comenzi NU al iseazA PID -ul unui proces?

p.
pqr .. p
kill

top

6. in linux arice program peate Ii imaginea unui singur proces. Comanda lop NU afiseaza PID-urilor proceselor din sistem.
~,., ...ov ... atanal

CAPITOLUL S. PROC ESE

149

o o o

adevarat, adevarat adevArat, tats tats, adevaral fats, tats


acetea~i

o
o o o

7. Care comandA poate produce CI RL- Z?


p kill

eleele ca apAsarea combin alie i de taste

p.
operalorul
&

o"
8. Ce d irector d in sistemul de
l i~iere

oferA informa\ii despre procese?

o o
o

/sys
Iproc

/ h ome

0 1

9. In Linux procesete NU au pkfuri negative. in Linux procesele NU au pr iorrtiili negative.

o o o o

adevarat. adevarat adevArat, lals fals, adevilrat fats,lats

10. Care asoc iere NU esle val ida?

o o o o

Task Manager - top serviciu - daemon explorer - nice tsass - getty

C JPYnghted matanat

Copyrighted material

Capitolul6 Pornirea si sistemului , initializarea ,


Press err/-AltDel now for /Q test.

Ce 58 inva~ din a cast capitol ?


Pornirea sistemului; conceptul de bootstrapping
Nol iunea de multitasking Fazele pornirii sistemului

BIOS (POST, CMOS)

Dispo~itive

boot-abila, sector bootabil (M8RNBR)

Rolul uoui bootloadar GRUB: rutara


~i

conligurare

incArcarea nucleului Linux


Inilializarea unu; sistem Linu K: iniU upstarl si pornirea serviciilor
Pornirea ~i initializarea Windows Nel iun; de in teroperabilitate Linux-Windows

6.1

Pornirea sistemului

Pornirea si initializarea sistemului sa relera la mecanismele prin care sistemul de ope rare sl aplica!iile de bezA ajung sa fie incArcate si toklsile de utilizator. Pornirea sislemului sa realizeaz.:!, de obicai, prin apAsarea unui butan spec~ic de pe unitatea cenlralil. in sens mai larg, ne vom referi la pornirea sislemului ca fiind a ac~une campusa ce cuprinde atal ini!iatizarea hardware cat ~ i cea software.

'"

152

INTRODU CERE iN SISTEME DE OPERARE

Inifializarea hardware presupune verihcarea ~i conhgurarea componentelor hardware.

Aceasta se executa in doua: situatii: atunei cand sistemul trece din starea opril in starea porni! (power on) 5i atunei cAnd sistemul esla reini!ializat (reset. reboot),
Ac!iunea de power on se relera la activarea sislemului din momenlul in care aeesta era

opril, de cele mai multe ori prin intermediul butonului de pornire ' , Repornirea sistemului
se relera la reactivarea sislemului: din starea porn it. eventua l ruland 0 instenla a unui

sislem de ope rare, sistemul esle reporni! (tie prin intermediul butonului Reset, he prinlr-o
comandli da!;'!. sistemului de operare).

Ini,ializarea s oftware presupune incarcarea sistemului de operare. Nu vcm considera rularea anum itor ap licatii peste sistemul de ope rare ca f<"icMod parte din ini\i alizarea software.
Pornirea sistemu lui prezinta un set de etape care vcr Ii precizate Tn continuare.

6.1.1 Problematica pornirii sistemului - bootstrapping


Pornirea sistemului fizic si inearcarea sistemului de operare poarla numele de booting sau de bootstrapping. Denumirea de bootstrapping i~i are originea in Baronul de Munehhausen. 1ntro poveste a acestuia, el reu~e~te sa se salveze de la inec Ira.ganduse de baiere le cizmelor (boot " cizma. strap" baiera). Analogia cu ace aSIa paveste se reflecta In laptul ca sistemul de operare tretluie incArcat fAra. existenta unui a~ sistem de ope rare. Un procesor poate executa numai cod allat In memoria ROM' sau In memoria RAM. Atunei c<"ind 0 aplicatie tretluie executatll, sistemul de operare mula codu l acesleia In memoria RAM ~i procesorul incepe execu!ia apl ica!iei. Apare astlel intrebarea: cum se inearca in memorie sistemul de operare, daca nu existll un all sistem de operare care sll II incarce ? Apa renl, trebuie sll ne tragem de baiere le cizmelor" pentru"a ne scoate din apa". Vom vedea, lnsa, c<"i exist<"i un set de etape care se vcr parcurge succesiv pentru inc<"ircarea diverselor componente pan<"i la inc<"ircarea completa a sistemului de operare.

6.1.2 Etapele pornirii sistemului


Pornirea sistemulu i presupune inellrcarea in memorie a diverselor componente pAna la inearcarea completa a sistemului de operare. A~a cum se poate vadea si in ligura 6.1 . etapele importante ate porn irii sistemului sun!: in ca rcarea BIOS-ului: presupune inearcarea unui program de miCi d imensiuni, allal Inlr-o memorie dedicatE!: de pe placa de bazE!:, ~i care esle uWizat pentru inilializarea componentelor hardware;
' A~ ~ m3!" I"! ~ de ap"s "r& a bu!onulul d ~ po rn"e. u n WOL _ hllp}len.wikiped ia .mglwitiIWake onLAN ' http}len ,wikiped ia, ",glwikVRe ad" n 'L memo ry ~i Ol"'" poa t ~

Ii po r n~

.i

cHo la d is'antii

"'Io ~ind

C JPYnghted matanal

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

153

I Al lmentare I
j
BIOS
~

POST

r<

(booUo~der ~

(~U""der

r--

ImaQ 'ne kernel

r<

pornlfea procese lor

Figura 6.': Elapele pornirii sistemului rularea POST: presupune realizarea unui set de teste hardware ce verifica lunqionalitatea de baza a componentelor principale; inca rca rea bootloader-ulul: presupune incarcarea unui program de mlCI dimensiuni destinat copiani codului kernelului intr-o zona din RAM de unde so! poata Ii executat de procesor; inciircarea nuclelui : presupu ne vn set de initializari de baza pe care te reali zeazi!. nucleul (kernel-ul) sistemului de operare: Ini!lalizarea sistemulu l de operare: presupune pornirea principaletor procese care asigura utilizaraa sistemului de operara. Etapele prezentate sunt ordonate 'cronologic": 0 etap1i esle rulala si, la linalul ei, esle responsabili!. pentru rularea etapei ulterioara. Vor Ii descrise in cadrul acastui capitol fiecare din lazele prezentale ~i interactiunea intre aeestea.

6.1.3

BIOS

BIOS-vi (Basic Input Output System) este primul program incarcat in momentul pornirii sistamului. BIOS-ul aste responsabil eu ver~icarea si initializarea componentelor hardware. BIOS-ul este un exemplu de firmware . Firmware-ul esle 0 compone nta software distribuita sub lorma binara pe un suporl de memorie nevolatila. in cazul de lata, 810S-ul este stocat pe un chip de memorie ROM de pe placa de bazi!. ' . La power on sau la reboot BIOS-ul esle rulat automat din ch ipul de pe placa de bazi!.. BIOS-ul cunoa~te specil icul hardware al sistemului ~i devine responsab il cu initializarea componentelor fizice ale acesluia.

CMOS este un program mic ~i limitat la specificul hardware al sistemului. 8 10S-ul oleri!. optiuni de configurare. Configurarile SIOSului sunl pastrate intr-un chip separat de memorie RAM ne~olatil a alimentata prin inlermediul unei baterii. Aceast chip de memoria se numeste CMOS' - Complemenrary Metal..Qxide Semj(;(Jnductor. Ala.! chip-ul cal ~i bateri'a se gas esc pe placa de baza. in momentul in care bateria esle scoasi!., configuri!.rile BIOS -ului se pierd revenindu -se la configuri!.rile implicite.
De~i

' Me,.." ia e . t ~ de tip EPROM _ htlp:llen .wikipedia .orgiwi ki/EP ROM ' hltp ;tlen ,wikiped ia ,o'giwikilC mo.

C JPYnghted matanal

154

INTRODUCERE iN SISTEME DE OPEAARE

Figura 6.2: Ecran de conligurare CMOS


Configurarea BIOS-ului se realizeaza prin intermediul unui ecran de configurare. OPliunile disponibile includ stabilirea unei parole pe BIOS. selectarea dispozitivului de boot (vezi sectiunea 6.2.1), alterarea frecventei . procesorului 5i . alte conliguri'iri care depind de placa de bali!. ~i de compone l1tele hardware existente in sis\em.

6.1.4

POST

Etapa de verificare si de ini!iaiizarea componenlelor hardware ale sislemului (procesor, memoria, placa video) paarla numele de POST (Power-on Self Test). Daca una dintre componen te prezinta erori ~i nu poate Ii inilializati'.i corespunzalor, aMICi BIOS-ul va emite un set de sunele spec if ice si nu S8 va continua initializarea sistemului. Dupa verilicarea si bootloaderului.
initial i ~area

componentelor, BIOSul este responsabil cu incarcarea

6.2

Bootloader

Bootloader-ul este componenta utilizata in principal pentru Incarcarea imaginii de kernel Intro zona din memori RAM, de urxfe sa poata Ii executata de catre procesor. Gele mai multe bootloader-e permit utilizatorului sa aleaga intre mai multe versiuni de kernel ee vor Ii Incareate, seleetand astlel intre mai multe sisteme de ope rare. De asemenea, bootloaderul permite ~i transmiterea unor opliuni de Inearcare a nucleului sislemului de operare. Bootloader-u l este lncareal In memorie de BIOS. Boofloader-ul se regaseste pe primul sector al unui dispo~itiv bootabil, denumrt si seetorul de boot. Aeeasta limitare de dimensiune apare deoarece BIOSul poate Incarca In memorie un singur sector (51 2 octeti). Se poate Int:l.mpla ea boofloader-ul sa lie prea mare ~i sa !1(J Incapa in primul sector al dispozitivului boolabil. in acesl eaz
a'eonal

CAPITOlUl6_ PORNIREA SIINITIALIZAREA SISTEMUlUI

155

Figura 6.3: BIOS POST (power-On Self Test)

iJootloader-ul se imparte in dou1\ componente. Prima componentA incape in sectorul de boot. A doua, second stage, rezidentA pe un spatiu mai mare de pe hard-disk 5i este
incli.rcatli. de cAtre prima. Un astlel de multiple-stage bootloader este GRUB, boot loader-ul implicit pe major ita tea distributiilor Linux.

6.2.1

Oispozitive boot-abile

Un dispozitiv boot-abil este un dispozitiv al cli.ru i pri m sector este un secto r boot-abll. Sectorul boot-abil se caracler izeazil. prin faptul cll ullimii doi ocleli sunt Ox AA55 (din cei

512).
Exemple de dispozitive ce pot fi boot-abile su nt CD-ROM-uri, hard-disk-uri, floppy disk-uri, USB flash etc. in cazul acestor dispozitive, daca pr imul sector are structura specificll unui sector boot-abil atunci poate Ii folos it pentru incllrcarea altor informatii existente. Dupa rularea POST, BIOS-ul cons ulta CMOS si urmeaza ordinea de boot-are de acolo. ASlfel, dacil. CMOS-ul a fost configurat ca in imaginea de mai sus, BIOS-ul va electua urmli.toarele ope rati i: dacll HDD-ul are un prim sector bootabil, se va inearca 5i se va executa eonlinulul sectorului: aiei se va afta, de ob icei , bootloader-ul: in urma executie i se va i ncarca sistemu l de ope rare: dacll HDD -ul nu are un prin sector boot-abi l, se trece la investigalia CD-ROM-ului din sislem; se va verifiea exi ste nla unui CD in unilatea de CD-ROM, daea. acesta ex islll, se va veri/ica existenla sectoru lui de boot:
" 1

156

INTRODU CERE iN SISTEME DE OPERARE

Figura 6.4: Alegerea

d ispoziti~uluj

de boot
inc~rca ~j

dad. CO -ut are un prim sector bootabil, atunei se va

se va executa

conlinutul seclorului de boot: exemp le de CO boolabi l sun! CO-ut de instalare a

unui sistem de operare sau un LiveCD;


dad. niei CD-ROM-ut nu are un prim sector bootabil atunei se trece la urms'lorul

dispozi!iv boot-abil (al doilea HOD), care va Ii analiza! asemenea Gelor aterioare:
dac1l. nu exista nieiun d ispozitiv boot-abil. nu se poate incarca
n~ i un

sistem de

ope rare; BIOS-ut va afisa un mesaj specific lara a executa nimic.

6.2.2 Structura sectorului de boot pentru un dispozitiv bootabil


Primul sector (prim ii 512 octet i) al unui dispozi!iv boot-abil poartil denumirea de MBR (Master Boor Record). Primul sector al unei partilii al unui dispozitiv bootabil partilionat poarta numele de VB R (Volume Boot Record). Dupa cum a lost specificat anterior, un dispozitiv este boot-abi l daca MBR-ul acestuia este un sector boot-abil (are ultimii doi octeli OxAA55 . penlru a semn ifica laptut ca sectorul conIine secvenle de cod executabile). Sectorul de boot poate co nIine instrucliuni pentru incarcarea unei secvente mai mari de cod (cum este sectorul de boot al unui CD). sau poate conIine un bootloader penlru incarcarea sistemu lui de operare (cum este sectoru l de boot al unui hard -disk). Conlinutul sectorului de boot este incarcat in memorie de BIOS. Dupa aceasta, BIOS-ul trallsmile controlul programului rezident in sectorul de boot (bool/eader). In figu ra 6.5 esle prezentala slructura MBR. Dupa cum se observa, exista urmatoarele zone importanle: zona de cod exec utabil : aceasta contine programu l caruia Ii este transmis controlul de caire BIOS (boor/oader):

CAPITOlUl6. PORNIREA SIINITIALIZAREA SISTEMUlUI

157

O xOOO

4460cteti Bootloader Partitia 0


Pa rti~ia

OxlB D OxlBE OxlFD OxlFF

Partilia 2 Thbel.!i de
parti~ii

64 octeti 2 octeli

Partitia 3

OxAA5 5

Figura 6.5: Strl.JCtura MBR (Master Boot Record) tabela de partl!li co nIine informa!ii despre partiliile din sistem ; fiecarei parti!ii Ii corespunde 0 intrare de 16 octeti; semniitura de sector bootabil {OxAA 5 5}. Zona de cod executabil contine programul care va Ii rulat dupa incarcarea MBRului in memorie de BIOS. De obieei, acest program este bootJoader ul, responsabil cu descoperirea partitiei active si incarcarea primului sector {VBRl de pe aceasta. in cawl existen!ei mai multor sisteme de operare. boolloader-ul poate permite ulilizatorului sa opteze pentru incarcarea unui sistem de operare allat pe altA parti!ie dedit cea de boot.

Tabela de part I,ll Tabela de parti!ii rezida in MBR si ocupa 64 de octe!i. Un harddisk poate conIine doar patru partilii (asa numilele parti!i; primara ), re zultAnd 16 octeti penlru descrierea liecarei parti!ii. Cei 16 octe!i ai liecarei parti,ii olera, pe langa adresa de start (exprimata in cylinderheadseclor') si dimensiunea si tipul partitiei. 0 partilie poate Ii activa sau nonactiva. 0 parti!ie activA este aleasa de boot/oadeful allat in zona MBR (sau de cAtre 0 parte a bootloadefului , daca acesta este in doua stagii) pen tru a continua incarcarea sistemului. De pe 0 parli!ie acliva se va incarca pri mul sector (VBR) OIl acesteia. o a~A clasiliCare a parti!iilor este clas~iCarea i n parti!ii prim are ~i parti!ii extinse. Numarul de 4 partl!iI prlmare care pol Ii descrise in tabela de partitii din MBA este, de multe ori, insuliCient. Pentru a rezolva acest neajuns, a aparut notiunea de parl;!ie eXlinsi. Pe un sistem poate exista 0 singura partilie exlinsa astlel ca putem avea fie maxim 4 parlitii prim are, he 0 partilie extinsA 5i maxim 3 prim are.
, http;lIe n.wiloiped ia. o'glwil\i1Cylin de' headsect<> '

fight

ma'enal

158

lNTRODU CERE iN SISTEME DE OPEAARE

Parliliile extinse pot contine rnai multe parti!ii logice, marind astlel numarul de parlitii posibi le din sistem. Descrierea partitiei extinse se regase~le in primul sector din acea parli!ie, denumit EPBR (Extended Partition 800/ Record). Parti!iile sunt !olosite pentru separatia informaliilor inlr-un sislem de operare. Pentru a as igura existenta unui sislem de lisiere pe 0 parlilie, acea partitie va trebu i formatata (vezi sectiunea 4.8. t) .

Sa lvarea secl orului d e boot (backup)

Uneori se doreste salvarea sectorului de boot al unui disc sau al unei partitii penlru situalia in care aeasla devine corupt ~i (rebu ie reparal. if] Linux, acesl lucru sa poate
realiza foarte lIsar prio intermed iul comenzii dd (vazi secliunaa 7.6.5) de lip bloc (vexi sec(iunea 7.6.1)
~i

a dispozilivalor

Astlel. daca sa dora~le raalizaraa unai copii locale a MBA. se poala Iolosi ulililarul d d si dispozitivul asocial hard-disk-ului (in cazu l nos!rv ! d e ll I h da. ). Vor Irebui copiali 512 ocle!i (un seclor). deci conlorul de secloare va Ii 1:
2 ,
root@~.q~ rd: 1 dd if - Idev/h d a o f - mb r . o u t coun t - l 1+0 record . in 1+0 record . out 512 b y tes (51261 cop ied , 0 . 035273 seco nds , 14 . 5 k Bis r o ot@asq ~ ~ d : '1

6 ,

- co'- r -- r -- 1

~ oot

1" - 1 mb r . o ot root 512 2009 - 06 - 07 23 : 28 mbr. out

6.2.3

Mecanismul de functionare a unui bootloader

Dupa cum sa specilicat. un bootloader esle un program folosit pentru a inca rca in RAM imaginea sistemului de operare, sau alte componenle care vor incarca (Ia rfu1dul lor) acea imagine. Codul boolloader-ului eSle supus unor conslrfmgeri destul de rig ide. intrucfllirebuie sa incapa in MBA. Mai exact. asle limitat la 446 de octe!i (restul fi ind ocupa)i de tabela da parli~ i ~i de semnalura de 0001 OX AA55 ). Ca atare bootleaderele lucreaza in mod normal in doua etape (stages). Prima etapa. aste cea care rez ida in MBA. Aceasta are rolul da a inca rca da pa hard-disk a doua etapa care este suficie nt de complexa pentru a putea incepe incarcarea efectiva a karnelului sistemului da operare. i n caa de-a doua alapa poate Ii oferil un ecran da selectie pen!ru situatia in care coexista doua sisteme de operare pe acelasi sistem fizic. Unele bootloadere (spre exemplu GRUB versiunea 1) au 0 faxa inlermediara - 1.5 penlru a permilea ciUrea de informatii de pe harddisk dincolo de 0 anum ila limita. Dupa acest pas bootloaderul va inca rca nucleului sistemului de operara (sau 0 parte a acestu ia) si va transm ite controlul caire acesla. Exemple de bootloadar-e sun!: GRUB (GRand Unified Boo/loader): distributiilor linu~ ;

bool/oader-ul implicit pe majoritatea

CAPITOLUL 6. PORNIREA !?IINITIALIZAREA SISTEMULUI LlLO (Linux Loader): suprema!ia GRUB;

159

boorloadarul implicit pe distributiile Linux lnainte de

NTLDR {NT Loader} : boo/loaderul Iolosil de Windows NT, 2000. XP. 2003; winload .exe: boatloaderul folosit de Windows Vista: SYSLINUX: 0 suita de bootloadere destinate diverselor medii de boot

Chalnloading Modul eel mai des inIAl nit prin care un sistem de ope rare este initiatizal eSle prin specific area directa a imaginii nlltleului catre boatloader. Alternativa 0 reprezinta bootarea indirecta a sistemului de operare. Acest lucru presupune ca boot/oader-ul allal i n MBR, i n loc de imaginea unui kernel, sa incarce un alt bootloader care va incarca la rAndul sau imaginea de kernel a sistemu lui de operare. Acest mod de incarcare a unui sistem de operare se nume~te chainloading.
Bootloaderele specifice Linux (precum GRUB sau LlLO) incarca sislemete Windows folosind chainloading. Spre exemplu, daca dupA l ncarcarea boot/oaderului GRUB se opleazi! pentru bootarea Windows , alunci se va inca rca bootloaderul Windows {NT LOR} care va ini!ializa Ia ril.ndul sau sistemul da operara.

6.2.4

GRUB

GRUB (GRand Unified Booloader' ) este bootloaderul implicrt pe distributiile Linux si aile sisteme de ope rare din fam ili a Unix si este, de obicei, Iolosit in situa!iile de mulliboot (cAnd pe sistemul de calcut coex ista mai multe sisteme de ope rare). Aceasta sectiune va prezenta detalii despre versiunea 1 a GRUB, denumita simplu GRUB. Versiunea 2, denumita GRUB 2, care a incepul sa lie utilizatA recenl, esta prezentata In cadrul unui s1ud iu de caz (vezi sectiunea 6.6. 1). GRUB este laplul ca exisla 0 la~a inl ermediara 1.5 pentru sil uatia in care ex ista o timilA de vi~ibi l itate a harddiskului. Ca ~i in cazul allor bootloadere , prima laza (cea care rezda In MBR) are rolul de a IncA rca taza a doua sau, dacA este nevoia, taza 1.5. OatorilA dimensiunii reduse. prima la~A nu detine informatii despre sistemlJl de fisiere. in schimb. la~a 1.5 cietine inlorma!ii despre acesla si poate locali~a si incArca in mod corespunzAlor la~a a doua. Faza a doua esle responsab ilA CIJ citirea lisierului principal de configurare (!boo t !gtu b!menu . ls t) , afi~area ecranului de optiuni 5i incarcarea nllCleullJi sistemului de ope rare. in ligura 6.6 este prezenlatA localizarea dileritelor faze ale GRUB pe hard-disk. Se ob5ervA cA prima elap.:! {grub stage I} se gase~te in zona de cod executabil din MBR. Faza 1.5 (grub srage 1.5) se gAse~le in zona de compatibi litate a harddisk ului (primii 32 KBJ. Aceasta etapa recunoaste l ipul sistemului de lisiere pe care se alia etapa
I http l /www.gnu.org/wftware/grubJ
Spec~ic

C JPYnghted matanal

160

lNTRODU CERE iN SISTEME DE OPEAARE

\~
"""
I(;RUS

,,~

. ... p

~~

oos compo,

" . ge

I_~)

I><>OI:tooder
IG~UB .\.~~

I)

" 'o j:

. I:

Figura 6.6: Structura GRUB a doua boot.


~i

aSle ulilizata pentru incarcarea acesteia. Etapa a doua (ezidA in partilia de


a~a

Fi~iere le asociate GRUB se gasesc pe un sistem Oebianrubu!11u, in /boo t /gr ub, cum aSia prezentat mai jos:

" " " " ,. " " "

, , ,

r a.van@asgard , /toot/grub$
dehult

de,,;ce . m~p
e2fs_ stagel _ S

C.t_ stageL5 jh _ stageL5 menu . 1st

" '""

ml nix_ stagel _ S re l seds_ stagel _ S stagel

stage2 xfs_ 5ugeL5

razvan @ a'garci : /boot/grubS


t o t ~l

-c",- r --r-- cw- r -- r -- r\;-r--r--

'" , ,

"

.,

root root
r OOt rOOt

- c",- r -- r -- r,,- r -- r -- r,,- r -- r --

- r .. - r -- r -- r,,- r -- r --

- r,,- r -- r --r"-r--r-- rw- r -- r --

, , root , root , root , , root , root roo t

"

, ,

r oot root 7584 7424 root root sin root 4"124 6848 root root 9280 root root root 108392 rOOt root 8904

'"

2009-0 1- 1 7 2009 - 01 - 11 2009 - 0 1 - 1 7 2009 - 0 1-1 7 2009 - 0 1- 17 2009 - 06 - 23 2009 - 01 - 17 2009 - 0 1- 17 2009 - 01 - 17 2009-01-17 2009 - 01 - 17

11 : 55 d .. fault 11 : 55 de vice . map 11 : 5S e2f ~_~ tdg~I _ 5 11 : 55 fat_stagel_5 11: 55 jl$_ stagel _ S 1 2 , 4 5 m<>nu.lst 1 1 ; 55 mln l ~ _ sugeL5 11 : 5S reiserts_ stag e 1_ 5 1 1 : 55 st a ge l 11 ; 55 s tage2 II : 55 xf " _ ,, ugeL5

unui sector (512 octeli). Faza 1.5 are 0 formA specializatA pentru liecare sistem de lisiere (e2 fs_ st a.gel _ 5, r eise r f s_st ilgel _ 5 etc.). Spaliul ocupat este in jur de 7-8 KB, deei incape larA probleme in zona de eompatibilitate de 32 KB a hard-diskului. Faza a doua este deseris!! de fi~ ierul stage2 cu dimensiune mai mare decal a celorlalle (circa t OO KB). Faza a doua este resposabilA penlru citirea hsierului de conlig urare menu. 1 st ~i incArcarea ulterioara a nucleului. alenal

Sa observA eA prima lazA se gAseste sta.gel care are exact dimensiunea . l r'1 lisierul .

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI


Vizualizare sts ge1 si stag e 1.S pe hard-disk

161

Pentru a ver ifiea prezell!a primei laze ~i a fazei 1.5 pe hardd is k vom lo losi ut ililarele dd si hex dump. Illlro prima laza va Ii rea lizala 0 copie a primului sector de pe hard-disk ill l i ~ierul firs t_sec t or si apo i a urmatoarelor 10 sectoare ill f~ierul nex t_ sec t or s .
root@a.gara:/ b oo t /grub~ aa I t - /dev/ haa of- first sector count - ) 1+0 recora. In 3 1+0 r e coras out 512 bytes 1512 BI copiea , 8 . 9Ie - 05 ,econa" 5 . 1 MB h
~

root @ a,gard : /boot/grubl aa It-/de,,/ hda of- ne xt _,e ctor , count-IO Ski p- I 7 10.0 r eco r ds i n 3 10.0 uco r d, out 5120 byte. 15. 1 ~BI copiea , 0.000137291 .econas. 37.3 MB/s
~

In f i rst _ secto r ~i next _ sector se gas esc informatiile binare cOn! inule in prime le secloare a le hard-d isk-ului. Ele vor Ii comparate cu lis ierele imagille din /boo t /g ru b lolos ind uti litaru l h e xdump_ De exemplu, penlru s t age l'

, , , , " "
" " " "

r~z"an @ a"gard : /boot/grubS

hexdump fir't_, e ctor ed55 5~13 e084 0575 He6 Ol ft 000) 9966 ebOO 4"lfe 6412 4420 612 0012 00c3 0000

I .. . ) 0000070 0000060 0000090 OOOOO a O ( 1 0000170 0000180 0000190 00001aO


(. .. I

)4 .. 8 f601 7252 8 149 .. 183 HOI 8b66 Hie

SOd 5474 41b4 ~~bb 55fb 75 a ~ ~OO 7c4 1 663, 4c8b be lO 7c05 cl1c 1004 c700 0244 30e9 4100 6552 cdOe beOO 7a99 2ae6 6f65 006d 6) 4 8 646 1 2000 7245 adO OOk t 475

be06 5552 7369 Olbb

1a94 2042 006b 0400

" " "

r~zv~n @ ~"g a rd :

Iboot/grubS hexdump

5t~g e l

" " " "

I ... ) 0000070 0000080 0000090 OOOOOaO


( ... I

H .. $ f6QI aOd 5474 41b4 ~abb eelS S 5an 1252 8149 55fb 15~a ~043 7c4l c084 0575 e 183 HOI 6631 4cSb b~10 7c05 Hc6 Olff 8b66 44 1.. cnc 1004 c700 0244 000 1 9966

" "

0000170 0000180 0000190 00001 a O


(. .. I

be06 5552 7369 01bb

1d94 2042 006b 0400

30ea 4100 6552 celOe

beOO 7ci99 6t65 006d 646 1 2000 a c l O 003c

2a e8 6148 7245 f 415

ebOO 6412 6f72 00c3

41fe 4420
DOn

0000

Dupa cum se observa. in primul sector al hard-diskului se gase~te imaginea primei etape a GRUB. iar ill urmatoarele sectoare imaginea etapei 1.5. Daca apar deosebiri intre imagi nea aflata in sectoarele discului si cea d ill Iboot/grub, acestea sunt d in considerente de adaptare la geometria discului. Imaginea celei dea doua lale esle incarcata de laza 1.5 din /boo t /g ru b/stage2, aceasta putil.nd accesa structura sistemului de I~iere.

162
Creare unei dischete de boot GRUB

lNTRODUCERE iN SISTEME DE OPEAARE

Desi . dischetele sun! dispozitive pe cale de disparitie . (5i . costa in ziua de azi mai mu~ decAl un CD), yom descrie In seop didactic modul in care S6 poate crea 0 discheta de boot GRUB. Discheta va trebui sa ca ntina imaginea pentru prima ~ i cea de-a daua laza (nu aSle nevoie de faza 1.5 intrucfll nu avem limitare in cest caz) . Penlru aceasta S9 poate lolosl lolosi utilitaru l c a t:
Ioot @ anaconda : /boot/gIubf
c~ t 5ta9~ 1

,tage 2 ,

Idev/fdO

sau utilitafl.ll dd:


2

Ioot @ anaconda : /boot!grubl dd if _ s t age l of_ /dev/fdO 1+0 r ecorci. i n 1>0 r ecords out 512 bytes (512 BI cop i ed , 0.0426716 seconds , 12 . 0 ~B/$
root @a nacondat/boot/gr uM 2 10+1 recorda 10 2 10+1 records out cia it - stage2 of- /dev!fdO sHp _l

7
!

107656

byt ~ '

(108 kBI

copi~d ,

0 . 020834

" ~ conds ,

5 . 2 MB is

Daca se conligureaza BIOSul pentru a boota de pe discheta, utilizatoru lui ii va Ii oleritA conso la GRUB de configurare (vezi sec!iunea 6.3).

6.3

Configurarea GRUB

Conligurarea GRUB se realizeaza prin in!ermediul li~ierutui /boot/ grub/menu. 1 st. in acest lisier su nt precizate op!iunile de boot prezente in meniul GRUB, cu alte cuvinte sistemete de opera re care pot Ii lncarcate cu ajutorul GRUB. Etapa a doua citeste acest li~ier de configu rare ~ i olera utilizatorului ecranul de op!iuni: 1 n continuare este prezentata 0 parte dintr-un fisier de con figurare /boo t /grub/menu. l st 5i sun! descrise elemen!ele de configurare pre zente in acesta:
2
~

ff dehult num f Set the default entry to the entry number NUM.

Numbering sUrts from 0 ,

f the entry number 0 i s t h e default i f the co","" nd i s not used .

'"'

(. .. 1
default
If tim~out " ~ c f SH a t i meout,
~nt r y

,
,

in SEC , econds. befo r e a utomatically boot1ng the default

Ino r ma ll y

th~

" 11 " "


,.

tim ~ out

first entry

d ~ tinea) .

f Pretty co l ours color cy a n/blue wh ite/b lu e

, 5 (. .. 1

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

163

Figura 6.7: Ecran optiuni GRUB

" " "


,g
2<1

Mzvan'" ke rne h Debian GNU ILl nux, k erne l 2 . 6 . 18 - 12fast (hdO , 2 ) I boo t Ivml inu z - 2 . 6 . 1 8- 12 fast root _I dev /hd .. 3 to

t itle root
k H n~ l

"
2>

s .. ve d efault
titl e
root

" ,.
2S

""
~,

k erne l savedefaul t
(. . .

De b idn GNU/Linux , kern" l 2 . 6 .1 S-12hst (s i ng le -u ser mod,,1 (h dO , 2) Ibootl vml i.nu~ - 2 . 6 . 1 6-12 fas t root _ I dev I hd a J ro si ngl e

~$

'lO

f ,his entry a utomatic all y added by the Debi"n insta ll er foe a non-jinux

" " " " " "

"

00 /dev/hda l
Micro ~ of t

t i t l~

Windows

roo t
5 av~default

(MO , O)

"

Pro fess i onal

m.. k e activ@ ch .. inload<>r

OPliunea defaul t precizeaza opliunea implicita din meniu folos ita pentru bootare. Fisiarul de configurare contine mai multe intrari pantru diferite sistema de operare. Numarul care urmeaza dupa opliunea defau l t indica sistemul de opera re care va fi bootat implicit in cazul i n care utiliz atorul nu intervine in momenlul afisarii meniului de opliuni. Numerotarea porneste de la O. Presupunand ca, in figura 6.7, nu ar exista aile op\iuni de sisteme de operare, bootarea implicila pe Windows XP Professional este conditi onata dE! pre2E!nta optiunii default 4. Opliunea t i meout indica timpu l de
a~teptare

pentru ca ulilizatorul sa aleaga una din

164
optiunile
ali~ata

INTRODU CERE iN SISTEME DE OPERARE

in meniul de boot. Dadl aces! limp expiri!., sa va incil.rca sistemul de

operare ind ical de optiunea cl e faul t.

Optiunea colo rs afi!;eaza coloral meniul GRUB.

OP!iunea de sistem de operare Caea ce apare, in continuare , in exemplul de lisier de cOrlfigurare de mai sus sunt intrArile asociate pentru sistemele de operare care pot Ii boot-ate. Sa observil. d. !iacare inlrare conIine un set de directive de configurare. Aceslea SUrlt:
t i t 1e: asle un sir de caraolare reprezentand numele intrari; a~a cum va aparea

ea in ecranul de op!iuni GRUB. De$i nu exista nieia limitare de nume, sa recomanda ca titlul sa fie un nume reprezentativ:
root : reprezintA partilia pe care sa alia imaginea de nucleu a sistem ului de ope rare; ace asta paale sau nu coincidil cu partilia unde este montal sistemul de hsiere riidacina (I ); kernel : reprezintil calea ciltre imaginia de nucleu in cadru l parli!iei de mai sus; subdirectiva root precizeaza partipa asociata sistemului de li$iere radacina (I); op!iunea r o precizeaza laptul ca sistemu l de li$iere va Ii mOlllat read-only: se observa ca in cazul Windows nu ex istil optiullea ker ne l , deorece GRUB nu poate boot-a direct nucleul Windows ci va apela NTLDR (bootloader-ul de Windows) , lucru indical prin op!iunea ch ai n 1oader+1 ; op!iunea +1 semnilicl citirea primului sector din partilia ( hdO , OJ ; optiunea mak ea ctiv e slabile$le parli!ia ca l iind parlitia aclivil; op!iunea save de fa ult : datil direcliva de f ault este lolositil i n forma default saved si optiunea folositil la boat-are are opliunea savedefault, alunci la urmilloarea boot-are se va selecta_ implicit. aceea~i optiune,

Conven!ia de denumire G RUB Data in Unux, primul hard-disk esle accesibil sub numele / dey /hda, iar prima parti!ie a acestuia sub numele /dev/ hda l, GRUB folose~te 0 alta conventie pentru dellumirea distur ilor din sislem $i a partiliilor acestora. Astlel, pentru a reteri primul disc din sistem, GRUB lolose~te denumirea ( hdO) . Numerotarea discurHor incepe de la O. Spre deosebire de Unux, GRUB nu lace dislinqie i ntre tipul de controller lolosit de discurile din sistem: IDE sau SCSI. Astlel. primul disc este denumit i nloldeauna I hdO) . Pentru (elerirea primei parli!ii din primu l disc, GRUB 1010se$le denumirea I hdO , O) . in ton cu ce le de mai sus, a 3-a partitie de pe al doilea disc al sistemului esle releritil de GRUB sub forma I hdl , 2) . Tabe lul 6.1 de mai sus olera 0 analogia intra denumiraa GRUB si Unux pantru discuri ~i parti~i.

Consoli! GRUB in afara lisierului de configurare, GRUB poate Ii configurat 5i prin intermediul unei console i asociale. Aceasta poate Ii accesata in doua moduri: dintr-un sislem Unux atanal

CAPITOLUL 6. PORNIREA !?IINITIALIZAREA SISTEMULUI

165

folos ind comanda grub. sau din intermediul meniului de boot al GRUB. in ambele cazu ri utilizatoru lui ii este oferit un prompt grub> unde poate introduce comenzi specifice. Utilizarea consolei GRUB esle limitata la situaliile de testare a unor optiuni. de recuperare sau de troubleshooting. Un exemplu util de utilizare a consolei GRUB este (re)instalarea GRUB, asa cum este descrisa in seqiunea 6.6.3. Accesarea con solei GRUB poate Ii necesara ~ i in momefltul in care se dore~te alterarea unei op!iuni de bootare. Spre exemplu, in ecranul de meniul de boot GRUB, apiisarea taste; e peste 0 anumitil optiune conduce la apar;lia conso le; GRUB cu posibilitatea editarii acelei optiuni de bootare. Acest lucru este util in cazu l unei erori (sa preciza! de exemplu un nume gresit pentru imaginea de kern~) sau In cazu l in care sa pierdul parota de rOOI ~i se dore~te recuperarea aee5teia. 10rtAnd sistemul s1l porneasca 0 consol1l de root (prin folosirea opliuni; i nit -/ bin /bas h (vezi seetiu flea 10.6 .2).

6.4 incarcarea nucleului


Dup1l ee este incilrcat in RAM 5i rulal, boolfoaderul este respOflsabil eu incarcarea nueleului sistemului de operare ~ i transmiterea controlului catre acesta. ea ~i taza a doua a GRUB, flueleul rezida intrun lisier din sistemul de l i s~re, denumit imaginea de nucleu . in cazu l GRUB. loca1ia aces'tui li~ i er este transm isa ca parametru in cadrul directivei ke r ne l din / boot / gr ub /menu .l st.

6.4.1 Imaginea de nucleu


Imaginea de nucleu este un fi~ier executabil con1inand cod ul ~i datele necesare pentru ru larea nueleului sistemului de operare. in Windows, imaginea nucleului se numeste ntosk r nl . exe si 9sta localizat1l in c : \W i ndo"' s\syst em)2\ nto sk r nl . exe. in sislemele linu x. aceasUi. imagine rezida, de obieei, in /boo t , ~i are denumirea in forma vm l inuz-v ersi une_k erne 1 (spre exemplu. v rn l inuz- 2 . 6 . 29 . 1 sau v m l i nuz2 . 6.31 - 020631 - generic).

166

lNTRODU CERE iN SISTEME DE OPEAARE

ComarKIa f il .. indica un astlel de fisier ca fiind 0 imagine de nucleu Linux:


2
root @ ~ ''lard: /boot. l ile vmlinuz - 2 . 6 . :)1- 02 0 63 1- 9~n .. r ic vmHnu. - 2.6.3 1- 020631 - generiC : Linux Kerne l x86 boot execut ~ ble RO - rootl"S root_ dev Ox6801 . ~wap _dev Ox) , No rmal VGA

in mod ob i ~ n u i t imaginea de kerne l ocupa In jur de 3-4 MB. Poate Ii insa constransa la dimensiuni mai miei prjn eliminarea anumilor compone nte, aturx:i cAnd eSle cazul (spre exemplu in cazu! sistemelor embedded' ). Faptul ca denumirea imaginii se te rmina in z (vrnlill uz) indica 0 imag ine de kerne l comp rimala. o imagine de kernel comprimata coniine la incepulul ei 0 sec!iune direct executabila, dupa aceast1\ sectiune, S9 gaseste zona efectiv comprimata.
~j

Dupa incarcarea imaginii de nucleu, boo/loader-ul trans mite contro lul executiei catre kernet (lie catre imaginea necomprimata, lie caIre zona necomprimata). lntr-o prima !aza nucleul initi alizeaza si configu reaza dispozitivele hardware ~i memoria. Toate dispozibvele inipalizale de BIOS vor Ii rei ni)ializale pentru a asigura robustelea sl independen)a de modul in ca re BIOSul real izeaza initial izarea. Urmatorul pas 11 rep rezinta decomprimarea imaginii de nucleu. Dupa aceasta se monteaza sistemul de li~ie re ri'l.dacina precizat prin parametrul roo t - /dev/ . . . al directivei kernel di fl l isierul de CO flf igurare GRU B. Pe masura ce flucleul iflitiali zeaza alte subsisteme, pe ecrafl SUflt af i~ate mesaje de status. Incarcarea completa a flucleulu i se iflcheie cu crearea procesulu i ini t (ce are pidul 1) din imaginea /s bi fl/i nit. Se poate alege 0 alta imagine pe baz a ca reia sa se creeze procesul i nit , pri fl specilicarea optiunii i ni t - / path/to/new/e><e c la boot-area nucleului. Un caz tipic pentru aceasta este recuperarea parolei de root (vezi secliunea 10.6.2).

6.4.2

Optiuni de boot-are pentru nucleu

Nucleullinux poate Ii configurat penlru boot-are cu diverse argumente ca re Mi-i modilice lunc\ionalitatea. Acestea sunttransmise ca parametri de boot-are in directiva kerne l a GRUB. Conligurarea acestor argumente paate Ii reali zatl'i l ie prin li~ieru l de conligurare (jboo t /gr ub/menu . 1 st). lie prin accesarea consolei GRUB (apasarea tastei e in ecranul de op)iuni GRUB). o lista completa cu op)iunile de bootare poate Ii gasita online'. Cele mai importante dintre aceste optiuni sunt: debug:
ali~eazl'i

mesaje suplimentare la
ali~are a

in ~rcarea

nucleului;

quiet: dezactiveaza

de mesaje la lncarcarea nucleului;

resume:suspend-<i evice (util pentru laptop-uri in cawl finc)iei de hibernare): specifica discul unde se alia imaginea suspendata a nucleului; rool =devlce: precizeaza parli\ia unde se alll'i sistemul de
li~ i e re

radl'icinl'i;

, http;!le n.wi<iped ia .orglwikilEmbeddotd_.y.18m ' http;!/www.~erne I,orglpubmnu',,"e fn .Vpeo p~IQreQ~hll< nil< nJ><If Ic h09 ,pdt

CAPITOlUl6. PORNIREA SIINITIALIZAREA SISTEMUlUI

167

rolrw : specilica daca sistemul de fisiere radacina eSle montal readonly sau read write la boolare: Inll=fitename: specificA execulabilul care ~a Ii lncarcal la crearea procesului i l1i t (implicil acest execulabil eSle / sbi ll/ i llit): S sau single: specifica pornirea lui init in mod singleuser.

6.5 Inilializarea sistemului


lncarcarea nucleului se incheie cu pornirea i lli t. procesul cu pidul 1, parinlele celorlalte procese din sislem, in cele ce urmeaza vom presupune ca procesul inil a lost creal in mod obi~nuil din imaginea / sbi ll / i ll i t . i llit eSle responsabil cu pornirea celor lalte procese importante ale sistemului, a daemonilor ~i a proceselor ca re asigura accesul utilizatorului la sistem (getty ~ i mediul grafic).

6.5.1

in it

i lli t eSle resposabil cu crearea celorlalte procese importante din sislem si, astlel, de realizarea unui sislem l unc!ional si inleracliv. Penlru precizarea proceselor care trebuiesc pornile si a op!iunilor primile de ci'ltre aceslea, ill i t Ioloseste un set de fi~ iere de configurare decrise in continuare.

Nlve turl de rulare (runlevels) inainle de a prezenta modul in care se conlig ureaza ini t , Irebuie descrisa no!iunea de nivel de rulere (runlevel). Un nivel de rulare se relera la un co nlexl de utilizare a unui sislem de operare. Altlel spus, se relera ta ce servicii olera sislemul utilizatorului. Un runlevel difera de un altul prin dispozitivele monlale ~i prin serviciitor pornile. Sunl defi nite 7 niveluri de ru lare, numerOlale de la 0 la 6. Aceslea POI fi folos ile diferil de diversele dislrib..ilii Linux, insa 3 dintre ele au 101 timpu l aceeasi semnificalie: Runlevel 0 - Halt : este Iolosil penlru oprirea sistemului; Runlevell - Si ng l e: eSle Iolosil penlru un sislem singleuser ; Runlevel6 - Reboot: esle folosit penlru reporn irea sistemulu i. Pentru afi~a rea run/evel ului curent se - r (ca utilizalor obisnuil):
lolose~te

comanda runlevel (ca rool) sau who

, "' ,

roothsgu o -I run l .,v.,l

ra<van@a'garo : -$ who - r
r u n- l e ve l 2 2009 - 09 - 2317 : 51

168

INTRODU CERE iN S IS TEME DE OPEAARE

Schimbarea run leve lului S8 real izeaza prin ru larea comenzii i nit urmal~ ti e numarul runlevel-ul uL Astlel ru larea comenzi i
Loot@asgard , -' i nit 0

este echiva lenta eu f\.Ilarea comenzii:


coot@asgacci : -I shutdown -h

""

Loothsqard : -I halt

Conligurarea init

principal de configurare pen\ru ini t este / etc! ini t tab. Este prezentata, in continuare, 0 parte a unui fisier de co nfigurare I etc/ i ni t tab pentru a d eser ie modul in care aeesta afecteaza com portamentU I io i t :
Fi~ieru l

( ... I

,
1

> f

Th~ d efault r unl"v"l . i d : 2 : 1J'litdef a ult :

... )
~nd

"
,

f letclinit. d execut"'s the S

K .c ript. upon change


,0 " 12

f f f f

f of runl eve l .

Runle" .. l 0 i . Runlevel 1 is RunJeve19 2 - 5 Runlevei 6 is

h "lt . single - user . are molti - user . reboot . 0 i 2 3 4 5

" ,.
'5
,~

iO : O : w~it : /etc/init . dlrc

li : l : wHt:/ Hc/ init . dlrc


12 : 2 : wHt : / ~ tc/ i nit . dlrc

" '" ,.
20
21
22

13 : 3 : wait : /Hc/ i nit . d/r c 14 :4 : wait:/etc/ i nit . d/rc 15 : 5 : wait:/etc/init . d/r c 16 :6:"ait : /Hc/ i nit.d/rc 6 f Normally n ot re~ched , but
.6 :6,r esp~w n: /sbin/sulogi.n

f ~llth r oug h

in

C~$e

of emergency .

"

""
~

,
"

2'
~

'"

"

l2

" "

~
~

. . . .
f f f

f ~h ~t to d o wh en CTR L-ALT - OEL is pressed. ca : 1234S:ctrlaltdei : /sb ln/shut do ... n - tl - a - r now

(, . . 1
/sbin/getty invocations foc t he runieveis. "id " f i e l d MUST b ~ t h~ s~m~ as the l a ,t of the device l a fter tty J .

Th~

chH~ct ~ r"

f Format : f <id> : <runlevel$> : <action> : <proce,$>


D@bi~n
~dd

I Note that on mO $t f so if you wa nt to

sys t ~ ms tt y7 i. used b y th e X Windo ... SY$tern, more getty ' . go a h ead b ut $kip tty? if you run X.

2 : 23 : re"p ~ wn:/sbin/getty

i : 23 4S : reapawn : /abin/getty 38400 tty I 38400 tty2

CAPITOLUL 6_ PORNIREA SIINITIALIZAREA SISTEMULUI


w
3 : 2) : r e.p"w n: I Sbi n/getty 4 : 23 : resp"wn: I sbl nl getty S,23,respa wn :/stln/getty 6 : 23,respa wn:/stln/getty 38400 38400 38400 38400

169

"

" "

tty) tty 4 ttyS tty6

Dupa cum se poale

obser~a

intrarile din I etcl i nit t i1b au urmalorul formal:

<ict~ : <ru nl eve l s> : <action> : <proce'3~

unde' i d este un identificator unic al regul ii din inittab; r un levels reprezinta nivelurile de rulare asupra cArora se aplica regula; action eSle aC)iunea pe care 0 p rocess este comanda care

va executa inil;

va Ii execulata..

o descriere complela a regulilor posibile pentru inittab se gaseste in pagina de manual (man inittab). Vor Ii prezentate, in contin uare, regulile din exemplul de mai sus.
Linia 3 din captura de mai sus stabileste run/eve/-ul implicit , care este 2. Identilicatorii 10 pana la 16 de pe liniile 1420 prezinta regul i pentru scripturile de ini!ializare a servicii lor sistemului conform cu run/eve/oUt. Oupa cum se observa, comanda executata pentru l iecare run/eve/ in parte este le t el i nit . dl re urmata de numarul nive lului de rulare. Prin intermediul acestei comenzi se vcr porni servicii le specifice sistemului, dupa cum se va vedea in continuare. Linia cu identilicatorul ea (iinia 25) precizeaza ca se executa 0 reporn ire a sistemului in cazul in care se apasa. CTRL - AL T - DEL. Pentru aceasta reporn ire se ruleaza. comanda shutdown. Regul ile cu identilicatorii 1 pana la 6 (Iiniile 38-43) sunt lolosite pentru a porni procesul get ty pe term inalele virtuale ale sislemul ui. Dupa cum se observa si din comentariu, terminalul virtual 7 esle asociat mediului gralic si nu poate Ii folosit pentru a porni ge t ty. Actiunea res pawn semnitica laptul ca, in cazul terminarii procesului, i ni t il va recrea ,

Pornirea daemonilor de slstem Dupa cum s-a observat din fisierul de conf igurare I etel ini t tab, pornirea serviciilor sistemului in lunctie de run/eve/ se realizeazc"l cu ajutorul scriptului I etcl i ni t . dl re . Acest sc ri pt primeste ca argument numarul run/evel- ului si executa scriplurile aflale intr-un director specializat let e l reX. d / , unde X este I"H..Imc"lrul runlevel-ului. Astlel, daca run/eve/-ul esle 3, se vo r executa script-urile din letel re3 . d/ . Con!inutul directorului letel reJ . dl este:
r~zv~n@".g""ct :- $

is - 1 letc/rc3.ctI
"oot

tota l
vm"~ r e

lr"x r",x r wx 1 "oot


lr"'xrw ~ ~w~

is 2009- 06 -1 0 22 : S6
202009 - 07 - 22 14,17

KOavmw ~ r~

- > le tc / ini t . dl

~oot

root

K77ntp - s erve~

- > . /l ni t .

d1ntp - serve~

5 (. .. I

170
" lrwxr .. Hwx 1 uzv"n razvon exim4 I.",x,wx<"x ra:van rUvan Ifirebir<l2 (. .. I irwxrw,,"wx 1 root root

lNTRODUCERE iN SISTEME DE OPEAARE


152009- 0 1-1 7 1l: S4 S20exim4 - > . /init.d.! 19 2009 - 06- 01 12:51 S20!lrebird2 - > . /init.<I

"
10 " " "

18 2009 - 06- 10 22:56


172009-02-24 00 : 05

S90vm~a<e
S9lapach~2

- > letc/l n it.dl


- > .. /init . d/

"",,,are
lr ",xr"xrwx 1
apach~2
r a~ yan

rUvan

lr ",xrwxrwx 1 r a~ Y .. n rUvan IC . local lC\;xr"xrwx 1 razva n razv~n hmnolaqin lr"xrwxrwx r",van razvan in it . d/.top - bootlogd

I S 2009-01-11 11 : 47 S99rc . local -> . . /init.dI 192009-0 1- 1 7 11: 47 S99rmnologin -> .. / i nit . d 2J 2009 - 0 1-1 7 11: 47 S99stop - bootloga - > 1

Se observ1i c1l fisierele sunt un set de legaturi simbolice clltre intrari din /etc/init.d/. Directorul letc/init.dl contine scripturile de pernire/oprire/repornire a serviciilor din sistem. Astlel, pentru oprirea, pornirea sau repernirea serviciului apache , se tolosesc comenz ile:
<oot@as gara : -' fetc/init . a/apache start l stop l restart

Argumentele start I stop / resta.rt sunt comune majoritil.(ii scripturilor ce se gil.sesc in letc/init . d. De asemenea, se peate observa si un lormat al numelor l i~iere l or din let c/ rcx _d :

K numar nurne S numar nurne

K inseamnil. kill, iar S inseamnil. start. Astle l, existen!a legil.turii K08vrnware inseamnil. cil. serviciul vrnware va Ii oprit (prin intermediul comenzii /etc/init.d/vrnware stop) odatil. cu intrarea in nivelul de rulare 3. La lei, e~jsten!a legiUurii S20exi m4 inseamnil. cil. serviciul exirn va Ii pomil (prin intermediul comenzii lete/ init. d/exim start) odata cu inlrarea in nivelul de rulare 3. Numarul asocial unui din lormatul numelor de fi~ i ere reprez inla ordinea de pernire/oprire a serviciilor. Astfel, serviciul S91apache va Ii pornit inaintea S99rmno l ogin, iar serviciul K77ntp - server va Ii opril inaintea K08vmware (Ia oprire ordinea este descrescatoare).

sysv-rc-conf Avantajul schemei init de pornire a serviciilor este flexibi litatea, iar dezavantajul comple~itatea crescuta ~i un numar mare de li~iere de conligurare. Daca se dore~te eliminarea sau adaugarea unui serviciu la un run/eve/, va trebui creata 0 legil.turil. simbolici'l. ci'l.tre scriptul de pernire/oprire si denumita. folosind schema specilici'l.. Procesul peate Ii anevoios in cazu l in care se dore~le 0 conligurare mai avansata. Pentru a elimina acest deficient, se poate lolosi utililarul sy sv-rc-conf. permite adaugarealeliminarea lacM a unui serviciu dintr-un runleveL Acesta

sysv-rc-cont oleri'!. doua interlete de conligurare a serviciilor: una in linia de comandi'l. si una text. Inlertala texl permite parcurgerea serviciilor existente in sistem ~i adi'l.ugarealelimitarea acestora dintr-un run/eve/ printr-o simpla actiune de

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

171

chacillunchacil (Iolosind tasta SP ACE). Inter/ata In linia de comanda permite adaugarealeliminarea unui serviciu prin precizarea nivelului/nivelurilor de rulare dorite, a numelui serviciului si a ac!iunii (on sau off), In exemplul de mai jos, serviciul postf i x a lost adaugat la nivelurile de rulare 4 si 5 si serviciul apache a fost eliminat din nivelurile de rulare 2 ~i 5.

, , , '" " "

<oot@anaconda : /boo t /g rub l s ysv-<c-conf --ji9 t pos tfi x postfn O:off i : off 2 : on 3 : off 4 : off

5 : off

6 : off

root@aMconda : /bootigrub l sysv-rc-conf -- l e v e l 4 5 POStf , X on root @anacon da : /boot/grubf ~ y ~ v-rc-conf -- li ,t pos t f i x O: o ff I : off 2 : on 3 : off
po ~ t

fix

4 : on

5 : on

6 : off

roo t @an acon da : /boot/grubl s y ~ v-rc-co n f -- li ,t apach@ ~p~c h e O:off I : off 2 : on 3 : on 4 : on

S: o n

6 : off

t oot h nacon da : Itootl grub~ sysv - <c - conf -- l eve l

" ,.
'"

"

apache

'"
5 : oU
6 : off

root@aMconda : /bootigrub l s ysv-rc-conf -- liot apache 3 : on 4 : 00 apac he O,o ff i : off 2 : off

6.5.2 upstart
jncepand eu versiunea 6.10 (Edgy Eft), distributia Ubuntu a inloeuit i ni t eu upstart. upstart permite 0 conligurare asinerona, bazata pe evenimenle care au loe In sistem. Spre deosebire de alte altarnative per"llru i nl t , upstart este compatib il cu acesta si poate lolosi scripturile i n i t nemodificale (spre exemplu eele din / e t c/init . d). upstart asta, de lapt, un daemon i nl t modi/ica!. Ca orice sistem Linux, upstart esta pornit prin rularea / sbj n / i n i.t. in septembrie 2009 echipa de dezvoltare a distribuuei Debian a anuntat laptul ca va renunla la inil In lavoarea upstart'. Upstart a aparut ca urmare a dezvoltarii hardwareului. Daca pana de curand se putea ~ti din momentul pornirii sistemului ce dispozitive exista In sistem sau unde se poate monta sistemul de lisiere, dezvoltarea de noi dispozitive hotplug (care pot Ii conectate sau deconectate in timp real in calcu lator) a impus folos irea unui nou sistem de detectie si conligurare a acestora. upstart este a~adar un daemon init bazat pe evenimente (evenlbased inil daemon). Funclionarea sa Inseamna erearea de noi sareini pentru sistemul de operare in doua moduri: rularea de scripturi sau executabile in momentul producerii unui evenimenl; oprirea sau pornirea unui servieiu in momentul producerii unui eveniment. Un exemplu este montarea unui sistem de lisiere {spre exemplu de pe un USB flash drive}. Pasii urmali, dupa eonectarea dispozitivului USB, sun\: un eveniment de tip startup porneste daemonul udevd;
' http;lilw n, neVArticles!35t 0 I 31

172

lNTRODU CERE iN SISTEME DE OPEAARE

daemon-ul udevd este configu ra! s1l. trimitli un evenimenl de tipul b/oc/{-deviceadded pentru fiecare dispozitiv nou conecta!;
even imentul block-dellice-added determina verificarea dispozitivului si montarea

acesluia daca este listat in lete/ f stab:


dupa mOl1tarea sistemelor de
fi~iere

din letc/fstab se transmite evenimentul

fhs-filesystem.

Conligurare upstart

upstart este configura! prin intermed iul directorului / etc I event . d/ care S9 dore~le a Ii un inlocuitor pen!ru scripturile letel ini t tab , lete I init . d/ * ~ i I etc! rex . d. Fiecare lisier din lete/event. d deseris modulln care un job trabu ie coordonat:

, ,

Ioot @ u b untui: /etc/event . df

control-alt-delete
loga
~c -d etauLt

,,' ,,' ,,' ,,' ,,'

<d

'" ,,'
~cS - su l ogi n

.u l O9 in
tty l

tty)

tt y6

tty<

tty4 tty5

Spre exemplu. fisierul control-alt-dele t e prezinl1i ac)iunea inlreprins1i la ap1isarea CTRL - ALT - DEL, si anume repornirea sistemului:
,

root@ubuntu i: /etc/event . dl cat contro l- a l t - de l ete f control-alt-d"l"te - "mug@ncy hyp r e . . handling


f This tas k i s run whenever th e Co n tro l- I< l t - De l ete key combination is f presse d. usua ll y used to shut down the machIne.

sta~t

on

cont~O l- alt - delete

exec Isbin/.hutdown -r

no~

"Control -li lt -De lete pre ssed "

Scripturile rc. sunt aociate CU nivelurile de rulare. Dup1i cum se observ1i, la lei ca in /etc/inittab, se apeleaz1i /etc/init . d/rc cu argument numarul nivelului de rulare:
roo t @ ubuntui:/ e t~/ e v e nt . df c~t

re2

,
, ,

( .. J
st~rt on runl evel 2 stop on run l eve l ['<I script

"
,

( ... 1
e x ec
letc/init . d/~c

"

end script

Scripturile t ty. prezinta modul de pornire a getty pentru diversele terminale virtu ale < Ia lei ca in /etc/i n itta b). incepa.nd cu Ubuntu 7.04 (Feisty Fawn), upstart a inlocuit ca.teva procese daemon importante cum sun! c ro n. atd, anacron Si inetd.

CAPITOLUL 6. PORNIREA !?IINITIALIZAREA SISTEMULUI

173

6.5.3

getty

~i

login

Dupa pornirea daemonilor sislemului, init esle responsab il cu pornirea proceselor care asigura autentificarea utilizatorului in sislemul de calcu l. Dupa cum sa vi\.zut in cad rullisierului de conlig urale let c/ in i t tab. i n it perneste cAte un pl oces getty pentru liecare terminal virtual pe baza imaginii ISbin/get ty . in mod implk:rt sunt pernite 6 procese getty pentru term inalele denumite t ty l . t t y 2... t t y 6. Term inalul t t y7 esle rezervat mediului gral k: (In cazul in care acesta esle instalal). Autenlilk:area in mediul grafk: (prin introducerea unui ulilizalor/parola) nu se realizeaza de catre getty, ci de display manewer (vezi sectiunea 13.2.2). 0 oomponenta a sistemului de !arestre. Terminalele virtu ale sunt accesate plln intermediul combina,iei de taste CTRL - ALT - Fn. uncle n esle numarul te rminalului. Combinatia CTRL - ALT - F7 este lolosila penlru accesarea mediului gralk:. getty este lesponsabil cu crearea unei interlete de autentificare a utilizalorului 11i este respensabil atAt pentru autentilicarea prin terminale virtuale cat 11i pentru cone xiunea pe alte term inale precum interletele seriale. Dupa ini,ializarea terminalu lui, getty olera promptu l "L og in : " caire utilizator pe terminalul virtual, Utilizalorul va trebui sa introduca numele de utilizator si sa apesa ENTER. Dup;'\ introoucerea numelui de utilizator. getty invoca /bin/l ogi n. Astlel, imaginea sa eSle Inlocuita cu imaginea /bin/logi n 11i se creeaza procesul login . in conlinuare eSle cerula parola utilizalorului (ale ca rei caraclere nu vor Ii alisale pe ecran In momentul tast;'\rii lor din motive de siguranta). in acest moment. logi n peate verilica val idilatea utilizatorului care a dorit s;'\ sa autentifice. Daca utilizatorul a introdus o pereche nume de utilizalor/parola corecta atunci. in mod tipic. i se va deschide 0 sesiune de shell pe terminalul curen!. Altlel, procesul login moare. si, dup;'\ un interval de aSlepl are. getty eSle (epornil si olera din nou promplul de autentificare uliii zalorului. Schema de autentificare ~i pornire a sesiunii de she ll (in cazu l unei este prezentata In ligura 6.8:
- .......................... .
autentilic~i

reusile),

:.............. :
1<>gln,

.......................... .

inrt

inrt

:.............. :

.......................... ... : . . . . : d. n@k><:.lhO" ' -$ ............... i inlba,h i '- ..............


inrt

c..............:

l<>gln '

. ........................... . : . . . : d. n@I""OI I>o; I:_ $ .............. . . .


,.............. ,
' '

inrt

.......................... ...

. ,.............. ........................... .
in/b., h

Figura 6.8: Autenti lk:area intrun sistem Linux Se observa ca se ruleaza getty pe toate lerminalele. in momenlul in care utilizatorul

.1

INTRODUCERE iN SISTEME DE OPEAARE

introduce numele de utilizator. getty creaza proeesul login care cere parola utili zatorului. o datA cu introducerea si vaJidarea parolei, ulilizatorului ii esle permis accesul in sislem si sa deschide, In mod tipic. 0 sesiune shell. DupA cum se observA in figura 6.8, ulilizalorul da.n ruleazA shell-ul Bash {lbi n/bash}. La ineheierea sesiunii de shell curente. procesul gelty este repon il configural in / et c/ ini t t ab (respawn).
Fi~ierele Fi~iere le a~

cum esle

l etclpasswd

~i

letc/s hadow

/ete/passwd ~i fete/shadow sunt ulilizate pentru auten\iliearea ulilizatorilor in sislam si stocarea da inlormali; despre acestia. DupA cum sa poate observa dintr-o anali za simpla a li~ i erul ui fete /passwd :
ra<van@asqard , -S c a t fetclpasswd I qrep quest qUMt : x : 1001 : 1001 : Gue s t Accoun t " , : fho m ~ /qu e "t : /binfba s h

o intrare din acest

fi~ier

este de forma:

Ooua dintre elementele prezenlale sunt lolos~e de login pentru autenliliearea utilizatorilor: simbol-----parola si interpretor. C:l.mpul interpr etor specificA ce comandA va Ii executatA in momentul in care un utilizalor a fost autentilieat cu succes in sistem. De obieei aceasta comandA este un interpretor de comenzi (in exemplul de mai sus / b in/bash), dar poate Ii configuratA oriee altA oomaflda. In ligura 6.8 utilizalorul dan loloseSle /bin/ba.s h. Daca se va complela intrarea asociala cu / u sr /bin/vim, alunei oriee autenUfieare pe un term inal virtual va rezulta In deschiderea editoru lui vi m pe acal terminal. AI doilea camp dintro intrare in /ete/passwd (denumil aiei si mbo l -----paro l a) era folos il ini!ial pentru a stoca parola 1nlr-un format criplal. in felul acesla. oricine avea acees la fisier avea acces la parola criptal<'i si putea fo losi diversi algoritmi pentru a o sparge. 0 solu!ie ar Ii lost reslrielionarea accesului la li~ier. Tolu ~i, acesta conIine si alte inlorma!ii necesare allor comenzi. Solu)ia aleasA a lost crearea unui nou fisier, /ete/ shadow, care poate Ii accesat doar de ulilizalorul privilegia\.
root@anaconda , -J Is - 1 fete/shadow - rw- r ----- 1 rOOt ~ hadow 1084 2009 - 07 - 21 22 : 19 / e tc h hadow

Fisierul shadow contine numele de utilizalor ~i parola criptata. Pentru mai multe detalii man 5 shado.. ) sau consultali paginile de manual (man 5 pass ..d, secliunea 10.2.3.

6.5.4

Sesiune de shell

DupA rularea init ~ i autentilicarea utilizatorului In siSlem. acestuia ii eSle olerita, in mod tipie. 0 sesiune de shell (conlorm conligura!ie i din li~ierul / ete/passwd ). jnaintea olerkii promplului cAIre utilizator, procesul shell nou creal eile~te un sel de fisiere de oonfigurare. Acestea sunl lolosite pentru a stabili lormatul promptului, umaskul cure nt, aliasurile de eomenzi. variab itele de mediu.

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

175

in cazulunui interpretor bash (Bourne Again Shell), lisierele de conligurare citite sunt in ordine: le t e/ prof ile: acesla eSle shell;
fi~ieru l

global de conligurare penlru sesiunile de

-/ . bash _p r ofile sau -/ . bash _ login sau - / . pro f i l e: se executa primul gasit: -/ .bashr c eSle fisierul Obisnuit de conligurare locala; - / . bash _p ro file contine Iinia
if I - f

drepl urmare,

-/.bashrc I ; th @n
aceslli~ier.

-/ .bas hr c ,

fi

pentru a inlerpreta

Dup1l interprelarea fi~ierelor de conligurare. se slab i le~le mediul curent de lucru utili~atorului Ii esle oferil promplul unde peale introduce comen~i.

~i

6.6

Studiu de caz

6.6.1 Grub 2
in ciuda laplului ca nu a oferil nici 0 imbunalalire majora in ultimii ani. GRUB a ramas eel mai uti l i~al bootloader in cadrul dislributiilor GNUILinux. Aceasta datorit1i laptului ~ boolloaderul esle una din cele mai delicale componenle ale sislemului. 0 actualizare gresit1l a sa ducand la nelunc~onarea sistemului de operare. Unul din elementele care au conlribuit la lipsa de imbunat1ltiri aduse GRUB eSle si arhitectura veche ~i greu de extins In 2002 a inceput lucrul la 0 noua versiune de GRUB (GRUB2), vers iune care a adus aduc1l schimb1lri deslul de mari.
GRUB2 '~ a 10Sl rescris de la zero pentru a asigura 0 portabililale si 0 modularitale superioar1l versiuni i anlerioare. Printre avantajele pe care Ie olera se num1lra:

suport penlru scripluri; portabililale pe mai muite arhitecturi; suport pentru it 8n) ; un nou sislem de denumire a partiliilor.

Fi~i e re

de conligurare

GRUB2 se conhgureaza inlrun mod diferit lal1l de GRUB. in primul rand numele lisierului de configurare sa schimbal din /boot/grub/ menu . lst in /boot / grub/grub . efg . Spre deosebire de GRUB, noulli~ier de configurare nu mai eSle edilat direcl de c1llre utilizator, ci eSle general automat
, http ://wwN .9 n u.o ,g!.oftwa,elg ,ub/g ,tA>. 2. <On .htm I ' http. :llwiki.u bu ntu .comiGrub2 ' http;/le n. w ikiped ia. olglwikUlnwnation a lizatio n_ an d_ localization

176

lNTRODUCERE iN SISTEME DE OPEAARE

,
~

. .

. oot ~a nt : 'f

cat Iboot/grub/grub . ctg

f DO NOT ED I T TH IS FILE

f It is a u tomaticall y genHued by /uSr/sbin/grub-mkconflg uS1ng t emplates f fro m I~tc/g ru b.d and ~ etting ~ hom /Hc/de fault/gcub

(. .. 1

Configurarea GRUB2 se realizeza din Irei locuri: fisierul /e t c/defa. ult/grub : contine un set general de conl igurari, legate in
principal de diverse opliuni ale meniului de boot;

direclorul /etc/grub . ct: coni ine un set de scripillri care descoperA imaginile de

kernel instalate in sistem ~i gene reaza grub . efg ;


direclorul / boo t / grub : conIine bootloaderul 5i diversele module pe care acesla Ie to loseste.

Dupa edilarea unu ia din fi~ierel e din lete/ grub. d sau a I etc/defaul t Igrub va trebui ru lata comanda update- qrub2 pentru ca fisierul Iboot I grubl g r ub . cfg sa fie regene rat.

Editarea

op~iunilor

meniului

Fisierul / etcl del au l t Igrub contine configurAri ale meniului de boot. Spre exemplu GRUB_DEFAULT specifica op!iunea din meniu selectata in mod implicit, iar GRU B_TIMEOUT specilica timeoutul dupa care optiunea implicita va Ii utilizata pentru bootare.
, "

roo t @a nt : - I cat ! ~ tc/defaul t fgrub f If you chan g" this fil<> , run ' updat @ -g rub ' f !boot!g r ub!grub . cfg .

.. tt"rwards t o updau

!
" ,

GRUILOUIlULT- O GRUB_ TIMEOUT_ "i O GRUII_ DI STl\lSUTOR- ' lsb r"l"ue - I - s 2> !d"v/null I I "ch o Debla n '

10

Adilugarea unei noi op!iuni in meniu de boot Optiunile din meniul letc/grub , d : GRUB2 sunt create folosind scripturile din directorul

00_h ea der : incarca informa!iile din / e t cl default I grub; 0 5_ debian_ the me: configureaza lundaluri, cuiori Si leme; lO_ linux : caula imagini de kernel pe disc si Ie introduce in meniu;

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

177

. 20 memtestB6 +: Introduce in meniu imaginea Iboot/memtestB6+ .bin, daca aceasta exista: 30 _os - prob er: cautil aile imagini de sisteme de operare
~i

Ie include i n meniu :

40_cus t om: permite utilizatoru lui s;'\ introducil intrilri statice in meniu. Ordinea in care apar op!iunile in meniu este datil de ordinea numelor li~ierel o r_ Astfel, intotdeauna memtest66+ (20_memtest86+) va ap<'lrea dupil imaginile de kernel de pe disc { I 0_1 inu x). Pentru a adiluga 0 noua op!iune exista douil posibilitil!i: se editeazil li~ierul 4a_ cu s t om sau sa poale crea un li~ier nou, caz in care numele l isierului nou creat va delini pozi)ia intrilrii in meniu. Un exemplu de sintaxil care se loloseste pentn; adilugarea de noi opliuni este:
echo "lidding Cuotom Kernel \, SystemRescue" >\02
J
men u ~ntry

"

,
'0

" Ubuntu , linux 2 . 6 . 31 - 11 - c u 'to", " { set r oot ~ (hdO . 91 li nux Iboot !vmlinu z - 2 . 6 . 31 -11- custom root ~ UU lD ~ c 6 82 9~2 7- 2350 - 4,,8 4 - bdbb- 91b63fO I 8f98 ro i n i t rd Iboot I ini t rd . img-2 . 6 . 2 8 - ll -g"n .. r i c

" "
,.

"

menuentry " eoot SystemRescue CO from h 3rd drive " { .et root - (hdl, 101 linux !sysrcd/rescuecd subd;r- sysrcd s .. t~map - u$ !nard Isysrcd/ i n i tum . ig%
EOf

linia echo " Addi.ng Custom Kerne l & SystemRescu e " >&2 nu esle neaparat necesara. Daca eSle inclusa, atunci textul Adding... va Ii alisat in timpul executiei comenzii updat e-qrub2 . Gelelalle optiuni sunt similare cu cele din GRUB. Unul din elementele de noulale pe care lea introdus GRUB2 eSle 0 nouil schema de denumire a partitiilor. Astle l, discurile sunt denumile in lorma hdx, unde X este un numar ce incepe de la 0 (spre exemplu, primul disc SATA, este denumit hctO, al doilea disc SOB eSle hdl etc.), similar eu GRUB. in sehimb, partitiile se denumesc de lorma sda'! , cu Y incepand de la 1 (de exemplu a treia parli)ie de pe sda este scta3 ).

6.6.2

Pornirea sistemului de operare Windows XP

Pornirea sislemului de ope rare Windows XP urm;;ireste aceea~i pasi ca in cazul pornirii LinuK: pornirea sislemutui, incilrcarea BtOS, incarcarea baol/oaderului, i ocilrearea nucleului, pornirea serviciilor. pana la incarcarea bootloaderului sunt independenti de sistemul de operare deci, identici cu eei pentru LinuK.
Pa~ii ~i,

Bootloaderul penl ru Windows NT (NT. 2000, XP. 2003) este NT Loader (NTLDR).

178
NTLoader

lNTRODUCERE iN SISTEME DE OPEAARE

La tel ca ~i in cazul Unux, seclorul de boot al hard-disk-ului (MBA) sau al unei parti!ii (VBR) esle Iimitat ~i esle lolosil pentru incarcarea NTlDR. Imaginea acestu ia rezida in

c : \wi n dows \ n t I d r .
Dupa incarcarea bootloader-ului, acesta consulta fisierul boot . i ni pentru a localiza informaliile de pe partilia de sistem.

Conligurare NTLoader (boaUni)


Fi~ieru t bo o t. i n i se afli'!. pe part iiia de sistem (C :). Pentru vizualizarea ~i accesarea acestu ia \rebu ie perm isa vizual izarea l isierelor de sistem (Too l s->Fo l der Opt i on s - >View - >Hide pr ote c ted opera t i n g syste m f iles ).

Un exemp lu de continut al boot , ini esle prezentat in continuare:


(boot loa a er ]
2
,

timeo u t - 30
defau l t - mu l t I ( 0 I dis~ {O J rdl$ x (0 ) partitio n ( 1 1 \W1NDOWS

(operating systems ] 5 mu lti (0) <Ii s k (0) rdis k (O J partitiOl'l ( l) W I NDDWS " Microsoft N,n d o .. , Pcof~S S io n al " !no ~ xecute-op t in ffas t <let e ct

xp

in eaz ul existentei mai multor sisteme Windows, utilizatorului ii va Ii ali~at un ecran de seleeUe (asemanator eu eel al GRUB) _ Variabila timeout specilicli timpul de asteptare inainte de a inelirea sistemul de opera re dal de op)iunea implicita_ Lista cu optiuni le posibi le de boot-are a nueleului Windows XP 5e poale consulla aiei ' .

incarearea nucleulul Dupa rularea bootloader-ului, aeesta inearca in memorie imaginea de nucleu a Windows , n t os k r n l . e " e , ~i h all . dl l (Hardware Abstraction Layer), eontrolulliind apoi oleril nuclalului. Nucleul aste inC<'ircat in memorie in douli laze: ir'l prima lazli se ir'litializeazli dispozitivele sislemului (procesor, memorie), iar in a doua taza se i ncarea de~ice dri~er-el e de sislem r'lecesare.

Pornirea proceselor importanle


Dupli inelirearea nuclaului ir'l memoria, SU r'lt pornite, in ord ir'le, douli procese imporlanle: smss (Session Manager Subsystem): aeesla monteaza dispozitivele din sislem, creeazli ~ari abilele de mediu si pornaste winlngor'l (Wir'idows Logon Manager):
, http)l. uwor1 .mic ro.oft .comld ..la'-"t.asp <? ocOj_ kb;en_us ;833 72'

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

179

winlogon (Windows Logon Manager):

este procesul care se ocupa de aulenUlicarea utilizatorilor in sistem: in urma unei aulentificari reu~ ite sunt pornite shellul Windows (explorer) si alte procese ale utilizatorului.

Mai mulle detalii des pre procesu l de pom ire a unui sistem Windows XP se pot gasi aici'.

6.6.3

Interoperabilitate Linux-Windows

in cazul sistemelor dual boot Linu~ Wi ndows se poate Intampla sa se suprascrie MBRul si sa se piard a astlel optiunea dir&ct;"i de bootare a unuia dintre sistemete de operare. Pentru a r&C upera boolloaderul pierdut. trebuie rescns MBRuL

Reinstalarea GRUB Situatia cea mai frecventa. ee n&cesita 0 reinstalare GRUB este aeeea in care se reinstaleaza Windows pe un sistem pe care ex ista instalata ~i 0 distribulie Lin ux. La instalarea Windows suprascrie MBR astlel incAt 5e pierde stage I din GRUB. Pentru a reinstala GRUB. este necesar un mediu bootabil Linu x. Acesta poate Ii un LiveCD sau 0 discheta bootabila. in cazu l unei dischete bootabile utilizatorului Ii este oferit direct promptul de grub. in cazul unui LiveCD. utitizatorul va trebui sa deschida 0 consola si sa acceseze de acolo consola de GRUB:

root@asgard : -I grub Probing devices to gue s s BiOS ddves . This may ta ke a long time .
GNU GRUB

version 0 . 9']

(6401\ lower /

3072K upper memory)

, '"
11

M i ni mal BASH - like line edit i ng i s ,upported . For the first word, TAB l i st' po,sibl~ command co m p l ~tion$. Anywhere else TAB li .t. the pO$$ible completions of a device/f i lename. I
grub~

Presupunflnd Ca se doreste instatarea GRUB pe primul harddisk din sistem, vo r Irebui urma!i pa~ i i de mai jos: spec ificarea parti!iei care contine imaginea stage2 de GRUB:
grub> root (hdO , 2)

dac;"i nu se she pe ce partitie se afl;"i imaginile se poate lolosi comanda find, cauUind unul din f~ i e rele din Iboot. Cel mai adesea este cautat St8gel :
~

grub> find /boot/grub/stagel (hdO , 21

dupa descoperirea partitiei se realizeaz;'i pasul 1. apoi se instaleaza imaginea de GRUB in MBR :
g r ub> ."tup (hdO)
, http ://t9Chnet .micro .oft .com!. n u$/l ibr a ryibb4 5 7 123. a.px

180

lNTRODUCERE iN SISTEME DE OPEAARE

imaginea de GRUB poate Ii instalata si in sectorul de boot al unai parti!i i (VBR):


g r ub> ; e tup {hdO . O)

insa, 11'1 aces! caz, GRUB va trebu; sA fie porni! (chainloaded) eu un all bootloadar.
Comarlda quit sa folose~te penlru ie~irea din consola GRUB. Dupa repornirea sislemului, acesta va a!i~a ecranul de op~uni GRUB penlru seleclia sistemului de operare doril.

Reinstalarea NTLoader

Reinsta larea NTLDR eSle necesara 11'1 cazul in care se instaleaza 0 distribulie Linux lara a sa instata 5i un bootloader ($pre exemplu GRUB), sau In cazul unui MBR cor upt.
Pentru repararea MBR, Irabuie folos ita consola de rec uperare Windows XP (Rewvery Console). Pentru accesarea acesteia sa 101059$le CD-ul de instalare Windows si dupA bootare se alege op!iunea Repair. in co nlinuare se apasa R penlru rularea Emergency Repair Process si se alege Fast sau Manual Repair. Fast Repair eSle recomandala majorMti i uti lizatorilor, iar Manual Repair administratorilor si utilizatori lor a~ansati.
Mai multe detalii gasiti online ' ,

6.6.4

Personalizarea ecranului GRUB

Ecranul de optiuni prezentat de GRUB poate Ii anost. Pentru a rezolva acest neajuns se peate lolosi 0 alIa imagine de fundal. denumita GRUB sp/ashimage. Exista numeroase site-uri care olera astlel de imagini" ' ), Imaginile sunt imagini ,xpm arhivate (de exemplu hubble. xpm.gz). Penlru lolosirea unei imagini splash de GRUB trebu ie editat lisierul principal de config urare a GRUB (jboot/grub/menu .lst). Pa~i i ce \rebuiesc urmali sun\ prezenla!i mai jos: crearea unei copii de siguran!a a li~ieru lu i de conligurare GRUB:
root@asgard : /boot/grubf cp me nu. 1 st menu . lst . old

obtinerea unui GRUB:

l i~ier

.xpm.gz care contine imaginea de splash lolosrta penlru

root@asgard , /boot/grubf wget http://schragehome . delsplash/hubb l e.xpm


~

) 5

--2009-09-26 06 : 23 : 27-- http : //schragehome . de/splash/h u bble .xpm. gz Re;olvinQ schragehome . de ... 82.16S . 10S . 21S Co n ne ctin\l to ~ chr~\lehome . d~ 1 82 .1 6S . 10S . 21SI : aO ... conn~ct e d . HTTP reque ~ t sent . &"uting respon"e . .. 200 OK Le ngth : 99S93 {9"JK) 11mag~/x-x pi x map l Sav i n\! to : hubble . xpm . gz

."

1htlp1Iwww.nlfs.comlm .. sing-co t..Pt.-d-syste m-lilu .htm ' htlpll.ch. 89" ho m".d,,'. plash!
, http;llwww.q uMfVi.ion .comla .chl\l00710~I\l.Jjrub_.pfa.h_i. html ' ht'p;llkd" look,o.glindex .php ?xco nl,,nl mOOe _35x45

CAPITOLUL 6. PORNIREA SIINITIALIZAREA SISTEMULUI

181


"

1 00 ' I 0.5.

-----------------------------------
06:23 : 27 [209 KB/.) -

99 , 593

20~K/.

200~ - 0~ - 26

'h ubbl e .xpm. gz ' saved

1 ~~593/99593)

editarea fi,?ieru lui de configurare:


I ' .. I
2 ) I Pre tty co lour s Ico lor cyan/blue ~hltefbl u e "pla" h image - {hdO , 2 ) fboot! qrub/hu bbl e . xpm . gz

I . . .I

in exemplul de mai sus partit ia unde se afiA imaginea de GRUB este a treia parti!ie de pe primul disc (hdO , 2 ). DupA editarea si salvarea fis ierului se reporneste sistemul. Noul ecran de opti uni GRUB va folos i ca imagine de funda l hu bble . xprn. gz .

Cuvinte che ie

pornirealrepornirea unui sistem bootinglbootstrapping fazele pornirii unui sistem de operare BIOS POST CMOS dispozitiv bootabil sector de bootlsector bootabil MBR . VBR labelA de partitii bootloader fazele unui bootloader (stages ) GRUB slage l , "_slagel _5, stage2 Ibootlgrubl menu.lsl

consola GRUB imagine de nucleu optiuni de incArcare a nucleului init run level /etcJi nittab letcJinil.d,letcl rcX.d getty login lelc/passwd, l elc/shadow /etc/profile. -/,bash"'profi1 e, -I. bashrc NTLDR boot.ini smss, winlogon Recove ry Console

i ntrebiiri 1. Ca re esle ord inea corecla a pornirii unui sistem?

o o

vml inuz. inil. GRUB, BIOS GRUB, BIOS. init. vm linuz

182

INTRODU CERE iN SISTEME DE OPERARE

o BIOS, GRUB, vml inuz, in;! o ini!, vmlinuz, BIOS, GRUB 2. Ce aSia un sector de boot?
o pr imul sector al prime; partiti;
o pr imul sector al una; parMi; sau al unui harddisk
o un

sector ce conIine semna:lura O~AA55 (ullimii do; octel;)

o un s6(:tor pe care se gases!B laza a doua a GRUB (5Iage2)

3. Care din urmatoarele esle un inlocuitor al inrt?


o upstart

o
o

downstart
slowstarl

o laststart
4. GlUe parti!;; prim are, active, extinse, logi08 S8 pot alia pe un hard-disk?

o
o o o

oricale. 1. 2, 4
I, oricll.te, oricate, 4

04,I,I,oricAte

I, oricate, 2, oricale

5. Care din urmiitoarele asocier; NU aSle valKlll.?

GRUBINTLOR
vml inuzlntoskrnl
PQS TICMO$

o
o

genylwinlogon

6. Care laza a GRUB asIa resposabila cu incarcarea imagini; de nucleu linux?

o slagel o stage1.5

o o
o

slage2 slage3
li~ierul

7. Care esle

principal de cOl1ligurare GRUB pe un sislem DebianiUbul1lu?

l elc/main_ cl l elc/grub.conl ibooVgrub_ COl11 ibooVgrublmenu.lsl

o
o

8. Care esle ordinea coreeta de pornire a unei sesiuni shell?


C JPYnghted matanal

CAPITOLUL 6. PORNIREA !?IINITIALIZAREA SISTEMULUI

183

o o o

login, init, getty, bash getty, bash, login, init inrt, getty, login, bash inrt, login, bash, getty

o o o o
o
10.

9, Cum se reprezinta, in notalia GRUB, a 3a partilie de pe al doilea disc? Idavlhdb3 Idavlhda2 (hd l ,2) (hd2,3)

lete/ sha do w con~ne parolele criptate ale uti lizatorilor sistemu lui. Poate fi accesat numai de utilizatori privilegia!i ai sistemului,

F~ i erul

o o
o o

ade~arat , ade~arat ,

adevarat fats

fals, adavarat fals, tals

C JPYnghied matanal

Copyrighted material

Capitolul7 Analiza hardware a sistemului


It's hardware that makes a machine fast. It's software thaI makes a fast machine slow. Craig Sruce

Ce 59 inva~ din a cest capitol ?


Principalele componente hardware ale unui sistem de Calcul

Mecanismele de accesare

~i

interogare a dispozitivelor hardware

lncarcarea si folos irea modulelcr de kernel


Utilitare de interactiune eu dispozitivele: l.s p c i , lsusb. s ma rtmontoo l s

LlICrul ell dispozitivele sislemului: cemanda dd


Interactiunea eu sistemul: / pr oc , s y act l

Cum se poate realiza 0 capie de siguran!A pentru MBR

7.1

Structura unui sistem de operare

Sistemul de operare esle eel care se ocupa de managemenlul resurselor hardware si software prezente in computer. SO are mai multe componente. fiecare ell un rol binI! definil. Diagrama 7.1 prezinla modul in care eSle slrucrural accesulla hardware.
Sislemul de operare esla compus din: kernel: nucleul sistemului de operare - se ocupa de comunicalia direcla cu hardwareul si olera un sislem de management al resurselor pentru aplicaliile din sislem: blbliotecr de lunc1li - pun la dispozi~e aplicaliilor un API {App/icalion Programming In/efface) comun penlru accesulla resursele olerile de kernel; aplicall1 - cele care vin cu un sistem de ope rare sun! de o~cei u!ilizate pentru conligurarea sislemului, modificarea dateklr din sistem elc. Aceste aplicalii POI ~ utilizeze biblioteci de junclii sau pot comunica direct cu kernet-ul.

18'

186

INTRODU CERE iN SISTEME DE OPERARE

I .. -.- .... -.- .. -.-.- .. -.- .... -.- .... -.- .... -.I
BI.I"".<I
F~tira

........................... .

7.1: Accesul la hardware

$istemul de operare face distinctia intre douA ' spaUi" in care sa pot gasi programe in execu!ie: spaliul ulilizator (user-space) ~i spa!iul kernel (k.ernel-space). Prin "spa!iu" sa

lnl8lag& atAI spatiu de memoria ca.! " sl mediu de executie. Fiecare spatiu are "
de lucru

a~e

cond iti i

Spa!iul kernel asia spa!iul in care ruleaza kemel-ul. ConIine door kernel-ul ~i componentele sale (precum driver-ele incarc ate la un moment dal). Tot ceBa CB
sa
gase~te

in spa!i ul kernel are acces d irect la hardware,

Spa!iul utilizator aSIa spatiul In care sa gasesc apl ica!i ile 51 bibliotecile de junctii utilizate de acestea la un momenl dat. Tol ceea ce se gase~le in spaliul ul ilizalor nu are acces direct la hardware. Toate actiunile aplk:atiilor . . din spatiu l utilizator trebuie sA treaca pr in kernel. Com unicat ia dintre spaliul utilizator ~i spatiu l kernel se realizeaza prin apeluri de sis\em. Apelu t de slstem este un mecanism prin care programele sau bibliotecile din spaliul utilizator acceseaza resursele puse la d ispozitie de kerne l. Practk:, apelurile de sistem sunt lunc~i implementate in kernel pe care aplicajiile d in spat iul utilizator Ie acceseaza direct sau prin intermediul bibliotecilor de functii. Acest cap itol va analiza modul de lucru intern pentru un sistem
Linu ~.

7.2

Considerente hardware

Componentele lilice ale sistemului poarta denumirea generk:a de hardwa re . Pen\ru folos irea acestora, utilizalolul dispune de un sistem de operare ~ i aplicatii. Acestea reprezinta nivelul de soltware de peste hardware. Fieeare componentA este esentiala si nu poate lunctiona in lipsa celeil alte. Sistemu l de operare ~i aplicaliiie de bazA sunt cele care asiguri!! interlala cu hardware-ul pentru a preveni. asUel, d ifk:ullalea programArii directe a hardwareului. Din punc\ul de atanal

CAPITOLUL 1. ANALIZA HARDWARE A SISTEMULUI

187

vedere al utilizatorului, interfata cu hardwareul este limitata la un set de apeluri catre sistemul de ope rare ~i aplicaliile de baza.

7.2.1

Structura unui sistem de calcul

Din punel de vedere Slruclural. un sislem de ca lcul esle un sel de componente cu roluri bine definite care comun;ca pentru indeplinirea une; sarcini. Sistemele de calcul din ziua de azi urmead structura von Neumann prezentala mai jos. Aceasta esle lolosita pentru a delini setul de componente care exista intrun sislem de calcul ~i interaqiunea dintre acestea.
Unl!ar... de <o mand~

. ( Unlt.:ltea

a~tme!lc~ ~i "'Il id

Figura 7.2: Inleraqiunea componenlelor hardware ale unui sistem de calcul Dupa cum se observa, arl1itectura von Neumann precizeaza 5 componente ale unui sistem de calcul : unitalea de comanda sau unltatea de conltol esle responsabi la cu comandarea modului in care celelalle componente lucreaza; unitatea de comanda va interpreta codul unui program (va decodil;ca instructiunile) si va cere unMlii aritmetice si log ice execu!ia sarcinilor necesare; unitalea arllmetlci ~lloglcii se mai numeste unltatea de execu.ie: rolul acesteia este de a execula codul transm is de la unitatea de comanda; unitatea aritmeticA are un sel de regis Ire pentru slocarea locala a inlorma!iei ~i un acumulator penlru electuarea de operatii; rolul unitati i arilmetice si logice este lndeplinil de procesor; memoria eSle componenla In care se stocheaza codul programului de executal si datele acesluia; memoria este lolosila de unitatea de eXBCutie si de eomanda; unitalea de comandi'i cile~te din memorie instruc!iunile ~i Ie decodilici'i, pe ctmd unitatea de eXBCutie cite!?te si serie in memorie datele cu care efectueaza diverse calcule; dlspoziUvele de Intrarelie~ire (perilerice) sunl eele care intermediaza comunicatia sistemului cu exteriorul; inlorma\iile de la aceste dispozitive sun! oopiate in memorie si lolosile ulterior de unitalea de comanda ~i unitatea de execujie; exemple de dispozitive periferice sunt monitorul. tastalura. mouseul, hard diskul etc.

188

INTRODU CERE iN SISTEME DE OPERARE

7.2.2

Procesorul

Procesorul sau unrtalea centrala de preh.JCrare (CPU - Central Processing Unit) esle "creierul" sislemului. Este echi~alenlul unitatii de comanda ~i a celei de execulie din arhitectura von Naumann. Procasorul esta cel care ~a intarprata codul unui program si ~a electua operatii cu dalele acestuia ~i este componenla de baza a execuliei unui proces. Procesorut esle cel care determina arhitectura unui sistem de calcut. procesoarele Intat sau AMD fac parta din arhitactura )( 86. Majorrtataa procesoarator mai noi lac parle din arhitectura x 86_ 64_ Arhitectura unui sistem de calcul se relera la setu l de instroctiuni pe care procesorulle oleni utilizalorului. Procesorul dispune de un set de localii de stocare de foarte mare viteza denumite registre . Vitaza procasorului esta foa rte mara comparaliv cu vitaza mamoriai si da aceea este nevoie de reg istre pentru a efectua calcule rapide. in ziua de azi dimensiunea registrelor este de 32 sau de 64 de bill. Dimensiunea registre lor este sursa denumirii sistemului. Un sistem este denumit sistem pe 32 de biti sau sislem pe 64 de bili In lunclie de dimensiunea registrelor sale. Un procesor poale avea una sau mai multe unitati de procesare (core). 0 unitate de procasare asta un circuit alactronic care axacuta inslrocti uni. Un plOcasor cu 0 singura unilate de procesare se numeste single -core , iar un procesor cu doua sau mai multe unitali de procesare allate pe acela~i circuit integrat se nume~te multi -core. Penormanla oblinuta prin lolosirea mai multor unitali de procesare depir.de de existenla firelor de execu!ie multiple In cadrul aplica!iilor si de suportul sistemului de operare. Caracteristica ~itezei unui procesor este. de obicei, Ire cven~ acestuia, masurata In Hz. In zi lele noaslre, Irecvanta de lucru a unui procesor eSle de ordinul GHz. Calculatoare le persoanele 1010se5O procesoare cu arhitectura i386, precum: Intel Pentium, Intel Xeon, AMD Athlon, AMD Opteron etc. Exista un numar Insemnat de arhitecturi menite sa adreseze de la constrangeri specifice: spre exemp lu cele pentru platforme integrate (e mbedded systems): ARM , MIPS. sau alte pla\!orme de calcul inlensiv: Alpha. Powe rPC etc_ Pentru arhitectu ri dilerrte poate varia numarul de bili pe care sunt electuate operatii le sau numarul de registre allate la dispozi,ia procesorului. Astlel nu putem compara viteza unui procesor i386 cu un procasor PowerPC lolosind fracventa.

7.2.3

lerarhia de memorie

in amitectura unui calculator modern, memoria este organizata in mod ieramie. Fiacara nivel d in ierarhie are 0 lalime de banda mai mare. d imensiune mai mica ~i latenta mai scazula decAt nivalul inlerior. Dupa cum se observa in ligura 7.3 cele 4 niveluri principale sun\: registrele procasorului, memoria cache. memoria RAM ~i hard d iskul.
~,., ...ov

...atanal

CAPITOLUL 1. ANALIZA HARDWARE A SISTEMULUI

189

R V;h. ,., ~Pf<K"'OfU"')

1[

j
Regi strele procesorutui

M~mofl.

PAM

,"'--5'0,,"'" p. Q;5<

Figura 1.3: lerarhia de memorie

In vArful ierarhiei de memorii se alia registrele procesorului care au eea mai mare vileza de aeces. de obicei un cielu de CPU, dar dimerlsiunea de cateva sute de bytes. Ele SUrl! lolosite pentru a stoca dalele care sun! prelucrale de dltre procesor la momenlul curent.

Memoria cache Din cauza dileren!ei mari de vileza intre memoria RAM si procesor. se 10lose~le un nivel intermediar de memorie: mai rapida dar mai scumpa ~i de dimensiunea mai mica. Aceasla memoria poana numala de memori e cac he si aSle lolosila pentru re!inerea anumitor informatii din memoria RAM. Memoria cache fotose~te conceplul de localizare temporala ~i spa!iala. Aceasta i nseamna ca in momentul in care procesorul doreste sa acceseze 0 zona de memorie, mai inUIi va com para adresa acesteia cu adresele lone lor de memorie care au lost copiate deja in cache pana in acel moment. Daca descopera ca aceasta zona ex ista in cache , ea va Ii accesa!a direcl de acolo. ln caz contrar. zona de memorie doritA va Ii cop iatA in cache pentN a putea Ii relolosita in momentele apropiate. Cand cacheul se umple, in tra rile din el sunl ~Ierse in ordinea vechimii lor. In mod tipie, memoria cache are 0 dimensiune de ordinul sutelor de K8 sau catorva MB Exisla Irai upuri da memoria cacha: Lt . L2 si L3. Memor;a cache L1, sau de nivel t , esle 0 memorie incorporala in procesor, de dimansiuna Ioarla mica dar loarla rapida. liind lolosita panlru a accesa dale importanle ~i Irecvent lolosile de catre procesor. Poate Ii accesala in cativa cicli de CPU ~i are dimensiunea de zeci de KB. Memoria cactle L1 este de obicei de lipul SRAM (Slatic RAM). ceaa ce inseamna ell. nu necesil;li refresh pentru a menline dalele. Memoria cache L2 mai eSle numila. si cache secundar, fiind lolosil;li penlru a sloca dale lolosite recent. De obieei esle extern;li procesorului dar se lin de spre i ncorporarea ei in

.1

190

INTRODU CERE iN SISTEME DE OPERARE

procesor. Poale Ii folositil ca bulter pentru datele ~i instructiunile ce urmeaza a Ii preluate


din memoria RAM. Are 0 lalenla de 2 pana la 10 ori rnai mare decal memoria cache Lt,

dar dimensiunea mJlt rnai mare. Inilial dimensiunea memoria; cache L1 era de 256 sau de 512 KB. iar in prezent are dimensiunea de ordinul M8 Memoria cache l3 asle 0 memoria specializat1l care coopereazA eu memoria cache L1
5i L2 pentru a imbun1ltii,!i performanlele sislemului. Are dimensiunea mai mare decal memoriile L1 ~i L2, fii nd de ordinul MS. Des; tatenla inlrodusi!. esle rna; mare decAl pentru L 1 5i l2, aCCBsare3 ai asia mai rapid;ll decal in cazul memoriai RAM.

Memoria RAM

Cflnd na referim la memoria unu; sistem de caleul na vern relen, de abicei, la memoria RAM (Random Access Memory). Aceasta este tolosita pentru a stoca datele si codul unui proces. in momentul in care se doreste electuarea unui calcul sau decodilicarea unei inslructiuni, se lace un apella memorie penlfu cilirea acelei informalii. in zi lele f"loaslre , memoria RAM lolositA eSle de lipul DRAM (DynamiC RAM) . Tipul eel mai recent este DDR3. Caracteristicile importaf"lle ale uf"lui moo'ul de memorie RAM sunt: Irecventa de lucru: de ordif"lul MHz timpul de acces: de ordirlJl Mf"IOsecundelor rata de Iransler: mAsuratA in GB/s capacitatea: actualmente de ordinul GB

Hard disk-ul Probabil eel mai important dispozitiv perilerie al sistemului esle hard-disk-ul (HOD hard disk drive). Acesla este lolosit, de obicei, ca supor! lilie pentru sistemele de lisiere. Hard-disk-urile reprezinlA dispozitive de slocare permanenlA (nepersislenlA) a datelor. Paramelrii imporlan!i care caracterizeazA un hard-disk sun!: capacitatea acesluia: in ziua de azi de ordinul sutelor de GB sau ordinul TB; viteza (mAsurata in RPM - Rotations Per Minute): cu valori lipiee de 5400 RPM, 7200 RPM, 10000 RPM: dimensiunea buffer-ului (un cache lolosit pentru mArirea vitezei): cu valori de ordinul MB. Exisla un set de interlele si magistrale prin care un hard-disk poate Ii accesat. Dintre acestea aminlim ATA, Serial ATA, SCSI, SAS etc. Fiecare dinlre aceSle magistrale olerA o interfata distincta de coneclare a hard-disk-ului la placa de baza si un all protocol de comunicare cu hard-disk-ul pentru accesarea inlormatiilor de pe acesta. Un hard disk cOI1~l1e unul sau mai multe discuri nefiexibile de melal numite plalane. in cazul unui disc lormatat, supra/ala este impArti!;'i in pisle care sunt cereuri concentrice pe fiecare parte a platanelor. Pistele egal distantate de a~ de pe Hecare parte a platanului atanal

CAPITOLUL 1. ANALIZA HARDWARE A SISTEMULUI

191

si . de pe tcate platanala, SUr"lt grupate ir"l eilir"ldri. Fieeara pistll este impllrtitll . in sactoare de cate 512 biti fiacare.
Sector Piste

Platane

Figura 1.4: Structura unui harddisk

7.2.4

Placa de bazii ; interconectarea componentelor

Pisca de bus {ma.inboard, motherboard) eSle eompone r"l la tizic1l al c1lrei rol eSle
as igurarea conacliviti!ilii celorlalle componenle fizice. In mod l ipic, 0 placa de baza ars loc uri {s/oturi, socketurl) panlru calelalle componenta: procasor, memoria, placa video elc. Dupa cum se observa ~i in ligura 7.5, placa de baza coni ine doua "nuclee" de interconactare denumite chipse t uri. Acestea sunt northbridge si southbridge. A~a cum rezulta ~i din denumirea lor. northbridge-ul se alia in partea de sus a placii de baza iar southbridge-ul in parlea de jos. Exislll 0 conexiune a northbridge eu southbridge-ul. Northbridgeul mai asle numit si Memory Controller Hub (MCH) si asta lolosit pentru a conacla componentele rapide ale unui sislem de calcu l: Procesorul Memoria RAM Placa video {prin PCI Express sau AGP)
Northbridge-ut dicteaz;'i tiput de procesor, car"ltitalea. vileza si tiput de care poale Ii 101 0si11l.
memor~

RAM

~,., ...ov

... aJ:lnal

192

INTRODU CERE iN SISTEME DE OPERARE

$oufhbridgeul rnai eSle nurni! si 1 10 Controller Hub (ICH) si eSle folo~t penlru inlerconectarea componentelor mal lente ale sistemuluL Coniine urmlltoarele

compo nellie ~i magistrale:


Magislrala PCI penlru legalura eu placile PCI

Magistral1i LPC pentru legatura eu Super 1/0 (tastatura, mouse, porI paralel, port
serial, oonlroler de floppy)

Magistralll: SPt pantru legatura eu dispol.itive de stocare de tip flash


Magistral:!l 8M penlTu legatura eu aile dispozitive de PI'! placa de bam (sanzori de

temperatura si ventilalor)

COfllToler DMA Controler de inlreruperi Dispozitivele de stocare (ID E, SATA) Real Time Clock (ATC) USB Ethernet (Ioterlala de retea) Interfala audio Memorie BIOS
7.2.5
Oispozitive periferice ; magistrale

Dispozitivela periterice ala sistemului asigur~ comunicatia acastuia cu axteriorul, Coneclarea aceslor dispozitive periterice se realizeaza prin intermediul unor conectori in placa de baz~, Ace$ti conectori sunt oterili he direct de placa de baz~ (in cazul unor placi incorporate), fie de 0 placa specializata coneclala pe placa de baza (placa video. placa de relea elc.) Conexiunea diverselor placi in placa de baza. se reaiizeaza prin intermediul unor sloturi si a unor magistrale dedicale: PCI, AGP, USB etc. Magistrale importante ale sislemului sun\: FSB - Front Side Bus: conecteaza. procesorul de northbridge Back Side Bus - conacteaza. memoria cacha de procesor PCI- Peripheral Component Interconnection AGP - Advanced Graphics Port PCI Express USB - Universal Serial Bus C JPYnghted matanal

CAPITOLUL 1_ ANALIZA HARDWARE A SISTEMULUI

193

,"0

1 0.0'"

_.,'"

1-

I ..... .,..,.., ,,,"""' '',, ',"b)

._'00'....."11.

10 ...,,",

.,

lot.,,,., '""

~ ' --_l r------------------------l-'----'


I""

.,.o/1k.

00000,"

<ont",10<

PC' bu.

IVO ,on"o'I<, nuDi

PC,

,'''u
l PC bu.

''',n "ON 18105)

..So,,,", ,.11 _ ,,,,,,


..,~

' ''001

yl>oo,.

OI. ~

,-"

Figura 1.5: Diagrama bloc a pl1l.cii de baza

7.3

Suportul pentru dispozitive la nivelul kernel-ului

Nucleul sislemu lui de operare esle cel care inlermediaza accesu l apl icatii lor la hardware. Pelltru ca hardware-u l sa poata Ii utilizal, IlllCleul trebu ie sa ~ti e cum sa comunice cu acesta. Nucleu l oferi!. suporl de comunicatie cu dispozitiveie sislemului prin illtermediul driver-elor.

C :opynghted matafoal

19.

lNTRODU CERE iN SISTEME DE OPEAARE

Driver-ul reprez inta un set de rut ine care se executa la nivelu l nucleului 51 care permit accesulla un anumi! dispozitiv.
Dispozitivele pe care Ie poate utiliza 0 apl ica!ie pot Ii dispoz~ ive fL1:ice reate sau pot Ii dispozitive virluale (care simuleaza comportamentul unui dispozitiv hardware). in Linu ~, suportul pentru d ispozitive poate Ii inelus in kerne l (in momentul compi lariij sau poate Ii disponibH pr in intermediul module/or, module care pot Ii incarcate la cerere de caire

sistem.
in prezant, majoritalea distribu)iilor conlin kernel-uri comp ilate eu supor! generiC penlru unete dispozilive mai des int:l.lnile, iar suportul pentru anumite dispozitive eSle disponibil prin module. Modulate sunt incareate doar dad. dispozitivele alerente sunt prezente.

7.3.1

Listarea modulelor inca reate la un moment dat in sistem

Pentru a lista modulele incarcate la un moment dat se utilizeazii comanda lamod:

, ,

'" "

ubunt u@ubuntu,'$ lsmod Module Size 40856 'tcomn 12e~p 25728 bl uetooth 55908 12452 epufre~u"er"p~ee 5408 epufre~power oa ve 2688 cpufr~'l...ondem ~ nd 9228 5792 fce'l...table

"

, , " " " ,


0

U~ed

by

rteo"",, deo"""

12e~p

cpufre'l..., t a ts , cpufce'l...0ndemand

I ... J

Comarxla

ali~eaza

pentru liecare modul in parte, pe coloane:

numele; spaliul de memorie ocupat de acel modul; numiirul ~i numele modulele care depirxl de el.
Acela~i

lucru se poate alia prin intermediul sistemului de li~iere virtuat Iproc. /proc/modules conIine lista modulelor lncllrcate la un moment dat.

Fi~ierul

2
J

, e , 10

"

ubuntu@ubuntu:-$ cat /proc/modules .tc o",," 40856 0 - Live O~eObbbOOO I2c~p 25728 5 rtco""" Live OxeOM1000 bluetooth 55908 4 rfcomm , 12c&p , L1Ve Ox e Ob51000 Ip 12452 0 - Live Oxe Ob39000 cpufre~user"p~ce 5408 0 - Live OxeOb31000 cpufre~"t ~t" 1360 0 - L1ve OxeOb2eOOO cpufreq..powe r , a v e 2698 0 - Live Oxe085~OOO cpufu'l...0ndern<>.nd 9228 0 - L;"'@ Ox@Oa@@OOO tre'l...tab l e 5H2 2 cpufre'l-st~ts , cputre'l-onde"",nd ,
(

Live OxeOb27000

... )

Modulele disponibile in sistem se gasesc in / lib/modu les/ <versi une_ kernel>. Modulele incluse in nucleul distribuliei se giisesc in /lib/modules/<versi une_ kernel>/ ker nel. In acest director ele sunt

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

195

organizate in tunctie de categoria din ca re lac parte - existA astlel directoarele arch (module penlru arhiteclura cu rent;:l). crypto (criplogralie), drivers (drivere dispozitive). f s (sisleme de lisiere). I ib (module care implemenleaz;:l difer ite lunclii in kernel). net (relea). security (securitate). sound (sunet):
>
~rch

root@ubuntu:-I 1 s Ilib/modul es /2 . 6 . 1 8- 4- 68 61 ~ .. rn .. l/ c r ypto driven fs lib net .ou nd

Versiunea de kernel poate Ii allata utilizfmd comanda:


ubu n tu @ u b u ntu : -$ uname - r

> 2 . 6 . 20 - 15 - ge ner ic

Dupa cum sa observat ~i din ie~irea comenzii lsmod, inlre module exista dependente. Aceste dependente sunl descrise in / lib/modules/ <versi une_ kernel>/modu l es . dep - acest I~ier este general automat la rularea comenzii depmo d.

7.3.2 incarcarea unui modul


inainte de a pre zenIa modul in care un modul esle incarcal in nucleu. trebuie menlional ca in distributiile moderne Linux modulele sa incarca automat in lunclie de dispozitivele hardware prezente in sistem. Inc;:lrcarea manuala a unui modul se poate realiza lolosind comanda insmod sau comanda modprobo. Comanda insmod pr ime~te ca argument calea ~Ire lisierul unde se g;:lseste modulu'- Acest lucru 0 face destul de dihcil;:l de folosil. Un exemplu de utilizare este dat mai jos (se presupune ca modulul ce se dore~te a Ii incarcat nu este deja incarcat).
roo t @ u bun t u: -I i n.mod
. /dr'v~I5/inp u t/m i .c/pc.pkr . ko

root@ubuntu:-I l$mod I grep pcsp pcspl<r 4224 0

o comanda echivalenta comenzii i nsmod utilizate mai sus dar care incarca si dependenlele unui modul (daca existA) este modprobe <nume_modul>:
root@ubunt u: -I modprobe pC$pkr

Pentru a configura modproba se poate utiliza fisierul /etc/ modprob e .coflf sau directorul / etc/modprobe . d.

7.3.3

Descarcarea unui modul din kernel

Pentru descarcarea unui modul din kernel se poate utiliza coma.lda rmmod sau comanda modpr obe - r . Comenzile urm;:ltoare descarca modulul pcspk r . cu observalia ~. la utilizarea lui modp r obo. se lncearca si descarcarea modulelor de care pcspkr depinde (daca existA si nu depind si alte module de ele).
roo t @ ubun t u: -I rmmod pc . pkr 3 root@ubuntu:-I modprobe - r pcspkr

196

lNTRODU CERE iN SISTEME DE OPEAARE

Tabelul 7.1: lerarhia din Isys

I Director
/sys/devices
/ sys /bu s

Conflnut

/sys/c l ass /sys/bloc k /sys/ fi r mware


/sys/fs /sys/ k ernel /sys/module /sys/power

Subdirectoarele care reflecla modul fizic de conectare al dispozitivelor in sistem Legatl.lri simboliCe caIre dispozitive grupate in Junelia de bus-ul (magistrala) de care apartin aceslea Oispozitivele grupate in lunc!ie de clasa din care lac parte Dispozitivele bloc Dispoz~ ive l e eu suport firmware
Informatii deepre Sistemele de fisiere Informa!ii despre kerne l Subdirectoare pentru fiocate modul in parte Inlormatii despre consumul de curen!

7.4

Analiza hardware a unui sistem (magistrale, chipset, CPU, memorie, dispozitive)

7.4.1 Lisla hardware - /sys


Folosind sislemu l de lisiere virtual (sy sfs) montat de kernel in /sys , se pot obline informatii des pre dispozitivele hardware aflate in system. ! sys este popu latde kerne l eu informalii provenite de la driver-ele incll.rcate la un moment dat. Oispozijivele hardware alisate in acest director sunt cele care au lost delectate de kerne l si care sunl ulilizabile de acesta. Tabe lul 7.1 prezinta continutul directoarelor din ! sys .

7.4.2

Comenzi penlru

afi~area

dispozilivelor

Informatii des pre dispozitivele din sistem si starea acestora pot Ii aliale si prin intermediul unor comenz i. in eele ee urmeazll., se vor prezenta comenzi le utilizale penlru a prezenta diverse informalii despre dispozitivele din sistem.

Dispozilive USB Pentru a alisa magistralele si dispozitivele USB prezente in sistem se utilizeaza comanda lsusb:
2 ,

ubun tu @ ubuntu:-$ l~usb Bus 002 Dev i ce 001 ' ID 0000 : 0000 Bus 001 Device 001 : ID 0000 : 0000

Informatii despre magistrala USB se regasese 5i in !s ys !bus!usb! . Subdirectorul devices prezinUi dispozitivele sub forma de legaturi simbolice caIre directoare din !sys! devi ce s. Subdireclorul driver s din !sy s ! bu s!usb ! contine intormatii despre driverele utilizate.

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

197

5
6
1

3 10

ubu n tu@ubu nt u:-$ Is - 1 Isys/bus/usb/ dev(ce.1 total 0 h " HwxrwX 1 rOOt root 0 2007 - 09 - 04 18 : 16 1 - 0 :1. 0 - > .. 1 .. I . . l d evlce"/pc l 0000 : 00/0000 : 00 : 07 . 21 u a b l 1 1- 0 : 1 . 0 l rwxrwxrwx 1 roo t root 0 2007 - 09 - 04 18 : 16 2 - 0 : 1 . 0 - > .. 1 .. I ldevice ,/ p ciOOOO : 00/0000 : 00 : 11. 0/0000 : 02 : 02 . 0Iu s b2! 2- 0 : 1 . 0 lr "'H "'HWX 1 r oot root 0 200 7- 09 - 04 1 8 :1 6 u, bl - > .. I .. I .. I d .. v i c .. , Ipc i 0000 : 00/0000 : 00 : 0 7 . 2 lus b1 lr "'H "';U WX 1 r OOt rOOt 0 2007 - 09 - 04 1 8 :1 6 u, b 2 - > .. I . I l d ev i ce,/p c iOOOO : 00/0000 : 00 : 11. 0 / 00 00 : 02 : 02 . 0/u s b2 ubu n tu@ubuntu:-$ 1 s ys Ibus lu s bl dr i vers 1 total 0 dr w xr - ~r - x 2007 - 09 - 0 4 1 6 : 1 6 roo t root d r",xr -x r - x roo t root 2007 - 09 - 0 4 18: 16 drw"r - xr - ~ 2007 - 09 - 04 1 6 : 1 6 ua b ts roo t r oot

" " " " " " "

"

, ,
, ,

" -,

" "

"

" " " Ullima comandA listeazA recursiv directoarele dir"l / sys/ bus/usb /d r

u b uI'ltu @ u b u nt u: - $ lr "'H WHWX r Oot root l r " x r wxrw , rOOt root lr "'H W ;U WX ~ OOt root

" -"

" " "

'"' ""'

I s y ~ Ibu s I u sbl drive r' I


mod u l~

gre p Modu l e

- > , . I . . I . . 1 .. /modu l ~fu5bco r e module - > , . 1 . . I . . 1 .. /modu 1 e/usbcore mod u 1~ - > .. / .. 1 .. 1 . . /Modu l efu ~ bco r ~

i ve r s, d .ulflnd

liniile ca re conlin relerinle la li~ ie re cu numele module. Se observA astlel cA modulul utili zat asle ustx:ore (dalele si orele lisierelor au lost eliminate din iesirea comenzii) .

Dispozilive PCI

DiSpozilivele de pe magistrala PCI se pot afla uti lizand comanda l.spci :


~

ubu n tu@ubu nt u : -$ Isp c l 00 : 00.0 Hoat b ridge : In te l Co rporation 82865G/FE/F OMM Controller/ Ho a t -

""'

"
6

1 3 ,0

ln t ~rfac " Ire v 021 00 : 0 1. 0 pcr bri d'ije : In t ~ l Corpora ti o n 8286 SG/PE/P PCI t o AGP Contr o ll e r Ir .. v 02) OO : l d. O U SB Controller : In t d Co rpo r at i o n 8280 1EB/ER ( ICHS/I CH5R) U SB UHC I Co ntr o ll er U (rev 021 OO : le . O PO b ridge : Intel Corporat ion 828 01 PCI Bridge (r e v c21 OO : lt.O I SII b ridge : I nte l Co r po ratio n 82901eS/ R ( I CH5 !1 CH SRI LPC Inte r f a c e Br i dge Irev 021

"

(. .. I

Similar magislralei USB. se pot determina si directoarele din /s y s asociate dispozitivelor PCI. Comanda urmAtoare pre zintA modul i n care se pot alia modulele utilizate de dispozilivele PCI. lolosind aceea~i procedurA ca in cazul dispozitivelor USB (dalele si orele l isierelor au lost eliminate din ie$irea comenzii) .

ubu n tu@ub u nt u,-$ l ,,,,xn,x,wx roo t r oot l r wxrw x n<x roo t root rOOt root l r " x r wxrwx lr w~ rw~r .. ~ roo t root

, ,

" -"

I $ y s /bu s /pc i / dri versl , gre p modu le module - > . 1 .. 1 . . /mod ul e/sn d !nte l S. O module .. 1 . . /rnodu l el i nteLa g p . 1 .1. module - > , . 1 . . / . . 1 . . /rnodu 1 e/a t a...generi c . 1 . . /rnod ul e / au_ p ii x module - > . 1 .

(. .. I

" " " "

-,

198
Sistemul ACPI

lNTRODUCERE iN SISTEME DE OPEAARE

Sistemale moderne au imp lementat sistemul ACPI' (Advanced Configuration and Power

In/erface) pentru configurarea unor dispozitive ~i managementul consumului de curen!. Fisierele virtuale ale acestui sislem se afl<'i in Ip~oc! <lepi. Sprs exemplu, sistemul ACPI oleri'!, printre allele, informalii despre:

procesoarele din sistem - /proc/ a e pi /processor


venlilatoarele din sistem - Ipwcl acpi / fan
bateri ile d in sistem - Iproc/ aepi /bat tery

sanzo rii de tempe ratu rA- /proc/ "cpi Itherll\31 _ zo ne

hwinfo

hwin to esla 0 aplica!ie pentru daleetia hardware-u tui. Comanda hv in!o afiseaza in mod implicit toate informa\iile des pre dispozitivele delectate la un nivel foarte detaliat. Pentru 0 listare mai succinta sa foloseste urmatoarea comanda:

,
2

ubuntu@ubuntu:-$ hwinto -- sh ort cpu : IntellR) Pentium(R) Dua l

CPU

T2390

@ 1.66GII2 ,

.00
,

MH< 1600 MHz keyboard : (dev ( input ( e v e nt 4


mou s ~ :

IntellR ) pentium(R)

Du~l

CPU

T2390

@ 1 . S6GHz ,


10

AT

Tran ~l ated

Se t

2 ke yboard

" "
13

I.

(dev(input(rn i c@ (dev(input/ rni ce pcin t H : /dev/u.b/ l pO g uphics car d: Controller

M~cin t o ~ h

SynPS/2

Syn~ptic.

mou.e button @mulation TouchPad

Samsung ML- 164Q S@r i @. Intel Mob ile GM96S/GL960 Integrated Graphics Intel 965 GM

" '" " '"


2<J

sound :

"

Intel 82801H
stor~qe :

IIC H8 f a mily)

HD lIud.o Controller

" ,

Intel 82801HBM/HEM (ICH8M/ICH8M- E) SATA IDE Controller Intel 82801HBM/HEM (IC H8M/ICHaM-E)
n~t",o rl::

22

IDE Cont roll e r

,. ., .. .,
~

"l~nO

..

"

ethO controller net",o r l: intert~ce panO ><lanO


"",~ste~O

Intel PRO/~i r e l e 394SABG Network Connec ti o n Realte k RTL6 10 1E PCI EKpr~$$ Fast Ethernet
:

Ethern e t network inter face WLAN net><or' interface


Net~or' Inte~tace
ne t ~or k interfac~

" "

ethO
' ACP I - h1tp ;ltww..,acpU nloi

Ethernet

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

199

>0
'" '" ais k: /aev/saa

L oopb~C k

network i nterface

woe 0I02500!ltVS - 2

36

(. .. I

Penlru a obline detalii des pre 0 anumitl!. componant1'l, sa folosa~te numele compone ntei ca argument al comenzii. De exemplu, pentru procesor se folose~te urmatoarea comanda:
,
~

"
G

, 8

ubuntu@ ubuntu : -$ h"info -- cpu 01 : None 00.0 : 10103 CPU [Cr~at ~ d at cpu . 304) Un i 'lu~ I D: rdCR . j8NaKX DZt Z6 HHdwa r e Cl ass : cpu Arch: Inte l Venaor: " Genulnelntel" Moae l: 6. 1 5.13 "Intel[R] PentiumlR] Dua l Feature.:

CPU

T2390

@ I . S6GHz "

,0 fpu, vme, ae, p.e, tsc, ..sr , pae , mee , ex 8, ap! c , .ep, mtrr , pge , .. ea , emov, pn , p.e ~ 6,
elf 1 u sh, dt", acp i , <M'lx , fxH , sse , sse2, "S, ht, tm , pbe, nx , I .. , cOMtant_ t "c, ~ rclL.p ~ d mon, p eb" bt s , pn 1 , dtes 6 4 , monitor, d,_cp I , es t , t ... 2 , 5 s s~3, cx 1 6, xtpr,

pdcm,lahf_lm
" " " .. " Cloc k: 1866 MH~ BoqOMlPS : 3724 . 63 Cache : 1 024 kh Unit./ Pr oc""or : 2 Conf i q St atu , : cf9 - ne" .

~v~11 - ye5 .

n eed - no .

active - unkno"n

7.4.3
Senzori

Monitorizarea starii dispozitivelor hardware

o alta sursa de informalii des pre hardwareul prezent intrun sistem 0 reprezinta sen2orii. Acesti senzori pot oferi informalii des pre viteza venti latoarefor, voftaj e si temperatura, liind folosite penlru a monitoriza starea sistemului. Pachetul lm- sensot's include programul sensors ca re ali~eaza. informatii citile de la
ace~lia.

Dup1\ inslalarea pachelului treooie f1.Jlala comanda sen sor s- detect care va delecta senzorii prezen!i in sistem ~i va indica ce module trebuie incl!.rcate. Dupa ce configurarea se real izeaza cu succes, poale Ii utilizala comanda sensors.

, ,
, '" " "
,

ubuntu@uhuntu:-$ sen$or$
smsc47ml~2 - i2c - 0 - 2a

Adapter: SMEus I a 0 1 +2 . 5V : +2.60 VCore : +1 . 4 2 +3 . 3V : + ~. t3 +5V : +5 . 16

" " "

{. .. 1
~ m5c47 ml - i . a-0800 Ad~pu r:

"

aaapter {... in ( ... in {... i n {... in

1400 " +0 . 00 ", +0 . 00 +0 . 00 +0 . 00

"" ", ", "" ", ""

~ .

fanl : hn2 :

'"

adapt.or {.. ,n 2192 {.. in 2 11 8

"" ""

"'" "'"

RPM . d i v RPM . d i v

. , -,

+3 . 32 +2 . 99 +4 . 3a +6 . 64

", ", ", ",

200
Pachetul de utilitare sma rtm ontoo ls

INTRODU CERE iN SISTEME DE OPEAARE

Pachetul smartmo n too l s pune la dispozi!ie programe pentru monitorizarea hard-disk-uril or utiliz1\nd \ehno logia S.M.A,R.T. (Self- Monitoring , Analysis and Reporting Technology). In unele sistema, !rebuie activa! supo rtul S.MART in BIOS (unele BIOS-uri au aceasta configurare in setul de optiuni 8vansate). Tehnolog ia permite monilorizarea indicatorilor de stare a hard -disk-uritor in

$cOpul anticiparii posibileior cader i.

in pachel se gas esc doua programe:


smar tot l- pentru analiza stari; S.M.A.R.T.la un moment dal ;

ama rtd - un daemon pe ntrtl monitorizarea permanenta .


Pentru a ver ifica slarea la un moment dal pentru primul harddisk, sa poate uti liza comanda:
2 ,
root@~b~nt~ : " smar t ctl -- a ll /dev/sda smartetl version 5 . 37 [ i 686 - pe - iln~, - gnu ] Copyright (C) Allen Hom~ page is http : // ~ martmon to o15 . 50u r cefor\l'' . net/

2002 - 6 Bruee

Mod~l

"

" " "


,.
"

,0

--- START OF I NFORHIITION SECTION - -Family: Sea9 a t e Barracuda 7200.7 and 7200 . ; D@vice Mode l: ST3120S27AS 4MS03F43 Seri ~ l Number: Firmware Version : 3 . 42 lJser Ca p a city : l20 . 033 . 04 1 . 920 bytes
[.

Plu ~

family

.. ]

" " " "


"

, " "

SMi\R! i\ttributes D a ta Structure revision number: lO Vendor Sp ~ eifie SMART At t rIbutes with Thr ~ "hold" : cue VALUE WORST THRESH lYPE lOf AT!RIBUTEJlAME WHEN FAILED RAW_VALUE 0., Pr~ - hil Raw~ ~a d-Error-Rat e OxOOOf 000 0"

UPDATED Alwa y' Al ways Al way"

,. , '"

Spin_ Up_ Time 0 Start_ Stop_ Count

"

OxOO03 Ox0032

"" ""
' 00 ' 00

000 "'0

Pr~ - hil

Old.-age

SMART are ~ i suport pentrtl executia de teste asupra discului. Exista teste lungi ~i teste scurte. Executia unui test poate Ii urmAritA in timp real dar poate Ii si programatA. Rezultatele testului se pot ali a in iesi rea comenzii s martct 1 -all / de v /s d a. Un test scurt poate Ii programat utilizdnd comanda:
root @ ubuntu , -I ,martctl -- t M t - ,hort Alhn Home page
Id ~ v/;da

> , mar t etl ve rsi on 5 . 37 ( ,686 - pc - lin u x - gnu] CoPyri9ht (C) 2002 - 6 Bruce
"
10

http : //smartmontools . sourceforge . netl

,
" ,

___ S!AR! OF OFFLINE IMMEDIATE AND SELF-TEST SECTION __ _ Sending co mmand : "EKecute SMART Short self - ten routine irnmedi ~ te l y ln off - line mode". Dci ve cornma nd " t~ecute SflART Short self - test routine l mmedhtely in off - liM mode" .uecessfu l .

CAPITOlUl 7. ANALIZA HARDWARE A SISTEMUlUI


10 " ,. Testinq ha. bequn, Pleue wait 1 ml nute$ tor test to comp l ete. Test will comple te alter T~u Sep 13 10:34:152007 Use smartct l - x to abort test .

201

" ,.

Se poate obse rva ta 0 noua rulare a comenz ii sma.rtctl - ... 11 /dav/sda. ca apar la iesire si rezultatele testului (daca sa terminat), pre<:um in exemplul de mai jos.
;:
, root@ubuntu : -I smartet l --~ll Id~v/sd~ sMartetl v e r.ion 5 . 3"1 (i6H - pe- lin u x - gnul Copyright lei 2002 - 6 Bruee Home
p~q"

" ,
6

1 . http : //$martmontools . sou r c.,{orq .. . n .. t/

ST ... RT OF IN FORMATIO N SECTION __ _


( ...

1
ST ... RT OF RE ... n SM.z. RT D... r ... SECTION

'0

SMART ( ... 1

o"erall - healt~

self - assessment test result : PASSEO

Pe I~nga testul scurt mai exista si alte teste (spre exemplu un test lung si un test otlline). Mai multe exemple de fofosire a lui smartc:tl se pot ana din man smartetl si din smilrtc:tl -h . Daemonul smartd monitorizeaza hard-diskurile si permite lnregistrarea starii acestora si a defectelor aparute prin intermediul syslog. in mod impli cit verifica discurile la fiecare 30 minute. Daemonuf se poate configura prin intermediul fisierulu i / etc/ smartd . con f. Pentru lucrul cu daemoni se poate cons ulta capitolul 5.

7.5

Interfa~a

cu dispozitivele din userspace - udev

~i

/ dev
in linux exista cate un fisier pentru fiecare dispozitiv in directorul /de v . Fisierele din / dev sunt create de manageruf de dispozitive numit udev. Acesta este executat in intreg ime ca daemon in spatiul utilizalor (userspace) si astlel poale executa programe arbitrare fa aparilia sau la disparilia dispozitivefor din sistem. udev oferll supor! pentru nume persistente pentru dispozitive , ceea ce inseamnll ca poate fi configu rat sll foloseasca intotdeauna acelasi nume pentru fis ierul asociat unui anumit dispozitiv (in implementarile mai vechi pentru /dev , la reintroducerea in sistem a unor dispozitive, acestea puteau primi nume diferite comparaUv cu introducerea anlerioara). ud"v primeste notificari de la kerne l atunei c~nd apar sau dispar dispozilive. Astlel, spre exemplu. la conectarea unui USB stick in calculator, kernelul notilica ud"v ca a aparut un nou dispozitiv de stocare. in funqie de schema de nume utilizata, ud"y poate, spre exemplu, sa aleaga drept nume de dispozitiv urmatorul nume disponibil dupa numele harddisk ul prezent in sistem (presupunfmd ca dispozitivul asociat harddiskului este / dey / sda, udev alege ea nume / dey / sdb ). Dupll ce este ales un nume de dispozitiv, se poate executa un program care , in cazul prezentat aici. sa monteze sistemul de fisiere de pe USB stick intrun subdirector din Imedia. Tot in functie de configurari. anumite dispozitive pot sa aiba fisierele asociate puse intrun subd irector separat din /dev .

202
TabeluI7.2:

lNTRODU CERE iN SISTEME DE OPEAARE .I de nume

"

Linux

Pe I{lnga execu\ia de programe, udev mai permite modifk:area permisiunilor penlru

lisiere!e din (dev create. Astlel sa poate configura, spre exemplu, ca pentru oriee scanner intradus in sistem, lisierul creat sa apartin1!. grupului cu numele scanner. in acest lei, numai utilizalorii care lac parla din acesl grup vcr pulea lucre cu acest lisier si implicit cu scanner-uJ, Trebuie aminti! faplu! col un utilizator poate sa fie membru al mai multor grupuri.
Configurarile pentru udev sa gasesc in I etc/udev / rules . d. Aces! director conIine lisiere care descriu modul in care, in lunelie de dispozitiv, se formeaza numele dispoziti velor, sa dau permisiul"li lisierelor sau se executa programe. De obicei aces! director conIine co nfigurari apficabife in orice situa!ie si nu se recomand a editarea fi~iereior din el.

7.6

Lucrul cu dispozitive (ldev)

Sa men!ionat anterior ca udev se oc upa ~ i de stabilirea permisiuniior pentru anumite dispozitive. Un utilizator trebuie sa se gaseasca in grupul din care face fisierul di5pozitivului pentru a putea utitiza dispozitivul (prin intermediul fi~ierului. binein!ele5). Tabelu l 7.2 prezinta cateva nume asociate in mod normal cu di5pozitivele intr-un mediu Linux. Trebuie mentionat ca de obicei numele sunt urmate de un numar sau 0 litera, care indica al catelea di5poziti v de acel tip esle in sislem. Spre exemplu. doua unitati de discheta vor Ii numite / dey I fd O 5i /dev I fdl, iar doua hard-disk-uri vor Ii numite Idev/sda ~i Idev/sdb. Comanda urmatoare prezinta continutu l tipic pentru Idev :

, , , , ,. "

ubuntu@ubuntu ; -~ tot .. l 0 r oot lc"xr"Hwx lc",xr",xrwx rOOt lc",xrwxrwx r oot dr"H-H-X ; root d<",xr - xr - x root lrwxrwxrwx root root lr"H"Hwx

, , ,

" -,

/dev/

,. ,

" "

dr ... xr- xr-x l<w~rw"r ... x l,,,xrwxrwx

, , ,

, , ,

root root coot U root 0 root 0 root n root n

" "

2007-08-31 2007 - 08 - 31 2007 - 08 - 31 2007-08-3 ] 2007 - 0S - 3 ] 2007 - 0S - 31 2007 - 0S - 3 ]

14 , 48 adsp 14 , 48 .. qpqact 14 , 48 aud i o 14 : 48


14 : 4S

-, ~ ound/ad ~ p -, 'II1 ~ C / .. qpq.. rt -, ~ ound/~udio

14 :4S cdrom / dev / cd/ cdrom - s rO 14, 48 cdromO - > / dev / cd/ cdrom - . r 0

'" "

-, -,

root root root root root ~oot

0 ZOO7 - 0S - 31 14: 48 l oop 2007 - 0S - 31 J 4 : 48 100pO 2007-08-31 14 : 48 loopl

-,

loop/O loop/I

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

203

" " " " " u


" " "

C""- r ----l" "H "HWX Ct"- tW- rw-

, r oot , root

kmem root U root root root


dls~ dis~ di ~ ~ di ~ ~

(. . . I
cr,,- "w- rwbrw- r w---br .. -rw ---brw- r w---b rw- r w----

, , ,

, root , root
root r OOt r oot

"

(. .. I

, ". , , " , , "

,. , 2007 - 0 8- 3 1

14 , 4 8 2007 - 0S - 3 1 14:48 miKer - > s ound/mi x er 2007 - 0 8- 31 U ; 48 null 2007 - 0 8- 3 1 2007 - 0 8 - 31 2007- 0 8 - 31 2007 - 0 8- 31 2007 - 0 8- 3 1
U : 48 rand om U ; 48

14 : 48 sd a1 14 : 48 ~ da2 14 : 48

".

,,"

7.6.1 Tipuri de dispozitive


In Unux, dispoziti~ele se impart in 2 categorii. liecare categorie avand particularita!ile ei: dispozitive caracter dispozitive
~oc

Dispozitivele pot Ii dileren!iate dupa litera care apare pe prima colo ana in ieSirea comen2ii 15 - 1. coloana care indicA tipul lisierului. In lista de mai sus lisierele care au tipul c indicA dispozitive de tip caracler iar lisierele cu tipul b indicA dispozitive de tip

"oc.

Cateva dispoz i ti ~e sunt generate de kerne l si au un comportament aparte. dispozitive sunt numite pseudo-dispozitive.

Aceste

Di spozilive le cara cter Dispoziti ve le ca racter corespund dispozitivelor care transmit date cflle un caraCler odata. Aceste dispozitive sunl de obicei lolosite pentru a trans mite Iluxuri de date. precum: term inalul - I dev I t t yO , I de v It t yl porturile seriale - Idev IttySO , I dev It tySl dispozitivele audio - I de v I se quence r , Ide v I mixe r, I dev Imidi

Di spozitivele bloc Dispozitivele bloc co respund dispozitivelor care lucreaza cu dalele la nive l de {scri u. cilesc , slerg blocuri de date}. DiSpozitivele care lunctioneazA in acesl lei sunl dispozitivele de stocare: l izice (hard diskuri, unitAli COROMlDVDROM etc.) - I dev I sda , I dev I sdal, Idev/hda virtuale (dispozitivele loop) - I de v I loopO
~oc

'"
Pseudo-<ti spo./!i\lve

lNTRODU CERE iN SISTEME DE OPEAARE

asociat& zonelor de memorie - Idev I ramO

Exista 0 serie de dispozitive prezente in I dey care nu corespund unor componente hardware. Acestea sun! echivalente unor dispozitive virtuale care implementeaza
comportamentUI dispozitivelor narmate de tip caracter.

Cele mai cunO$Cute sunt:


/ dev /n ul l - lisier in care se poate serie ariee 5i totul esle pierdut - de obicei iesirile standard sau de eroare ale programeior sunt redirectate caire /dev /nul1 pentru a suprima afisarea oricarui mesaj;
/devhero - 'isier din care se poate citi la inlinit octetul eu valoarea 0 - de

abicei esle folosi! pen!ru a suprascrie zone de memorie/disc cu zerouri sau peolru
a umple 'isiere;

I dev /urandom - li~ier din care se POI citi la inlinit octeti cu valori aleatoareutil i ~al de obicei penlru a scrie hsiere sau wne de pe disc cu dale alealoare. CAteva exemple de utilizare sunl prezentate mai jos. Suprimarea ie~ir i i standard penlru un program:
ubuntu@ubuntu ; -S , /progum > Idev/n ull

Suprimarea ie~irii de eroare penlru un program (mesajele de eroare se pierd):


ubuntu @ ubuntu:-$
. /progr~m

2>/dev/null

Suprimarea ambelor iesiri (standard si eroare) pentru un program:


ubuntu@ubuntu : -S . /program
2>~1 ~/dev!nu ll

Suprascrierea primei partilii de pe primul hard-disk cu zerouri:


<oot@ ubuntu:-J dd If - Ideulzero ot -/ devlad3 1

Suprascrierea primului hard-disk cu date aleatoare:


root@ubuntu :-J dd
if - /dev/ur~ndom of - /d e v/,d~

7.6.2 intreruperi hardware


o intrerupere (IRQ - inlerrupr requesr) eSle un semnal trimis de un dispozitiv catre procesor pentru a-I anunta ca treooie sa.-si opreasca activitatea pentru a procesa un eveniment e~tern. cum ar Ii apasarea unei taste. Pe platforma x6S sunt IS IRQuri numerotate de la 0 la 15. Pe calculatoarele mooerne pot e~ista mai mult de 16 intreruperi. Unele intreruperi sunt rezervate pentru dispozijive specilice, cum ar Ii tastatura, iar allele pot Ii reas ignate. in tabelul7.3 se alia intreruperile ~i semnilica)ia lor pentru platforma xes:

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

205

TabeluI7.3: Semnificatia i

In cadrul sistemului de ope rare Unu x. semnificalia intreruperilor poate Ii vizualizaUi folos ind urmatoarea comandti :

, , , ,
" " " " " " "

ubu n t u @ ubun tu : -$

0",

/pcoc I

int~

r r u pt"
t im ~r

12 : 14 : 15 : 16: 17 : mil :
LOC: ERR :

",

cpuo

, ", ",,

DO

,
,
0

0 1485 0 13885 4426 43084 0 2549S7 0

IO - APIC - eage IO-APIC - @dg@ IO - APIC - eage IO - APIC - e ag e IO - APIC - edge IO-IIP I C- f asteo j IO-IIPIC-edge IO - IIPIC - edge IO-IIPIC-edge IO-APIC-hsteoi
IO - APIC - h st~ oi

i 8042 floppy parportO

no
acpi i8042 I1bsta libata ethl i ocO

"

MIS :

In comanda anterioarti. pentru liecare lntrerupere esle ali~at driverul care 0 lolose~te_

"

7.6.3

Adrese 1 1 0

Ad resele 110, numile ~i porluri ItO, sunt localii unice in memorie rezervale penlru comunicarea lntre procesor si diversele dispozitive fizice . in tabelul 7.4 se poate observa corespondenta lntre denumirea dispozitivului pe linux ~i pe Windows ~i adresa ItO asociatti: In Unux se pot verifica adrese le 110 lolosind urmtitoarea comanda:

206

lNTRODU CERE iN SISTEME DE OPEAARE

TabeluI 7.4: Adresele VO ale

'i I

, , , "
"

ubuntu@ubuntu ; -$

OOOO - OOlf 0020 - 0021 0040 - 0043 0050-0053 0060 - 00H 0070 - 0077

,~,

""

Iprocl l oports

picl

t i rnerO
t i rn" r l

ke yboard

n,
dma pag" p i c2
,~,

OOBO - OOBf OO ~ O - OO .. l OOcO - OOdt


OOfO - OOff

<e,

".

7.6.4

Adrese OMA

OMA (Direct Memory Access) se relera la adresarea directa a memoriei si este 0 alternativa la adresele 110. DMA lace posibil translerul daletor intre dispozrtive ~i memorie lara ajutorul procesorului. Aces! 1i.!Cru duce la imbunatatirea pertormantelor sistemului deoarece procesorul nu mai eSla ocupat cu operatii 1 /0.

Arhitectura x86 implementeaza acesl concept folosind canale DMA, colle unul penlru fiecare dispozitiv. Urmlitoarea comanda va alisa ce canale DMA sunl folosite de sislem:
ubuntu @ ubuntu : -$
, 3 2 , floppy 4 : cascade
c~t Iproc/dm~

7.6.5

Manipularea datelor la nivel SC8zut (comanda dd)

Pentru a lucra cu dalele la nivel de oclet sislemele de operare de lip Uni x pun la dispozilie comanda dd. Aceaslii comandii poate Ii ulilizatii pentru a manevra dale de orice dimensiune. Se bazeazii pe faplul cli dalele sunl Iranslerate de la 0 sursli la 0 deslina!ie, eventual cu simple Irans formiiri. Comanda prime\lle sursa si destina!ia sub forma a doi paramelri: sursa: if - <fi~ier _ i nt rare> (dacii lipsesle acesl paramelru se presupune ca Sursa eSle inlrarea standard) destlnalia: of - <fi~ier _ ie~ire> (dad!. lipsesle acest parametru se presupune cli deslina!ia este ie\lirea standard)

CAPITOlUl 7. ANALIZA HARDWARE A SISTEMUlUI

207

Fisierele pot Ii atflt fisiere normale cflt si lisiere care reprezintii dispozitive bloc sau dispozitive caracter. Astlel , 0 utilizare loarte simplii a comenz ii dd este urm(itoarea:
ubufttu@ubu~ t u : -$

dd If-JdevJ t ero of - " myflle"

ComarKIa de mai sus cop iazii de la intrare la iesire octeti pfln(i cflnd apare 0 eroare. din moment ce nu a fost specilicat(i nicio limitii. in aceste conditii. comanda se term inii doar dacii lisierul surs(i e limitat sau fisierul destinalie e limitat. i~ cazul de mai sus, sursa are dimensiune infinilA iar destinatia e limitat<'i doar de dimensiunea spatiului liber disponibil pe partitia unde se scrie fisieruL Pentru a specifica dimensiunea care se doreste a I i copiat<'i se utilizea zA 0 combinatie a urmatorilor parametri: numarul de blocuri: coun ta <numllr_ bl ocuri> - dacii acest parametru lipsesle copierea se opreSle doar In corKIiliile prezentate mai sus dlmenslunea unui bl oc: bs - <dimensi une_ in_oc t eti> (blod<. size) - pot Ii fo lositi si multiplii. spre exemplu: bs - 1048576, bs - 10 2 4K, bs - 1M sunt loate echivalente; dacii lipseste acest paramelru se u1ilizeaza dimensiunea implici1ii a unui bloc de 512 octe!i (dimensiunile blocurilor ci1ite si dimensiunile blocurilor scrise pot Ii ajustate irKIividual prin utilizarea parame1rilor jbs si obs; ele sunt modificate simultan prin utilizarea parametrului bs) Exemplele urmiitoare ilustreazA utilizarea comenz ii dd impreunA cu parame1rii preciza!i anterior: copierea de 10MB de dale din 10 bloeuri de 1 MB (1 024K); copierea se face din / dev /ze ro catre / dev /null deci nu are niciun elect: ubuntu@ubuntu : -$ dd if_l dev/zer o of _ldev/null bs _l024K count _l 0 10_0 r"cord$ in J 10_0 r"cord$ out 10485160 byte$ (10 MB) copied , 0.00490124 seconds , 2. 1 GB/s acelasi elect ca mai sus doar ca se precizeaza M In loe de K: ubuntu@ubuntu : -S dd i f - /dev/.ero of- /dev/null bs-IM count- l0 10.0 record s In J 10.0 r e cord ~ out 10485760 byte ~ 110 MB) cop i @d, 0.00509437 ~ econds, 2. 1 GB! .
2

copierea de 10MB de date in blocuri de 1M la intrare si 12SK la

ie~ i re:

ubuntu@ubuntu : -$ dd if_!dev/."ro of_/d"v/null count - l0 ib. _1M ob$ _1281( , 10 +0 recorda 10 J 80 +0 recorda out 10485760 byt'"' s 110 MB) copied , 0.00622419 seconds , 1.7 GB/' Comanda dd permite Si pozitionarea in li$ierele utilizate pentru intrare si iesire: intrare: s k ip- <Il u m~r_bloc ur i> - sare < n u m~r_blocuri> din lisierul de intrare, echivalentul a <num~r_blocur i > ibs oeteti; iesire:
ie~ i re.

- sare <n u m~r_bloc u ri> din echiva lentul a <num:!rJ)l ocu r i> obs octe1i.

see k - <Ilum~r_b loc u ri>

f~ieru l

de

208

lNTRODU CERE iN SISTEME DE OPEAARE

TabeluI7.5: Informatii expuse prin intermediullui fproc Fi!iier Con!lnut /proc/cmdline Linia care esle folosrtA la inilializarea kernelului,
inclusiv parame\rii
trimi~i

acestu ia

/proc/cpuinfo
/proc/devices Iproc/interrupts

Informatii despre procesorulfprocesoarele din sistem Lisla dispozitiV1'llor caracter 5i a ce ler bloc Statistici des pre numArul inlreruperi ,i
dispozi\ive le asociate in\reruperilor Informatii despre utilizarea memoriei
-

"

/proc/meminfo /proc/modules

UsIa modulelor inca reate la un moment da! in sistem comanda lamod prezinla conlinutul fisierulu i
lista partilillor

intr-UI1 mod user-friendly

/proc/partitions /proc/swaps /proc/uptime

/proc/version

lista diSpozitivelor pe cafe 59 face swap Timpul trecut de la u~ima pornire a sistemu lui, T n secunde - comanda u pt ime prazinl1l conlinUlu l fisieru lui [nlr-un mod user-friendly Versiunea kernel-ului care ruleazl'i la un moment dal

Pozitionarea aste utill'i in eawlTn care se doresle ca de pa dispoziUvul da intrare s1l se cileasca 0 anumitl'i zo na, precum un anumil seclor de pe hard disk. Exemplul urmator ilustreazl'i acest lucru -se sare peste prim ul sector si se citese doul'i seetoare de pe hard disk (trebuia mantional eA dimensiunaa unui sector pe HOD aste 512 ocleti, valoaraa implicita pentru parametrul bs ):
, root@ubuntu:-I dd if - /devfsda of - /dev/nu ll .Up _ l count - 2 2+0 records in 2+0 record. out 1024 bytes ( 1 ,0 kB) copied , 0 . 04373 1 seconds , 23 . 4 kBfs

7.7
7.7.1

Analiza sistemului
Informalii despre sislem

Prin intermediul directorului /proc , kernel-ul expune si 0 ser ie de informatii legate de sislem. Tabelul 7.5 urmAtor prezintA fi$ierele mai importante din /proc $i conlinutul acestora. Continutul pentru oricare din fisiere le prezentate mai sus se poate alia folosind comanda cat. De exemplu, folos ind eomanda cat eu argumenlul / p l."oc/ cpu in fo sa vor afi$a urmatoarele informa!ii:

, , , , ,

ubuntu@ul>untu processor
v ~ ndo r _ id

model model Mme stepping

""

fornily

-, ""' , " ,

Iproc/cpuinfo

G@nuin@int@l

Intel (R) Core{1M)2

' 0'

'"

T7500

2 . 20 GH'

CAPITOlUl 7. ANALIZA HARDWARE A SISTEMUlUI

209

" "

cpu MHz e~che size tdlv_ bug

2194 . 893 4096

(. .. I

"'

..

Folosind comanda anlerioara sau oblinul urmaloarele inlorma!ii: processo r reprezinta identilicatorul procesorului prezentat (pe sistemele cu un singur procesor, va aparea doar procesorul cu idenlilicatorul 0), cpu fami ly reprezinta un numar care se va apenda la numiirul 86 pentru a obtine numele fami liei de procesoare (in exemplul de laIA 686), mode l name reprezinta denumirea procesorului, cpu MHz reprezinta Irecventa procesorului iar cac h e si ze este dimensiunea memoriei cache L2. Penlru a ob!ine inform alii des pre memoria ulilizata de sistem, se va lisierului /proc/me min fo:
ali~a

con!inulul

" "

, , ,

ubunt u @ ubun tu MemTot " l: MemF ue : Buffe r . '


C~ched,

-.

co< Iproe/meminfo
2~5676

S"'apC"ched: I\ct j ve : I n acUve :


S~"p1"tal :

S"apFree :

9684 10668 84448 3004 179812 43268 401400 360148

(. .. 1

" " " " "

" " " "

Folosind comanda anterioarA sau al~at urmatoarele informatii: MemIota l este canl itatea tolalA de RAM. MemFree este cantitatea de RAM care nu este ulilizata de sistem , Buffers este cantilalea de RAM 101 0sila de buffere, Cache d eSle cantitatea de RAM tofosita ca memorie cache. SwapCached este cantitatea de memorie swap folos ila ca memorie cache, Act i ve este cantitatea de buffere sau memorie cache care eSle in curs de utilizare, I n ac t i ve este cantitatea de buffere sau memorie cache care este libera. SwapIo t al esle canlitatea lotala de swap disponibila ~i SwapFree este cantitatea de swap liberA. Folosind urmatoarea comarlda se vor alisa: versiunea kerne lului Li nux, a compi latorului qcc ~ a distribu!iei de Unux lolosite:
ubuntu@ubu n tu :-$ cal Iproc/verslon

> Linux vers i o n 2.6 . 24 - 24 - generiC Ibui l da @ rot h era l {gee version 4. 2.4 (
, Ubu n tu 4 . 2 . 4- 1ubuntu311 H $MP Tue I\ug 18 17:04 ; 53 UTC 2009

Oricare dintre aceste li~iere poate Ii folosit pentru a gasi, la un moment dat, 0 informalie despre sistem. Spre exemplu, dacA se doreste aflarea tipu lui procesoruluilprocesoareior din sislem se poale utiliza comanda urmatoare:
, ubuntu@ubuntu ; -S cat Iproc/cpulnto I grep "moael name" model na me T1500 : InteilRI CorelTMIZ Duo CPU
@ 2 . Z0 GHz

Este important de retinut CA /proc expune informatii . ca re sunt accesibile si . pfln intermediul unor comenzi. Aceste informa!ii, lie ca sunt citite direct din /proc , lie ca sunl citite prin intermediul comenzilor, pol Ii filtrate pentru a se extrage date utile pentru utilizator.

210

INTRODU CERE iN SISTEME DE OPERARE

7.7.2

Kernel " tunables "

sysctl este 0 interfa!A care permite conligurarea unor parametri din kernel in timpul execu!iei acestuia_ Parametrii pot Ii modilica!i in douA feluri: prin modificarea directA a fisiere lor din / p roc/ sys; prin utilizarea comenzii sysctl _ Primul caz presupune scrierea ~i citirea parametrilordin anumite cA i, precum in exemplul urmAtor:
root@ubuntu : -' cat
Iproc/~ys/n~ t /ipv4/ip_ forward

, , ,

0
root@ubuntu : -' echo " \ " > Ip<oclsys/net/lpv4lip_ ,orward

root@ubuntu : -' cat /proc/sys/net/ i pv4/lp_ forw a r<l

Comenz ile de mai sus au activat rutarea pachetelor de re!ea la nive lul kernel-ulu i, scriind "I " in /proc/sys/ne t /ipv4/ip_ forward. AceastA faci litate este utila dacA se dore~te ca un sistem care are acces la Internet sa permita accesul unei intregi subre!ele. Folosind comanda sysctl, acelasi lucru se ob!ine in felul urmator:
>
,
n~t .

root @ ubuntu : -I "y , ctl ne t . lpv4 . ip_for .... rd ipv4 . i p_ fo<W 4 rd - 0 root @ ubuntu : -I 'y,ctl - w net . lpv4 . ip_ fon"'rd - " 1 ipv4 . i p_ fo r w4 rd _ I

n~ t.

59 observa ca pentru a afisa starea unui paramelru se fo loseste 0 adresare asemanatoare cu cea a Slructurilor din C/CH. Comanda a doua modifica un parametru prin utilizarea op!iunii -- w (write). ModificArile prezentale anlerior sunl modificari lemperare. ele fiind pierdule in cazul in care se repornesle sistemuL Penlru a efeclua configurari permanenle, acestea se scr iu in fis ierul le t c/sysctl . co n f . Presupunand cil se dore~te dezaclivarea forwardingulu i, sintaxa in lisier este destul de simpla (Iiniile care incep cu t din liSier sunl comentarii):
ubun t u @ ubu ntu : -$ edt
letcl ~ y ~ c t l . conf

,
,

( J
f Controls I P p .. cke t
n~ t.

forw&rdinq ipv4 . i p_ fo r w4 rd - 1

( J Fisierul de contigurare este citil la llecare pornire a sislemului. Pentru a for1a citirea fisierului de conl igurare, se peate utiliza comanda sysctl -p:
root @ ubunt u: -I "y"ctl - p net . 1pv4 . ip_ forward - I

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

211

7.8 Studii de caz


7.8.1 Salvarea
~i

restaurarea MBR

~i

a tabelei extinse de partitii

MBRul (Mas ter Boot Record) retine iniormalii des pre partiliile prim are allate pe un harddisk precum alribule ale aceslora, pozi!ia lor pe disc si dimensiunea lor. MBRul mai contine si bootloaderul - un mic program care porneste un sistem de operare prezent pe computer. intr un mediu mixt Windows/Linux, la 0 instalare a Windowsului se va observa c4 Linu xul devine inaccesibil (bootloaderul Windowsului nu cunoa~te nimic despre Linux), in aceste conditii, pentru a preintampina acest lucru, se recomanda rea lizarea unui backup pentru MBR. Mai mulle detalii despre MBR gasi!i in sectiunea 6.2.2. Backupul MBRului de pe primul HOD se realizeaza cu urmatoarea comandll.:
, root @ ubuntu : -I dd i f - /dev/sd~ of _mbr .i mg b. - 5 12 count - I 1+0 records in 1+0 record. out 5 12 bytes (512 III cop i ed , 4 . S004e-05 seconds , 10 . 7 MB/.

in urma execuliei comenzii se realizeaza fisierul mb::. i mg de 512 ocleli cu MBRul. Acest l isier poate Ii plasal inlrun loe sigur si accesibil in cazul in care discul devine inaccesibil (pe un USB stick sau COROM spre exemplu). Penlru a reSlaura MBRul, se efectueaza operatia inversll.:
, root@ubuntu : -I dd if_ mbr . lmg ot- /dev/nu ll b. - SI2 count - I 1>0 records in 1+0 record. ou t 5 12 bytes (512 III cop i ed , 4 . 622 e-05 seconds , II . l MB/S

in MBR se poate stabili ca una dintre partitii sa fie partitie extinsa. in partitia extinsa pot Ii creale mai multe parti!ii logice, pentru 0 mai buna organizare a discului. Informatiile despre parti!iile logice nu sunt tinute in MBR, deoarece nu incap in cei 512 octeti, Parli)iile logice sunt re)inule sub Iorma de lista inlantu ila in alara MBRului. in momenlul in care se lucrea za cu schema de parli!ii de pe un hard disk, se recomanda realizarea unui backup inainle, Modificarea schemei de partilii nu sterge datele de pe hard disk, doar sc himba descrierea partitiilor (Ioeu l unde se gasesc acestea). in situa)ia in care se slerge 0 partitie imporlanta (lie ea logica sau primara), este ulil sa existe un backup at aceslor informalii pentru recuperare. Modul de backup penlru MBR a lost descris anterior. Pentru a realiza backupul configura)iei tuturor partiliilor se utilizeazA programul sfdhk. Acesta analizeaza. atat partitiile primare Cal si pe eele logiee, dar nu se uitll. la inlormatiile din MBR care nu sunt legate de parti)ionare (p rec um bootloader), EI este un bun complement pe IAngll. metoda amintitA mai sus de a face backup la MBR. Comanda urmatoare lace backup pentru intreaga schema de parlitionare folosind s fdisk - f!sierul de backup este /usbscic k / p ar c i t ion s . backup :
root@ubuntu:-I
"CdlS~

- d /dev/sda >

lusbs t lc~/par tl t l on$ . bac'up

Pentru a restaura schema de partitionare satvata anterior, sldisk se ulilizeaza astlel:

212

lNTRODUCERE iN SISTEME DE OPEAARE

r o ot~ u bu n t u : "

.td(s ~

/devJsda <

! u sbstic ~ / p arUt1ons . b ac k up

7.8.2

Salva rea con1inutului unui disc cu sectoare inaccesibile

Exisla situa!ii cAnd, de obicei dupa 0 perioada rna i lunga de utilizare, un hard disk lncepe sA nu mai /unctioneze coreet. Sa observa acest lucru din erorile pe care sistemlJl de operare Ie af i ~eaza card vrea sa citeasc1i dale de pe disc. in asemel1ea situa~ i . cea mal rapidA metodA de backup eSla copier6a fi$iereior pe un all disc.
Acesta este caz ul lavorabil, c:l.nd dalele mal pot Ii idenlificate si sistemul de operare mal func!ioneaza, in cazul in care defectul hard disk-ului apare in zona in care este deseris sislemul de lisiere, exista 0 probabililate destul de mare ca dalele sa nu mai poata Ii salvate prin simpla copiere a lisierelor. in aceasta siluatie se poale opla penlru repararea sislemului de li~iere ulilizand aplicalia t"sck , dar nu se dore~le ca aceasla reparare sa aibA loc pe hard disk-ul detect. inlai se real izeaza 0 copie a tuturor datelor de pe primul hard disk pe un all hard disk, copie numila imagine. Comanda ulilizata penlru a real iza aceastoli imagine este del , impreunoli cu parametrul conv - noe rr or, paramelru care Ii spune dd-ului sa nu se opreasd. alul"ICi cand detecleaza un bloc inaecesibil.
root@ u b unt u : -' dd
1[ - idevisd~

o f - i d evi. d b conv- noerror

Executia acestei eome rlzi poale dura ioarte mull limp, dalorila numarului mare de blocuri care Irebuie cilite ~i scrise. Penlru a accelera execu~a comerlzii. se poale mari dimensiunea bloc ului cititlscris prin intermediul pa rametrului b s (block size), prezentat anterior. Ulilizarea unui bloc mai mare decal dimensiunea unui sector de hard disc (512 octeti) poate duce la pierderea ultimelor secloare de pe discul su rsa, cac i nu se poate realiza un bloc eu ele.

7.8.3

Crearea unei imagini de CD; montarea unei imagini

o imagine de CD se creeaza in mod asemanator crearii unei imagini de hard disk.


roo t @ u b untu , - f dd
i f - idevih d ~

o f - c ct . i .o

Aceasta comandl'i va citi CD-ul introdus in unitalea Idev /hda sector cu seclor si va serie imaginea lui in fisienJl cd , iso. Penlru a pulea utiliza imaginea, aceasla Irebuie montata intr'Url director precum orice all sistem de fi~iere , dar cu urmatoarele observalii : tipul sislemului de
1i~iere

de pe Uri CD eSle i 509 660 ;


~i

deoarece fisier ul nu este un dispozitiv real . trebuie utilizata


r oot @ u b untu : -f mount - t
1 ~ o 9660

opliunea loop.

- 0 l oop c d . i; o imn t i cd

Penlru a demonta imaginea. se utilizeaza coma nda:


roo t @ u b untu : - I umount iMn t l c d

CAPITOLUL 7. ANALIZA HARDWARE A SISTEMULUI

21 3

in acest lei pot Ii plistrate pe disc imagini ale CDmilor utilizate des si/sau pot Ii testate imagini de CD create de dilerite utilitare. Trebu ie menlionat ca se poate aplica aceea~ i procedura si pentru DVDuri, atil.ta timp cil.t sistemul de lisiere este corect precizat i n comanda mount (DVDuri le pot Ii serise in lormatul UDF).

7.8.4

Ulilizarea unui fi!~ ier de pe 0 pentru un LiveCD Linux

parti~ie

FAT32 ca

fi ~ ier

de swap

Se observli de multe ori ca UveCDurile lunclioneaza greu pe sisteme care nu au multa memorie RAM disponibila, intrun sistem instalat, memoria RAM poate Ii ajulata ~i de prezen!a spatiului de swap de pe hard disk. jntrun sistem i n care nu ex ista nieio parti!ie de swap, un LiveCO nu acliveaza niciun aslfel de spaliu. 0 posib ilitate a reprez inla utilizarea unui lisier de swap, pe 0 partitie deja existenta in sistem. Sa utilizal pentru exemplificare 0 parti!ie FAT32, dar se poate utiliza orice tip de parti!ie pe care linuxul poate scrie. Pentru inceput, se monleaza sistemul de lisiere (partilia a doua, primul hard disk) unde se doreste ere area fi~ i erului de swap:
roo t @ u b unt u: -' mount - t
vf~ t I d ev/" d ~2

I rnnt/temp

in acesl moment se poate erea un fis ier de swap de dimensiunea doritll utilizflnd programul dd:

roo t @ ubu nt u : -I dd if - Jdev/.eco of - / mn tJte mp !fi ~ i e c . 5w&p bs - 1M cou nt - 256 256 +0 c ~cocd" i n 256+0 r eco r d s out 26B435456 byt,,~ (268 MB I copi e d , 6 . 411 71 s"conds . 41 . 9 MB/s

5 -a ereat un fisier de 256 MB (plin eu zero uri) pentrLJ a Ii lolosit ca lisier de swap. i n aeest moment trebuie transformat fi~ ieru l in zona de swap, printrun proces asemanator lormatarii parlip ilor:
roo t @ u b unt u , -I
m k~wa p

/mnt/ t emp/fi, i e r . swap

in acest moment, fisierul este preglitit pentru a Ii folosit ea zonli de swap. 5istemul de operare trebu ie sa aile de prezen!a fi~ i erului de swap printro opera!ie asemanatoare montlirii unui sistem de liSiere:
root@ubu ntu:-I swap on Jmntltemp!tisier wap

Oupa executia acestei comenzi sistemul foloseste fi~ierul creat mai sus ca zona de swap.

Cuvlnte chele kernel kernel-space userspace masina virtuala von Neumann CPU, procesor

214

INTRODU CERE iN SISTEME DE OPERARE

AAM,DRAM

placA de bazA
chipset northbridge

southbridge harddisk, HDD

magistrali'!, PC I, AGP
dispozitiv modul
driver

Ismod, ins mod, mod probe, rmmod

I,,,

Isusb, Ispci

sensors smartmontools

Idev

"'"
dd

dispozrtive de tip bloc dispozrtive de tip caracter

pseudodispozitive

/pIOC
sysctl

ietc/sysctl.conf

MBR

Intrebfitl

t. Care dintre urmi!toarele NU esle 0 componenta a arhitecturii von Neumann?

o o

CPU

o unitatea de comandi'l

memoria

o dispozitivele de intrare ie~ire


2. Care utilitar peate Ii folosi! pentru efectuarea unui backup la MBR?

o
o

lspci
lsUllb

o !lysctl

o"
3. Care din urmatoarele NU clera direct informa!ii despre sistem?

o Isys

/ p roc

000

o o o

lllusb

4. Care comand1i NU eSle folositii penlru interaC)iunea cu modulete din kerne l?

l smod modprobe
C JPYnghted matanal

CAPITOLUL 1_ ANALIZA HARDWARE A SISTEMULUI

215

o o

modinata ll inamod

5. Care din urmatoarele NU este un exemp lu de pseudodispozitiv?

o o o o
o o o

Ide v /null /de v izero


Ide v/ h d a 3
Ide v/ urando m

6. Care din urmaloarele dispozilive NU este asociat unui harddisk?


Ide v/sda.l

Idevl h da 5 Id e v /sda

o o o o
o

Ide v /t t ySO

7. Care din urmatoarele se refera In mod direct la placa de baza?


southbridge megabyte GPU cache

8. Care din urmatoarele acronime NU este corelat direct cu dispozitive fiz ice?

o o o o
o o

SCSI USB ACPI TGZ

9. La care dispozitiv se relerA acronimul AGP? procesor placa de relea placa grafica hard-disk

o o o o
o o

10. La ce se refera in general no!iunea de "arhiteclura pe N bili"? dimensiunea reg istrelor dimensiunea magislralei de date dimensiunea memoriei cache L1 viteza maxima a southbridge-ului

C JPYnghted matanal

Copyrighted material

Capitolul8 Configurari de relea


'rOu know it's love when you memorize her IP address to skip DNS overhead.

Ce sa invati din a ces! capitol ?

Noliunea de (elea de calculatoare


Topologia una; relale de calculatoare Adresarea IP Paramalrii una; retela de calculatoare: adresa IP, masca de (alea, gateway Conligurarea una; interfete de (elaa in Linux; adaugarea de rute in Linux
Conligurare tamporara; coniigurare permanentA; configurare statica; coniigurare

dinamica,
Conlig urare DNS

Verilicarea conectivi\a,\ii lnlr-o relea locala


Conligurarea rete le; in Windows

Conlig urarea PPPoE in linux

8.1

Concepte de relea

Aparitia ~i evoliJlia calculatoarelor au dus Ie dorinla de a facilrta comunica lia intra ale penlru a partaja date rna; u~r sau penlru a pulea indeplini 0 sarcina com una. Oe~i dezvollarea relelelor de calculaloare a losl inrtiallenla, implemenlarea lor a cunoscul 0 cre~lere mare dupa 1990, odaU\ cu explozia numarului de calculatoare legale la Internet Oaca ini)ial re)elele de calcu latoare au lost create pentru a lacilila schimbul de inlorma)ie in mediul academic, in momentul de lata ele se adreseaza in mare masura ulilizalorilor privati ~i mediului comercial.

217

21 8

lNTRODU CERE iN SISTEME DE OPEAARE

Penlru ca un calculator sa he conectat la 0 relea trabuie realizate douli conexiuni: 0

conexiune fizica

~i 0

conex iune Jogiea.

Conexiunea fizica esle ulilizata pentru a codi/ica informa!ia sub forma de semna le electrice (in cazul eel mai uzual intalnit oonex iunea S9 realizeazA pr in cabtu UTP), semnale optice {pentru legaturile prin fibra optical sau semnale eleclromagnetice (pentru legaturile fMa fir). in primate douA cazuri ea S8 realizeaza printr-un cabtu care

leaga ca lculatorul de un echipament de relee .


Conexiunea logica cuprinde un set de mecanisme de adresare complexe (ce asigura

comunicatia intra calcu laloarele conectate Ie relee), cuprinde contrOlul flux ului de date
si clera garan!ia integrita!ii datelor. Cel mai cunoscut mecanism de adresare prezent in cadrul conexiun ii logice este IP (Internet Protocol). Acesta asigur.:i identihcarea unica ~i comunicarea calculatoarelor atat in rete lele locale, cat ~i in Internet.

8.1.1

NOliuni de bad

Re)elele de calculatoare, din punctul de vedere at standardelor folos ite , sun! impdr\ite in trei mari categorii: relele locale de calculatoare (Local Area Network - LAN). rele le me!ropolilane de calculaloare (Metropolitan Area Network - MAN) si retele de calculatoare pe arii extinse (Wide Area Network - WAN). in momentul de lata aceasta clasiflcare nu se mai pastreaza 100%, re!elele MAN dispanind aproape complet si fiind inlocuite cu rete le LAN.
lOb '''' PC

Sw ~ ( h

Figura 8. f: Schema unei relele locale de ca lculatoare o relea locala de calculatoare este formata eel mai adesea din mai multe sla1ii legate intre ele. 0 sla!ie poate lj un calcu lator, un laptop, un PDA, un Tablet PC, un server, un router etc.

CAPITOLUL 8_ CONFIGURARI DE RETEA

219

Conectarea statilor se realizeazA pr intr-un ech ipament de retea numit switch. Acesta translera inlormatia intre calculaloare bazandu-se pe adresa MAC. Adresa MAC este un numar cu 0 lungime de 48 de bil i care identihcA in mod unic liecare inter/atA de relea Ethernet. Prin urmare nu pot exista doua in ter/ete de relea Ethernet cu aceeasi adresa MAC. Adresa MAC este Inscrisa din fabrica lntr-o memorie ROM de pe placa ~i ea nu poate Ii schimbata. Datorita laptului ca protocolul DHCP de conligurare automata a adreselor IP utilizeazA Irecvent adresa MAC pentru a aloca 0 adresa IP unui calculator, este uzualA practica de a modihca ad resa MAC a unei plAci de retea. Acest lucru nu inseamnA rescrierea memorfei ROM, ci spec ilicarea unei alte adrese pe care sistemul de ope rare sa 0 loloseas~ i n locul celei initiale. Switch -ul per mite comun icalia intre calculatoare allate in aceea~i relea localA, Pentru a putea accesa si alte calculatoare (cel mai adesea pentru a putea accesa Internetul) trebu ie ca unul din echipamentele din retea sA aibi'l 0 a doua legAturA la 0 altA lelea, Acest ech ipament poate sa lie 0 stalie sau un server cu mai multe inter/ete de retea sau un echipament de relea dedicat numit ruter. Transferul informaliei din reteaua locala mai departe Ins pre Internet se bazeaza pe adresa IP. Adresa IP esle un numar cu 0 lungime de 32 de bi)i lolosit pentru idenmicarea lieci'lrei interiate de relea in Internet. statie poate avea mai multe adrese IP, in mod uzual cAte 0 adresA pentru Mcare interiata. Este posibi l lnsa ca pe 0 interfala sa he configurate mai multe adrese IP.

8.1.2 IPv6
Pt'lnl'i acum am lolosit nOliunea IP pentru a ne releri la Internet Protocol version 4 (IPv4). Internet Protocol version 6 (IPv6) este urmatoarea generalie de protocol de re!ea. dezvolta! pentru a inlocui treptat IPv4, Adresa IPv6 este un numAr cu 0 lungime de 128 de bili folosit pentru identilicarea l iecArei inter/ate de relea in Internet. Principalul motiv pel'ltru care a lost im~emel'ltat un nou protocol de retea pentru Internet este epu izarea adreselor IPv4. IPv6 are un spaliu de adrese mull maj mare decAt IPv4 din cauza lungimii adreselor. Spatiul de adrese IPv6 olera 2128 adrese, lalA de IPv4 care are doar 2~ 2 adrese.

8.1.3 Moduri de adresare : adresare unicast, multicast, broadcast


Comunicatii le intre echipamente pot Ii impAr~le in trei catagorii, in lunclie de numArul de destinatari:

220

lNTRODU CERE iN SISTEME DE OPEAARE

oomunicatii unlessl : au 0 sursa 5i un destinatar;


oomun icalii multi ca st: au 0 sUfsA 5i rnai multi destinatari ce lac parte dintr-un grup

specific ; comun icatii broadcast: au 0 sursa si ca destinatar toate statiile dintr-o rejea . Atflt mesajele de tip multicast cAl s; cele de tip broadcast sun! adresate rna; mullor destinatari simultar1. Diferenla dintre ele constA in faptul ca masajele de lip broadcast S9 adreseaza tuturor sta\iil or dintr-Q retea, pe cAnd cele multicast S9 adreseaza dear unora din acesle slaW.

8.2 Parametri de relea


8.2.1 Adresa IP!?i masca de retea

Adresa IP pe 32 de b~i a los\ inlrodusA in perioada "SO, cAnd nu S9 preconiza cresterea speclaculoasa a Internetulu i. Dupa 1990. datorita dezvoltarii re!elelor, cerinlele penlru adrese IP au crescut, astlel incAt nu peste mult timp adresele au inceput sa se epuizeze. Din acest motiv au aparut mai multe mecanisme menite sa reduca numarul de adrese IP ulilizate, prinlre care adresele IP private si Iranslalarea de adrese IP (Nelwork Address Translation - NAT). in paralel a lost dezvoltata si 0 solutie pe termen lung: protocolul IPv6, a carui ulilizare va cresle in anii urmatori. in cadrul aceslui protocol adresa IP are 126 de biti. Pentru a u~ura utilizarea adreselor IP, cei 32 de b~i sunt separati in palru grupuri a cate 8 bili. !iecare grup fiind scris in forma zecimala. Astlel adresa IP ulilizata in mod uzual este compusa din patru numere zecimale intre 0 si 255 despar!ite prin puncte:
, 3 01011001 11 0 1 0 111 0001111010000111 - e~ i 32 d e b i ti ai une1 ~dre5~ lP 01011001 .11 0 10111. 00011110 . 10000111 - p~tru qrupuri a ca t e B bi t i B9 . 215 . 30 . 135 - fi.,.car.,. grup este tr ~nsfo r ""'t i n format zecim~1

Atunci cand 0 inlerlata de re!ea are conligurala 0 adresa IP, adresa are doua componenle: 0 parte din cei 32 de bili reprezinta adresa relelei din care face parte stalia ~i cealalta parte a bi!ilor reprezinla adresa staliei in cadrul relelei. Sistemul este similar cu ce l utilizat pentru codul postal: in cad rul codului 014286, primele doua cilre pot reprezenta judetul. urmatoarele doua pot reprezenta ora~ul. iar ultimele doua pot reprezenta strada. Astlel destinatia este localizata in arii din ce in ce mai restranse. Pentru a putea spune care dintre cei 32 de b~i reprez inta adresa retelei si care reprezinta adresa calculatorului in cadrul re!elei. este utilizala 0 masca de relea. Aceasla este tot un numar de 32 de biti cu 0 caracte ristica speciala: este compusa, pornind de la stAnga la dreapta, dintrun tMoe compact de 1 urmat de un tMoc compact de O. Pentru u\ilizarea mai u~oar1i a m1i~tii de relea este folos ita aceea~i notalie ca ~i in cadrul adresei IP:
, 11111111 000000000000000000000000 - eei 32 d.,. biti ai Une1 mast> 11111111 . 00000000 . 00000000 . 00000000 - patru qrupuri a ea t e B b>ti 255 . 0 . 0 . 0 - f i e cdre grup es t e t ranfo r mat in format ~ecim~l

Dac1i in cadrul ma~tii de relea un bit este egal cu 1. atunci bitul corespunzator din adresa IP face parte din adresa retelei, iar daca eSle egal cu 0, bitul corespu nzator din adresa IP face parte din adresa calculatorului (sta~e i ) in C<ldrul fe/elei:

CAPITOLUL 8. CONFIGURARI DE RETEA

221

0 1011001.11010111.000 1111 0 . 10000111 11 111111.00000000.00000000 . 00000000


<- A . R . - > <--------A . S . ------------ > A . R. - lIare. " re t ele ! A . S. - Aare.,. 9t H ie i

aar ..... IP "",.ca ae rete a

3 5

Pentru a putea afla din ce relea lace parte 0 adresa IP, se lace $1 logic pe bili intre adresa IP si masca de retea. Dup1i. realizarea operatiei de $1 logic se obtine 0 adresa IP care are toli bitii din partea de adresa a relelei egali cu adresa relelei din care face parte statia, si toti bitii din partea de adresa a staliei in cadrul relelei egali cu 0:

0101 1001 .11 010 1 11.00011110.1000011 1 1 1 111111.00000000.00000000 . 00000000


-----------------------------------

0 10 II 00 I .00000000. 00000000 . 00000000


<-A . R.-> <--- ----A . c . ------------>

89.215 . 30 . 135 - aaresa lP 255.0 . 0 . 0 - masca de rete a SI l ogic p .. biti 89.0.0 . 0 - adre s a r ete lei 89 . 255 . 255 . 255 - "de. brMdca 9t

0 I OII001 . llllllll . 11l 1l111 . 11111111

Adresa IP in care toli bi!ii din partea de adresa a statiei sunt egali cu 0 se numeste adresa relelei din care lace parte stalia. Toate statiile dintro relea locala au adrese IP care au aceeasi adresa a releleL in felul acesta se rea lizeaza corespondenla intre conexiunea fizica la retea si cea logica. Adresa IP in care toti bitii din partea de adresa a statiei in cadrul rete lei sunt egali cu 1 se nume~te adresa de broadcast a relelei. Daca un pachel este trim is catre aceasta. adresll. atunci el ya Ii procesat de toate calculatoarele din relea.

Clase de adrese IP Conceplul de clase de adrese IP este important pentru intelegerea modului in care fu nctioneazll 0 relea de calcu latoare. Spaliul de adrese IP este impllrtil in cinci categorii, denumile c/ase de adrese, i n /unctie de intervalul din care lace parte primul octet al adre5ei IP (sau, echiyalent, primul numar zec imal din notalia cu pune!). se stabileste clasa respect ivei adre5e IP: intre 0 5i 127, adresa IP face parte din clasa A, intre 128 5i 191, adre5a IP face parte din clasa B, intre 192 5i 223, adre5a IP lace parte din clasa C, intre 224 si 239. adresa IP face parte din clasa D, intre 240 si 255. adresa IP face parte din clasa E. Aceasta impar)ire a claselor de adrese a lost aleasll din cons iderente de perlormant1i.: pentru a determina clasa unei adrese IP oarecare, un dispoziliv hardware de relea trebuie sa inspecteze maximum primii patru bili ai adresei IP (yaloarea bitilor nota!i cu nu este importanta): 0 .. " adresa IP face parle din clasa A, 10... , adresa IP face parte din clasa B, 110, . ". adresa IP face parte din clasa C.

222

lNTRODU CERE iN SISTEME DE OPEAARE

1110. , adresa IP face parte din clasa D,

1111, - . -', adresa IP face parte din clasa E. Imp1i!1irea pe clase determina doua caracterishci imporlante ale une; adrese: tipu l rutarii (unicasUmultiCastlrezerval) 5i masca de relaa. Clasa A: 0.00.0 - , 27.255.255.255 - masca 255.0.0.0 - unicast

Glasa B: 128.0.0,0 - 191.255.255.255 - masca 255.255.0.0 - unicast Clasa C: 192.0.0.0 - 223.255.255.255 - masca 255.255.255.0 - uniC3S!
Clasa D: 224.0.0.0 - 239.255.255.255 - multicast
Clasa E: 240.0.0.0 - 255.255.255.255 - rezervat
Modul acesta de clas ificare a spatiului de adresa a fost utilizat lnlr-o faza incipienta a Internelului. Din motive care lin de eficien!a modului de utilizare a adreselor IP, In prezent, m1l~ti le de relea nlJ alJ doar aceste trei IlJngimi fixe, ci pot avea IlJngime variabil1l, iar impai'\irea in cele einci clase nlJ mai este Intanita decat In cawri rare.

Adrese IP PlJbli ce ~i adrese IP privale In momentlJl In care nlJmarlJI de adrese IP ramase libere a InceplJt sa scada sim!itor, la lneeplJllJl aniior '90, alJ aparut mecanisme menite s1l rezowe partial aceasta prOblema. Printre mecanismele aparlJte se nlJmara si spalilJl de adrese private. Din fiecare elasa de adrese a fost rezervat lJn spalilJ de adrese care nlJ pol fi accesale direct din alara re!elei locale. Practic statiile care alJ conligurate adrese IP private SlJnt invizibile din afara re!elei lor, si implicit din Internet. De aceea pot exista mai mlJtte sta!ii, lacAnd parte din rete le diferile, care alJ aceeasi adresa IP privata.. 1n lellJl acesta se realizeaza 0 economie mare de adrese IP. Spa!iile de adrese private slJn!:
2

10 . 0 . 0 . 0 - - 10 . 255 . 255 . 255 d i n clas a A 170 . 16 . 0 . 0 -- 112 . 31 . 255 . 255 d i n cl a sa B 1 92 . 168 . 0 . 0 -- 192 . \68 . 255 . 255 d i n cl aaa C

PenlrlJ ca 0 sialie ce are conliglJrata 0 adresa IP privala sA poata. accesa sialii care nlJ se afla in aeeeasi retea ClJ ea esle necesara lJtilizarea mecanismelor de NAT (Network Address Translalion). De cele mai mlJlte ori, prin NAT, loale sialiile dinlr-o relea ClJ adrese IP private vor fi reclJnOSClJte In afara relelei ca aval'ld aceea~i adresii IP plJblicii

8,2.2

Ruter implicit (default gateway)

PentrlJ a plJtea accesa calClJlatoare allate in alte relele, este necesar ca lJnlJl dintre echipamentele conectate in relea sa aiba 0 a dOlJa inter/ala conectata la 0 alta relea. Din cea dea dOlJa relea se poale real iza mai departe acceslJl caire Inlernel. Acesl echipament se nlJme~te gateway. AtlJnei cand 0 slalie A doresle sa comlJnice ClJ 0 statie B, primlJl pas pe care II face eSle sa verifice daca adresa IP a IlJi Beste in aceeasi relea ClJ adresa IlJi A. In cazlJl in care

CAPITOlUl 8. CO NFJ GURARJ DE RETEA

223

ceJe doua statii sunt In aceeasi relea. informatiile sunl tr imise direct catre 8. Daca 8 nu se alia in aceea~i retea cu A, atunci informa\iile sunt trimise catre gateway. urmand ca acesta s1i gi:!seascA 0 rula cAtre 8. De exemplu cand A I VTea sA comunice cu A3, l iind amandouA in aceeasi retea locala, Ii va trimite informaliile direct. Calea pachelelor esle reprezenlalA in figura 8.2.

Figura 8,2: Comunicarea in releaua localA in cazul in care A I vrea sA comunice cu 82, va trimite informatiile caire RI care este gatewayut. AI va verifica dacA reteaua deslinatie este direct coneclata sau daca cunoa~te calea cAtre ea Schema din ligura 8.3 reprezintA catea pachete lor de la A I la 82:

_.
Figura 8.3: Comunicarea in afara re!elei locale Prin urmare este necesar ca l iecare statie din retea sa cunoasca adresa gatewayului pentru a putea avea acces in alara retelei si masca de re!ea pentru a vedea daca este cazul sA fo loseascA gatewayul sau nu.

B.2.3

ONS

Un utilizator acceseazi:! in mod normal un numar mare de serv icii de re!e a, cele mai mulle l iind olerite de diverse servere. Accesarea fiecarui serviCiu este conditiona!1'i de cunoaslerea adresei IP a serverului care oleri:! servic iul respectiv. Spre exemplu. pentru a accesa 0 pagini:! web este necesarA cunoasterea adresei IP a serveru lui pe care este gaz:duita acea paginA,
" 1

'"
unui server, i se poate alia adresa IP.

lNTRODU CERE iN SIS TEME DE OPEAARE

Penlru ca mamorarea unui num~ mare de adrese IP nu eSle un lucru cornad, a apArut serviciul numit Sistemul numelcr de domenii (Domain Name System - DN$). in cadrul acestui serviciu se realizeaza corespondenla intre un ~jr de caractere ~j 0 adresA IP. De aceea ONS-ul poate Ii priviJ ca 0 carte de telelon de unde, daca se cunoa~le numele

4. Adresa IP a lu i curS,CS.p ub,('O

este 141.85.224 .18


S.14185.224.18,
d~-mi

te '''Il

pag ina Inde'. html

1. vreau
s~

curs ,cs.pub ,ro

aceese. curs,cs .pub,ro

2. Am nel/o ie de adresa lui IP

Fig ura 8.4: ROlul unui server DNS

Un nume de domeniu (asocial unui ca lculator) eSle cempus din mai multe parti despiir,!ite
prin puncta: de axemplu cUfs.cs.pub.ro. Cea din exlremitatea dreapta: se numeste Top Level Domain - TLO ~i poate cont ine indicativul unei tari (.ro pentru Romania . .us pentru SUA, .jp pentru Japonia elc.) sau poate reprezenta un anumit lip de organ izatie (de exemplu .com pentru orga nizatiile comerciale, .org pentru organiza!iile nonprofit, .mil pentru armala SUA elc). in stanga Top level Domain se gasesc subdomen ii. in exemplul de mai sus subdomeniul pub este asocial Universitatii Politehn ica Bucuresti, cs este asociat FacultAtii de Aulomalic<'i si Calculatoare , Caledra de Calculaloare. Serviciile de DNS sunt oferrte de servere special izate. Pentru a putea accesa un astlel de server, este necesara cunoa~lerea adresei lui IP, Exista servere pu~ice care ofera servicii de DNS, ins<'i de cele mai mul1e ori este de preferat ca in cadrul rete lei locale sa existe un server de DNS din motive ce lin de l impul de raspuns. Chiar daca serverul de DNS eSle plasat in releaua locala. DNS-ul ramAne eel mai lenl serviciu de relea si componenla cu ce l mai mare limp de raspuns in mecanismul de comunica!ie in relea. De aceea se spune ca " \-bu know it's /ove when you memorize her IP address fo skip DNS overhead". Este pos ibil uneori ca adresa IP asociata unei stalii sa lie dinamica. Aceasta inseamna ca din timp in timp slalia respectiva va primi 0 alIa adresa IP. Pentru a putea accesa sta!ia lara sa i se cunoasca adresa IP existenta la un moment dat se foloseste sistemul a'e-nal

CAPITOLUL 8. CONFIGURARI DE RETEA

225

Tabe lul 8.1:

numit DynDNS {Dynamic DNS }. In cadrul acestui sislem sla!ia va Irimile caire un server DNS specializat informatii actualizate legate de adresa ei IP.

8.3 Configurari temporare


8.3.1 Intertete de retea . temporare Configurari permanente 5i configurari

Din punct de vedere logic, liecarei placi de retea ii corespunde in cadrul sistemului de operare 0 interfala. Pe aceasla inlerfa\& se conligureaza 0 adresa IP si 0 masca de relea. in linu~ interfetele de relea conlin in denumirea lor doua componente. Prima parte reprezinta tipul interfetei (de exemplu eth pentru Eth emet, wla.n pentru placile de relea lara lir etc) si numarul ei (e t hO reprezinta prima interfala de Ethernet. wlao I reprezinta a doua interfa!a lara lir etc). Conligurarea unei adrese IP se poale rea liza in doua moduri: temporara sau permanenta. Fiecare din cele doua se poate realiza la rAndul ei statiC (parametrii sunt introdu~i manual de administrator) sau dinamic (paramelrii se conligureaza in mod automat). Conligurarea temporarA statica se realizeaza cu ajutorul comenzii ifconfiq (a carei denumire vine de la interface configuration). Eleclul aces lei configurari este imedial (parametrii sa aplica imedial dupa ce comanda eSla data) insi'l odata cu rapomirea sistemului de ope rare , configurarile se pierd. Configurarea temporara dinamiCa. se reali zeaza cu ajutorul unui client DHCP, de exemplu dhclient sau dhcpcd. Conligurarea permanenta statica sau dinamica se re alizeaza cu ajulorul lisierului / etc/ ne t wo r k/ in t er f a.ces . Eleclul aeeslei comenzi nu esta imedial (eonligurarila nu se aplica odata cu salvarea lisierului), insa conligurarile se pastreaza si dupa repornirea sislemului de operare. Acestlucru se pelrece deoarece lisierul in care sunt trecute conligurArile aste citil ~i interpretat de sistemul da operara la inilializare, conligurarile din I~ier liind din nou aplicate. $i configurarea unui gateway se poate real iza in mod temporareu ajutorul comenzii route sau in mod permanent prin fi$ierul de conligurare / etc/net"" o O;f i nte rfa. c es . Fiecare din eele doua metode (permanent vs. tempora r) are avantajele sale. Configura.rile tempo rare au efect imediat si se apliea u~r. Cele permanente se pot

.1

226

INTRODU CERE iN SISTEME DE OPEAARE

aplica automat la fiecare initializare a sistemului de operate.

8.3.2

Configura rea temporara statice a unei adrese IP pe 0 interfa,ii

Pentru a configu ra 0 interiat;'\. de retea in mod temporar sa lolases!e comanda


i. f con fi q _ Modul de utilizare al comenzii asia urmatoru l:
2 ro o t@ u b unt u: -' ifcon li g [ - v ] ( - ~l [- . ] [interhc .. l root@ u bun tu:-' lfcontig [ - v] interf a ce ["ftyp e ] op tion$ I a dd ress . _ .

Prin l.IIilizarea comenzii lara nieiun parametru sa pot alia informalii despre intertelele de

relea active:
root@a. gar o: / hom e/george t itcon f l g
2 ethO Ll nk encap ; et~ernet
H"a d(! ~

0 0: 14 ; 0 1 ; 3a ; 7 3 : A6

,. " "
12

,
10

inet a ddr : 10 . l . l . 2 Bcast : l0 . 1 . 1 . 2SS H&sk : 25 5 . 2 55 . 25 5 .0 i ne t6 addr : fe80 :: 214 : d lff : f e 38 : 13a6/64 Scope : Lln k UP BROADCAST RUNNIN G MULT I CAST M TU : l S00 Metri c : 1 RX p a c kets : 189820 17 ecco c s : O dcopped : O overruns : O f came : O TX p a c ke ts : 21864548 euo c s : O d r o p p e d : O oveuun ~ : O cauie r: O co ll i , i on , : O t xqueuelen : 1000 RX b yt"s : l 44959484 ( 130 Mi B) TX b yt@s : 2 l 665362 (20 . 6 MiB) Intucup t : l 8 Base a aa res. : Ox 4400
L in k "ncap :L oc o l Loopbac k in"t aaar : ln . O. O. I MU k : 2SS. 0 . 0 . 0 j ne t 6 aaac : :: 1/ 128 Scope :H ost UP LOOPBACK PUNN I NG MTU : 164J6 Metric : l RX p ac ke t s : S", err o rs : O a roppea: O overr u ns : O f rame , O IX p a c ke ts : S,1"] erco<s : O a ropp ea : O ove r runs : O c &rr i er:O col l i9ions : O txqueue l en : O RX b yt e s : 360919 (352 . 4 Ki B) TX byt e ; : 360919 (352 . 4 Ki B)

" " " "


"

"

Pe langa interfetele corespunzaloare placilor de re!ea exista si inletia!a 10. Numele aceslei interfele vine de la loopback. Orice informatie transmisA pe foopback se va intoarce inapoi tot pe loopback. Intetiata de loopback este 0 intertati! vi rluala (Iari! un corespor1den1 lizic) care este 1010si1i! i n scopuri de testare. Ea are, deobicei, asociata 0 adresi! IP standard: 127 . 0 . 0 . 1. Daca un calculator nu are nicio placA de re!ea , intetia!a de loopback va Ii singura existenta. Parametrii uzuali ai come nzii i fcon fi q sunt urmatorii: - v afiseaza inlormatii detaliate In cazul erorilor: - a ali~eaza informatii despre toate inletie!ele inactive.
e~ istente,

lie ci! sunt active sau

, , ,

r oot@as9a cd : /h ome/ge o rge f i fco n f i g et h O L i. n k encap : Et h er n et HWaddr 00 : 14 : DI : JB : 73 : A6 inet addroIO . l . l . 2 Bcast: l O. l . l . 2 5S MU k , 2 SS . 2SS.2SS.0

( ... I

'0

L i. nk inet

enc a p ' Lo c ~ l

& ddr : I ~7.0 . 0 . 1

Loopbac k Mask , 2SS . 0 . 0 . 0

[ ... I

CAPITOLUL 8. CONFIGURARI DE RETEA


," " root@asgard : /home/george f i fco n f ig - a et hO Li n k enc~p : Ethunet HWaddr 00 : 14 : Dl : 38 : 73 : A6 Inet addr:lO .l . l.2 Scas t , lO.1.1.255 Mas~ : 2SS
[ ...

227

. 2SS . 255 . 0

..
"

1~

I
HWaddr OO , la , F3 : AB ,4S, 62 MTU : 1500 Met ri c : l

et hl

Link encap , Etherne t eROAOCAST MU L1 JCAS1

" ,. "

[. .. I
10 Li n k ine t
enc~p : Loca1 ~ddr : l27 . 0 . 0 .1

"

Loopbac k M " ,k : 255 . 0 . 0 . 0

[. .. I

- s afi seaza. statistiCi legate de interfetele de retea in format compact, sub forma unui label:

, , ,

root@a,gard : /homelgeorge f ifconf i g RX - OK RX-ERR iface I .. . I TX - OK IX - ERR IX- ORP TX - OVR 1500 193488 I _. I 2a2J 4 7 et hO 0 0 ,~" 16436 5849 0 I ... I 0

"

ce" " i nterface reprezinla numele interfe!ei despre care se doresc informalii sau

, "'" "" ,

-,

,,,

, ,

n,

numele iflterfetei care va fi configurata. De exemp lu, pentru a afisa informal ii des pre interfala de re!ea ethQ se lolose~le comanda
, root@asgard : /homelg@o rgef i fco n f ig @thO @t hO L i.nk encap : Ethernet HWaddr 00 : 14 : Dl : 36 : 73 : A6 lnet add r: lO .l.1.2 Bcast,10.1 . 1.25S Mask,2SS.2SS.255.0

[. .. I

address reprezinla adresa IP care va Ii configu rala pe interfalE!.. De exemplu, penlru a config ura adresa IP 1 Q. 1 . 1 . 3 pe interfala ethQ :

root@a ,ga rd : lhomelgeorge f l fconfig ethO 10 . 1 . 1 . 3


root@ ~"g~rd : lhomelgeorge f

et hO

ifconfig ethO LLnk enc~p : EthunH Hwaddr 00 : 14 : DI : 38 : 73 : A6 ine t addr : lO . l . 1.3 Bc"'t :1 0 . 255 . 255 . 255 Masx : 255 .0 . 0 . 0

I ... I

options reprezi nla OPliuni avansate ce pol Ii co nligurale Opliunile ce le mai des fo losite su nt urmaloarele: down dezactiveaza 0 inter1ala. Odata dezactivata, in!erfata nu va mai trim ite si nu va mai primi niCiun pachet
, rOOt @d "g~rd : I home I geo rg-e f i fconf ig et hO Li n k enc~p : Eth ~ r Mt Hwaddr 00 : 14 : DI : 38 : 73 : II.6 ine t addr : lO .l.1. 2 Bca 3t :1 0 . I . I . 255 Mask : 255 .2 55 . 25S . 0

t ... I Link en c ap : Loca 1 Loopbac k '0 ,ne t addr : l27 .0.0.1 Mask : 2SS . 0 . 0 . 0 , [ J roothsgard : lhomelgeo"g-e f !fconflg- ethO do wn '" " roothsgard : lh omelgeor g e f itcon fig12 ,) 10
Lin~

encap : Loca l Loopbac k


~ddr : l27 .0.0.1 M ~" k:2 55 . 0 . 0 . 0

inet

,.

I ... I

228

lNTRODUCERE iN SISTEME DE OPEAARE

Sa poate observa faplul cli. dupl'i ce interfa\a a lost dezactivatli, ea nu mai apare in lisla de intertele active. Pentru a afi~a toate in terfelele existente S9 folose~te parametrul - a. up eSla utilizat1\ pentru a activa 0 intertalil. in cazul in care eSla specifiCatA 0 adresa IP pentru a Ii configuratA pe interfala, opliunea up esle cons ideratA implicit
root 8~ "\lard : I hom .. I geo rge f i fconf iq 10 Link encap : Local Loopback in" t addc : 127 . 0 . 0 .1 Mask : 2SS . 0 . 0 . 0

2
J

,
"

( ... I
r oot@asgard : /home/georgef i fco n ! i g <>thO up

" ..

" " I, 1"

root@"sgard : /home/georgef ifconfig et h O Link encap : Ethe r net HW"ddr OO : 14 : Dl : JB : 73 : A6 in .. t addr : lO . l , J .2 Bcast:10 , 1 , 1 . 25S MU l: : 2SS.2SS.2S5.0

[ ... I
Link encap : Local Loopback inet add< : !27 . 0 . 0 . ! Mask : 255 . 0 . 0 . 0

( ... I

netmasl< addr specilica masca de retea asociata inter/elei. in cazul in care ace asia op!iune nu este prezenla se va co nsidera masca implicita clasei IPuri din care lace parte adresa IP a inter/etei Se poate observa din exemplele anterioare laptul ca , nespecilicand masca de ret ea. aceasta a lost considerata implicit 255 . 0 . 0 . 0, care este valoarea pentru clasa A de adrese IP din care face parte 10. I 1 . 3. in caz ul in care se specilica si vafoarea ma~tii ca op!iune. rezultatu l va Ii:

,
J

root@a"gard : /homelgeo<gef ifconfig ethO 10 . 1 . 1 . 3 netma" 255 . 255 . 255 . 0 root@a;gard : lhome/geo<ge f ifconfig et hO <>thO Link encap : Et h~ rn H HW "ddr 00 : 14 : DI : 38 : 73 : 11.6 in" t addc : IO . 1. 1. 3 Bca,t : l O. 1.1.255 Ma5 k : 255 . 255 . 255 . 0

"

( ... I

hw

class addr specilica ulilizarea unei alte adrese MAC si nu cea din memoria ROM a placii de rel ea, in cazul in care driverul placii de retea olerA suport penlru acesllucru. Este foarte important ca interiala de re!ea sa lie dezacUvala inaintea conligurAri i unei noi adrese MAC:
root@asgard : /homelgeo<gef ifconfig eth O <>thO Link encap : EthHMt Hwadd r 00 : 14 : D1 : 38 : 73 : 1I.6 in" t addc : IO . 1. 1. 3 Bca,t : l O. 1.1.255 M&5 X: 255 . 255 . 255 . 0

2 J

,
" ,0 " '2
,J

[ . .. I
r oot@a'ga rd : /home/g@ocg@' i fco n f i g HhO down root@ugard : /home/georgef ifconfig ethO hw ether 01 : 02 : 03:04:05:06

"' roothsgard : /homelgeo<ge f


ethO
( ... I

lfconfig ethO Link encap : Ethernet Hwaddr 01 : 02 : 03 : 04 : 0 5 : 06 inet add<:!0 . ! . 1 . 3 BCa"t : lO . I . 1 . 255 Ma' k : 255 . 255 . 255 . 0

CAPITOLUL 8. CO NFJGURARJ DE RETEA

229

Uti Jitatea Iolosirii unei adrese MAC dilerita de eea a plaeii de retea apare datorita faptufui ca protocolul DHCP de configurare automata a adreselor IP utilizeaza frecvent adresa MAC pentru a aloca 0 adres.:i IP unui calcu lator. Pentru a obline 0 anumita adresa IP, trebuie folosita adresa MAC asociata in cad rul serverului DHCP cu adresa IP dorita,

8.3.3

Asigurarea conectivitiitii la Internet. Configurarea temporarii staticii a unei rute implicite

Comanda 1!con!1q permite doar configurarea unei adrese IP pe 0 interfat.:i. Pentru a putea accesa Intemetul este nevoie sa fie spec~icata adresa unui gateway. Specificarea temporara a unui gateway se real izeaza cu ajutorul unei rute. 0 ruta reprezinta ealea pe care 0 urmeaza paehetele in drumul lor dl.tre destinatie. Rute le sunt relinute in cadrul unui structuri numite tabela de rutare . Aceasta conIine practic inlormatii des pre toate destinatiile accesibi le la un moment dal. Printre inlormaliile relinute pen\ru !iecare ruta se I1(Jmara: adresa destinatiei (poate Ii adresa unei sta?i sau adresa unei inlregi rele le). masca de relea asociata ~i adresa eehipamenlul ui de relea cAIre care se trimit inlormatiile penlru a ajunge la desnnatie. Configurarea tabelei de rutare se real izeaza cu ajutorul comenz ii route. Aeeasta permite adAugarea, modificarea si ~tergerea de rute. Penlru a vedea care sunt rutele existente la un moment dat (ca atare pentru a vedea conlinutul tabelei de rut are) se utilizeaza comanda rout .. fAra parametri:

, ,

root @ ~sqard : /home/george t

rou t e G@ nmas k 255 . 255 . 255 . 0

r out i ng table D@s ti nat i on G.ot .. "ay localnet

K~rnel

"

Flag~

M .. tric

._, ,

Hac .. "", ethO

In rezultatul de mai sus se vede laptul ca singura ruta ex istentA este cea asociata relelei locale (localnet ) .Aceasta ruta (care este praetie asociata cu reteaua locala direct conectata) este introdusa in tabela de rutare dupa ce interfala de relea asoc iata relelei eSle configurata. Formatul come nzii utilizat pentru adAugarea unei rute implicite este urmAtorul:
root @@ ubuntu:-f rout .. a dd
def~ult qatew~y

addr

Configurarea unei rule implicite se realizeaza astrel:

, , , ,

root @ asqa rd : /home /ge orge' route

'"

def a ult gat e way 10 . 1.1.1

roo t @ a . qa r d ' /home/george' rou t e r out i ng table D@s ti nat i o n G" nmas k G.ot .. "ay
K~rnel

"

loc~ l net

255 . 255 255 . 0


10,1 , 1 . 1 0.0 , 0,0

d " fault

Unul dintre parametri i utili ai eomenzii route este - 0 (numeriC) FolosirKI acesl paramelru adresele din tabe la de rutare vor Ii ali~at in lormat numeric in loc sa se afiseze numele serverelor sau sta\iilor. Este folos it atunci eAnd se doreste interogarea unui server DNS (de exemplu atunci cand nu este configurat un astle l de server),

, "

Flag~

M .. tric

, ,

,.. , , '"' , ,

Hac .. ethO et h O

230

lNTRODU CERE iN SISTEME DE OPEAARE

, , ,

.ooth sga.d: /home/ george ~ route -" Menel routing t~ble DestlMtion Gateway Genmask 10 . 1.1 . 0 255 . 2S S . 2SS . 0 0.0.0.0 10 . 1.1. 1 0.0.0.0

"

Fl ags Metric

" "

, "

'" "" " "


0 0

I face et hO ethO

8.4
8.4.1

Configurari permanente
Configura rea permanenta a unei
interfe~e

de

re~ea

Configurarila de re(aa parmanenta se raalizeaza in cadru l fis iarului /ete/ ne twork/ i.nterfaces. Manualul de utili zare al acestui fisier se poate accesa cu comanda:
ma n interfaces

Un exemplu de fisier de co nfigurare este urmAtorul:


2 root@a.ga rd: / h o me/george' c a t /etc/network/inter l a ce. f This file d escribes the n e t wo rk i n terfaces available on your syste m f and how to sctlvate them . For mo'e l n formstlon , see lntertacesI S) .
f The loopback networ k Interface auto 10 ethO I hce 10 I net loopb a Ck f The pnmsry network Interhce allow- hotpl ug e thO Hace ethO ine t ;tdti c add r e " 10 . 1.1 . 2 netma,k 255 . 255.255 . 0 n etwork 10.1.1 . 0 b r oadca,t 10 . 1 . 1 . 255 gateway 10 . 1 . 1 . 1 dn s -na meservers 10 . 1 . 1 . 1

,
" ,

10 11

" " " " " "

FiSierul /etc/network/int e rfaces con~ne diverse configurAri ale interfe(elor de retea, configurAri care sunt interpretate de uWitarele ifup si i fdown. ifup este un utilitar ce per mite activaraa unai interfata da ratea. EI aste similar optiunii up a comenzii i fconfiq. ifdown dezactiveazA 0 interfatA de re(ea, fiind simil ar cu op(iunea down a comenzii i f con fiq. Pentru a activa toate interfetele defi nite cu auto in /etc/ network / interfaces se foloseste urmatoarea comanda.:
root @ u b untu:- I i lup -a

Pentru a activa 0 anumita interfala. se precizeaza numele acesteia, de exemplu:


Loot @ u b untu , - I i fup ethO

Pentru a dazactiva toata intar/e(ele active sa


root @ u b untu:-I ifdown - a

folose~te

lJrmiitoarea comandii:

CAPITOLUL 8. CONFJGURARJ DE RETEA

231

in cadruJ lisierului interfaces se gflsesc mai multe declaratii de tipul Haee , auto sau al low. Declara!iile auto specilicfl ce inter/ete sunt activate atunei cflnd ifup este lolos~ impreunfl cu paramelrul - 1\, Un asUel de apel (ifup -ill esle lolosit la pornirea sistemului de operare. Pornirea unei interfe!e marcale ca auto eSle realizatil. in momentut in care udev (vezi seCliunea 7.5) a creat mecanismele necesare IunClionflrii inlertetei. Declaraliile allow specfficil. intertetele care sunt activate automat de cave diverse subsisteme. Astlel activarea nu mai este realizatil. dupil. ce udev a detectat placa de relea, ci in momentul in care aceasta devine disponibilfl. Pentru specilicarea unei interte!e de loopback se
H aee 10 !net loopback
folose~te

urmflloarea linie:

Dupfl declaralia i face urmeazil. numele interte!ei , apoi tipu l de adrese pe care inler/ala il loloseste (inet reprezintfl adresare IP, inet6 reprez intfl adresare IPv6). Penvu a marca 0 inter/ala ca loopback, se loloseste parametrul l oopback. o linie asemil.nflloare eSle JolositA 5i penlru a specifica arice alia inlertatA exislentA. Spre exemplu, pentru conligurarea intertelei et hO :
itaee ethO i net Hatic

Dup<'i declaralia i f ace urmeaz<'i numele inlertelei apoi lipul de adrese pe care it folose~te inter/ala. iar la final, prin include rea parametrului stat ic se specific<'i faptul ca inlerfata este conliguratA manual de administrator, ril.mAnflnd lixfl pAn<'i la urmfltoarea schimbare manuala. 0 alta metoda de conligurare este cea in care se foloseste DHCP, prin care stalia cere conligurarile intertetei de la un server DHCP. Daca parametrul st at i c a lost precizat in declaratia iface, atunei dupa aceasta declaratie trebuie sa urmeze paramelrii cu care va Ii configuratA interiala de relea:

,
,
,

i face ethO inet static ~ ddr e "" 10 . 1.1.2 net"","k 255 . 255 . 255 . 0 nH "ork 10 . 1.1.0 b r o a dcdst 10 . 1.1.255 qat""ay 10 . 1.1.1 <in. - n"m"$"rVer$ 10 . 1.1.

addr e ss specifica adresa IP a interietei (paramelru obtigatoriu), netmas k specilic<'i masca de relea care va Ii folos ita (parametru obligatoriu), network specilica adresa relelei din care lace parte inter/ata (paramelru obtigaloriu doar pentru kernelul 2.0.x, adresa ce se poate obline facArd $1 logic pe biti intre adresa IP si masca de relea, broadcast specifica adresa de broadcast a relelei din care lace parte interfala (parametru optional). Dupa modilicarea lisierului jete/ net work/i nterfaces este necesara reslartarea serviciului de relea penlru a cili noua configuralia:
roo t @ ubuntu : -I /etc/init . dfnH"or ki nq r ",t<>.rt

Serviciul de retea poate fi oprit folosird argumentul stop si pornit folos ind argumentul start :

232

lNTRODUCERE iN SISTEME DE OPEAARE

,
~

root~ubunt~ : "

letcf(n1t . dlnet w o~ l<i ng

stop
9t~rt

root@ubunt u: -I l e tc/init . d/net " orkinq

8.4.2

Configura rea permanenta statica a unei rule implicite

o a doua modalitate de specificare a rute i implicite este folosirea fisierului fete/ n etwor k / i n terfaces. Structu ra acastuia a lost descrisA In paragraful
ante rior.

Printre parametrii care sa pot configura dupA declaratis iface se aliA implicit. Specificarea acestuia se realizeaza aSllel:

~i

gateway-wi

, ,

it~ce

.. thO inet static [ .. . I


gateway 10 . 1 . 1 . 1

unde 10 . 1.1 . 1 eSla adresa IP a gateway-willi.

8.4.3

DHCP. Configura rea unei interfete in mod automat

Configurarea parametrilor unai interfete de retea sa poate reali za stalic sau dinamic. in cazul configurari lor statice to!i parametrii trebuie introdusi manual pe fiecare stalie din re)ea. in cazu l in care se schimba gatewayul, de exemplu, pe fie<:are staM din re\ea Irebuie reatizata aceasta schimbare. Configurarile dina mice permit atribuirea automata a parametrilor de relea, printre care adresa IP. masca de re!ea, gateway-ul, serverul de DNS. Cel mai utilizat protocol de co nfigurare dinamK:a (automata) este DHCP (Dynamic Host Configuration Pr%oof). Pentru ca acest protocol sa furx:lioneze esle necesar ca in re!eaua locala sa se gaseasca un server de DHCP. Serverului ii sunl spe<:ificate plaja de adrese IP pe care Ie poate alribui calculaloarelor si restu l configurAri lor de retea. Atunei cAnd 0 sta!ie doresle sa ob!ina 0 adresa IP, va trim ite un mesaj catre toala releaua (broadcast) prin care ineearea sa determine daca exista un server de DHCP. Daea acest server exista. atunei el va Irimite conf iguraliile caire stalie. Configurarea parametrilor inter/elei de relea folos ind DHCP se poate realiza in mod temporar sau permanent. Pentru a rea liza 0 configurare temporara se porneste clie ntul de DHCP, de exemplu eu ajutorul comenz ii dhclie nt :
2 , , root @a' ga r ci : /hom@/g@org@I dhclient Internet Syot@m. Con$ortium DHCP Client V:J.0.6 Copyright 2004 - 2007 Internet Systems Consort i um . All r ight. r eserved . For info , p l ease vi$it http : //w,,,,, . i.c.org/.w/dhcp/ Liste n ing on LPf/@thO/OO : 40 : f 4: cc : c5 : 4) Sending- on LPF/ethO/OO : 40 : f4 : cc : c5 : 41

,
!

CAPITOLUL 8. CONFIGURARI DE RETEA


10 "
,~

233

" ,.

Sending- on Sock .. t/falll>ock DHCPDISCOVER on "thO to 255 . 255 255.255 port 67 interval 6 DHCPOF'F'ER fro m 10.1.1. 1 DHCPREOUEST on ethO to 255 . 255 . 2 55. 255 port. 67 DHCPACK from 10.1.1.1 bound to 10.1 .1. 2 -- rene~&l ; n 815 seconds .

Inlerlala va ramfme aSlfel oonligurata pAnl! la urmiltoarea reporni re a statiei sau pAnl! cand oonligurarile vo r Ii schimbate. Pentru a realiza 0 conligu rare permanenlil prin OHCP se fo losesle de asemenea fisierul I etc/net workl inte~ faces . l inia care conligureaza interfata ethO aratl! astfel:
!face ethO inet dhcp

8.4.4
Fi~lere

ONS. Configura rea serverelor de ONS


de conllgurare a configura adresele serverelor de ONS se lolosesle fisierul

Pentru

le t c/~esolv . conf. in cad rul acestui fisier se pot speciliCa adresele mai mullor

servere de ONS. in cazul in ca re unul din ele nu con!ine inlorma!ii despre domeniul cautat, se va lncerca interogarea celorlalte. Manualul de utilizare al comanda:
m~n

li~ierul u i

I etcl ~esol v. con f se poate accesa folosind

resolv . conf

Un exemplu de lisier letel resal v . conf este urmatorul:


~

search localdom ~ln Mmeserver 10 .1. 1.1 MmMHve r 2l7 . 11S . i3S . H Mm~5e r ve r 128. 1 07 . 241.185

In cadru l fisierului cea mai importanta declara!ie este declara!ia name server. Ea delineste adresa unui server de ONS. Fisierul poate co n!ine mai multe declara!ii de acest lip. Ap licarea conligurari ior se realizeazA imediat deoarece lisierul ~esol v . con f este interogat de liecare proces aMICi cand doreste rezolvarea unui nume de domeniu. Oesi nu este uzual. serverele de ONS se pot configu ra si din cadrul fisierului le t cl ne t wor k /interfaces . De cele mai multe ori, atunei cand 0 interfatll este oonfiguraUi automat prin OHCP, serverul de OHCP ofefi~ pe lang!!. adresa IP si adresa unui server ONS. care va Ii salvata automat in I etcl reso l ". conf.

Utifitarul re solveonf Folosind ulilitarul re so1veonf se pot alisa inlormatii despre serverele de I1!Jme config urale in sistem Si se poate modifica configuralia din fisierul

...
/ etc/ resol v . con f.

INTRODUCERE iN SISTEME DE OPEAARE

Folosind

optiunea

- <l

se

poale

modifica

fisierul

/etc/resolv.conf :
ubuntu@ubuntu : -$
c~t I~tc/resolv . conf

, , 6 ,

nameserver 1 92.16a . 2 . 1

uountu@ubuntu ; -S echo "n &meser ver 192.168.2.100 ubuntu@ u b u ntu ; -S echo


n~meserver

resoivconf -a ethO resolvconf -a etMl

192.168.2 . 101 "

ubuntu @ uountu : -$ Cdt /etc/re1lO1v . conf f Dynamic r e.olv . conf(5) file for gl i be r e,olv" r(31

10
11

" '"

genera t ed by r es olvconfl81 f 00 NOT ED I T THIS FILE BY HAND -- YOUR CHANGES WI LL BE OVERWRITTEN MmM@rvu 1 92. 1 68 . 2 . 100 nameserver 192. 16a . 2 . 101

o diferen\a intre conf igurarea cu r e solvconf si modificarea directa a fisierului / etel resol v . con f eSle specificarea interfelei penlru care se lace aceasla config uralie. Penlru a Slerge configuratia asociala cu 0 anumila inlerlala se fofosesle urmaloarea comanda:

,
J

ubuntu@ubuntu:-$ resolvcon f - d ethO ubuntu@ubuntu ; -S cat ietci<esolv . conf f DyMmic <esolv . conf(5) hie fo< qlibc <esolved3) qeneuted by
reso1vco~f(8)

e
,

DO NOT EDIT THIS fILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168 . 2 . 101
f

fnterogarea serverefor de nume

Fofosind comanda h os t se pot obtine inlormatii des pre un anumit domeniu, cum ar Ii adresa IP asociata, serveruf de nume al domeniului, se rver ul demail. descrierea. alias-ul elc. De exemplu, adresa IP asociata se poate alia lolosind urmatoarea comanda:
ubuntu@ubuntu , -$ host - t A cs . pub.ro cs.pub.ro has address 141.85.37 . 5

Penlru a obline serverul de nume asocial cu acest domeniu se


2 , ubuntu @ ubuntu , -$ host -t NS c5 . pub .r o cs.pub .r o name server ns . cs . pub . ro . cs.pub.ro name server pub.pub . ro .

va lolosi comanda:

Serverul de mail se poale obline lolosind comanda urmatoare:


ubuntu@ubuntu:-$ host - t MX cs . pub . ro cs.pUb . ro mall ls handled. by 5 mall . cs . pUb.ro .

Comanda urmatoare va
2 ,

ali~a

descrierea domeniului:
Buch~rest ,

ubuntu@ubuntu : -$ host -L TXT c5 . pub .r o cs . pub . ro de.cr i ptive te x t "Poiitehnica Un i ver.ity of Computer Science Deparument"

CAPITOlUl 8. CO NFI GURARI DE RETEA

235

8.4.5

Aliasuri. fetef hosts

Aliasurile reprezinta etichete care sunt asociate unor adrese de IP . Sistemul de aliasuri funclioneaza asemanator cu cel de DNS : de exemplu, aturICi ctlnd 0 statie dore~te sa accasaza sarverul numit my-p ~ i nt - se~ve~ , aa va incarca sA gasaascA adrasa IP a serverului respecUv. Exista instl doutl deosebiri majore lattl de DNS. Prima consttl in laptul ca etichete le asociale unor adrese IP nu trebl.l ie sa respecle convenli ile numelor de domenii DNS (de exemplu nu trebuia si'! se termine cu un Top Level Domain). A doua deosebire consti'! in felul in care este gAsilA adresa IP asociata unei elichete. DacA in cazu l DNS se lolosesc servere dedicate, in cazu l alias uri lor eSle inlerogal lisierut lete I h ost s. in acesl liSier sunt trecute corespondenle le intre elichete ~i adrese IP. Un exemp lu de lisier hosts este urmi'!torul:
root@asgar d :/ h o m e/george~
~

cat lete/ h osts

127 . 0 . 0 . 1 localhost asga<d 127 . 0 .1 . 1 asgard


fServen

5
~

1
$

10 . 1 . 1.100 print . mydomain . ro my - print - . e rvec 10 . 1 . 1 . 1 0 1 ft p. mydomainro my - ftp -s ~ r ve r 192 . 168 . 1 . 150 mail - server
f The fo 11 0 .. iI19 line" are de s irable fo r IP v6 c a p a b le host " :: 1 i p6-1 0ca lhost ip 6 - 1oopba cK feOO :: O i p6 - 1oca l n .. t ffOO :: O i p6- rn c a stpr.,fix ff02 :: 1 i p6 - a ll nodes

10
"

1>

1J

,. '"
,6

H02 :: 2 i p6 - a 11 rout .. u {t02, : 3 !p6 - allhosts

fisierul hosts contine mai

mu~e

linii de lorma:

Campul cel mai din stanga este adresa de IP. Urmeaza apoi numele principal al statiei, sl etichete le care sa asociaza cu aceastl'i adresA, despartite prin spa!iu. De obicei, atunei cand sunt configurale prior~ate 5i vor Ii verilieate primele.
~i

servere de DNS si aliasuri, aliasurile au

8.4.6

Configura rea numelui staliei curente


Folosind oricare dinlre

Pentru stalia curenta se poate configura un nume local. urmatoarele comenzi se poate alia numele slatiei:

, ,

ubu n tu@ubu ntu:-$ h ostname ubu n tu@ub u n tu:-$ unarne ubu nt u @ u b u nt u ; -5 W

-"

Ipr o c/sys/ ~ er n el/ho"tna me

ubuntu @ u b u nt u : - $ ;y s ctl k ernel . ho s t na me

236

lNTRODU CERE iN SISTEME DE OPEAARE

Numele statiei S8 poate modilica temporar lolosind comanda hOlltnam.. , ca in exemplul


urmator:

, , , ,

ubuntu@ubuntu

-,

hO Hname

"buntu
ubu ntu @ubunt u:-$ ho stname
ubuntu @ ubunt u ; -$

""

hostname

""
Pentru a realiza 0 configurare pe rmanentl\ S8 va modi/iCa l isierul / etc Ihostna.me care contine numele staliei. Pentru a determina rec itirea configuratiei din aces! Iisier se va

rula urmatorul script:


ubu ntu@ubuntu:-$ letc/init.d/host na m e.s h

8.5 Testarea configuraliilor de re,ea


Odata ce sau realizat configuratiile de relea, acestea trebu ie testate. Pentru testarea lor sunl lolosile in mod uwal doua utilitare: p ing 5i tra c er ou te . Acesle utilita re sunl folos ite si pentru a depista probleme le uzuale ca re pot aps'rea in funClionarea unei re)ele.

8.5.1

Ping

Utilitarul pinq este lolosit pentru a verifica conectivitatea intra douii stali i. EI testeazll conexiunea fizicll ~i parle din cea logicii, folos indu-se de prolocoalele IP ~i leMP (lnternel Control Message Profocol) pentru a tr imite ~ i pentru a primi mesaje. Ping primeste ad resa IP a statiei destinatie 5i va trimite ciitre aceasta un mesaj ECHO REQIJEST. Atu nci cand acesl mesaj esle recep\ionat, slatia destinalie va riispunde cu un mesaj similar, ECHO REPLY . Dacii riispunsul destinaliei aj unge inapoi la sursii, conexiunea dintre ele funClioneazii. in cal contrar ex ista probleme care i mpiedica ce le doua statii ca comun ice. Principalii pa rametri ai comenzii ping sunt urmlltorii:
ping [- f l [ - c count 1 [ - I In tecval] [-1
inte~facel

destination

Fara nicio optiune, p i nq va trim ite un numar nelimital de mesaje caire desti natie. pana cand va Ii intrerupt:
2 , , 6 , root@a.gard:/home/george' ping 10 . 1 . 1.1 PING 10 .1. 1 . 1 ( 10.1.1 . 1 ) 56184) byte. of d ata . 64 bytes fro m 10 . 1 . 1. 1 : Icmp_ se q - l ttl - 2SS tlme- 0 . 395 m$ 64 bytes fro m t o.1.1.1 : icmp_ se q - Z tt l - ZSS t ime - 0 . J59 m$ (CTRVCl --- 10 . 1 . 1 . 1 p ing statistics --2 pac k et. t~an"mitted , 2 receive d, 0\1 p ac ket loss , t i ... e 8998 ... 5 rtt min/avg/ma x/mde v - 0 . 34110 . 400/0 . 701/0 .10 6 m ~

CAPITOLUL 8. CONFJGURARJ DE RETEA

237

Optiunea - c specilicA numArul de pachele Irimise, iar opliunea - i specilicA inlervalul in secunde inlre douA pachete lrimise:
roo t @ asg;Hd : ! h o me !geor9"* Enn9 10 . 1.1.1 - c 3 - i 1 PING 10 . 1.1.1 (10 . 1.1. 1 ) 5~ 1 84) b yt e , of d a t a . l 64 byt e s fro m 10 . 1.1.1 : 1c .. p_~ e q - 1 ttl - 255 time - 0 . 326 .. ~ 64 byte, f r o m 1 0 .1. 1.1 : i c mp_~ e q - 2 tt l - 255 t ime - 0 . 459 m ~ " 64 by t e. fro m t o . 1. 1.I : i c mp_ se q _ 3 tt l _ 255 tim.. _ 0 . 361 ms G --- 10 .1 . 1 . 1 pi ng $Utistics --, 3 pa ck e t ' tran, mi tt .. d . 3 rec @ iv@ d, 0\ \ pack .. t lo,s . Umt! 1 9 9Bm, 8 rtt min !avg! rnaK!md"v _ O. J2610 . 3B2!0 . 459! O. 0S6 ms
~

Optiunea - I specffica pe ce inlerlala se vcr trimite pachele le:


~

, --8

l 5

rooths g ard : !hom,,!georgef p i. ng 10 . 1.1.1 -I e t hO - c 3 PING 10 . 1.1.1 (10 . 1.1. 1 ) fr o", 10 . 1.1.2 ethO : 56(a4 ) bytes of dUa . 64 bytes fro m 10 . 1 . 1 . 1 : icrnp_ se q - l tt l - 2SS tl me - 0 . 331 ms 64 bytes fro m 10 . 1 . 1 . 1 : i cmp_ se q - 2 ttl - 2SS t1me- O. 326",5 64 b y tes fro m 10 . 1.1. 1 : Ic",p_ se q - 3 ttl - 2S5 time - 0 . 3~"] ms

10 .1.1.1 pi n" ~ tdti ~ ti c ~ --J pa ck e t; tran;mitt e d , 3 receive d, 0\1 p a c ket lo s s , t1me 1996ms rtt min !avg! ma x !mde v - O. 326fO . 341!0 . 361!O . 023 m ~

OPliunea - f permite transm iterea unui num1ir nelimitat de pachets ECHO RE QUE ST, raspunsul ECHO REPLY . in acest lei destinatia lara sa se astepte . . este inundata (flood) de mesaje. Datorila poten!ialului pe care II are aceasta op!iune de a Ii lolosita in atacuri DoS (ve zi sectiunea 10.4 .1), pa rametrul - f poate Ii lolosit doar de eatre root :

,
S
6 , 8

rooth. g ;H d: ! h Orne!g"orgef ping - f 10. 1.1 . t PING 10 .1.1.1 ( 10 , 1.1. 1 ) 56 ( 84 ) bytes of d ata .

C T RL~ C

..

10 .1.1.1 pi n" ~ tdt1 ~ t i c ~ --100 pac ~ ets tun.mitted , 3 re c eIve d. 9H p a c ket loss , t 1me 614Bms a t rn in !avg! max!mde v - O. 240fO . 3B9!2 . 29J!O . 4S0 ms , 'p9fe"",a 12 . 053!0 . 364

8.5.2

Traceroute

Utilitarul tracerout. este lolosil pentru a testa ca lea pe care 0 urmeaza paehetele intre surs1i si destinatie. EI va alisa tAte un mesaj pentru liecare stalieJserver/echipament de relea prin care tree mesajele. Pentru a realiza acest lucru, traceroute se loloseste de campul TTL (Time To Live) prezent in antetulliec1irui pachel. Din motive ce tin de lelul in care lunclioneazA 0 relea este posibil ca in drumul inlre sursa ~i destinalie sa apara bucle. Daca un pachet intra inlro astlel de bucla, el va Ii trim is la in/inil inlre sta!iile ee apar!in buclei si nu va ajunge niciooata la destinatie. Pentru a preveni 0 asemenea situatie, in antetul fiec1irui pachet a lost introclus campul TTL. Acest camp conI ine numarul maxim de echipamente de relea pr in care poate trere un pachet i nainte de a Ii aruncal. Daea un pachet are campul TTL cu valoarea ini!iala. (atu nei cand pleaca de la sursal egala cu 10, atunei el poate trece prin maxim 10 echipamente de relea . AI zecelea

238

lNTRODU CERE iN SISTEME DE OPEAARE

echipamanl va arunca pachetul si va trimite un mesaj teMP sursei prin care 0 va instiinta
de acest lucru. Trimitand acest mesaj, I I zacetaa ech ipament
i~i

va anun!a identitatea

caire sursa pachetului. Pa acest sistem sa bazeazl\. h.mC!ionarea ulilitarului traceroute. Sa trimi! pachele ce au
campu l TTL configu ra! Ie 0 valoa re din ce in ce mai mare. Atunei cand valoa rea TTL eSle 1, va raspunde primul ech ipament de re!ea de pe cal e si va spu ne ca a aruocat

pachelul trim is. Atunei cand valoarea TTL aSIa 2, va rasp unde II doilea echipamenl de pe cale si va spune ea a aruncal pachetul trimis. in fatui ace asta toale echipamentele de
pe parcurs vcr Ii identiiiCate unul cate unul.

Parametrii uzuali ai come nzii tra ce r oute sunt urmato rii:

host reprez inta destina!ia pilna la care se dore~le aflarea rutei :


2 ,
"

georqe@a.qard : -$ traceroute rol . ro t<aceroute to rol,ro (195 . 95 . 229.11 1 ) , 30 h o p s max , 40 byt e pac k ets I 10 . 1 . 1 . 1 (l0 . 1 . 1 . 1) 0 . 429 ms 0 . 332 ms 0 . :/4a ms 2 10 . 100 .0.1 (l0 . 100 . 0 . 1 ) 0 . 809 ms 0.651 m9 0 . 521 ms 3 bac l:bo ne .henu . ro (a9 . 165 . 1 46 . 111 ) 6 .29 6 ms 1 . 765 "'$ Z . 4~3 ms 4 84 . 23 4 . 111 . 4\ (a4 . 234 . 1I 1.41) 6 . 138 ma 7 . 507 ma 11 . 869 ms 5 84 . 234 . 101 . 154 (a4 . 234 . 107 . 1 54) 4 . 406 m9 1.603 ms 1.625 ms 6 H5 . 95 . 229 . 1 71 (195 . 95 . 229 . 171) 2 . 115 m, 1.676 ms 1.230

m'

Pentru fiecare ech ipament de pe parcurs este af isata adresa lui si timpul de raspuns pentTu trei incercari succesive. In cazul in care penlru un mesaj trimis nu esle pr i m~ rasp uns, se va afi~a caracl erul ~ . Parametrul - f perm ile configurarea va lorii campului TIL din primul mesaj tr imis. VaJoarea campului TIL din mesajele urmaloa re va depinde de aceasta si se va incrementa cu 1 la fiecare mesaj .
,
"

qeorqe @ a'qa r d : -$ tra ce rou t e - f 4 rol .r o t r~cuout .. to ro1.ro (19S . 95 . 229 . l7 1 ) , 30


4 6 4 . 2>4. 111. 41 (64 . 2>4 . 111. 4 1)

2 . 006 m.

5 6

8 4 . 234. 101.154 195 . 95 . n9 . 171

(a4 . 234.I07.154) (195 . 95 . 229 . 171)

max . 40 byte p~c kH' e . 2 66 ms 10 . 525 ms 3.399 rn s 4 . 614 ms 5.497 ms 4 . 458 ma :/ . 90 1 ms 2 . 947 ms

hop~

Parametrul -m co nfigureaza va loarea maxima a campu lui TIL care va fi i neercata in cazul in care desti nalia nu a fost atinsa. Daca pa ramerul nu este specil icat, se vor lesta implicit cai cu lungimi de pana la 30 de ec hipamente.
,
Z
qeorqe @ a ' q~rd : -$ tra c eroute - m 3 rol . ro t<acerout e to ro1.ro (195 . 95 . 229 . 111) , 4 hop; max , 40 byt e pac kets I 10 . 1.1.1 (10 . 1.1. 1) 0 . 404 m.'l 0 . 402 rn; 0 . 326 ms 2 10 . 100.0. 1 (10 . 100 . 0 . 1 ) 0 . 623 m, 8.407 m, 2 . 069 m ~ 3 b~c ):bon e .h " r tZll . ro (89 . I6S . 146 . 177) 9 . 707 ms 6 . 819 ms 7 . 895 rn.

, ,

8.5.3

Cum se depisteaza problemele uzuale i n cazul configurarilor de retea

Atunei c(\nd apa r probleme in conf igura-r ile de relea, pentru depislarea lor exista doua abordari: de sus in jos (top-down) ~i de jos in sus (bottom-up). Partea de sus (top) a unei retele se refera la parte a de aplica\ii. iar partea de jos (bottom) se refera la co nex iunile lizice intre echipamente.

CAPITOlUl8_ CONFIGURARI DE RETEA

239

1 n continuare va Ii analizata abordarea de jos in sus, deoarece majoritatea problemelor dinlr-o relea sunt cauzale de conex iunile fizice inlre echipamente. Sa presupunem ca nu poate Ii accesala pagina web www . goog1e_ro. 1 n cazul aceslei abordari primul lucf\.l care Irebuie verifical este faplul ca exisla legalura lizicA inlre stalie si switch sau punclul de acces lara lir. in cazul legalurilor la Ethernet (realizate prin cablu UTP) coneclivilatea se poale verffica examinfir1d led-ul de link de pe placa de relea. Daca led-ul este aprins, exista conex iune intre stalie ~i switch. DacA led-ul este Slins, Irebuie verilleal cablul de retea sau lunctionarea switch-utui. o alta metoda folos ita pentru a verifica starea link-ului pentru 0 interlala de ret ea. utila in special alunci cand nu exista acces fizic la stalie, esle utifizarea unui program de genul ethtoo1. Printre allele, acesta olera informatii detaliale despre tipul de legatura fizica existent!!. si stama ei. Pentru a vedea slarea unei interlete ulililarul se apeleaza avand ca parametru numele interlelei:
root@a ' ga r d : /home/georget ethtool
~thO

> SH t ing' for ethO :


J

" " " " " " " " "

, ,

{ TP MIl lOba.@T/Ha l f l Obas@T/Full lOOba.@T/Half lOObaseT/Full Supports ~uto - negotiatlon, Yes Advertised link modes : lObaseT/ Ha l ! lObaseT/ful1 lOObaseT/ Half IOOb a seT/Ful1 Advertised auto - negot i ation , Yes Speed : IOOMbIs Duplex : Full POrt : IHI PHYIID : 32 Tran,ceiver : in t ernal lIu to - n e gotiation : on Support. Wak@-on : pumbg Current message lev e l : Ox00000007 (71 Lin k detected : yes

Su ppo r ted

port ~ :

"

1 n cazul in ca re Link detected are valoarea yes, exista conexiune intre stalie ~i switch. Daca are valoarea no, Irebuie verilicat cablul de relea sau funclionarea 5witch -ului. Urmatorul pas este verificarea exi5ten!ei unui gateway 5i a conexiunii cu acesta. Penlru a verifica fapl ul ca un gateway a fost configurat trebu ie analizat fisierul lete/ n etworkl i n t e rf"ces sau rezu ltalul comenzi i rout ... luncti e de conliguratie. Daca niciun galeway nu este configurat. trebu ie configurat unul. Daca gateway-ul este configurat , trebuie verilicata legatura cAtre acesta cu ajutorul comenzii p1nq. Oupa verificarea gateway-ului, trebuie ver ificat DNS -ul. Pentru aceasta trebuie analizat fisierul I etcl reso1 v . con f . in cazul in care nu eSle configural niCiun server ONS, trebuie conf igurat unul. Daca eSle conligura! un server, trebuie testata leq1'itura cu acesta cu ajulorul comenzi i pinIJ. Pasul urmalor este verif icarea coneclivitali i cu un all server din Internet. Se peate incerca accesarea unei alte pagini web, se poate testa conectivitatea cu un all server cu ajutorul comenzii pinq sau se peate incerca verificarea caii caIre 90091e . ro cu

240
ajutorul comenzii t r a c a r out a.

INTRODU CERE iN SISTEME DE OPEAARE

Folosirea t ra" .. r out .. ofen'i avantajul

dapist~rii

echipamentului de relea in care sa opresc pachetele.

8.6
8.6.1

Studii de caz
Verificarea in linie de comanda a parametrilor de retea in Windows

Cea mai u~oar~ metodA de a veri fica parametrii de re!ea In Windows eSla folosirea utilitarului ipc:onfig . Acesta sa apeleaz<'l. din linie de comanda. Pentru a porni interprelorul de comenz i din Windows XP. S9 merge la Slart-t Au n, unde i n cil.m pul Open S9 introduce =d 5i sa apasA pe OK.

Informalii despre modul de utilizere al comen zii ipc:o nf i q , precum 5i des pre parametrii
di spon ibili, S9 pot
ob~ne

uUiizand parame\rul /?:


~ipco nfig

C: \Docu me n ts a nd Settlngs\Ge org e

I?

Apelarea comenz ii i p confilJ fa- ra niciun parametru va afisa parte din parametrii de relea:

, ,
2

C : \Docu me nts a nd Settlngs\Ge o rge>lpconflg windows lP Configuration EtherMt ada p t e r Local Area connection : Medi~ Sute . . .
Eth~m~t adapt~ r Wirel,, ~~ N~t"or k

: Media disc o nnected

" " "

Conn ~ct ion

2:

Connection - specifiC DNS Suffix I P Addre" . . . Subn"t Mask D"f~ult GMeway

""

1 92 . 16a . 1 . 70 2SS . 2SS . 2SS . 0 192 . 16a . I . 2 S4

Pentru a vadaa toti parametrii de relea. inCluSiv servert.J1 DNS si gateway-ul impliCit, sa foloseste paramelrul / a 11 :

, ,
10
11

C : \Docu me n ts a nd Settln9s\George~lpco n f i9 fa ll ,q,ndows Con! I gurat I on Host Nam" Asgard Primary Suffix Node Type MI~ed Routing Enab led . 00 WINS Pro~y Enabled . ,,; Su ffix Sear c h L1 ~ t .

"

'"'

"

"" ,,"

Eth~m~t

" " " "


'" " 1!

a dapt e r Loc al ArM Conn ~c tion : M@d i a Stat.. . . . M~dia d i sconn .. ct"d D@.cr ipt i on Bro~ dcom HOx 1 0/ 100 00 - 40 - r4 - CC- CS -41 Physica l IIddress .

Inte9r~ted

Contro ll " r

Ethe r n H

adap t@r Wireless Network ConMction 2 : Co nnection - s p eclflc PNS SuUix lan DescrI p tion . . . "t heros H.!\S006X wireless Nehor ' Phy sic~l Add~ess . . . . . .. : OO-19-"]E-OB-7E-65

IId~pter

CAPITOLUL 8. CONFIGURARI DE RETEA

"
" "

DhCp Enabled . . .
~utoconfiguration

Enabled

,., ,.,
In . 16a . 1 . 70 255 . 255 . 255 . 0 In . 16a.l.254 192 . 16a . l . 254 192 . 16a . l . 254 11 august 2007 16 : 17 : 26 1 2 dUgu s t 2007 16 : 17 : 26

'"

" " "

"

IP ~ddress . Sub net Mask . . Default Gateway DIICP Server . . DNS Servers . . L ~ a,~ Obuined . L~a3e Expires .

Configurarea parametrilor de retaa din lina de comanda in Windows aste mai dificil de realizat decat in Unux. Pentru a putea face acest tuc ru se fotoseste utititarul nets h . Informatii daspre modut de utitizare at acastuia sa pot obtina fotosiflCi parametrut /? :
C: \Docu ments and Sett,ngs\George >net,h /?

8.6.2

Configurari de re1ea i n Windows Vista

Modut de co nfigurare at unei inter/ale de relea in Windows Vista este asemanator cu cat din Windows XP. Oiferenla importanta intre ele este data de modul in care se acceseaza fereastra de configurare a parametrilor. Din meniul Control Panel se alege Network and Internet (figura 8.5).
~

_ .'--_ -............... "_~l!!d~_~~

....

Figura 8.5: Selectarea Network and Internat din Control Panel Apoi se selecteaza Network Sharing Center (Iigura 8.6),

Figura 8.6: Selectarea Network Sharing Center Din noua fereastra se alege Manage Network Connections (figura 8.7), Urmand ca apoi sa fie afisatA 0 listA cu inter/elele de relea disponibile. Prin efectuarea unui click dreapta pe simbolul asociat unei inter/ete \la apArea un meniu contextual asemAnAtor CLJ cel dir"l Windows XP (figura 8.8). Prir"l selectarea optiur"lii Properties din acest mer"liu va Ii afisatA fereastra de configurare a parametrilor ir"lterfelei (figura B.9). Per"ltrLJ a configura adresa tP a ir"lter/elei, gatewaY-LJt si serverul ONS, se atege itemLJt
Imerne/ Pr%col VersiOn 4.

Fereastra de configurare a parametrilor este identicA celei dir"l Windows XP {figura 8.10}. .1

242

lNTRODU CERE iN SISTEME DE OPER ARE

,,.,"". ........... " ,


Figura 8.7: Selectarea Manage Network Connections

- Figura 8.8: Maniul contextual corespunzator unei interlata de ralaa

,-"""""""'-...... ... -""........ -.......---~"


,~

u..".

L _

0<

II c-

Figura 8.9: Proprietalile unei interfe!e de relea

in cawl in care aSle aleasi'i op~unea Obtain an IP address automatically, adresa IP a interfetei va Ii configurata prin DHCP. Pentru a spec ifica manual paramelrij inlerfetei
trebuie aleasa opliunea Use Ihe following IP address.

alenal

CAPITOLUL 8. CO NFJGURARJ DE RETEA

,<3

_.j

... ..
~

. . -.- . ..
~

_--_ _--.,-

, . ---,~ ~

. ...
....
~

.... ..
,

-...

~ ---.~

""' ~-,.. ~ ~

...-..
'" !!

Figu ra B. l 0: Configurarea pa rametrilor de relea

8.6.3 Configura rea PPPoE in Linux


PPP (Point to Point Protocol) este un protocol utilizat pentru comunicalia pu nctlapunct (comun icatia dintre douA naduri conectate direct intre ele). PPP permite real izarea de legaturi peste conexiuni l iz ice seria le, linii te lefonice. conexiuni radio sau l ibra optica. Ointre impleme ntAri le PPP, cele mai uzuale sunt cele folosite de co nex iunile de tip dialup si PPPoE. PPPoE (PPP over Ethernet) este un protoco l care permite incapsularea (includerea) cadrelor PPP in cadre Ethernet, cel mai frecvent pentru a putea fi trimise printro placA de relea obi~nuita (ce folose~te cablu UTP). PPPoE este folosrt uzual i n cadrul serviciilor de tip ADSl sau Internet prin cablu TV. Daca legatura fizica dintre calculator si madem se rea lizeaza prin cablu UTP, atunei este loarte probabil ca legatura logicl'i dintre calculator si modem sil. foloseascl'i PPPoE. Pentru a pulea sa acceseze Inlernelul, utilizatorul Irebuie mai inlai sa stabileasca 0 conex iune PPP cu modemul. Slabilirea unei conexiuni PPP necesita, de cele mai mule ori, autentifica rea utilizalorului. Aceasta se realizeazl'i pe baza unui nume de utilizalor ~i a unei parole furn izate de cl'ilre ISP (Internet Service Provider - furnizor ul de se rvicii de Internet). Penlru configurarea parametrilor conexiunii PPP, inclusiv a parametrilor necesari autentificil.rii, cea mai u$oarl'i metodA este folosi rea utilitarului pppoRc:on~ . Instalarea acestuia depinde de instalarea tuturor pachetelor necesare func!ionarii protocolului PPP. astle l incat, pe 0 distributie ce lolose~te pachete cum este Ubuntu sau Oebian, adata cu pppoRc:onf se var instala ~i toate dependintele sale. Pe de alta parte, adata configurata conexiunea PPP cu ajutorul pppoeconl, acesta se va acupa de rea lizarea tuturor fis iereior de configura,,~, inclusiv de adAl.J9area unui script care la pornirea sistemului de opera re va rea li za conectarea prin PPP. Pentru configurarea PPPoE sunt necesare urmatoarele !isiere (ele sunt create sau actualizate automat de caIre ppp oR c on~) :
" 1

244
fete/network/i nt erfaces

INTRODUCERE iN SISTEME DE OPEAARE

/etc/ ppp/ pap- secrets


/etc/ ppp/peers/ ds lprovi d er

Ukimul dinlre liSiere poate avea orice nume si sa poale alia in orice loe, lnsA trebuie specificat in cadrul fiS ieru lui / etcl network / i nt erfaces .
Un exemp lu de lete/ n e t work/ i nt e r f aces eSle urmatorul:
f The loopback network Inter face
2 8Ut O 10

!face 10 inet loopb a ck


p rima r y netw ork interhce allo,,-hotp lug <>thO 1f .. c~ HhO ine t manual
Th~


10 " 12

au to dd- p r ov i d"r Ihee as i- provider i net ppp

pre - up !sbi n!lfconlig ethO up f line mai ntai ned by pppoecont provide r a. l -pr ov i d",r
auto ethO

" ,.

Autentificarea conexiunii PPP se realizeazA folosind protoooale specializale. Un exemplu de lisier /etc/ppp/pap - secrets . in care sunt trecute informatiile necesare autentific1'lrii, este urmatorul:

,
,

( ... 1
f

INBOUND

conn e ction ~

5
7
6


10

f Every r e gular uS e r can letc/pa s swd hostnam<l

u~e

PPP a nd h a; to u; e

pa ~" " ord "

fr om

" " "

" "
"

"

f User lOs t h at cannot U$e PPP at a ll. C h ec~ your /etc/passwd a nd add a ny f other accounts that ~hould not be ab l e to use pppd' '1uest h ost n a me master h o.t n a me h oatM me root support ho.tname , t at ; ho,tname

f OUTBOUND conne ction ; f Here you .houl d add your u ; ecid pas.wo rd to connect t o your p rOViders via f PAP . The. means that t he pa ss ,,"ord i s to be u~"d for ANY hos t you conMct f to . Thus you do not have to ,,"orry about t h e foreign machi n e n a me. Ju.t f rep l ace password with your pass,,"ord . f It you h ave different p r ov i ders ~ith dif fer en t passwords then you better f remove t h e following line . f password

"
~ ~ ~

19

20

21 22

""
l'

""

" ""

" student " "u ,orul ., ,, "

CAPITOLUL 8. CONF1GURARl DE RETEA

,<5

1 n fisierul !etc !pp p !peers!dslpr ovider sunt trec ute informatii legate de pa rametrii conexiunii PPP, altii decat cei de autentilicare:

" " " " "

, , , ,

f Min i ma li, t ic default option ,

file fo r DSL/PPPoE co nne ct io n ,

Mipddault dehultroute r epla cede hU l t route hide - p .... word noauth persist fmtu 14 92 fpersist fhol doff pi u(11J'1 rp - pppoe . o ethO u , e r st ude nt ' usepeerdns

'"

Pentru a activa 0 conexiune PPP se foloseste comancla p an. Ea este echiva lentA cu paramelru l up al comenzi i it"cont"iq. Pentru a dezactiva 0 conexiune PPP se folose~le comanda poff. eCh ivalentA cu pa rametrul down al comenzii i f co nfiq. Un amAnunt important de precizat este cA, pentru a functiona prin PPPoE , 0 interiatil de retea Ethernet nu neces~A co nfigurarea unei adrese IP. Inter/ala de retea Ethernet este folos itA indirect penlru coneclarea la Internet: prin ea sunt trimise datele ciltre modemm acesta asigurancl mai departe legatura ca.tre Internet. In acest caz ad resa IP este asoc iata cu 0 inler/ala virtuala numita pppO:
root@asga~d : ~

ethO

/home/george ' I fcoMlg Link encap : Etherne t Hwaddr OO:H : Dl : 38 : 13 : A6 ine t6 addr : feSO :: 240 : f4ff : f~bb : 1 70 1 /64 Scope : Link

, "
,0

I . . 1
L in~

encap : Lo cal Loopb~c x i n et .oddr : I27 . 0 . 0 . 1 Md5 X: 255 .0.0 . 0

1.. I
Li nk encap , ~olnt - to - ~olnt Protocol inet .oddr : I92 . 168 . 10 . 3 P-t-P:l0.0.0.1

pppO

" " " " " "

llas~ : 255 . 255 . 255 . 255

Metric,) RX p ac ~ets : l16 errors : O dropped:O overruns : O fr~me : O TX p ac ~et s : 180 errors : O dropped : O overruns : O carrier : O coll i .ions : O txqu~uel~n : 3 RX byte, : 105255 1102 . 7 KiB) TX bytes : 13991 113 . 6 KiB)
P01NTO~OINT

UP

RUNNING NOARP MULTICAST

MTU : 1492

Dup1'i cum se poate observa, interfata et h O nu are configuratA adresa IP. In sch imb inter/ata pp p O, asoc iat1'i conexiunii PPP. este cea care lost configurata cu adresa IP
192. 16 B. 10 . 3 .

Cuvinle cheie retea de caiculatoare


LAN, MAN, WAN

adresa MAC Ethernet UTP

protocolul IP: ad resa IP

246

INTRODU CERE iN SISTEME DE OPERARE

ruler unicast, multicast, broadcast adresa de (sub)relea delault gateway DNS switch Access Point DHCP oonfigurare temporarAipermanenlA; configurare staticaldinamica ilconlig
Intrebarl

letc/network/interfaces letc/resalv.con! fetcJhosts route DHep dhclient ping traceroute ipconfig PPPoE

1. Un utilizator incearea sa lesleze conectivitalea caire cs . pub . ro ell ajulorul


comenzi i p inq: "ping os.pub.ro" si testul reu~este. TOlusi, dacA utilizalorul tasteaza in bara de adrese a browser-ulu; "os.pub.ro", pagina web respecliva nu

poate Ii accesala. Care poate Ii motivul penlru care cele dOllA teste au rezuilate
dilerite?

o sarverul web de la adresa cs . pub . r o eSla opril

o utilizarea comenzii p inq aSIa

gre~ilA

o o o
o

comanda ping a oprit serverul web utilitarul ping nu of era informalii despre conexiunea cu cs . pub . ro

2. 5e poale configura adresa 10.138.257.134 pe imerfala de rel ea ethO? da, oricand da, doar daca eSle singura interfala a sistemului da, doar in situ alia in care este configurat un server DNS

0,"

3. D<'I.nduse 0 statie care are configurata adresa IP 1 72 . 1 6 . 1 50 . 200 ~i masca de relea 255 . 255 . 255, O. care esle adresa relelei din care lace parle statia?
0 17 2.0 . 0 . 0 01 12.16 . 0 . 0 01 '12 .1 6 . 150 . 0 01 72 .1 6.150 . 200

4. Desi legatura la Internet lunctiona, utilizatoru l Dorel a dorit sa testeze coneclivilatea cu gatewayul cu ajutorul comenzii ping - f 1 92. 1 68. 1 0.1. atanal

CAPITOLUL 8. CONFIGURARI DE RETEA

247

La scurt limp al a lost contactal da administratorul de relaa care Ia rugat sli lsi veriliee ca lculatorul impotriva virus ilor. Acest lucru sa petrecut deoarece:

o o

Dorel loloseste Unux si nu Windows. la lei ca majoritatea ce lorlal!i utilizatorL Dorel nu a repornit calculatoru l de mult timp. Dorel a generat foarte mull trafic in limp scurt, lucru specifie Dorel nu
ob i snu ie~te
viru~ilor.

o o o o o o

sa cripteze emailurile trimise.

5. Ro lul serviciului ONS esle de a: asocia nume de domenii cu adrese MAC asocia nume de domenii cu adrese IP asocia adrese IP eu adrese MAC asocia adresa IP eu numele ulili zalorului

6. in lisierul fet e /net wor k I inte r fa ce s se gase~te urmaloarea linie:


i f a ce ethO cne t dhcp

in linia de comandli este data urmatoarea comanda:


ifconfig ethO 192 . 16B.124 .1 S0

dupa care statia eSle repornita. Care va Ii adresa IP a interfetei e t hO imediat dupli repornirea slaliei?

o o
o o

192 . 168 . 124 . 150, penlru ea a lost ullima adresa conligurata de root . 192 . 168 . 124 . 150 daca aeeasta esle adresa furnizala staliei de serverul

OHCP interfata nu va avea nieio adresa IP pentru ell. sa ereat un conflict prin eonligurarea adresei IP in douli moduri interlala nu va avea nieio adresli IP pentru eli nu a lost dat parametrul netmas k eomenzii ifc:onfiq

7. Contigurarile permanente se realizeaza eu ajutorul lisierului fete/ networ k / ip. Conligurarile temporare isi pierd efectul 0 data eu repornirea sistemului.

o a a a

adevarat. tats adevarat. adevarat lals. lals lals. adevarat

8. Masea de retea esle utilizata pentru a idenlifica adresa re!elei din eadrul unei
adrese IP. Pentru a putea aecesa serverele din Internel este neeesara conligurarea unui server ONS.

a a

adevarat. fals adevarat. adevarat

248
o fals, fals
o fals, adev<'lrat

INTRODU CERE iN SISTEME DE OPERARE

9_ Cu ajutorul comenzii trace route sa poate testa:


o
li~!imea

de banda a unei conexiuni

o Galea dintre surs.:! si destinalie o FUI"IC\ionarea serverului web de pe stalia destina!Hl o Exislen!a unui ruler inlre sursa
~i

destina!ie

10. DacA un sarver DNS nu aSia specificat , care dintre urmatoarele comenzi aSia probabil sa functioneze:

Oping www. qooqle . ro Oping cs . pub . ro Oping loca l host Oping dns . l ocaldomain . ro

C JPYnghted matanal

Capitolul9 Servicii de retea


When I tooll office, only high energy physicists had ever
hea.rd of what is called the World Wide Web... , No w

even my cal has its own page


Bill Clinton, 1996

Ce sa invala din aces! capitol?


Com:eptul de protocol 5i sliva de protocoale

Modelul cl ient-server

Folosirea porturi lor


Executia comenzilor Ie distanla: tel net, ssh, wget, curl Func!ionarea serviciului de POsta electronica (email) Func!ionarea serviciului de web
Modalitiiti de partajare a fisiere lor: 5MB, FTP

9.1
9.1.1

Concepte specifice aplicafiilor de retea


Sliva TCPIIP

Sistemele de cak::ul au inceput sa fie dezvo~ate odat1i eu slarsitul celui de at doilea razboi mondial. eu taale aceslea, pro~ematica asigur(lrii comunica!iei inlre sistema allate in localii la mare distan!a a lost formu lala abia spre inceputul ani lor 70, de catre US DoD (US Department of Defense - Ministerul Aparari i Nalionale al Stateklr Unite), Proieclul US 000 a creat si un cad ru de standard izare penlru soluliile de comu nicalie. denumil sliva de protocoale TCPIIP (Transmission Control Protocol/Internet Protocol),
Un prolo col esle un set de reguli care guverneaza modul in care doua d ispozilive sctlimbil inlormalie JnlT,o relea si comun icaliei. , . asigurA coerenla , ,

'"

.1

250

INTRODUCERE iN SISTEME DE OPERARE

o sliva de protocoale reprezint;\ un set de protocoale cs comunic;\ intre ele prin fllnC!ii (nurnile prim itive) clar delinite.

o sliva de protocoale estB in ge rll!ral privitA ca 0 succBsiunB de niveluri. Fiscale dintrs

niveluri este deseris de:


un set de tuncli; pI! ca rl! Ie jndepline~te;

un set de parametri pI! care ii asleepta de la nivelul inferior; servici ile pe ca re Ie olerA nivelului imediat superior. Protocoalele dintr-o sliva nu VOl pulea comunica intre ele direct decal daca 51! ana pe niveluri adjacente.
Deserierea unei solutii de comuniCare prin prisma une; stive de protocoale olerA in primul rand avantajul lIexibiliUitii procesului de standardizare. AsUel, schimbarea {sau simpla optimizare} ur'iui protocol din stiv~ poale Ii M.cut~ l~rA a solicita modihcAri in restul protocoalelor. inceputurile retelelor de date au lost marcate de existen!a mai multor protocoale de comunicatie. dezvoltate in paralel, de vel'ldori dileritL Pro~ema consta in laptul cA, desi douA protocoale, de la doi vendori dileri!i, descriau amil.ndouA foarte bine specificatiile propriilor dispoziUve, nu puteau sA cornunice unul cu cel<1lalt. Astlel, pentru a lace posibila intercomunicarea i ntre echipamentele de re!ea prod use de vendori dileri!i. sa introdus conceptul de standardizare a unui protocol . Odata ce un protocol aste acceptal ca standard, el devine dintr-un set de reg uli, un set cornun de reguli , liind recunoscut din punct de vedere procedural si functional de to\i vendorii. Pentru a descrie prelucrArile e/ectuate asupra datelor trirnise de la utilizator spre rnediul de transmisie, stiva TCPIIP identificA patru niveluri, prezantata in figura 9.1: Apll ca t,:i e, T ran spor t , Re t,: ea (sau I nt erne t ) si Ac ces 1 01 me d i u. Utilizator

Aplicatie Transport Retea

Acces la mediu

Mediu l iziC Figura 9.1: Stiva TCPIIP

C JPYnghted matanal

CAPITOLUL 9. SERVI CII DE RETEA

251

Nivelul aplica! ie Nivelul apli calie este eel mai apropiat de utilizator si olera acestuia modalitatea de accesare a serv iciului de relea. Un serviciu de retea poate Ii implemental prin unul sau mai mulle protocoale de nivel aplicalie. Prolocoalele de la acest nivel vor coniine reguli releriloare la interac!iunea cu ulilizalorul, lormatarea si reprezenlarea datelor. pracum si la controlul dialogului intre componente le serviciului. in lunc!ie de serviciu l oleril, protocoalele de nivel aplicatie pot Ii grupate in: serv iCiul de transler at lisierelor, ce poate Ii implementat lolosirod FTP(File Transfer Protocol). HTTP (HyperText Transfer Protocol) etc. serv iciul de p~ta electronica , ce se bazeaza pe urmatoare~ protocoale: SMTP (Simple Mail Trans/er Protocol), POPJ (Post Office ProtocoI3), IMAP (Internet Mail Access Protooof) serv iciul de executarea comenzilor la distanta: telnet, aah. rlogin alte protocoale: DNS (Domain Name System). DHCP (Dynamic Host Configuration Protocol), SNMP (Simple Network Management Protooof)

Nivetul transport Nivetul tran sport esle responsabil cu probleme legate de siguranta, conlrol al fluxului ~i corecHe de erori. Tot la nivelul transport este realiza1a multiplexarea comunicaliai prin specilicarea p orturllor sursa ~i de st lnalle. Cele mai imporlanle prolocoale de nivel transport sunt TCP (Transmission Control Protocol) si UDP (User Datagram Protocol). Te p este un protocol orlentat conex lune, adica inainte de a !rimile datele va negocia pararnetrii de comunicatie intre entitatile participante la cornu nicatie. iar apoi pe tot parcursul va asigura reordo narea pachelelor ajunse In ordine gre~ila la destina!ie, sau retransmisia celor pierdute. Pentru a intelege mai bine notiunea de protocol orientat pe conexiune, se poate lace 0 analogie cu transmi1erea dalelor prin reteaua telefon icli. In momentul efectulirii unei convorbiri te lelonice, sa stabileste intre sursa si destinatie 0 conexiune dadicatli prin retea, Inainte de Incaparea comunicArii. Deasamanea acast axemplu re levA /aptul cA inlr-un protocol orientat pe conexiune, destina!ia este mereu contaclatA lnainte de inceperea transm isiei propriuzise (In analogia cu soneria tele/onului). UDP esle un protoco l neorlentat con exlu ne. Astfel, UDP nu se va preocupa de initierea sau terminarea conexiunii, de pierderea pachetelor sau doar a succesiunii acestora. UDP va incape transmis ia lArA a verilica mAcar dacA destina!ia linala va accepta respectivul tralie. Desi 95% din traficullnlernet folose~te prolocolul Tep. penlru retelele locale numeroase servicii se bazeazA pe UDP: ONS, SNMP. TFTP. Motivul principal it reprezinta gradul radus al erorilor in rete lele locala (spre deosebire de WAN). UOP asle mai simplu de implementat, dar si mai eficient decal TCP: antelul (informalia suplimentara adaugata de liecare protocol) UDP esle doar de 8 octeli, la!A de 20 de octe li cal are TCP.

"-,, .,_'.1

252 Nivelul felea

lNTRODU CERE iN SISTEME DE OPEAARE

Nivelul re!ea (Internet) S8 ocup!!. cu transmilerea pachelelor de la 0 surs<'i la 0 dastina!ie


prec izata, indiferent ln ce relea se alia aeeasta. Alegerea ca ii pachetul ui prin rele lele intermediare, comutarea lui dintr-Q 0 relea in alta si optimizarea traseelof alase sunt

responsabilitatea protocolului de relea.

Nivelul acces Ie mediu Nivelul ecces Ie mediu se ocupa cu toale problemele legate de transmiterea electiva a unui pachel pe 0 legatura !izlca, incluzand ~i aspecleie legale de tehnologii ~i de medii

de transm isie.

9.1.2

Implementarea pa'1ialli a stivei TCPIIP

Dispozitivele de interconeclare asigurA transferul eM mai rapid a1dale to r In general pe


baza unar algorilmi de decizi9. Un dispozitiv de interconectare poate in acelasi timp asigura convers ia intre doua tipuri de relea (doua protocoale) diferile. Criler iul principa l de evaluare a eficienle i unui dispoziliv de interconeelare este numarul d e pachete comutate pe secunda. in funclie de complexitatea deciziei de comutare numarul de pachete pre lucrate scade. Pe ntru eehipamentete de relea ce fotosesc un numar redus de cr iterii penlfu decizie, se renunla la implementarea niveluri lor superioare din stiva de protocoate TePIIP. o prima c lasa de dispozitive de interconectare i~i bazeaza deeiziite de comutare doar pe intorma!iite protocoatelor de nivel acces la mediu. in aceasta categorie intra switch urile, dar si AP-urile (access point). A doua clasa de dispozitive va anal iza atat informatiile de nivel acces la mecfiu, cat ~i pe cele de nive l relea, procesu l de deeizie liind mai complex, dar si mai lenl deeM In primul caz. Cel mai important dispozitiv de interconeetare de nivel retea eSle ruterul. Oispozitivele de inlerconectare pol implementa doar 0 parle a stivei de protocoale. Spre exemplu un rute r nu trebuie sa inteleaga con!inulul unui pachel de dale pentru a pulea lua de<:izia de trimitere pe calea opt ima. Astfel , ruterul are nevoie doar de informa!iile de nivel acces la mediu ~i nive l re!ea si va implementa doar primele doua niveluri ale stivei TCPIIP.

Figura 9.2: Comu nicatia intre doua stalii allale in relele diferite Considerand 0 topolog ie simpla, prezetata in fig ura 9.2, in care un cl ient de web allat pe statia B acceseaza un server allat pe statia A. Cele douA statii se all1\ in retele loca le diferite conectate printr-un ruler. Re!eua din sHi.nga esle 0 re!ea Ethernet, in vreme ce in reteua din dreapta AP -ul (acces point) este conectat prin Ethern et cu Merul R si oler1\ conectivitate lara lir pentru sta!ia B. __ ,.,.,
~

a'enal

CAPITOLUL 9_ SERVICII DE RETEA

253

Modelul de comunicatie peate Ii descris generic folosind stiva de protocoale TCPIIP precum in ligura 9.3.
Utili,ato, Aplicali" It"noport

'r-"=,
Aplicali"

Utlli,atof

r-------,
r-------,

1nn'p"rt

1I"lea
,

cc~.

'3m.. ~i

f'-cC t. I .. m.. ~i

, rcc... '3 me<li~ , ' ,

C C ... I" me<!i

"

Figura 9.3: Descrierea generica a comunica!iei Pentru topo logia considerata in ligura 9.2. la nivelul aplicalie se loloseste serviciul de web bazat pe prolocolul HTTP. La nivalul Iransport si nivelul relea se Iolosesle TCP, respectiv IP. Spre deosebire de nivalul aplicalie, unde pulem avea 0 larg<'\ diversilate de protocoale lolosite, la nivelurile transport ~i relea peste 95% din trahc-ul in Inlernet esle traliC TCPIIP. Pentru nivelul acces la mediu in retelele locale exist1i dou1l. lehnologii dominante: Ethernet (IEEE 802.3) ~i WLAN (Wireless LAN. IEEE 802.11). Conectivrtatea inlre ce le doua slandarde poale Ii realizata fie de ruler (cu 0 interfata 802.11 si una Ethernel), lie de un AP (aCCBs point). Un AP nu are nevoie sa interpreteze inlormatia aflata la nivelul (elea pentru a rea liza comutarea intre reteaua Ethernet si reteaua lara lir. Cele doua dispozitive de interconectare (rute rul si AP-ul) au lost ligurate ca avAnd cAte o sliva par!iala de protocoale pe liecare dintre inlerletele de relea. Sliva inlerfetei de intrare va fi Iolos ila penlru a lua deeizia de comutare a pachetului (alegerea inlerle!ei de iesire), un eehipament de interconectare putAnd avea mai mu~ de dou;li interfete. Dupa determinarea interfelei de ie~ire se va foklsi Sliva acesteia (parametrii spedici acestei intertete) pentru eventuala relormatare a pachetului. la\ia B, va soHcita lunelii din Pentru exemplu l considerat, lIu xul de date intre sta\ia A $i S mai mulle prolocoa le, acestea Hind prezenlate i n ligura 9.4.
Util i,ato,

'r-=:-, ,TIe
Uti lizato,

Ethernet

, Et~e

'ffi' " I I'


, ,p

r-------,
'P

Rut .. '

'r------- ,
'Et ~ eret

t h nlet , W L A N

, ,

, ,

- -'

Figura 9.4: Oescrierea cornunicaliei . intre doua statii . anale in retele dilerite

matanal

254

INTRODU CERE iN SISTEME DE OPERARE

9.1.3

Modelul client-server

Pentru implemenlarea accesului la serviciile de ralea , art1iteelura 1010siiA aSle bazalA pe modelul cli entsenltlr. Acesta se bazeazA pe delinirea a douA componente: cea de server si cea de client. Un server esle un program (sau prin extindere 0 slalie) ce permite prim irea de cereri de la aile entilA!i din relea , oferind acestora un serviciu.

Un client esle un program ce olen! meeanismul de interogare eventual de formatare a rihpunsului primil de la acesta.

, unui server si

Un exemplu de model client server esle serviCiul de web. Acest serviciu presupune rularea unui server HIT? (ex: Apache , Microsoft 115 etc). Ap lica!ia c lient poate ti oriee navigator (broswer), Chiar pentru exempl ul serviciului de web se poate observa cA aplicatia cli ent inlegreaza in realitate mai multe apl icatii client: pentru HIT?, dar si penlru FTP. TFTP. Modelul client-server olera central izarea serv iciilor ~i a lost in primul rand promovat ca o metodA de reducere a costurilor totale a unui retele. Ca urmare a scaderii costului resurselor hardware, principala motivape a ce ntralizArii serviCiilor adevenit monitorizarea si securiz area relelei.
Cl ient 1

,
SIa!ia 2

St~ !la

Cl ient 2 Server Cl ient 3

, , , ,
Sta\ia 3

Cl ient 4

Figura 9.S: Modelul cl ient-senltlr si modelul peer-to-peer Noliun ea de server s-a extins si pentru sistemele de calcul. speeiticatiile hardware ale unui server depinzand de serviCiul pe care 11 indeplineste. Spre exemplu, un senltlr de stoeare va avea un proeesor relativ modes!, dar un spaliu impres iOl1ant de stoeare. preeum si mecanisme de reclundan(a. a discurilor. Modeluf pun cl-ta-p uncl (peer to peer) este de lapt un model client-server ascuns, asa cum se poate vedea 5i din ligura 9.5. Fieeare entitate ce participa la comuniCatie poate juca alii! rol de client ciit si ro l de server. Spre deosebire de mode lui client-server, modelul pur.ct-Ia-p unct este un model descentralizat. Mulle din programele de parlajare de l isiere utilizeazA acest model penlru a nu lolosi un server care sA intermeclieze comunicatia . Un model client-server de partajare a fis ierelor atanal

CAPITOLUL 9. SERVI CII DE RETEA

255

intre clienti presupune ca orice pachet schimbat i ntre cei dOi clienti sa tmaca prin server, ceea ce aduce aliU 0 latenla, cat si 0 incarcare a rete lei si a serveruluL Principalul dezavantaj al cenlra lizArii serv iciilor este laptul ca serverul va Ii un punct cr~ic in relea: in momentul in care serverul nu lunclioneaza, serviciul eSle intrerupt. intro relea punctlapunct acest dezavantaj este evrtat.

9.1.4

Porlurl

in scopul reducerii costurilor unei retele, mai multe servicii pot Ii olerite de aceea~i ma~ i na. Spre exemplu, pentru 0 relea locala, serverele de DHCP, ~i DNS pol Ii integrate pe 0 singura statie, deoarece resursele solicilate de tiecare serviciu sunt relaliv recluse. Cum ~a putea totusi un astlel de server sa dileren!ieze intre cererile de nume (cereri DNS) $i cele de aklcare de adrese IP (cereri DHCP)?
rezol~are

de

Ambe le protocoale lolosesc la nivelul transport UDP, deci nu vom putea IlIa decizia pe baza lipul prolocolului de niv~ transport. Aldt UDP, eM ~i TCP lolosesc un mecanism de identiticare a serviciilor (a prolocolului de nivel aplicalie) denumil port. Porlul este un numar reprezentat pe 16 brti, ce identilica la nivelul transport (in intorma!~ adaugata de protocoalela TCP sau UDP) un serviciu specific. Mecanismul da porturi per mite atAt olerirea simultanA a mai mullor servicii, cAl ~i dilerenlierea intre cereri de raspuns venite din conexiun i dilerite, adica lolosirea mai mullor servicii simultan. Astlel, in antetul de nivel transporl ~om preciza aldt un pori destinatie, ce identificd serviciul apelat. cat si un port sursa, pe care este a~teptat raspunsul. 0 conexiune va Ii descrisa prin precizarea parametrilor de nive l relea $i de nivellransport: adresa IP destinatie, adresa IP sursa, pori destinalie si pori surd. Daca de pe aceeasi slalie sunt laIlsate doua sesiuni de SSH caire acelasi server, se creeaza doua conaxiuni d~erite a~a.nd acelea~i adrese IP (sursa $i destina!ia), acela$i port destinatie, dar porlul surd dilerit. Porlurile sunt numere rep rezenlale pe 16 biti, valori le definite pentru porluri liind cuprinse in intervalul (1, 65535]. Porturil e pana la 1023 sunt rezervate pentru cele mai importanle protocoale ale Intarnetului, liind denumila porturi razervata (known porls). Porlurile rezervale sunl asociale unui protocol pe care serverul il 1010se~le in olerirea unui serviciu . RezumAnd : fieeara servieiu de relaa esta olerit lolosind un protocol de nival aplica~a, fiecare protocol are la randul sau asocial un port, i n unele cazuri doua sau mai mulle. in labelul 9.1 sunl prezenlate cAleva dinlre prolocoalele imporlanle $i porlurile Iolosile. Putem observa spre exemplu cA serviciul de FTP are rezervale doua porturi: 21 (penlru stabilirea conexiunii) $i 20 (pentru Iranslerul electiv de fi~iere ) . Penllu a delerm ina serviciile olerite pe statia locala va Irebui sa al~am lisla pOllurilor deschise (aflate in stare LI SlEN). Pentru aceasla pulem lolosi ulililallJl n.. tsat (vezi sec)iu nea 10.3.1):

256

INTRODU CERE iN SISTEME DE OPEAARE

Tabelul 9. 1: Asoc ieri

cateva servicii raspfmdite

, , , ,

<c, <C, <C, <C, <C, <C,

roo t @ kiwi-f n et ,tat -- tep -- li5 t ~ning Ac t iv@ Int ~ r n H conn .. ction s (on ly se r v .. r ,) Proto Recv-O Send - O Loc al Address 0 0 ', sunrpc 0 0 ' www
0 0 0 0 0 : .. ebc~che 0 ; 6Uth 0 . : ftp 0 . : "mtp

Fo:ign Address

. . . ,. , , . .
,
'
; ; ;

State
LI STU

Ll STI:'u
L l STEil L I STEll

LI STtN
L l STEil

Din rezullalul come nzii de rnai sus se poate deduce ca portul lip (adica portul 21) este deschis. Akfel SPU$, exista. 0 aphcatie ce foloseste aces! port penlru a accepta conexiuni.
i n general, servieii le sun! rulate porturile rezervate, dar prin configurarea senlic iilor putem schimba porlul pe care se vor accepta conex iunile. Pentru a obtine mai multe

pe

informalii despre aplk:a\ia ee ruleaza pe portul 21 pulem lolosi cl ienlul de t e1 ne t ce va deschide 0 conexiune pe aces! port:
2
~ raz"~I'l@ ki wi : -$ t e l ne t ki~1 . C ~ Trying 141 . 85 . 99 . 5 ... Connect e d to kiwi . c" . pub . ro . E ~ C~p~ ch~ract e r i~ . p u b . ro

21

. ' j '.
~ ec\'1ce .

220

loI~lco m e

to Ki wi FIP

vs FTPd 2.0 . 3 i s in

~ ecV1ce

Daca oprim serviciul de FTP ~i re<:onliguram serverul de SSH sa primeasca ce reri pe portul 21 . rezultatul comenzii te l net va Ii:
,a.va n @ Ki wi: _$ te l net k l wl . cs . pub . ro 21

2 Tryinq
,

H 1. 85 . ~~ . 5 .

Connected to Uwi.cs.p ub . ro . escape character is " j ' . SSH - 2 . 0-OpenSS H_ 3 . 8 . lpl Deb hn - S . s~rg" . 4

Din motive de securitate serverele pot Ii conligurate sa nu la versiunea serviciului. sau sa ali~ze informalii lalse.

ali~eze

inlorma!ii releritoare

In cazu l in care se incearca ini!ierea unei sesiuni de telnet pe un port ce nu esle deschis va Ii intors mesajul de conexiune reluzata:

CAPITOlUl 9. SERV1CU DE RETEA


r~zv~ n H i w i: -$ t~ln~t

251

ki wi . cs . pub .r o 29

> Try i n g 14 1 .85.99 , 5 ,.


, telMt: Una b le to connect to remote nos t : Connection re fu se d

9.2

Execulia comenzilor la distanla

Serviciul de execu!ie al comenz ilor la dislanla (remote connection) esle oleril de mai mulle prOlocoale, cele mai imporianie fiind: lelnel, rlogin, RSH, SSH. Protocoalele lelnel, riogin si RS H se bazeaza pe realizarea unei conexiuni necriplale (in lexl clar). Spre deosebire de aceslea, prOlocolul SSH stabileste 0 conex iune criplalA, conexiune lolosita aldl pentru lansarea comenz ilor la distantil, cat si penlru transferul de lisiere.

9.2.1 Telnet
1 n practica. granila dinlre serviciu de retea si protocol de nivel aplicatie este. deseori, una greu de evidenliat. Astlel, putem spune cil serviciul de e~ecu!ie al comenz ilor la distanla eSle oleril de protocolul lalnet, dar la lei de corect se poate vorbi de serviciul te lnet. Prin serviciul te lnet se intelege posibititatea execuliei comenzi lor la distanta peste o conexiune nesigura (necriptata). Pe langa denumirea unui protocol de nive l aplica!ie, 5i a unui serviciu de relea , telnet este 5i denumirea aplicatiei ce implementeaza protocolul (a procesului care din punctul de vedere al sistemului de operare olera serviciul de retea). Ap licatia tel net este 0 aplicatie clientserver: procesul server se numesle telenetd, iar clienlul se numeste telnet. Serverul de lelne\ este responsabil eu acceptarea sesiunilor initiate de elien!i. 0 sesiune de lelnet pune la dispozi!ia aplica!iei client (dupa autentifiCare) un interpretor de eomenzi ce ruleaza pe server. in mod implicit, nu exista dileren!e intre res ursele disponibile unui utilizator in urma rularii unui interpretor de comenzi loca l, si resu rsele accesibile printro sesiune de tel net de catre acela5i utilizator.
roo ki @@app i ,,-$
t .. in .. t

141 . 8S . 99 . 5

> Tryi n g 141 .85.99 , 5 ..


Co nn ected to 14 1, 85.99 . 5.

5
6

Esc3pe c h3ucte r Is " I ' .


~elM"e 7 (Moonshine) KerMl 2.6.21 - 1.3194 . !c7 o n an 1 686 l og i n : maM ger

Fedora

maMge~@ ki wi-$

1 n exemplul de mai sus ulilizatorul r ooki e initiazii 0 sesiune telnet ciitre serverul cu adresa 141.85.99.5. Dupa afisarea mesajelor de int<'!mpinare (denumite MotD Message of the Day) este afisat promp\ul de login. Este lolosit numele de utilizator manager 5i parola asociata aceslui conI. Dupii autentificare va aparea prompt ul interpretoru lui de comenzi.

258

lNTRODU CERE iN SISTEME DE OPEAARE

Pro\ocolul telnet a fost standardizat pentru a permite clientului de te lnat initierea de conexiun i la distanta ~i caIre alte servere. Majoritatea implemenlarilor serverelor perm~

ini!ierea unei conexiuni prin cl ientul de talnet (eu unele exceptii notabile, precum clientii RDS. carora Ie asle blocat portul25 al serviciului SMTP)_
Pentru a inilia 0 conex iune pe serverul de HITP ce ruleaza pe statia eu adresa IP 14 1.85.99.5 trebu ie ru lala aplicatia client telnet eu precizarea deslina!iei ~j a porlului pe care ruleaza serviciu (implicit 80) Dupa stabilirea sesiunii se pot executa inclusiv comenzi ce respecla sinlaxa prolocolului HTTP. spre exemptu pentru a obline 0 pagina se foloseste ccmanda HTTP GET, urmat~ de pagina ee se doreste afisatii.
2
l

ruva n @kiwi : -S tel ne t 14 1. 85. 99 . 5 80 T<y l ng 127 .0.0.1 . Co nnecte d to l oca lhost . l o c al d omain . Escape chara ct e r i ~ ' A) ' . GE T / - ra z v a n /t e ;t . html HTTP/l.O
HTT P/l . 1 200 OK OH~ : h i. 0 3 Nov 2008 19 : 57: 10 GMT SHv@ r: Apach ,,/ 1. 3 . 33 ( D@ b ian GNU/L inux) PHP /4 . 3 . 10 - 16 L~st - Mod if i e d : Fr i . 03 Nov 200S 19 : 56 : 40 GM T ET a g' " 2S3095 - H - 454 b gefS"

7

10
11

12 " ,.
,!

Accept - Ra ng "" : b yt es Co n te n t - Lengt h; 68 Conn ecti.o n, c l ose Co ntent - Ty pe : t e ~ t /htmi

c ha rset - i so- 88S9 - 1

" 1!

"

<br l> p agiM d " t "~ t p e n t ru c ur s u l USO - s e rvi<:ii de Re t M <br I> Connectio n <: I o""d b y fore i gn h ost .

Este important de retinut cii pentru terminarea unei sesiuni de telnet se poate fo losi combinatia CRTL +) .

9.2.2

SSH

SSH (Secure Shelf) este un protocol de nivel aplicatie, lolosit in re!ele de calculatoare pentru as~urarea unui canal securizat de transmitere a inlormatiei. Protocolut lunc!ioneazii dupii modelul client-server. Pentru a ini!ia 0 conexiune, clientul de SSH trimite 0 cerere caire serverul de SSH , iar acesta din urma, dupa autentilicarea clienlului, permile translerul de date. Cea mai intalnitii implementare a protocolului SSH 2.0 este varianta open-source OpenSSH.
numit~

PrOlocolul esle adesea lolosil penlru executarea comenzi lor la dislan!~ , dar poate Ii deasemenea utilizat si pentru transfer securi2at de fisiere sau tunelarea altor protocoale mai nesigure (FTP). Exisla multe aile protocoale de nivel aplicatie. mai vech i. cu ca re se pol ob!ine acelea~i eleete precum cu SSH: FTP, rlogin, rsh, lelnel. Toale aceste protocoale au ins~ Tn comun aceeasi s l ~biciune: lolosesc metode de autentilicare slabe, ce presupun trimiterea parolelor pe relea in formal text clar {clear text}. Formatul lexl clar reprezinta. un risc maxim de securitate. caplurarea parolelor ta.clI.nduse relativ simplu de o persoana. cu inten!ii malilioase.

CAPITOLUL 9. SERVICU DE RETEA

259

Penlru asigurarea securitatii, SSH loloseste algoritmul RSA de gene rare de ahei publica ~i private. Dupa cum denota ~i romele celor doua chei. cheia privata trebu ie pastrata lntotdeauna secreta, iar cea publica poate Ii cu noscuta de oricine. E~ista 0 stransa relat ie matematica intre cele doua chei , ca re face imposibila derivarea cheii private din cea publica, dar ca re permite decriptarea unui mesaj criptat cu una dintre chei, lolosind cealalla cheie. Daca se doreste trimrterea unui mesaj privat caIre destinatarul X. lot ce Irebuie lacul este cripta rea mesajului cu cheia publica a destinatarului (fiind publica, toatA lumea are acces la aceasta cheie) . Odatil criptat, acest mesaj poate Ii decriptat doar de destinatarul X, caci el este singurul care deline cheia privata coresp unzatoare cheii publice cu care sa lacut criptarea.

Ulillzarea SSH pentru electuarea conectar li la dlstan!ii Comanda de conectare la un server SSH are doi parametri importanli: numele utilizatorului si adresa (numele) serverului destinalie. Serverul de SSH la care se va face conectarea (securessh . pub . ro in exemplul de mai jos). este un nume public pe care serviciul de DNS it va traduce ln tro adresa IP. Dadi se doreste coneclarea la un server dar nu se cunoaste numele sau DNS, se poate introduce direct IPul serverului. Cand un client initiaza 0 conex iune ssh pe un server. trebuie sa se conecteze Iolosind un utilizalor exi stent pe acel server penlru a putea avea acces la inlerpretorul de comenzi. Parametrul bogdand specifica utilizatorul in contu l caru ia se va intra dupa stabilirea conexiun ii.
I~zv~n @ k i w i, -$

"h bogdand@5ecuIe55h . pub . ro


.1 21.1Ja . 24J ~

2
l

P~5",<O I d ,

L~st

~elcome

l og in: Wed Sep 19 14 : J7 : 29 2007 fro m ~6 to the dark side . . we ' ve got cookies

bog-da n d@secu~essh : ~S

In rezu ltalul comenzi i de mai sus se poate observa laptul ca sau mai facul co nexiuni anlerioare pe acel server de SSH, fiind oleritA at1\! ora si data ultimei conexiuni, cat si adresa IP de la care sa real izat conexiunea. Cand un cl ient de ssh i n~iaza pentru prima dala 0 conex iune caire un server nou, acesta din urma va trebui sa se autentifice catre client. Fiecare server de SSH are un identilicator unic (host key) cu care se autentilica In comunicalia cu clienlii. Acesl identilicator este implementat prin chei publice si chei private. La primirea unei conexiun i de la un cl ient, serverul olerA cheia sa publicli, lAcand astlel posibilil aulenlificarea. La accept area cheii publice de la server, cl ientul adauga aceasta cheie In lisierul known_ hos t s. Astlel , urmAtoarea conexi ,me pe care acest client 0 va lace caire server nu va mai necesita transferul chei i publice, ace aSia existiind deja siocata pe clien\.
I~zv~n@ ki w i: -$

> The
J

~uthentic i ty

,sh bogdand@B2 . 77 . 5 . 245 of host ' 82.77 . 5 . 245

(~2.77,5

245) '

can ' t

be

est~b li .hed

"

RSA k ey fi n ge<print i , 1! : 94 : B9 : c3 ' e5 , fe , c3 : 6c : 2e : ab : f6 : ~2 : bd : 6d , bb : e7 AIe you SUIe you want to continue connect ing (ye,/nol? yes ~ar n i ng , P .. r m ~n .. ntly added ' 82 . 77 . 5 . 245 ' (RS"') to the !i-st of Kn own hosts

260
7
H~ve ~

lNTRODUCERE iN SISTEME DE OPEAARE


lot of fun .

bog aa n(!@ ... rver:-S

Un utilitar pentru sistemele Windows ce permite co nectarea In linie de comanda la un


server de SSH eSle aplicalia punY. PuTTY eSla disponibil gratuit si esla un client penlru

protocolul SSH , telne!, rlogin, dar peate Ii lolosi! si in comun icati ile rep raw. 0 privire de ansamblu asupra opliuniior ole rite de elien!ii imperlan!; de SSH peate Ii gas ita online'.

Ulilizarea SSH pentru rularea de comenzi Is distanla

Sintaxa completa a utilitarul .!Ish perm ite prec izarea unei lisle de parametri, a utilizatorului si a adresei destinalie, precum ~i a unei comenz i ce va Ii rutalA dupa stabilirea sesiunii SSH. Daca nu asle precizata 0 comandA se va rula un interpretor de comenzi (eel mai adesea /bin ! b as h).

in exemplul de mai jos sunt rulate local doua comenzi separate prin ":". Apoi se ruleaza aceleasi comenzi (de data aceasta protejate intre ghilimele), rezultatu[ alisat liind eel al executarii lor pe statia destinalie. dupa autentilicarea cu utilizatorul bogdand. Se observ.:i din exemplu d. autentilicarea se real izeazli f.:irli a interoga utilizatoru l, aceasta liind rezullalul unei autentificari pe baza de chei (vezi sectiunea t O.5.2):
uvan@apple , -S hostname ,
~
p~d

apple !homelru.v.. n azvan@appl e : - $ "' h


ki",i !home!u.e r .!boqd.. nd
rc .. zv .. n@"pp l
b09dand@141 . a5 . ~~ . 5

" ho"tname ,

pwd"

e : -$

Coplerea

fl~ le relot

la dlslan!ii

Efectuarea transierului de date se poate lace prin ulilitarul scp, ce face parte din pachetul ssh. Ideea din spalele scp esle de a folosi canalul securizat olerit de ssh pentru a lace transfer de date in format text sau binar intre client Iioi server. Sintaxa "c:p este asemanatoare eomenzii tradilionale cp:
scp sursa d"stJnatJ"

Daca se dore~te vanslerul mai multor fiSiere sau directoare, destinalia trebuie sa lie un director existent. Pentru a efectua 0 copiere de fisier de pe client , in directorul /home/bogda nd/work / de pe serverul eu adresa IP 82.77.5.245, eomanda este:
.a.va n @~lwl:-$

scp elscoTrTP . exe

bo g dand@e2 . 11 . 5 . 245 : ~!work

2
~

Fasswor d: CiSCOTFTP . .. ,e ruvan@kiwi : -S

lOOt 1296KB 129 . oKB!S

00:10

, http)l. n,wikiped ia,orglwi!<i/Compa rison_of_SSH_cn. nts

CAPITOlUl9. SERVICU DE RETEA

261

Penlru platlorma Winclows 0 aplicatie open source ce poate Ii Iolosita pentru partajarea de lisiere peste 0 conexiune SSH esle Wi nSCP. Aceasla olera 0 interiala gralica penlru transferu l de li~iere prin SCP, SFTP sau FTP.

Serverul de SSH Penlru a putea permile conexi uni SSH spre slalia locala, trabu ia instalat sarvarul de OpenSSH (penlru Ubunlu pachelul sa nume~la openssh - server ). Fisierul de conligurare pentru serverul de SSH se al11l in le t c/ss h /sshd_ config, si contine directive standard precum: portul pe care se accepta conexiuni SSH sau optiunea de a putea rula aplicali i X pesle conexiunea criplata de SSH.
uz ... ~n@Uwi:/ e tc/ .~ hS cat
(.
~~ htLconfiq

.. )

POrt 22 XllFonMrdinq y e o

I )

Autentificarea cu ch al Penlru 0 securitale sporit1l a utilizarii SSH, se poale lolosi autentilicarea cu chei publice si che i private. in cazu l standard al 101 0sirii SSH , liecare statie pastreaza 0 asociere intre utilizator ~i parola in mod automat. Daca se doreste insa utilizarea criptari i bazata pe chei, devine obligalia utilizalorului de a crea aceasti!. asociere manual. Penlru a genera 0 perecha de chei se poate lolosi ulilitarul ssh-keygen instalal odata cu pachetul OpenSSH.
r~z ... ~n @ U wi : -$

. . h - keygen - t
r~a

rS~

3 6 ,
A

hy pa ir. Enter file in which to ~ ~ ... e the key I/h" m e/" ~ terS/ . s s h/ltLrs~) : En t er p~""ph r~" e (e mpty for no p~ "" ph r ~ " e ) : En t ~ r ,arne pa,sphu5e a9ain : You r identif i cation h a s been s~ved i n Iho rn e/w~ters/ . ssh/id_ rsa . Your pub li c ~ey h~s been saved in I h ome/w~teu/ . 55h/id _ rs ~ . pub . The Key ti n ge~p~int is : cl : 4 5 : ~Q: n :b6 : f6 : e5 : Ob : 72 : 2J : 73 , ff ' 68 : 58 : 21 : dO "aters@Waters - l~ptop

G~n~ r atinq

pub li c/prLvat~

"
Odata generate, cele doua chei sunt stocate in mod implicit In doua lisiere: l.d rsa (c heia privata) si i d_rsa. . pub (cheia pub l i~). Cheia publica lrebuie sA ajunga pe stalia unde se alii!. serverul de SSH, iar cheia privata va ramane local pe stalia unde au lost generate chei le. in momentul crearii che ilor, ulilizatorului i se va cere un ~ i r de caractere (passphrase) care este asociat cu perechea de chei, si care va Ii cemt ulterior, In locul parolei. Acest ~ir poate Ii vid , caz in care nu se va mai cere intervenlia utilizatorului In cazu l utilizarii cheilo r pentru autentilicare. Folosirea unui passphrase vid devine deosebit de utila pentru automalizarea unor acliuni (prin scripturi). Pentru a copia cheia publica pe stalia allata la distanla se poale lolosi un utilitar dedicat, ssh- copy- id, specilicand ca parametru adresa serverului SSH.

262

lNTRODU CERE iN SISTEME DE OPEAARE

ra.va n @ ~ !wi : '$

ssh - copy - Id bogda n d@62.77.S . <45

La urm1'iloarea lrx:ercare de conectare prin SSH , singura diferenta va Ii cerea


passphraslt-ul (daca a fost introdus la generarea cheilor) in loeul unei parole de cont, insa, din punct de vadera al securilalii, utilizarea serviciului va Ii mai sigurii.

9.2.3

Utilitarul wget

" qet asle un ulilitar gratuit (din suita GNU Project). creal pentru a fac ilita 0 descarcare simplA sl eficient1'i a resurselor de pe Web. Aceste resurse pot Ii obtinute cu wget prin dou1'i dintre cele mai folosite protocoale din Internet: HTIP $i FTP. Numele ulilitarului eSle ob!inu! de lapt printrQ alalurare semanti~ a Wor ld Wide Web (W) si a metodai
HT TP GET .

li~ierelor.

Principalul avanlaj at wgat este taptul ca executA 0 descllrca re nBinteraclivi a intr-o aplicatie din mediul gralic (Fire/ox, Filezifla), 0 descarcarea uzuala necesita prezen(a pe sistem a utilizatoru lui. Cu alte cuvinle, acesta trebuie sa lie logal pentru a se putea electua operaUa de descarcare, sau pentru a avea posibilitatea de a reacliva 0 descarcarea intrerupta de caire server.

in contras\, lolosind wget , uWizatorul poate sa se autentiliee pe sislem, sa porneasca descarcarea, si sa se deautennlice, wga t connnufind sa ruleze panA la terminarea sarcinilor neincheiate. Mai mull, daca conexiunea catre server esle inlrerupta, ulilitarul va stoea lisierele descarcate pfina in acel moment pe hard-disc, va satva parametrii sesiunii si adresa serverului si va putea continua sarcina de descArcare in momentul in care legalura cu serverul se relace si resursa este din nou accesibila. Prezenland un astlel de avantaj evident la(a de clientii de descarcare din mediul gralie, wget a lost rapid adoptal de marea majoritate a utilizatorilor care aveau 0 conex iune inceata la Internet ~i care nu puteau petreee auten\ifiea(i pe sistem \impulneeesar unei descarcari interactive. Pe masura ce Web-ul a evolual wget adaugat noi lunclionalitati. Un avanlaj nolabil al ulililarului wge t este capab ililalea de descarcare ~ i de paslrare pe client a slruclurii de directoare de pe server, liind de asemenea posibila descarcarea unui site cu indicarea nivelului de adancime pana la care sa lie descarcala structura de directoare. Acest l ip de descarcare, numit descarcare recurslva, a losl e~tins p:l.na la posibililatea de a descarca pe client site-uri intregi cu toate pagini le si legaturile dintre acestea. Considerand situalia unei relele locale, descarcarea unui site pe ma~ina server din relea (proces numit ~i og lindirea sile-ului), ar lace implicit posibilA accesarea ace lui site in mod offline de caire IO~ clienlii din reteaua locala.

Modul de apeta re at utilitarului in linia de comandi Pentru a descarca un


li~ier

prin HTTP se poate lolosi comanda:

,
,

ra.va n@ k iwi : _$ wget - c http : //cc np . catc . ro/resources/CI s coTFTP . exe \.


--1 5: 57 : 06-htt p: //ccnp . cUe . ro!resou rces!CisCOTfTP . exe

CAPITOLUL 9. SERVICU DE RETEA

263

,
6 ,

_>

' Ci scoTFTP . exe'

Resolvi ng ccnp .catc.ro ... 14 1 . 8 5 . 37 . 2 Connecti ng to ccnp . catc . ro I1 41 . 8 5 . 37 . 2 1: 8 0 . . connected . A HTTP request sent . awaiting respo n se .. . 2 0 0 OK Len g t h: 1 , 327 , 497 il . 3M) lapplication/ x- m9dos - p rogram)

" 100' 1 ------------------------------------> I1 ,321 491


" 1)
15 : 5 1 : 01 12.66
MB/~ I

2 . 66M/S

Ci ~ COTFT P . exe'

oaved 11321491/13274971

Op)iunea - c asigura continuarea descarcarii in cazul intreruperii conexiunii cu serverul, iar simbolul & specilicl'i rularea utilitarului in bad<.ground. Descarcarea unui site pe discul local pentru a lace posibill'i accesarea sa offline este exemplilicatl'i prin comarKIa urml'itoare:

,
,

r ~ z v~ n @ ki w i : - $

wg@t -- conver t- linx . - r h ttp : // www . gnu . o rg/ - 0 g nu l og

ruva n @ l:i wi ,_$ 1$ gn u log www . fsf.org

www . gnu . org

Parametrul -- convert - l i n k s transforml'i legl'iturile (linkurile) din site pentru ca siteul sa poatl'i Ii vizionat offline. Descl'ircarea tuluror legl'ilurilor de pe siteul www . ya h oo . com cu 0 adancime de 1 se face prin:
ruvan@ U wi , -S "get - r - 11
~ ~ ~ . ya h oo . co m

9.3

Email-

Po~ta

electronica

Posta electronica (electro nic mail), abreviat email sau email, este 0 metoda de compu nere. tra nsm itere si recep)ie a mesajelor peste sisteme de comunica)ie eleclronica. Ideea de mesagerie electronica dateaza din anul t971, cflnd Ray Tomlinson dezvolta prima apliCatie de email pe nlru ARPANET. Aceasta era lormata din doua prog rame: SNDMSG, utilizat pentru a tra nsmite mesaje. respectiv READMAIL, Iolosit pentru citirea mesajelor. i n anul t972, comenzi le MAIL 5i MLFL au lost adaugate programului FTP. Aceasta a lost modalitatea de tra nsmite re a mesajelor in re)eaua ARPANET pana la inceputul anilor '80. cAnd a lost dezvoltat prolocolul SMTP. in scurt timp , serviCiul de email a crescut popularitatea ARPANETului si a devenit aplica)ia principala a acest1.J ia. ServiCiul de emai l a olerit la incepul doar tra nslerul de mesaje text intre utilizatori allati in retele dilerije. Ulterior serviciul a lost extins si la trans mile rea de li ~iere binare. Standardul de codiliCa re a informa\iei binare i ntrun mesaj email se numeste MIME (Multipurpose Internet Mail Extensions).

264

INTRODU CERE iN SISTEME DE OPERARE

9.3.1

Arhitectura

~i func~ionare

Peiliru Ii~rarea mesajelor se /olose~te Ull mecallism de adresare ce apeleaza atal ierarhia de Ilume dill Inlemet (serviciul de DNS) pentru a preciza ser~erul, cAt si ill/orma!ii relevanle local, precum numele utilizalorului.

o adresa de email conIine doua tipuri de informa!ii separate prill simbo lul @ (citit la sau
at sau a-round):

numele ulilizatorului care dore~te transmitere a sau receptia mesajului; numele (DNS) al
ser~er- ului

care Iransmite/receptioneaza mesajul.

Pe baza adresei de email destina!ie serviciul de po~ta electronica li',Ireaza mesajele de la clientii de email, 1010sioo ser~ere de email, catre d.suta postala asociata cu adresa de email deslinatie.
Cas u~ po~ta lil

mesajelor de

p~ta

eSle 0 intrare in sistemul local de fiSiere ulilizata penlTu stocarea electronica corespunzatoare unui utilizator.

Componenta esen!iala a ser~iciu lui de po~ta electronica 0 reprezinla prolocolul SMTP (Simple Mail Transfer Protocof). Acest protocol olera mecanisme pentN preluarea mesajelor de la clieilli de email ~i li',Irarea lor pe serverele de email deslinalie (ca alare pentru trimiterea mesajelor) , Odata cu dezvol\area sistemelor de operare penlru calcu latoarele personate, a aparu\ si nevoia preluarii noilor mesaje din casula po~lala pe slalia utilizatorului, Acest lucru este realizat printr-un nou serviciu ce asigurA ridicarea email-ului ~i sincronizarea cAsu!ei postale de pe ser~er cu cea de pe stal ia de lucru. Pelltru ridicarea mesajelor de pe ser~erul de email ce1e mai lolosile prolocoale sunl IMAP (Internet Message Access Protocof) 5i POP3 (Post Office ProtOCOl version 3), Pelltru olerirea aceslui serviciu ~a !rebui pornil un daemon de IMAP sau POP3, in plus lala de serveNI de SMTP. Marea majoritale a cl ientilor de email integreazA pe IAnga componenta de clienl SMTP (Iolosila pentru Iransmilerea mesajelor) si componente de cl ient IMAP ~i POP3 pentru interogarea CaSulei postale de pe serverul de email. reprezinta extiooerea posibilita!ilor de prelucrare a mesaje10r din casu\8 pO~lal a ole rite de protocolul IMAP. Folosind IMAP mesajele nu sun! descArcate de pe server decat la vizualizarea lor, existAnd totodatA Si op!iunea descarcarii doar a unei pAili din mesaj. Spre deosebire de POP3, uncle toate mesajele se gAs esc pe server inlro singurA cAsu!A poslalA (inbox), iar directoarele nu se pot crea decAt in aplicatia client, prolocolullMAP permite crearea de diractoaret pe server dirac. Utilizancl comenzi IMAP, aplica!ia client peale Iolosi lil!re pentru mularea mesajelor dintr-un director i n altul, lAra sA lie navoie macar ca mailbox-urile sa lie situate pe acela~i server. Rezumancl, arhitectura serviciului de email include doua componente principale: un serviciu pentru primirea si l!imiterea mesajelor si un ser~iciu pentru ridicarea mesajelor de pe serverul de email.
~,.,,,.ov

o deosebire importanta a IMAP lata de POP3 0

,,'atanal

CAPITOLUL 9. SERV1CU DE RETEA

265

Trimiteree unui mesaj Penlru a exempli fica modul in care componente le prezente mai sus interactioneaza, ~om considera urmatoarea situalie: Dan are adresa de mail dan@a.org ~ i dore~te sai transmita un mesaj lui Bogdan care are adresa de mail bogdan@b.org. Penlru li~rarea unui mesaj in cas ula prezenta!i in ligura 9.6.
po~tata

asociala contu lui bogdan@b.org.

pa~ i i

sunt

. "'" 0'
Li~ra rea

,......

"""
unui mesaj

Figura 9.6:

Dan ~a deschide un client de email in care va edila mesajul. C:l.nd Dan va da comanda de Irimitere a mesajului, cl ientul de email va initia 0 conexiune SMTP catre serverul de mail locaL Pentru stabilirea conexiunii, ser~eru l va cere autenlificarea ulilizatorului Dan. in general, clienlu l de mail va salva numele de ulilizator si parola si va rea liza autenlilicarea conexiunii SMTP in mod transparent penlru ulilizalor. Dupa autenlificare, clientul de email va Iormata mesajul conform prolocolului SMTP ~i il va lrimite caire server. Serve rul de mail local va analiza apoi adresa de email deslinatie.pebazacil.reia va determina domeniul de nume in care Irebuie livral mesajul (in cawl exemplului: b.org). Va initia 0 cere de rezo lva re de nume (cerere DNS) pentru a delermina adresa serverului responsabil cu preluarea mailului pentru domeniul b,org (acesl server se numeste mail exchanger). Dupil. delerminarea serverului de mail pentru b.org, serverul local ~a trimite mesajul lolosind prOlocolul SMTP, Serverul b.org va stoca mesajul in c1!sula po~tal1! a utilizatorului bogdan. La nivelul acestui pas se poate interpune 0 aplica\ie de distribulie a mesajelor denumitil. generic LDA {Local Delivery Agent}. 0 astfel de aplicalie poate real iza filtrarea mesajelor, livrarea anumitor mesaje in alte directoare, op rirea spamurilor etc. in Lin ux cea mai lolosil! aplicatie de distributie a mesajelor este oleritA de pachetu l proc ma i l.

Ridicarea mesajelor Pentru a ridica mesajul din casuta . postala vor Ii urmati pasii . din ligura 9.7:
, o.

"""", .",.,
I ~

Figura 9.7: Ridicarea mesajelor de pe server

right

ma'enal

266

INTRODU CERE iN SISTEME DE OPERARE

Bogdan va deschide cl ientul de mail, Jar acesta va initia 0 sesiune de IMAP caire serverul
de mail. Dupa autentificare, serverul va deschide casuta po~tala a iJlilizatorului Bogdan. Mesajele ridicate din cdsula postalA In sesiun ile anterioare de IMAP au lost marcate, asUel serveru l va salacta dcar noile mesaje (ce nu sun! marcate) ~i Ie va transmite pr in

sesiunea de IMAP catra clientul de email. inainte de a incheia sesiunea, clientul de email va informa serveru l asupra liste; mesajelor ce au lost sterSB din C<'lsuta postali'! aflati'l pe
statia utilizatorulu i. permil8.nd astlel serverului sa sincronizeze con)inutul casutei
po~ta l e

locale cu cea allatli pe slatie.


Oupa ridicarea mesajelor de pe server, casu!a postalii: poate Ii consultata inclusiv offline, folos ind clientul de email.

Folos irea webmail pentru c itirea

~j

trans miterea mesajelor

o altA metodA disponibilA utilizatorilor penlru cilirea si trimiterea mesajelor eSle lolosirea
unui server de web pentru interlala cu serverul de SMTP, serviciu rezu ltat liind denumit webmail. Folosind exemp lul anterior, mesajul livlat prin SMTP a lost stacat in CaSUla postala a utilizatorului Bogdan. Utilizatorul va lansa un cl ient web (un broswer) ~i va initia 0 conexiune HTTP cAire serveru l de web ce ruleaz<'i pe acelas; sistem cu serverul de SMTP, responsabil cu prim irea mesajelor penlru domeniul b,org. Serveru l de web va oteri 0 inler/ala ce permite opera!ii direci pe d.sula poslalA affali'! pa server: ~tergerealmutarea mesajelor, marcarea lor, crearea de directoare etc _

_ . _.
"",111

""

.....n'
/t>O<T>O_"""""

,- ,.
.~-

.~ -

Figura 9.8: Citirea mesajelor Iolosind webmail

9.3.2

Clien ~i

de email

A~a cum s-a prezental mai sus. clien!ii de email sunt utilitare care perm it descarcarea de mesaie de pa un server de emai l si stocarea lor local. in mod real , exista doua situatii in care este necesara lolosirea lor: atunci cand contul de email nu poate Ii vizualizat prinlro interlata de tip web, sau atunei cand conexiunea la Internel este siaM sau instabi la. si este de pre/erat salvarea corespondenlei pe computerul personal pentru a Ii usor accesala si ulterior. Exista mai mul!i clien!i de emai l, cei mai importanti fiind Microsott Outlook (varianla inclusa in distributia de Windows sa numeste Outlook Express) ~i Mozilla Thunderb ird.

Un avantaj al clien!ilor de emai l este stocarea central izata a mesajelor primite pa canturi de email d ilerite. in cele ce urmeazA, ne vern concentra asupra Mozilla Thunderbird, atanal

CAPITOLUL 9. SERVICII DE RETEA

267

deoarece esta gratuit si disponibil pantru toata sistemele majore de ope rare (Wirdows, Unu x, Mac OS).
Conligurarea unui client de email preSIJpuna in primul rArd craarea unui cont pentru liecare adresa de email ce se doreste administrata cu Thunderbird. Sunl lolosile doua protocoale dire rite: SMTP pentru a trim ite mesaje si POP3 pentru a primi mesaje. Setarea unui cont pres upune introducerea adresei de email. parolei asoc iale, adresa serverului de SMTP ~i a serverulu i de POP3. Se poote opta pentru salvarea parolei intrun lisier de conligurare, sau penlru introduce rea ei manuala de liecare data Cillld se va stabili 0 conexiune la unul dintre serverele de mail. in cawl in care doar unul dintre ce le douA servere este setal corespunzAtor, sa vor pulea doar descArca (in cazul POP3) sau trim ite mesaje (respectiv SMTP).

Unul dinlre avantajele Thunderb ird eSle integrarea cu serv iciul de email olerit de Google, numit Gmail. Pentru setarea unui cont de Gmail, trebuie parcur~i urmAlorii pasi: se activeazA pe siteul Gmail op!iunea de a lolosi un server de POPS. apoi din Thunderbird se creeaza un nou cont. se alege Gmail account ~i se introduce adresa de email. Restul setarilor se electueaza automat Pentru a trimite/primi corespondentA. se foloseste butonul Gel Mail, comanda ce sincrooizeaza baza de date locala c'u cea de pe server. in consecin!a. un email care eSle scris poata Ii trimis instantaneu sau poate Ii stocal local si trimis mai IArziu, cillld va exista conectivitate la Internet Thurderbird se sincronizeaza in mod automal cu serverul la intervale regulate de timp. Thunderbird olera 0 gama de servicii standard: memorarea adreseklr de email, sortarea emailurilor dupa, data primirii, subiect, numele expeditorului, importanta (cresc1!.tor sau descrescator). Emailurile pot Ii grupate pe threaduri (toate mesajele care lac parte din aceea~i discu!ie), facilitate deosebit de folos itoare in cazu l mesajelor primite de la 0 lista de discutii. De asemenea pe ntru localizarea unui mesaj chentul ole ra un motor de cautare ce poate lolosii criterii ce vor ana liza: adresa sursa, adresa destinalie. subiectul mesajului sau continutul sAu. Pentru 0 mai buna organizare a corespondentei. se poate crea 0 structura de directoare si gruparea mesajelor in mod logic, in opozitie cu stocarea traditional!!. a tuturor emailurilor in casuta po~tala (inbox ). Aplicarea de IiItre permite selectarea emailurilor pe bazA de critarii avansate (ce includ adresa, nume expeditor. sub iect. con!inut) ~i efecluarea de ac!iuni asupra lor (mutarea in dilerite directoare. stergerea lor. marc area lor). facilitate extrem de utila in cazul unui numAr mare de mesaje zilnice. o limitare in lolosirea unui solulii mixte bazate pe Thunderbird nesincronizarea marcarii mesajelor citite intre ce~ doua aplica!ii.
~i

Gmail 0 reprez inta

9.3.3 Securitatea serviciului de email


Cea mai intainitA problemA asoc iatA cu po~ta electronicA 0 reprezintA primirea de spam (mesaje nesolicdate). Din p1icate. tralicu l de spam a depa~ il 90% din tralicul SMTP in Internet Pentru a reduce traficul de spam in primul rAnd trebui ca serveru l de email {S MTP } sA nu accepte sa trimita mesaje de la orice client SMTP din Internet. Majoritatea destin atiilor

.1

268

INTRODU CERE iN SISTEME DE OPERARE

de mail vor varifica pantru fiecare mesaj dadl. nu a lost IIimis folosind un server SMT? de tip open mail relay (server ce accepta sa trimita mesaje pentru orice client), Cal: in care vor considera respeclivu l mesaj drept spam.
Traficul de spam poate Ii controlat ~i pe serverul destinalie inainte de a Ii prelua\ de aplica!ia client. Reducerea Ira/icului de spam pe serverul de 8MTP peate Ii facuta prin
impleme ntarea a Irei tipuri de liste:

Llste albe - mesajele trimise de un server cOl1linut inlr-o astlel de lisla sunt cons iderate automat mesaje legitime

LISle grl - mesajele primite de la servere necunoscute sunl, pentru 0 perioada de limp, raspinse. Dacli serverul sursA incerca retransmileraa mesajului ~i dupa expirarea aceslei perioada, masajul va Ii considarallegit im. Acaasta. metoda sa bazeaza pe iaptul ca serverele de spam nu vor incerca retransmiterea mesajelor.
Liste negre - mesajele primite de la un astlel de server sunt elichetate ca spam

o alta clasa de aplica!ii

de liltrare a traiicului de spam sunt integrate in LDA (Local De/ivery Agent). Aceste aplicalii in general folosesc un set extins de criterii pentru a calcula probabilitatea ca un mail sa lie spam. Filtrarea tralicului de spam poate Ii rea lizata inclusiv de clientul de mail. Cu toate acestea, chiar ~i in cazul lolosirii simu~ane a tuturor metodelor de control al tralicului nedoril, mesajele de spam nu pot Ii tOlal eliminate. este absen!a unui mecanism de autentificate a expeditotulu l. Exista exlensii ale protocolului SMTP ce rezolva aceasla. pro~ema, dar care nu se bucura. de 0 popularitate insemnatii. Singura sclutie cu adevarat eficienta. in preveniraa atacurilor bazate pe asumarea unui false identitali (numite alae uri phising) este instruirea utilizatorilor asupra limita.rilor protocolului SMTP.

o aM p ro~ema importanta a serviciului de email

9.4

WWW

World Wide Web sau WWW este, probabil, cel mai cunoscul 5i utilizal serviciu din Internel. WWWul se prezinta ca un set de resurse interconectate prin intermediul de leglituri (hyper/inkuri). Aceste resurse sunt denumite pagini web si contin hypertext, imagini, lilme. Hypertextul este in esenta text simplu, la care sa ad<lugat 0 formatare standardilatli, ce specilicli utililarea de hyper/inkuri. Accasul la resurse se realizeala. prin intermediul unui navigator (browser). 0 pagina web va con!ine, de obicei, legaturi (hyperlinkuri) catre alte pagini (resurse), justifica.nd denumirea de Web. Wor ld Wide Web-ul este inventia lui Sir Tim Berners-Lee din 1989, una din personalitiitile marcante in dezvollaraa Internet ului. Sir Tim BernersLae esta directorul World Wide Web Consortium (W3C), organilatia care coordoneaza. delvoltarea WWW in ullimii ani. WWWul a cunoscul 0 delvollare mult mai ampl! ajungAndu-se la folosirea expresiei Web 2.0 pentru a simbolila servicii le web de noua generatie olerite de diversele comunitlili web. in acela~i limp, WWWul evolueaza catre ceea ce Sir Tim Berners Lee a denumil Semantic Web, adicli 0 exlensie a WWW-uluiincarecontinu!ul poate fi exprimat in limbaj natural si utililat de agen!i specifici de analiza.
~,., ov 'atanai

CAPITOLUL 9. SERVICU DE RETEA

269

9.4.1

Tehnologiile de bazii ale WWW

WWWul isi datoreaz;'i existent1i celor trei tehnologii utilizate de Sir Tim BernersLee, Acestea sunt URL, HTTP!?i HTML !?i sunl prezenlate in continuare.

URL
URL inseamna Uniform Resource Locator!? i esle un nume lntro sinlax;'i bine precizatil. pentru a identilica resursele din Internel. URL este de lapt un sinonim pentru URI (Uniform Resource Identifier). in mod lipic, un URUURI esle inlrodus in bara de adrese a unui navigalor!?i este lolosit pentru accesarea unei resurse (a unei pagini web) din Internet. Un navigator va "decodilica" URLul !?i va accesa resursa dorila, Astlel. in cazul1n care se acceseaza URLul htt p: //www . exa.mple . com se face 0 ce rere HTTP catre serverul examp le . co m. Pe de a~a parle. URIul mailto : bogdan@examp le . co m va 1nsemna deschiderea unui cl ient de email penlru compunerea unui mesaj clitre bogdan@example,com. Un URL are 0 sintaxa bine specilieata lolosila penlru identiliearea slaliei din Internel. a 0sit de aceasta si a res ursei pe care 0 poate pune la dispozi!ie acest servieiului 101 servieiu. Astlel, in cazul URLului http : //www . examp le . co m/ page . html 5la)ia care detine resursa esle serverul www. examp le . com. 0 cere re DNS va Ii lolosilil. pentru trans latarea numelui lntro adres;'i IP. $ irul ht t p : I I este lolosit pentru idenlilicarea serviciului; in cazul de lata acesta este serviciul de Web care folose~le protocolul HTTPsiportu! implicit 80 . Resursa cerulli de pe server eSle I page . html. Drepl urmare. in urma inlrodllCerii URLui in bara de adrese a navigalorului, acesla va lace 0 cerere HTTP catre stalia identilicat1i de numele www . ex ample . c om pentru pagina Ipa.ge . html de pe server. Aceasta va Ii alisata apoi clienlu lui (in interiorul browserului). Exemplul de URL prezentat mai sus este unul simplificat. Asllel, sintaxa comp leta pentru un URLeste:
protoco l : !!server ,p ort/cal e !catre!resursa

campul protocol speciliea, evident. prolocolul lolosit pentru comuniea)ie. Acesta poate Ii ft p, http , s cp etc.; dacil. acest cflmp lipseste, un browser va lolosi i mplic~ http ; campul server reprezinta numele sau adresa IP a staliei cu care se realizarea unei comunieatii;
dore~te

campul port eSle portul utilizat (acesta poale lipsi), caz In ca re se loloseste porlul implicit al serviciului; Icale/ca t re/ r e sll rs a reprez inta ca lea catre resursa allata pe server; aceSla va Iolosit aceasta cale pentru a oleri respectiva resursli clientului; de obicei. res ursa esle 0 inlrare in sislemul de lisiere al ser verului. Sintaxa URlului poale Ii complical1i. Astlel, un URL tip IIp poale asigura inclusiv autentificarea pe server. Folosirea URl ului f t p: //bogda n: p4r 014 8un4@exam ple . com/ sources . t gz inseamna

270
autentificarea utilizatorului bogd<l"

lNTRODUCERE iN SISTEME DE OPEAARE

eu

parola

p 4r0148un 4

pe

serverul

example. com, folosil'ld ftp pentru descarcarea fi~ierului sOurces. tg~ .

HTTP
HTTP {Hypertext Transfer Protocol) eSle prolocolul fu ndamental al World Wide
Web-ului. De~i navigatoarele pot lolosi alte protocoale in afara HTTP, acesta ramane

eel mai important mecanism de comun icare.


Similar celorlaite servicii din Internet, serviciul Web (HTTP) fuoctioneaza ca sistem client-server. Clientul Web esle navigatorul (browser-ut) folosi! pentru ce rerea unei resurse prin intermediul unlii UAl. Porlul implicit utiliza! de HTTPesle 80. Prolocotul HTTPesleunprotocoldeUpintrebareraspuns(reques/- response). Clientul Web (navigatorul) lace 0 cerere cat re un server. dupa care acesta ii trimite un raspuns si resursa ceruta. in exemplul de mai jos. te lnet este utilizat pentru a electua 0 cerere HTTPcatre google . ro :
ra<van@anaconda ; -S tel net google . ro 80 Try; ng 72 . 14.<21 . 104 ... ~ Connected to g oogle . ro . Escape character i s " ) '. , GET I HTTP /l . O HTTP/l . O 302 Found 7 Loca t ion : http : // ......... . googb . ro/ Cache - Cont r o l: pri vat"
2

t .. )
Dupa real izarea conexiun ii pe portul 60, cl ientul trim ite ce rerea GET I HT TP! l . O. Aceasta inseamna citirea directorului ri'l.dac ina al serverului IOlosind HTTP versiunea 1.0. Raspunsul server-ului este HT TP/l . O 302 Found urmat de pagi na efecliva. Daca pagina dorita nu se alia pe server. raspunsul server-ului va Ii rror 402 Pag e n ot Fo un d. ACeSI raspuns nu inseamna lnsa ca serverul nu lunctioneaza, caz in care mesajul alisat de client ar Ii Server not Found. Dalla caracteristica importanta a protocolu lui HTTP este laptul ca esle un protocol neorientat pe co nex iune (staleless). Acest lucru inseamna ca dupa ce clienlul trimite 0 cerere si ii sose~te raspunsul conexiunea este incheiata. Pentru 0 noua resursa trebu ie realizata 0 alta conexiune. Opus este protoco lul FTP care este un protocol cu conexiune persistenta. Petru ca este nevoie ca anumite informalii sa l ie persistente dea lungul mai mullor conex iuni s-au gasil diverse solUlii . cookie-uri pe cl ient, ses iuni pe server, variabile HTTP etc. Un alt neajuns al HTTP este Iipsa unui suport puternic de securitate. Acest lucru este corectat prin folosirea protocolului HTTPS care foioseste com unicalie criplala. Majoritatea sislemelor de webmail de aslazi folosesc HTTPS pentru a asigura conlidenlialitatea datelor.

HTML HTML (Hypertext Markup Language) este un limbaj lolosit pentru a descrie continutul unei pagini Web. HTML loloseste marcaje (tag-uri) pentru a defini modul in care un

CAPITOLUL 9. SERVICU DE RETEA

271

element dintro pagina Web este afisat de un browser. o pagina simpla Web descrisa in format HTML eSle urmaloarea:

, , , " " "

uzvan@a nacond3 ; '/publ i c_html S main . html <html> <head> <t it 1e>Pag1na mea</tit l e> </head> <body> <hl>Antet</hl>
Te~t si mplu <strong>Text ~ ldin <1st ro ng> <em>Text cuuiv</e m >

,"

" "

</bo dy>

</html> Un marcaj incadreazi'! de obice i un text. La inceput, marcajul este <nume_ma rc aj > si se incheie cu < /nu me_marcaj >. Marcajele prezenle in aceasta pagina sunt: html. pentru definirea documentului HTML head prezinla iniormatii despre pagina. spre exemplu liliul {ma rcajul title} h1 defineste un antet de nivel 1 strong defineste un text aldin (bold) em
define~te

un text cursiv {ita lic}


afi~a

Un client Web va interpreta 0 pagina HTML si 0 va existente.

utilizatorui conform marcajelor

XHTML XHTML (Extensible Hypertext Markup Language) este un standard ~ i un limbaj de marc are care are aceleasi posibilitali de exprimare ca si HTML lnsa se conformeaza sintaxei mull mai stricte a XML Urmand 0 sintaxa mull mai stricta. un document XHTML este mull mai usor de inlerpretal, spre deosebire de un documenl HTML care necesita un parser complex. Motivatia utilizarii XHTML 0 reprezinta cre~terea numarului de d i spo~ itive care nu au capac itatea de procesare a unui document HTML complex. Sintaxa stricta a XHTML permite 0 prelucrare mull mai rapida a unei pagini Web de caIre cl ient. Adoptarea XHTML se real i~eaza inlrun ritm inegal datorita lipsei de implemenlare in navigaloare a caraclerislicilor noi pe care standardulle aduce. Versiunea curentA de XHTML eSle 1.1. dezvoltare. Versiunea 2.0 a standardului este inca in

272

INTRODUCERE iN SISTEME DE OPERARE


Func~ionarea

9.4.2

serviciului

Dupa cum sa precizat, servieiul de Web IUflclioneaza in sistem cl ienlserver ~i lolose~te protocolul HTTP pentru com unicare. Funcl>onarea serviciului este sistematizata in ligura 9.9, in care sunt prezentati . un set de pasi urmati . tipic in obtinerea de catre cl ient, a unei resurse allate pe un server Web (de obieei 0 pagina: Web ).

....."'"

Figura 9.9: Functionarea servieiului de Web in primll tazll utilizatorul va lolosi un client Web (navigator) si va introdllCe in bara de adrese a acestuia un URL care identilicll resursa doritll. Navigalorul idenmica din URL sisteml.ll unde trebuie sa se conecteze si resursa ceruta. De obieei se va genera si 0 cerere DNS pentrl.l a alia adresa IP asociata serverulu i. Navigatorul se conecteaza: la server si, in cazu l protocolului HTTP, lormuleaza 0 carere delorma GET Icale/resursa HTTP/l .0 . Cererea ajunge la serverul Web. Acesta trebl.lie 511 olere clientului resursa carulll. Resursa este, de abieei, a inlrare in sistemul de !isiere (pagimi web, imagine, film elc.). Drept urmare serverul Web va trebui sa localizeze reSl.lrsa. Orice server web are configurat un director r1ld1lcinll specializat, denumit si webfool. Crice resursa este oblinuta din acest director. Drept urmare, calea completa in sistemul de ti~ie re este oblinutll prin concatenarea ca:ii din cererea HTTP la webfoot, rezultAnd intrarea I webr:oot/c <l l e l res ur sa . Dupa ce obline res ursa obtinula, serverul va trebui sa a transm ita clientului. Pentru aeeasta el emite un rllspuns HT TP 2 00 OK si ataseaza resursa. Clientul prim este reSl.lrsa de la server si, dad este vorba de 0 pagina Web, interpreleaza: codul {X)HTML si afi~eaza rezu~atul utilizatoru lui. Conexiunea se inchide

9.4.3

Servere Web

Un server Web este responsabil cu olerirea de re surse din sistemul local de lisiere clltre cliBr1~ (navigatoare) prin intermediul protocolului HTTP. Exemple de servere Web sun\ Apache HTTP Server, Microsoft liS, Sun Web Server, Zeus Web Server. Apache HTTP Server este eel mai lolosit server Web din Internet. in general, un server Web p!"ezinta un lisier de configl.lrare prin intermediul cMu ia ii poate Ii alterat comportamenlul. in cawl Apache HTTP Server vers iunea 2, acest fisier atanal

CAPITOLUL 9. SERVI CII DE RETEA

273

de configurare eSle l etc/a pa che2/apache 2.con f . Allerarea aceslui lisier de conligurare permite schimbarea porlului pe care acesta ascullA conexiun i (implicit 80), a webroot,ului (implicil /va r Iwww) si altele. Un server Web ~a primi 0 cerere HTTP in lorma GET Icale/cat re/ r es urs a HT TP/ I . 0 5i va identilica din siSlemul local de fisiere intrarea asocial!!. resursei, Fiecare server are un director radacina (denumit webfOOt) unde este cAutala res ursa penlru a Ii olerita clienlului. in cazul serverului Apache , In urma unei cereri GET Ical e/cat r e/resursa HTTP/ 1 .O va trimite clientului /isieru l identilicat de Ivar I w.... I calel cat rei resursa (sau l u sr I loca l I Apache2 Ihtctocs).

9.4.4

Clien~ii

Web

Clien!ii Web se numesc navigatoare sau brow ser-e. Un cli ent Web se va conecta la un server Web pentru a solicita a resurs!!'. Resursa eSle specilicatA de uti lizator lnlrun URL Clientul Web transmite 0 cerere HTTP catre server solicitii.nd resursa clientului. De obieei aceast!!. resurs!!. este a pagin!!: Web. Codul HTML esle interprelal apoi de navigator ~i alisal utilizatoflJlui. Cele mai ulilizate tipuri de nal'igatoare sunt Internet Explorer, Mozilla Firefox, Opera si Salari. Internet Explorer este eel mai utilizat navigator cu 0 pondere de 8085% urmat de Mozilla Firefox cu a pondere de 10-15%. Cetelalte navigatoare au ponderi mutt mai mici. Exist!!. si navigaloare in finie de comand!!:, cum ar Ii lyn x , w3m, l ink ... Navigatoarele Web reprezint!!. una dintre cele mai utilizate aplicalii din cadru l unui sistem de operare. Competitia dintre acestea a generat ceea ce ga numit "browser wafS". Astlel, anii 19941998 au lost marcati de competi!ia dintre Netscape Navigator si Internet Explorer cu victoria celui din urmll. in anul 2002, Internet Explorer era 1010Sii in proportie de circa 92%. Ullimii ani sunt domina~ de competi!ia inlre Mozitla F i re/o~ si Internet Explorer, Competi!ia dintre navigatoare a condus si la apari!ia unui numAr important de caracteristici printre care: navigare tabularl'i, blocarea mesajelor de tip pop-up, coreetie gramaticala, gesturi de mouse, suport pentru diverse prolocoale (FTP, IRC, BitTorreflt) si pentru standarde (CSS, XHTML. XSLT, RSS).

9.5
9.5.1

Studii de caz
Utilitarul cURL

Utilitarul cURL esle aplica!ie pentru trans/erul de fisiere ce isi propune sA olere suport atAt pentru cerinte a~ansale de seeuritale. cat si pentru un num!!:r loarle mare de protocoale. Lista protocoalelor implementate de cURL include FTP, HTTP, IBlflet, LDAP, preeum si protocoale orientate spre seeuritale preeum SCP, SFTP, FTPS, HTTPS. Pefltru asigurarea securitl'ili se pol lolosi in cURL numeroase metode de autenlilicare pe baza de parola, cat si pe certificate.

lNTRODU CERE iN SISTEME DE OPEAARE

Utilitarul cURL ce se execut1l din linia de comand1l, ceea ce pe rmite includerea sa in scr ipturL Gel mai adesea cURL este folosit pentru scripting HTTP, in scopul simul1lrii activitMii utilizalorilor ce folosesc dilerite broswere. Utilitarul cU RL implementeaz1l numeroase mecanisme speciliCe clientilor web, ce le mai multe suplimentare lal11 de "qet_ Spre exemplu ole r1l gestionarea cookies (Irimiterea 5i salvarea local1l), navigarea prin pagini de lormular, folosi rea unui proxy web, urm1lrirea redirect1lrilor automate. sau schimba rea semn1ltu rii navigalorului. Spre exemp lu, presupunem c1l i n cad ruf unui site se al1 1l un formufar disponibil la ad resa: test.cs.pub.ro/login.cgi . in acest formular treouie comp letat un camp de nume 5i apoi apasat bulonul OK pentru a accesa site-ul. Formularul este scris lolosind sintaxa HTML:
,

<form nethoda " GET" a ction a "login.cg1"~ <i n put type- tex t n _ -"nume " > <tnput t ype 9ubm it n _- presa value "OK " >
</ f o r>O>

Listing 9.1. Formular de login simpfu Gererea poate Ii trimis1l lolosind cURL astfef:
r a zvan @k i"i : - $ curl " t es t. c s . pub . rO Ilog- i n cq i ?nume - R&z van \& press - OK'

In cazu l unui form uiar ce pe rmite clie ntului s1l incarce un lisier se poate folosi cURL cu opliunea -F. Presupunem c1l lormularul este scris astfel:
, " <form method_" POST " ~n ctyp ~ _ ' multipart/ form data' ecti c n _ "upl o a d . cgi "> <i nput type _til" n _ _ upl o o d ~ <i nput type - ,ubmit nllllHl _ pr~ ~~ val ue - " OK " '
</ fora~

Listing 9.2: Formular de upload simplu Penlru lormularul allat la adresa test . cs . pub. ro/upload . cgi va Ii inc1lrcal li5ierul test 0 1 5i apoi simulata apasa rea butonului OK:
razvan@ ki " i: -$ curl - F
CO'
upload - @ t ~~ t O l

-F

pres' ~ OK

t ~~t . c ~ . pub . ro/ u p l oad .

Utilitarul cURL olera suport 5i pentru sc himbarea identitalii navigatorufuL Pentru a simu la o ce rere caire serveru l te5t.com ini!iat1l de un navigator Internet Explorer 7.0 ce ruleaz1l pe un sistem Windows 2000 vom 1 01 0si comanda:
razvan@ ki " i: -$ curl -A "MOziUa/4 . 0 5 . 0)" t ~ "t.co (co mp at ib l ,, : MSIE "l . 0 ; Iol1ndow.'I NT

9.5.2

FTP

FTP (File Transfer Pro/aeof) este un protocol foarte rasp:l.ndit ce 0ler1l posibi litatea alaI inlrO retea transleru lui de lisiere . . focal1l cat si . prin Internet. Se bazeaz1l pe modelul client-se rver, deci presupune existenla a dou1l entitali intre care se rea lizeaz1l un Iran5ler de li 5iere, cl ientul liind eel care se conecleaza (5i se autentificA) fa serverul de la care poate descarca sau caruia i i poate trimite li5iere,

CAPITOLUL 9. SERVICU DE RETEA

275

Ca si in cazul modelului generalizat de cli entserver, serviciul FTPoleritdecatreacesta din urma 5e reduce la exislenta unei aplica!ii. numita "server FTP"ceruleazapeosta!ie. Similar, cl ientul ru leaza 0 aplicatie numita "client FTP" ce se ocupa de managementul conexiun ii catre server si de Iralicul de date dinlre aceslia. Atal aplicatiile server cat si cele cl ient FTP sunt disponibile, practic, penlru loale plallormele existente. dovada a versatililatii si raspfJ.ndirii protocolului FTP. Un dezavantaj al protocolului FTP este faptu l ca acesta transfera atiit informa!iile de conectare cAt si continutul propriuzis al lisierelor in mod necriptat, interceplarea unui astfel de Iralic pu\iind duce la 0 interpretare facila a sa.

Fun c!lonare Un cl ient FTP ce se conecteaza la un server trimite acestuia un sel de dale de autentilicare (nume 5i parola) care au asociate pe server un 0 structura de directoare ce sunl puse la dispozi!ia acelui utilizalor. DacA aulentilicarea reuseste , clientu l are dreptul sa Irimi\a in continuare comenzi pentru a interactiona cu fisierele la care are acces. Drepturile de acces la jisiere se reduc la cele de listare/creare de directoare, Citire, modilieare. stergere de !isiere sau directoare, ceea ce implica un tranSfer bidireClional intre cl ient 5i server (clientu l poate atiil sa descarce. ciit si sa Irimi\a fiSiere pe server). In practica, aceste drepturi sunt enun(ate in aceeasi structura de tip "rwx" ca si pe sistemele UN IX. Serverul FTP "asculta" conexiunile pe portul 21 5i real izeaza Iranslerul de comenz i lot pe acesta. Transferul efectiv de lisiere 5e realizeaza in paralel, pe portul 20. doar in urma unei conex iuni preslabilite. Porturile rezervate penlru protocolul FTP sunt 21 penlru stabilirea conexiunii si 20 penlru tran5ferul elecliv de dale. 0 variantA securizata si similara 0 reprezinta SFTP (SSH File Transfer Protocol) 0 alta limitare a sa este imposibililatea de a transmite alribl.itele ce lin de data si ora creariil modificarii fisierelor, acestea fiind rescrise la destina!ie. De asemenea, aceasta limitare esle eliminata in cazul lui SFTP. Transferul datelor prin FTP se poate lace prin dow! moduri, selectate manual inaintea ini!ierii transfe rului sau determinate automat de catre clientu l FTP: Mod ASCII: lolosit pentru Iranslerul fis ierelor text ; are avanlajul de a transmite dalele 10105iOO codurile ASCII ale caraclerelor, ceea ce permite compres ia dinamica a inlormaliei, la un raporl foarte bun, deci un flux mai putemic de date, dar are dezavanlajul de a corupe continutul oricarui lisier nonlext. Mod binar: lolosi! pentru transferul oricarui tip de fisiere (inclusiv text)

Exe mplu d e ulilizare Conectarea la un server FTP dintro linie de comanda Linux se poale lace direct prin comanda ttp, urmata de numele sau adresa serverului la care se doresle conectarea, ca in exemplul:
rool:ie@l oca lhost -$ f t p ttp . lu g . ro Tr y i ng 1 93 . 22 6 . 14 0 . 5 1 ... 3 COI'lM c ted t o ft p . l ug . r o 1193 . 22 6 . 140 . 51) .
~

276
, " , " 10
11

lNTRODUCERE iN SISTEME DE OPEAARE

220 Iv.FTPd 2.0 . 31 N~me Iftp. l ug,ro : rootl ' anonymous 331 Plea ... specify tl'te pusword . Fassword : 230 Login successful . Remote system type is UNI X. us in g binary mode to tunsfec files .
ftp>

Promptul ft p > indidl laptu l ell. urmatoarele comenzi vor Ii trimise direct caIre server. CAteva comen~i comune sun! Is sa lJ dir pentru a lisla con\inutul directo rului curent, cd pentru a sc himba directorul, get pentru a descarca fisiere le specificate ca parametri (mget pent ru fisie re multiple) sau put pe r'ltru trimiterea de lisiers. Oeconectarea de la

serverul FTP se face prin comenzi le quit sau disconnect.


o categorie speciala de ellen!i FTP 0 rep rez inta broswerele web, limitarea acestora constAnd in faptul ell. nu par mit decfll descl!.rcarea fiSierefor de pe server. Conectarea fa un server FTP printr-un browser web se poate lace prin introoucerea adrese i sate in bara de adrese a browserului, specificAnduse protocol ul:
ttp , llttp. l ug . rO

In cazut ser ~e retor in care accesu l nu se poate face anonim (lara cont predefinit). browserul ~a cere un nume de utilizator si 0 parola. Pentru a specilica direct din adresa paramelrii de autenlilicare, se poale scrie:
ttp : I lu .er: paro l a@server , 25 S S

Exemplul ante rior specifica explicit si portu l pe care se realizeaza conexiunea (2555), iniormalie necesara in cazul in care serverul nu ruleaza pe portul implicit, 21.

Cuv inte cheie

client

FTP HTML HTTP IMAP


IP LDA POP3

,,"

5MB

PO"
punct-Ia-punct
~p

spam SSH (Secure Shell) stiva de protocoa le TCP lei net UDP URL webmail

wget

WWW

server

XHTML

CAPITOLUL 9. SERVICU DE RETEA

277

intrebiiri
1. Care dintre operaliile de mai jos NU se bazeaza pe 0 arhitectura clientserver?

ridicarea mesajelor editarea unui nou mesaj trim iterea unui nou mesaj verificarea mesajelor folos ind broswer

o
o

2. Protocolultelnet comun ica direct (lara intermedierea nivelului transport) cu nivelul


retea. Dupa slabilirea unei conexiuni de lelnel comun icalia se unidirec!ional: de la server catre client.

va

face doar

adevaral, adevarat adevarat, lals fals, adevarat lals, fals

o o o o
o

3. Care dintre servici ile de mai jos NU eSle util intro solutie de wabmail?

SMTP IMAP

o
o

HTTP
SSH

4. Care dintre ce le de mai jos NU reprez inla 0 tehnologie relevanla pentru serviciul web:

o o o
o o

URL

HTTP
HTML FTP

5. Care dintre urmaloarele esle 0 aplicatie server SMTP? Postfix Firelox

o o

o Outlook
Apache

6. jntrun cl ient web (broswer) este taslata adresa:


ft p ://be5tman : none@te5t . co m/li5ta/admi5i . txt

Care din Ire urmaloarele afirmalii esle adevarala?

o o

va Ii iniliata 0 conexiune pe porlu l 80 catre serverultest.com va fi descarcat fisierulltesl.comllislaiadmisLlxt

278
o sa

INTRODU CERE iN SISTEME DE OPERARE

va folosi pe ntru autent~icare

parola "bestman"

o pentru statli lirea conexiunii utilizatorul "bestman" sA ,rebuie sA exists pe

!est.eem
7. Pentru conectarea la un server SSH esle necesar1i cunoasterea adresei IP sau a numBlui ONS a serveflJlui. Fillrarea mesaielor spam sa poale face numai pe

serverul de mail, I'lU si pe client o adevarat, adevi'l.rat


o adevarat, lals

o fals, adevi'!.rat

o fals, lals
8. Care din urmAtoarele NU esla un client web?

Firelox

o Internet Explorer

o wget
o Thunderbird

9. Care dimre urml'iloarele aplicalii NU poate Ii lolosita pantru conectarea la un server web:
o tel net

a ssh o wget
o curl
10. Comunicatia intra doua servere de mail S8 reali zsaza folosind:

o o

PQP3

HTIP
5MB

o nieiuna dintre variante

C JPYnghted matanal

Capitolul10 Elemente de securitate


There are two kinds of cryptography in this world:
cryptography that will stop your kid sisler from reading

your liles , and cryptography thaI will stop major


governments from reading your files.

Bruce Schneier

Ce se invala din acesl capitol?


Problemalica securitAtii IT Elementele unei politici de securilate Securizarea sistemului Controlul accesului
$ecuritalea sistemului de l isiere

Forme de alae de (elea


Criplare 5i firewall-uri
Monitorizare

10.1

Problematica securitalii

Securitalea la nivelul calcu latoarelor. in particular, s; a domeniului IT, in general, a


capatat un inleres deosebit in ultimete decenii. Des; un concept discutat din cele mai ~echi limp uri, securilatea a capalal noi forme. ramuri de proiectare ~i implementare odata cu dezvoltarea sistemelor de cal cui ~ i indeosebi a InternetutuL Pe 0 planela in care pesle 1.5 miliarde de oameni sunt conectati la Internel (circa 25% din populalie)' sBcuritatBa si integritatea informatiei au 0 relevanta dBosebit<i. In domBniul IT, domeniul secu ritalii a cunoscut 0 dezvollare alerta. cu mulle subdomen ii ~i speciali~tL Se discuta despre ingineria secur itatii, despre criptogral ie, gestiunea riscului, securitatea relelei, inginBfie soc iala. ~iru~i ~i anti~irusi. scrierea de cod sigur (secure coding ).
I http ;l/ww<i.inte rnelwo rk!stal$.comlst. ts.hlm

279

C JPYnghted matanal

280

INTRODU CERE iN SISTEME DE OPERARE

In ciuda fapltJlui d. domeniul eSle unul vast, nivelul de cunoa~tere ~i intelegere a publicului larg in privinla securitatii (Isle destul de scaziJI. De-a lungul ultimilor ani, multe Ierne tehnice specifice domeniului securila!ii au parasi! domeniul lT, !iind preluate de ziare, jurnale TV, sau de industria cinematografica. Oin pacate procesul nu a lost eel rna; adesea, unul ce incerca aducerea in stera publica a conceptelor de securitate,
ci rna; ales unul ce speculeaz(l
senz a~onalul

prin ignorarea constrangerilor tumi; reale,

ducand la promovarea unOI no; mituri ale erei IT. De multe ori se cons idera nOlmare "performanlele" hackerilor din filme, care reusesc sa compromitli securitatea unui sistem in cAteva secunde. Exe mple de "scenarii" care ajutA la rAspAndirea acestui lenomen sunt serierea de virusi pentru sisteme de operare extraterestre (vezi "Ziua Independentei". 1997) sau lolosirea unui ecran 3D pentru virusaraa unui sistam (vezi "Swordfish", 2001 ). Exista, i nsa, si exemple pozitive i n lumea cinematografica, precum fotosirea nmap si SSH pentru compromiterea unei relale electrice computerizate (vezi "Matrix", 1997' ).
Capitolu l de fatA nu i~ i propune sA of ere cititorului sfaturi despre obtinerea unei puteri nemArginite i n eontrolul tuturor sistemetor electronica, ei sA adueA un nivel minim de ordine in domeniul populat de mituri al securilii!ii IT. A deveni cu adevArat un profesionist i n securitate aste 0 carierA, dupa cum spunea si Eric S. Raymond: "Being able to break secu,ily doesn't make you a hacker anymore than being able to hatwire cars makes you an automotive engineer:

10.1 .1 Principii de baz8


Seeuritatea caleulatoare are drept seop protejarea inlOfmatiilor de la accese neautorizate, furt. corupere ~i alte riscuri. Domeniile securitAtii se relerA atat la mecanismele folosite pentru a obtine accesul sau a corupe informatii le cAt ~i la protejarea aeestora. Forma generalA de ri se i n securitatea IT se numeste atae de securitate.

o prima clasificare a riscuril or de securitate distinge trei tipuri de atacuri :


ataeuri venite din Internet (cu 0 ratA de sueees red usA); ataeuri initiate din reteaua localA; atacuri generate de pe aceea~i masinA, aces tea din urma avAnd un impact mult mai insemnat decAt primele.
De~ i eu gradut de rise eel mai ridicat, ataeurile initiate de utilizatorii serverului tintA su nt deseori tratate i n graba ~i unitar.

Domeniul securil<'!ii dispune de un set de principii generale. Acestea nu sunt aplieabile doar in cadrul domeniului IT, ci in domeniul securitAlii i n general. Aceste principii nu sunt exhaustive, dar urmArirea acestora faeiliteazA proiectarea si imptementarea unui sistem cu nivel de siguranta cAt mai ridicat. Privit din perspectiva unui sistem IT, 0 solutie de securitate trebu ie sa includa atat 0 politicA de securitate, ce define~te drepturile ~i responsabilitAtile utilizatorilor, cAt ~i
I htlpJ Inm ap.o rg/"Im ageslmalli. 1

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

281

specilicatii ale asigurArii securitAtii fizice, ale componentelor sistemului de operare, ale aplica!iilor locale. precum si ale serviciilor de retea. Unul dintre principiile fundamenlale ale securitatii, fie ea IT sau de orice a~a natura. este: securilalea unui sislem esle egals cu securitalea celei mai slabe verigi. Altfel spus, degeaba iIi pui usA ull raperlormantA dacA nu lolose\>ti cheia, sau aplicat in domeniul lT: nu are rost sA cheltui sume enorme de bani pe sisteme de securitale. dacA utilizatorii !olosesc drept parole propriul nume, sau i~i lin parola lipitA pe monitor. in orice sistem existA entitA!i active (utilizatori, procese) si drepturi pe ca re aces tea Ie au asupra sistemului. in condi!iile asigurarii sBCuril<'i!ii sistemului, fundamental este principiul celui mai mlc prlvileglu . Acest princ ipiu impune alocarea drepturilor minime entitAtilor active: doar ceea ce este nevoie. Un administrator de sistem va avea acces la intreg sistemul si resursele acestuia. Un utilizator obi~nuit va avea acces doar la acele resu rse care ii sunt necesare. Cateva de mecanisme care respecta acest principiu sunt: folosirea unui director de tip home cu drepturi complete pentru
f~ca re

utilizator;

folosirea comenzii sudo si fisierului / et e/ sudoers pentru a conferi anumite privilegii utilizatorilor; (vezi sectiunea 10.3.3) separa!ia intre in!ormatiile din !isierul /e te /pa sswd seejiunea 10.2.3)
~i

/e t e/sh ado w; (vezi

lolosirea doar a dreptului de execulie pe directoare cArKI se doreste parcurgerea aceslora; (vezi sectiunea 10.2.4) Acest principiu este legal de principlut limitiirii drepturllor (vezi secliunea t 0.3.3). intrucat resursele sistemului sunt limitate, un utilizator poate ajunge sA foloseasca 0 foarte mare parte a acestora in dAuna altor utiliz atori sau a sistemului de operare, putArKI conduce u~or la suspendarea lunc~onArii acestuia. i n general, limitarea drepturilor previne atacuri de tipul DoS' (denia/of-service). Un utilizator poate crea foarte mulle procese duca.rKI la ocuparea memoriei (fork bomtr), un atac de relea poate deschide mulle conexiuni' care ocupA memorie, un utilizator poate ocupa spatiu pe disc si impiedica folosirea acestuia. Solutia este conligurarea sistemului sA limiteze drepturile uti lizatorilor sau proceselor sistemului penlru a preveni supraulilizarea resurselor ~stemului. Spre exemplu, folosirea cotelol"" previne supraindrcarea spa!iului de pe disc. Asocierea dintre 0 entitate act iva (denumita ~i subiect) ~i dreplurile pe care aceasla Ie detine asupra unor resurse (denumite si oblecte ) se numeste controlul accesului (access control). Sistemele de operare lolosescdilen te mecanisme pentru a stabili cAnd, cat de mUlt, cum si dacA poate un proces (subiect) sA foloseasca 0 resursa (obiect). o politica de securilate trebuie sa stabileasca un compromls intre gradul de lIexibililale a serviciilor IT 1li nivelul de securilale doril. Lu ate ad literam, ce rinlele de securilate ar presupune izolarea tolala a sislemului de lumea exlerioara. dar cum 0
, h IIp :1 len .wikiped i a .o'I)'wikilD" " i a L 01_ servic" ' h lip :1180 .wikip" d ia .o,glWikilFo, k_ tromb ' hllp :IIM .wikip<rd ia .orl)'wik. S Y N_flood ' htlp ;llen .wikip<rd ia.o,glwikiID i.k_qc>ola

C JPYnghted matanal

282

INTRODU CE RE iN SISTEME DE OPERARE

aSlle. de at>Ordare duce Ie limitaree tUr1C?onalitatii, cel mai adesea securitalea unui sistem asia delini!a ca un set de metoda de proteclie menila sa descurajeze si sA intAfz ie atacatorul. As igurarea flexibilitatii unui sistem presupune adi'lugarea de noi lunctionalitati. Aceasta sa traduce, in general, in creafea unai apl icati i complexe. Sa spune "complexitatea asia

dusmanul securita!ii"' .

Un principiu de baza pentru asigurarea securita!ii aSia

simplitatea 2. Orice noua caracteristic A adauga1<'1 unui sistem sau unui program poate

insemna introduce rea unai noi 1/ulnerabilitA!i.

Se estimeaza d. Inll-o compan ie

speciali za!.. pentru dezvoltarea de prog rame, sa introduc zeei de defecte (bug-uri) Ie fiecare 1000 de linii de cod. in deZ\'oltarea software, opusu l simplita1ii se nume~te feature creep': adaugarea de lunctionalitati care nu sunt necesare.

Un sislem cu nivel loarle bun de securitate se poale obtine mai usor daea planilicarea aeesluia line cant de securitale decal daca mecanismele de securilate sunl implementate dupa 0 perioad.!i in care aeesta a lost dezvcltat. Planificarea unui sislem linand cont de securitale (design with security in mind) este un laetor decisiv pentru ob1in erea unui sislem cal mai sigur. Daea. in pro iectarea unei apliea!ii, a unei re!ele sau a unui sistem, se tine eont de posibilile ataeuri, de princ ipi ile de baz.!i ale securitatii, de madiul si contextu l de utilizare a aplica1iei, probab ililitalea oblinerii unui sislem vulnerabil esle scazuta. De asemenea, orice rloi mecanisme de aSig urare a unui nivel suplimentar de securitate vcr Ii mai usor adaugate sislemului. Ingineria sofware lolosesle denumirea de secure by design'". Un exemplu eSle sislemul de operare OpenBSD", care pune accent pe obtinerea unui sistem cat mai sigur sigur. Securitatea unul sistem nu este 0 finalitate , ci un proces. Un sistem nu va Ii nieiodatll perfect sigur, cAt timp acesta esle Iol0s i1. Securitatea unu; sislem presupune un ~ir de aetiuni continue pentru a preveni pos ibile alaeur!. in general, securitatea se traduce in resursele pe care Ie poale investi un atacator fal.!i de resursele pe care Ie invesleste eel care protejeazll sistemu l (bani, timp , personal). in carlea "Secure Coding: Principles aOO Practices" (8J (capitolul 2 "Alchrtecture'). se mentioneaz.!i ca. inlr-un interviu de angajare, raspu nsul potrivit la in trebarea "CAt de sigura poti sa laci aplicatia mea?'" este "Cat de sigura wei sa lieT. Ra.spunsurile "Pot sa 0 lac sigura in lala oricarui atac." sau "Pol sa 0 fac cat de sigura se poate." ar trebui sa. rezulte in eliminarea candidatului din lista de potential i angajati. Un sistam poata Ii mai sigur decat un alt sistem, dar aeest lucru se realizeaza cu un numar crescul de resurse, stres i\l,; funclionalilali obscure. lntotdeauna Irebuie cflnt.!irit cAt de sigur se dore~te a Ii un sistem la cate resurse pot Ii investite. Nu sa poate ob1ine un sistem perfect s igur, dar un sistem trebu ie mentinulla un nivel de securitate. Operaliun i peri od>ce de mentenan!li, monitorizare. actualizare, verificare sunt necesare pentru asigurarea unui nivel dorrt de securitale. 0 d ivizie responsabi la cu as igurarea securita!ii unui sistem va trebui sa considere in permanen!.!i exterlorul ca liind a zona nesiguri. Tot ceea ce nu lace parte din sistemul controlal Irebuie
, hnp 1/www.M: hneie r.comlnew. -038 .h!m I ' hnp j len ."'ikiped ia. (),glwikilKlS S "'p,j" c ip Ie ' hltpjfen .wikiped i3.o,glwikilFealu,,,_ c,eep hltpJ len .wikiped ia. mglwikiiSe cu ro_ by _de. ig n http)/www.op<tnbsd,orgl

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

283

considerat ca 0 zoni'! cu poter"ltiale riscuri sau alacalori. <Xiee vuloorabilitale a sislemului Irebuie reparata la timp pentru a nu permile unui potential alacalor sa 0 loloseasca. Oepinzfmd de domeniu, pot exista si aile principii penlru asigurarea securita!ii. Prir"lcipiile prezenlale mai sus reprezinla cAleva din principiile de oaza ale securiti'!lii. Aceste principii nu sunt complele si nu sunt aplicate 0 singura data. Penlru a obtine un sistem eu nivel cal mai bun de securrtate, principiile de baza trebuie revizuite, meeanismele lolosile trebuie imbunaUi!ite ~i , in general, treooie exeeutate aetiuni periodice de evaluare a securita\ii sistemului.

10.1.2

Termeni

Oomeoiul securita!ii dispun e de 0 serie de lermeoi care descriu la nivel general conceplele de baza lolosile. intelegerea acestor termeni este IUndamentala pentru oriee specialisl in IT si mai ales pentru cei care doresc sa urmeze 0 cariera in domeniul securitalii. Mai jos sunl prezenta!i 0 parte din termenii de baza ai domeniului: amenin\are (threat) se relera la oriee eveniment sau circumstan!a eu poten!ial de a produce pagube unui sislem prin access neautorizat, distrugerea sau modificarea dalelor sau denial of service: ameninlarile provin ca urmare a ac!iuniior umane sau a cauze naturale; aUlanlificare (authentication) lnseamna verilicarea ider"ltiUltii unui utilizator, proces sau dispozitiv, in general ca cerin!a penlru a permite acestuia aceesul la resursele sistemului, aulorizare (authorization) eSla oleriraa sau respingaraa drapturilor da accas penlru un ulilizator sau proces; confiden\lalilate (confiden tiality) este scopul securita!ii care solicita protejarea dalelor de la incel cari intentionale sau accident ale de vizualizare/cili re; conlidentialitatea se refera alat la datele allate pe un dispozitive de stocare, cat si la eete allale in prooosare sau in Iranzit; control acces (access control) inseamna permilerea f~osirii autorizate a unei resurse, simutlan cu prevenirea lolosirii ne aulorizate sau lntrun mod neautorizat; Integrltate (integrity) eSle scopul securi tlltii care solicitll protejarea de la Incerc1lri inlen!ionate sau accidenlale de a ~erare a inlegrita!ii dalelor; integrilalea datelor presupune ca acele date sa nu Ii fost alterate/modilicate intrun mod neautorizat; la lei ca ~i confiden!ialitalea se refera alAt la dale aflale pe dispozitive de slocare, cal 5i la date allale in procesare sau in Iranzil; denial of service eSle un tip de atac care are ca elect prevenirea accesului autorizat la 0 rasursa sau int<'irzierea operati ilor critice in raport eu timpul; identitate (identity) reprezinta 0 informatie unica in cadrul unui domeniu de securitale, recunoscuta ea 0 entitate unica In acel domeniu; rise (risk) reprezinlll probabilitatea ca 0 anum ita amenintare Si'i exploateze 0 vulnerabilitate a sistemului si impactul care ar rezulta in urma aeestei ac)iuni;

".,_'.1

284

INTRODU CERE iN SISTEME DE OPERARE

vulnerabilitate (vulnerability) sa relara la 0 slabiciune la nivelul proiectarii, implementarii sau operarii sistemului, care poale Ii declansata intentional sau accidental, rezull:l.nd lntr-o violare a politici i de securitate a sistemului.

Exista 0 serie de confuzii de terma ni de nume pentru persoal1ele implicate in domeniul securitAtiL De multe ori no!iunea de hacker asia lolosila generic pentru a cataloga atacatorii de fe!ea de~i . mai coreet, denumirea corecla esla cea de craclc.er {sau black-hat hacker}. Urmaloarea li sla reprezinta denumiri le uluale folasile 5i semnificaliile acastora:
hacker aSia, in sensul sau ini!ial, un programalor caracterizal prin curiozitate ~ i dorinlA de rezolvare a problemelor exislenle (de unde notiunea de hacking' ; in sensul securitatii, no!iunea de hacker poate avea doua intelesuri: while-hal hacker (ethical hacker) sau black-hal hacker (cracker); cra cker (sau black-hat hacker esle speciali~al in alacatarea unor sisleme penlru obtinerea accesului; mo~vatia poale Ii l inanciara, politica, sau pentru distractie; scopul este, in general, distrugerea, furlul sau alterarea inlorma!iei; script kiddie este un termen peiorativ lolosit penlru a descrie persoanele lara cunostinte tehnK:e deosebite penlru a Ii considerati hackert dar care lolosesc scripturi sau programe scrise de attii penlru a ataca sisteme de calcul si relele; ethical hacker {sau wh ite-hat hacker esle un expert in securilate, specializat in metodotogii de testare a vulnerabil italii unui sistem sau a unei retele penlru a asigura un nivel cat mai bun de S8Curitate; in general, ethicat hackerii aplici!. metode similare cracileril or, dar cu scopul linal de testare ~i securizare a sistemului atacal.

10.2 Securizarea sistemului


$ecurilatea sistemului se relera la mijloacele prin care se poate proteja un sistem de calcul. Atac urile pot veni din exterior (d in Internet, sau din releaua locala) , pot veni din interior (de ta utilizatori) sau pot Ii cau~e naturale (cade rea tensiunii poate conduce la pierderea unui hard disk sau la coruperea datelor). Prolejarea sistemu lui nu se relera doar la proteclia sistemului de operare ~i a aplica!ii!or ce rulea~a peste acesta ci si la protec!ia lizK:a a sistemu lui: pozitionarea in zone sigure, lolosirea de u~ i metalice. prevenirea accesului persoanelor neaulorizate.

10.2.1 Securitatea sistemului de operare


$ecurilatea aplicatiilor trebuie sa porneasca de la asumarea gradului de risc dal de sistemul de operare. Dintre componentele sistemului de operare, 0 mare parte a atacurilor i ncearca sa exploateze limitari ale implementarilor de separare a dreplUrilor de acces la memorie sau la sistemul de fisfe re.
I htlpJ len ,wikiped ia, ",glwikiIH .ckeUp'og'a mme'_.ut>cu Itul. !

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECUR ITATE

285

Un sistem de operara aste sigur daca resursele acestuia (zone da memoria, dispozrtive de intrare/iesire. l i ~iere etc.) sun1 accesa1e in mod valid de entiUI~le active (in general procese). Accesu l valid este as igurat de nucleul sistemului de operare. ce aclioneaza ca un intermediar intre utilizatori ~i componentele hardware. Pornind de la sistemele da operare simp~ (cele pantru PDA) p<'lr1a la sistemele complaxe ce ruleaza pe calcu latoarele personale, securitatea olerita de nucleu se bazeaza pe suport hardware. Procesoare le olera ce l putin dow'l nive lUli de privilegii: un nivel de pnvilegi i pentru opera!ii obisnuile; un altul pantru accesu l la inslruc~uni prw ilegiate: accesu l la zone de memorie rezervata; accesu l la dispozitivela hardware etc. Accesul
~

aceste inslruqiuni privi leg iate este parm is doar nucleului.

5ecuritatea memorlel in sistemele de ope rare moderne, securitatea memoriei esle str1'lns leg1'lta de mecanismu l de memorie virtuala. Fara a intra in detalii, este suficienl de precizat faplul c1'l sistemele de operare asigur1'lliecarui proces un spatiu dedicat de memorie virwa la (denum it ~i spaliu de adrese ) care este mapatias ociat unor zone din memoria RAM. Zonele de memoria RAM paste care eSla mapat spatiul de adrase al unui procas nu poate Ii accesat de catre alte procese . Problemele de securilate la nivelul memoriei lin de detectarea corecla a incercarilor de accesare a unor zone de memorie care nu sa afta in spaliul de adresa al procesului respactiv, dar ~i a iroc ercahlor de sch imbara a unor zone de memoria in spa?ul propr iu de adrese, pe parcursu l rulari i procesului. Fiecare proces are propriul sau spa!iu de memorie virtuala mapat paste un spa!iu de memor;e l izica printr-o latJela de translatare ce apaT1ine procesului. Pentru un proces care incearca sa accesaze 0 adresa de memorie pentru care nu exista 0 translatare catre 0 adresa lizica (ad;ca pantru care nu exista pagina respactiva de memorie i n RAM ), procesoru l va varif;ca la nival hardware daca respectiva adresa se afti'!. in spatiul de adrese al prooosului. Daca se afta, inseamna ca respectiva pag ina de memorie a lost avacuata pa d isc (swap) si trabuie adusa in RAM. in caz contrar va Ii general un semnal de pag in a (de memorie) invalida (denumit page fau lt'), pe baza caruia nucleul va putea decide suspendarea sau terminarea procasului in cauza. in sistemele Unix procesul prime~te semnalu l S I GSE GV, ~i are ca elect terminarea procesulu i cu mesajul "Segmentation fault'. Toate acesle opera!iuni cad in sarcina procesorului si sunt realizate la nivel hardware. Pro1ectia memoriei asle 0 componenta esentiala a siSlemelor multitasking (sistema ce olara posibi lil ataa mai mullor procese de a se aHa i n stare de execulie in acelasi limp). Din punct de vedera hardware, primela procesoare pentru calculatoarele parsonala ce olara suporl penlru proteqia memorie; sunt prooosoare le din lam ilia Intel 80386 2. Folos ind mecaI1isme imprumumate de la DOS, cara ru la pa sisteme lara suport
, http ://M .wil<;p..d ia .orglwi<ilPag.o_fau h ' http ;lle n ,wil<;p..d ia,o,glwikillntel_80386

C JPYnghied ma'ana.!

286

INTRODU CERE iN SISTEME DE OPERARE

hardware (8086, 80266 ), versiunile de Windows pAnli la Windows 98 si Windows ME nu au oleril 0 proteqie complelA a memoriei.

10.2.2 Controlul accesului


Controlu l accesului sa relera la oferirea accesului autorizat 5i preven irea acccesului neau\orizat la sistem. Poate Ii vorba de accesu l !izie al unei persoane sau de accesul

unui utilizator in cadrul sistemului de operare.

Securitatea !iziea

Securilatea fiziei!. include 0 gamA larga de parametri, de la controlul accesului personal


pan! la asigurarea diferi\ilor parametri optimi de funclionare. o primA compor'lenta a secur~a.tii lizice presupune plasarea ochipamentelor in locuri In care 5e poale asigura controlul accesului, penlru a preveni utilizarea neautorizala, distrugerea sau iurtul. Spedicaliile de alimentare cu tensiune vor include evaluiiri ale consumului de putere pentru dimensklnarea surselor neinteruptibile de putere (U PS-uri). sau a generatoarelor de tensiune. As igurarea temperaturii optime in centrele de operalii tine de folos irea unor sisteme de aar condilionat sau de ir.c<'ilzire cu un grad rid icat da radundant<'i. Exist:!i 5i carinta da protactie impotriva incand iilor : 0 camara cu sarvare va trabui sa aiba, pe langa sisteme de detec!ie ~i stingere a incendiilor, ~i poctea ~i pere!i din materiale rezistenta la Ioc.

o bun<'i pol itic<'i de securizara va urm<'iri plasarea echipamentelor in bunkere allate la 5ubsolul cl:!idirilor, urmarindu-se astlel ~ i protec!ia impotriva cutremurelor.

Secutitatea fa nlveluf utilizato tll ot Una d intre componentele asantiale ala unei politici da securitate asta securitataa la nivel ul utilizatorilor. Securitatea utilizatorilor se bazeazA pe separarea resurselor fiecAru i utilizator. precum si pe folosirea autant~iciirii pentru protejarea accesului la resurse. Principiul important de prevenira a atacuri ler la nivalul utilizatorilor este principiul celui mai mic privHeg iu. Orice operatiune trebuie executaiA dintr-un cont cu drepturi d.t mai limitate. Un adm inistrator novice va lolosi contul privileg iat inclllSiv pentru electuarea unor operatiuni uzuale. Exploatarea unor amb iguitA!i ale variabile lor de madiu poate duce in acest caz la rularea accide ntal;"i a unei aplicatii malitioase l;"isata intr-un spatiu public (gen Itm p / ), rulare ce nu ar Ii lost pos ibil;"i d intr-un cont de utilizator. Una dintre criticile aduse sistemelor din familia Windows a lost crearea unui coni implicit de l ip Administrator care of era drepturi depline utilizatorului sistemului. inclus iv instal area atanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

287

unor programe malitioase. incepAnd cu Windows Vista, acest lucru a fost combatut prin lolosirea User Account Control'.

10.2.3 Parole
De~i mecanismele de autentihcare sau divers~icat. in continuare 0 pondere sem nificaliva 0 constitu ie pe rechile <ut ilizato r , parol.!> . 0 solu!ie alternaliva, ce of era un grad mutt mai rid icat de scatabilitate, precum si de securitate, este lotosirea de certificate. Conceptul ce sUi. la baza folos irii de certificate se nume~le PKI2 (Public Key Infrastructure).

Numarul resurselor electronice fi ind in continua cre~tere, mul!i utilizalori ajung sa com iti'!. cel pulin una dintre erorile de cap.i!.tAi ale autenlilicarii: alegerea de parole usor de ghiC~ (spar!), folosirea unei pa role penlru mai multe conturi sau notarea parolelor in locuri nesigure.

Alegerea parolelor Una dintre principalete pro~eme in alegerea parolelor este folosirea de parole prea simple. Mul!i utilizatori folosesc numele propriu , numele soliei, copiHor sau cAine lui. 0 data de nastere, numele echipei preierale. Aceste paro le pot Ii usor ghicite prinlr-un atac de lipul dictionar. Se spune ca, 0 parota eliCienl<'i: Irebuie sa aiba un

numar de minim 7-8 ca ractere;


~i

Irebuie sa foloseasca atAI minuscule, cat

majuscule
(~i

~i

cifre;

trebu ie sa includa eel pulin un caracter special cadrul parolei); nu Irebuie sa l ie un cllVant din diclionar; nu Irebuie sa l ie un

nu doar pe ultima pozitie in

nume de persoana.

Cu toate acestea, parolele trebuie sa fie u~or de relinut. in aceasta situatie, cea rnai la i ndemana sol utie este alegerea unei fraze pe baza care ia se poale deduce parola (vezi Ross Anderson - Security Engineering, seejiunea 3.3.3 [3]). "Come 10 the dark side, we have cookieS!" peate Ii lolos~a pentru a retine parola "Gtlds, whc!", dupa cum "$adal engineering bypasses aI/technologies, including firewalls- poate genera -53001, If". In cazu l lolosirii unei parole ce nu respecta recomandarile de mai sus. atacurile bazate pe dictio nar (incercarea parolelor ce apartin unui set de cuvinte comune), sau ce le bazate pe loTlA burta (incercarea luturor combina)iilor de caractere) pot avea rezultate aproape imediate. E ~ista numeroase aplicat ii ce simuleaz1l asllel de atacuri, una dintre cele mai re numi\e liind John the Ripper'.
, h lip :1/80 .wikipe d ia .o,glWikiIU ' 8'_ Acco unl_ Coni ro l ' hllp :1180 .wil<;p..d ia .mgIWiki/PublkUlo y_;nfrasl,,_<:lu , e ' htlp ;liope nwall,comljo h rV

C JPYnghted matanal

288

lNTRODUCERE iN SISTEME DE OPEAARE

De la conturi triviale de downloacl pAnA la conturi le de email, sau la conturile bancare

electronice, tot mai multe resurse salieila 0 autentificare pe baza de parola. Esle idea tE!. separarea conturllor prJn parole Individuate. Cum aces! lucru presupune
memorarea unui numar ridicat de fraze , 0 solutie de comprom is consta i n folosirea unor parole comune pentru servicii similare cu miza de securilate redud . Astlel, nu eSla prl.!dentA to lO$i rea PINului cardului de bancA pentru contul de mail ; un alae de fortA brula ar dura aproximativ 0 microsecundi:i. Se peate insa folosi aceeas i parorA penlru mai mulle site-uri de desd!.rcare de soltware. Desi folosirea unor parole comune pentru servici i electroniCe cu miza mk:a reduce numArul parole lor, acestea pot Ii insa. destul de multe. In plus. po liticile de sec uri tate solicita schimbarea period ica a parolelor: timpul de viata recomandat pe ntr u 0 paro la este de ~se luni. in masura in care parolele lolosile nu pot Ii memorate, vor Irebui notate, 1n mod evident, notarea parolelor nu trebuie lacuta pe 0 foaie cu acces public. o solutie pe ntru parolele rar lolosile consta in paslrarea lor centralizata. Exista numeroase aplicatii menite sa protejeze printr-o singura paro la 0 baza de date de parole {spre exemplu KeePass ' , Conslie nlizarea imporlan!ei unei parole nu line doar de protejarea unor res urse personale. ci de gradul de securitate a intreg ului sistem, precum si a relelei locale. Ailiel spus, intro relea in care utilizalorii lolosesc parole Iriviale, riscu l nu esle doar unul personal. Un atacator poate sa comprom ita. din Inlernel un cont loca l. translormand un alac de la dislanta inlrunul general de pe aceeasi masina., ceea ce ii cre~le mull sansele de succes. Acesta este si motivul pe ntru care au evoluat si mecanismele pr in care administratorii de retea pol lorJa lolosirea unor parole e/iciente. AIM relelele Windows. cat si cele linux olera suporl penlru securilalea bazala pe jetoene herdwere (S6curity /okeri) ce isi rege nereaza. parola la fiecare 30 sau 60 de secunde. Odata sir.cron izat ceasul serverului cu ceas ul jeton ului hardware, utilizatorul va lolosi numele sau de cont si parola af~ala de jeton la momentul autentil icarii. Pre!ul unei astlel de solu!i i esle de 510 euro pe r jeton hardware. liecare jelon Irebuind reco nligural la 6 luni. Trebuie remarcat lotusi ell. aceasla. sol u!ie nu rezolva risc uri le de securitate fiz ic! a parole i.

Gestiunea parolelorin Unix Parolele erau. ini!ial, stocate in fisierul I ete/ p as s wd, dar, pe ma.sura. ce precalcularea 5i stocarea parolelor comune J a devenit posibila, a aparut nevoia unui fisier separat, cu permisiuni mai stricle, in care sunl slocate parolele. Acesla se nume~te le t el s h ado w si lormalul sa u. cat ~ al /ete/pas s wd, eSle descris in sectiunea 3.3.1. Utililarul pentru schimbarea parolei in Unix este pllss vd. Utilizalorul privilegial (rool) poale sch imba parola orica.rui utilizalor, ir.clusiv a sa, Un utilizator neprivilegial poate schimba doar paro la proprie. inainle de a schimba parola ii esle solicilata parola propr ie penlru a preveni s itua!ia in care un ulilizator uila. 0 sesiune shell deschisa.
2
~ li n ~ @v~ lh a ll a , -$ pa$$wd Cha n gi ng password Cor a ll na .

, httpJIktt&pa.. .inlo/ ' http;l/e n.wil<ip<ld ia. mglwikiiSecu r~y _loke n ' Un ulf&1 de ~ I ac se numesle dictionary allac/< : http;l/e n,wi<ip<ld ia,o'giwikiIDic1 ionarLaliack

CAPITOLUL 10. ELEMENTE DE SECURITATE


, (current) UNIX password : EnteI ne" UNIX password :

289

"

Retype new UNIX p assword :

pass"d: p a "ord updated successf ully

Daca se doreste obtine rea unei parole usor de retimJl, dar care sa fie relativ sigu ra, se 11 mod implicit parole de 8 caracte re peate lolosi utilitarul p"gen . p"gen genereazli 1 (incluzaoo cilre):

, , ,

dina@va lha ll a : -$ pwgen uo3Ph@ i s ali n a@va lha l la:-$ p wge n Eeb 7Aej~ XooObe i r

-,
-" ,

Utilitarul permite "persol1alizarea" parolelor ob!inute. in exemp lul de mai ios. parametrul - Il pre<:izeaz1'i laptul ea In paro la va Ii inclus1'i eel pubn 0 cilr1'i, parametru - c de va delini lungimea paro lei dorite. Ultima cilra reprez inta numarul de parole ce trebu ie generate.
, aiina@valhalla : -S pwgen -n -c 7 3 ahnqez5 a iv5I e c bi e 3poR

10.2.4

Securitatea sistemului de fisiere

Securitatea sistemului de li~ie re urmareste asigurarea izolarii utilizatorilor prin separarea lisierelor personale si pri n definirea ac!iun ilor pe rmise de ulilizatori pe diverse sectiuni din ierarhia sistemului de li~iere. Fiecare utilizator dispune de 0 intrare (un dire<:tor) in sistemul de l isiere pentr u ca re are drepturi depline. in Unix, acest director se gliseste in ihome . in Windows Vista, acest director este subd irector al c, \ Use rs . Utilizatorul poate controla actiunile permise pe lisierele con! inute in respectivul directo r. Unele intrari in sistemul de lisiere nu pot Ii lolosi te decAt de utilizatorul privileg iat.

Conlrolu l accesului Controlul accesului la d iverse elemente ale sistemu lui de lisiere d ilerA lntre sisteme le Wiooows si cele Unix. i n Windows, sistemu l de lisiere NTFS olera de la versiunea 4.0 posi bilitatea definirii unei lisle de acces pentru liecare utilizator din sistem. AceastA listA de acces este defi nila in raport cu sapte tipuri de actiuni: Full Control, Modify, Read & Execute. List, Read, Write, Special Permisions. Subiectul drepturilor de acces pe un sistem de fisiere NTFS este tratat mai pe larg in studi ul de caz al acestui capitol in se<:tiunea 10.6.1. Abordarea in cawl Wiooows este 0 lorma a mecanismului de control a accesului ' . Abordarea folosita in Unix pentr u delinirea dreplurilorde acces la sistem ul de fis iere este o matrice de drepturi. Pentru a ob!ine 0 matrice limitata, se lolosesc Irei trepte de privi legiu:
, http;lI. n.wiloiped ia.orglwikU Aceess_eontrol_l isf

290

INTRODU CERE iN S IS TEME DE OPEAARE

Tabelul 10.1: I

de acces in Unix

utllizat orul {user} ca re delina lisierul;


grupul (group) ca re del ina fisierul:

al!i utilizat otl {others}.


Pantru fiecare dintre cele Irei treple de privilegiu sun. definite clUe Irei d repturi:

cilire (read) - permite vizualizarea con!inutului unui director sa u a unui lisier;


seriete (read) - permite alte rarea con! inulului unui fi~ i e r sau director. Pentru un director, altera rea contin utului inseamna posibilitatea siergeri; sa u crearii de !isieta;

execu!ie (execute) - permile execu!ia unui li~ie r ~ i permite parcurgerea unui director; daca un director nu are drept de executie, nu peate Ii parcurs (nil sa poate ajunge la fi~iere l e si subdirectoarele con!inule). AV3nd tre i Ireple de privilegiu si \rei drepturi pentru liecare Ireapta, re zulta un total de 9 drepturi care pot Ii conligurate pentru un lisier dat. Forma liniarizata a matricei de acces (si a celor 9 drepluri) eSle alisala de comanda 1 5 cu opliunea de long listing (- 1):
root@ro" ~ du , -,-I

-ld

Iv~rlsvn/hhll/dbi

> dc"xr - xr - x 6 hfall

project ~

~096

J ul 23 13 , ]4 Ivachvn/hhll/dbi

in lislingul de mai sus, ulilizatoru l asocial direclorului /va c /svn/hfall/db / , (h fall ), are drepturi complete (r\o/x ). iar grupul asociat (projects) Si cei lalli utilizatori au drepl de cilire ~i executie (r- x) (se poate vizualiza 5i parcurge directorul). Forma liniarizata a malricei de acces penlru un lisier (afisata de comand a 1$ - 1) eSle prezentala in l igura 10.1 .

lip

I I utiliZOlOf I I
, ,

"

.. ,
grup

II

.~ i i

, ,

I
P""'" fi ox..:utat, '" p o",~ p.rc u r ~~ 000 fi modil k .. . "" 00< ( ~./~," .... e fi~i" '" n oitit . '" 00< oitl fl~~ r~ l. oonl inu," poot. fl uutat. "" po.t. puco rg. fl modfkot. , . 00< ( ~~to .... ~ f l ~ i .~ fi cit it, '" 00< oiti fi~ e rol" conlinut< 00" . Ii ....:ut. t , "" ""Ole "u rge II modi NcOl . " pot ''''. 4 t .,ge l il i.", P""" Ii <Itit. "" po' <iti ~~~ re l . co" ' inut . l ifi"' O~if"u i l

PO""

po". poo'.

_to

I ; n~

director

Figura 10.1: Permisiuni Unix

CAPITOLUL 10. ELEMENTE DE SECURITATE

291

Penlru a specihca mai succint drepturile de acces la un lisier, utilizatori i avansati Unix prelerA forma octalA a drepturilor de acces la un li~ier. in eadrul acestei lorme, lieeare drepl de aeees esle inlocuit cu un bit. Astfel. in eazul listing-ului de mai sus, drepturile de acces sun\:
""X I -X I -X

> III 10 1 10 1

Fiecare pereche de tre i bi!i (asociata unei trepte de prMlegiu) este tranformata inlro valoare octala. Forma linata., in octal, pentru drepturile de mai sus este, asadar 755. in tabelull0.2 sunt prezentale cateva exemple de asociere inlre forma literala si forma octalli a dreputurilor de aeces pe lisiere in Unix. Tabe lull0.2: Permisiuni in format lileral . octal

ehown

~i

ehmOd

i n administrarea seeurita!ii sistemului de li~iere in Unix, utilitarele de baza. sunt ehown ~i chmad. Primul afera posibilitatea sehimbari i proprietarului ~ i a grupului cliruia Ii apal1ine respeclivul fisier. in vreme ee al doilea permite modilicarea dreptu rilor.
Ioot@k i wi: - ' chown - R geoIge : useIS test!

i n exemplul de mai sus a lost electuala. 0 schimbare recurs iva. pentru toate fisiere le si subdirectoarele directorului test/ . i ntreg con!inulul directorului test! va apal1ine utilizatorutui george si grupului users. Daca. se sintaxei:
dore~te

doar modilicarea utilizatoru lui sau grupului, se

lolose~te

doar 0 parte a

Ia<van @ v a lh a ll ~ : /tmpS

> chown : chanqinq

own e I ~h1 p

c h own al,na b~ttle"hip of ' bHtl ~ "hip' : Ope ration not

peImitt ~ d

, 6 ,

razvan @ va1halla : /tmpS s udo bash roo t @ valhalla : /trnpt chown alina ba t tl"sh i p root@va l ha ll a,/tmp' 1$ - I battleship - r,,-r--r-- 1 a li na razvan 0 S ~p 19 18:0 1 bHUeshi.p Ioot@valha ll a,/tmp' chown : sha dow batt l eshi.p root@ ... ~ lh ~
ll ~ : ltmp'
~ l1n ~

" "
13

,. - r"- r-- r-- 1

15 -I bHtleship shadow 0 Sep 19 18:01 b attleshi p

in exemplul de mai sus a fost schimbat utilizatorul si grupul fisieru l / t mp/ b at t les hip in alina, respectiv shadow. Se observa. ea. in Li nux. un utilizator neprivilegiat nu

292

lNTRODU CERE iN SISTEME DE OPEAARE

poate schimba delinalorul unui fisier.


caIre
utili~ato rul

In

li nux, comanda chown eSla 10losil1l de ar de

privilegiaL Pe alte Unixuri (spre exemplu, Solaris) comand a poate Ii

folos ita 5i de un utilizalor neprivilegiat.


Comanda chmod permite modifica rea dreptur ilor de aeces ale unui fi~ier_ Comand a peate Ii lolosita dcar de ulilizatorul ce detine fisierul sau de utilizatorul privilegiat. Noile drepturi ale fi~ie rul ui pot Ii preciza\e in forma literala sau oclal,l. Fie !isiarul hello . c de rna; ios:

1" - 1 hello . c - rw- r -- r -root@ kiw i : ~f

razv~n

new 81 Oct

621 : 35 heU o . c

Pentru sChim barea drepturilor S 9 va Iolos; mai int1l.i forma lite ralA. Drepturile pot Ii prec izate pentru oricare dintre cele Irei niveluri de privilegiu: utilizator, grup, alIi utili zatori printr-o singura liter1'i: U , g , 0 , Drepturila pot Ii:

ad1'iugate prin fofos irea operatorului +; inf1'iturate prin lofosirea operatorului- ; precizate explicit prin lolosirea operatorului - ,

,
, ,
10 ,

toot@ k iwi : -f c hm od o+x hell o , c root @ Hwi : -f I; - 1 hell o , c -r ,,- r -- t - x 1 r azvan new SI Oc t root @ k iwi : -f chrnod u - rx hell o , c

62 1: 35 h"llo , c

<oot~kiwi:_f

- <- xt -- t - X

I s - 1 h ello , c 1 uzvan new 81 Oct

62 1: 35 h e ll o . c

in exemplul de mai sus a lost mai int<'li ad<'lugal panlru restu l utilizatorilor dreptul de execulie, iar la al doilea pas s-a precizat explicit cEi. drepturile utilizatorului trebuie s1'i lie "x adic1'i doar citire si executie. in format octal, pentru a acorda toate drepturile utilizatorului ("wx ). drepturi de citire ~i executie grupului (r - x), si doar drepturi de citire pentru restu l utilizatarilor (r -- ) este suficienta 0 singura comanda:

<oot@ ~ !wj : f

c hmod 754 hello . c

<oot@hwi : - I I; - 1 h ello . c - c wxc-x r -1 u.van new 8 1 Oct

621 : 35 h el l o .c

umask Penlru controlul drepturi lor unei noi intr1'iri in sistemul de !isiera sa loloseSl e un paramelru de re striclie numit maseii de creare (file mode creaUon mask) Drepturile efecU ve ce va r Ii atribuite unei noi intril.ri in sistemul de lisiere se oblin prin eiectuarea operaliei de 51 logic intre valoarea inversatil. a mastii si permisiunile implicite ( 666 pentru !isiere ~i 777 pentru directoare). Reprezentatli matematic, operalia este de faul t -perm & ~ma sk . Comanda ce permite inspectarea
~i

modificarea mastii se

n u me~te

umask.

CAPITOlUl10. ElEMENTE DE SECURITATE


u""'s ~

293

, ,
~
~

root@Uwi : -I 0022
root@ ~ iwi : - I

t.ouch us o, _ test l

root @ki wi : -I I ; - I UM,_t M tl - r ",- r -- r -- 1 r azvan razvan 0 Nov 10 1 7 : 28 u,07 _ t,, , tl root @ ki wi : - f
uma ~ ~


"

02"J

root @ l:i wi : -f touc h U$07 test2 roOthiwi,-' ls - 1 us o"J _ test2 - rw-r--- - 1 razvan ruv~n 0 Nov 10 11 : 28 u"o1 _ test2

" "
,.

"
18 ,.

"

root @ Uwi : -1 I ; - Id UM"J_tMt_dirl dr",xr - x --- 2 r azvan razv~n 1024 Nov 1 0 1 7 : 29 u,oi_tes t _ dir

in listingul de mai sus, in primti lazti masca are valoarea 0022 . Acest lucru inseamnti cti un li~ i er nou creat (usc ?_testl va avea drepturile

666

-022 _ 666 755 _ 110 110 1 10 111 10 1 101 - 110 100 100 _ 644 _ "W- r -- r - -

in ultimul pas, masca are valoarea 021. Oireclorul u sc? test _du/ drepturile
111 , 2 -021 _ 177 & 750 _ III 111 1 11 111 10 1 000 _ _ 111 1 01 000 _ 750 _ r ",x r -x ---

va fj creal cu

10.3 intrefinerea sistemului


Oupti conligurarea drepturilor de acces la nivelul sistemului de operare sau al sislemului de fisiere, unui sislem Ii trebuie asiguralti mentenanta. Aceasta presupune verilicarea periodicti a nivelului de securitate a sistemului. a jurnalelor, a actiunilor utili zatori lor ~ i proceselor. Prevenirea atacurilor este cea mai bunti forma de asigurare a securittilii, iar un administrator de sistem prolesionist va inspecta periodic sistemul si va lua m<'i.surilor adecvate aturICi cand siguran!a sistemului este pericl itata.

10.3.1

Monitorizarea sistemului

Monltotlzarea dlnamlca a slstemulul Monilorizarea dinamicA (in limp real) a sislemului urm<'i.re~le nivelul de inc<'i.rcare a diferitelor resurse hardware. Astle l. pentru a determina gradul de incArcare a procesorului se poate folos i comanda uptillKl. Pentru a urmAri nive lul de folos ire a memoriei RAM se poate folos i comanda t"r&&.

29.

lNTRODU CERE iN SISTEME DE OPEAARE

ComarKIa top (vezi sectiunea 5.2.4) comb ina informatiile clerite de comenzite uptim .. si free .
top - 14:05 : 0 up
U' ,

>
"

T~ s k 5 :

6 1 tot a L

Cpu Is) : 99. H


Mem ,

8 : 12 , Z user~ , lo"d "veu9'" 1.01 , 1.02 , 1.QO 3 runHng , 58 sleep i ng . 0 ~ topl'ed . 0 zomb i e 0 . 3t 'y , 0 . 0 \ nl , 0.0 \ i d . O. Ot ,,~ . 0 . 0 \ h i, 0. 0 \
2542001: used,
1 444l<
2S40~

"

,
~

Swap :

2S6HOk tot"l , 289129k tota l ,


NI

fr"" ,

usea ,
SHR S

29169H f ...,.. .
'C~U

12680k buffers 413561: c3che(!


TI M+ COMMAND

10

"

" " " " "

PIP USeR 2490 www-dat a 14067 "oot 1 root 2 root 3 ""ot 4 root 5 root 31 root 41 root

VIRT

RES

\MeM

5 8
14

" ,

o 26204 18m 12m R 99.S o 2064 1036 1852 R 0 . 3 o 1504 512 1352 S 0 . 0 19 0 0 0 S 0.0 - 10 o 5 0.0 - 10 o S 0.0 -lO o S 0.0 - 10 o S 0.0 o S 0.0

, , , , ,

, " , , ,

7.5 0.4 0.2 0.0 0.0 0.0 0.0 0 0 0.0

2'5 : 2~ . 52

apache
top in it

0 : 00 . 02 0 : 00 . 73 0 : 00 . 00 0 : 00 . 00 0 : 00 . 00 0 : 00 . 00 0 : OJ . 15 0:00.00

ksoftirqd/O
ev~nt"/O

k helpe r k acp i d k blockd/O pdflush

Prima linie conIine (in ace l a~i format) informa!iile oferite de comanda uptime: ora curenta, in tervalul de timp de la ultima in~ializare a sistemului (in cazul exemplului 8 ore si 12 minute), numarul de utilizatori autentificati in sislem ~i incarcarea medie a sistemului pentru ultimele 1, 5 sau 15 minute. 0 incarcare supraunitara este echivalenta cu un sistem solicitat. liniile 4 ~i 5 ofera informa!iile specifice comenzii t"ree . linia 4 descrie incarcarea memoriei RAM, iar linia 5 indica nivelul de utilizare a part~iei de swap. Folosirea unei cantilali ins em nate de memorie din swap indica faplul ca memoria RAM este insuficienta pentru cerintele sistemului. In exemplul de mai sus se observa ca procesorul este supraincarcat, in vreme ce memoria RAM esle bine dimensionata (pentru ca memoria swap nu esle folosita). InspectAnd mai departe procesele cele mai re levante din punctul de vedere al consumu lui de resurse se observa ca procesul apache a petrecut in procesor 275 de minute, adica mai mutt de jumatate din timpul scurs de la ultima ini!ializare a sistemului. Se observa, de asemenea, ca, in momentul rt.Jlari i comenz ii, procesul <lp<lche folosea 99.5% din procesor. Acesta este un comportament neob i ~nu it. Pentru un sistem bine configural cele mai active procese vor reusi la nivelul unei luni de zi le sa. ocupe 12 minute. Concluzia analizei dina mice a sistemului de mai sus nu este ca resursele hardware sunt insuficiente, ci ca unul dintre servicii (mai exact serviciul de web) are un comportament anormal. Prima masura ar trebui sa fie oprirea procesului apache si inspectarea configura!ii lor specifice acestui daemon.

Monitorizarea utiliziirii discului o alta res ursa importanta. a unui sistem 0 reprezinta spatiul liber de pe harddisk. Pentru aceasta trebuie monitorizat nivelul de ocupare a partiti ilor definite pe disc, dar si dimensiunea unor directore ~ i fis iere.

CAPITOLUL 10. ELEMENTE DE SECURITATE

295

Spatiulliber pentru partitiile diseulurilor sistemului se poate vizualiza eu ajutorul eomenzii df:

, ,

roo t @ c ur , uri :/ h ome/ c our ~ e ~ f

-0
Ava il 1. 2G
1 2~M

F ih'y,te m / d ev/ h da l tmpfs


/dev/ hd a ~

Siz@ 4 . 6G
1 2 ~M

U ~@ d

u,,, \

Mount"d /dev/shm /home

J . 2(;
4 . 0K

n,

in exemp lul de mai sus spa~ul pe disc este imp!!.r1i1 in dou!!. parl ilii: una folosit!!. pentru rularea sistemului (montata ca / ) $i 0 a doua lolosit!!. pentru stocarea date lor utilizatoriior (montata ca /ho me). i n acest lei. cniar daca spa!iul pe parlitia /home este epuizat, acest lucru nu va a/ecta /unelionarea sistemului. In cazu l in care se dore~le inspectarea dimensiunii unui li~ier anume se peate !olosi comanda is sau comanda stat :

'"'

) . 2(;

" '"

'"

""

> - rw- r ----- 1 root

roo t ho.e d u: -' 10 - lh /v o r/loq/opo che2/occe . l oq ~dm 1. 2M Sep 19 20 : 1 2 /var/ l oq/ ~ p ache2/ ~ ccess . l o q - C \s Ivu/loql a p a ch"21 a cc,, . l og

root@ro."du : -I 9t H 5 7482956

Pentru a obtine dimenSiunea unui director se peate lolosi coman da du:


roo t @ c u r. u ri:/home/cour s e s # du - sh rC 155M rC

Monit orlzarea servl clilor d e relea Pentru monitoriza rea net&tat .


serv~ i ilor

de relea disponibile pe statia locala esle lolosit ulilitarul

Apelat I!!.ra niCiun parametru, netstat va ali$a 0 lista cu toate conexiunile active (portur ile aflate in starea de listen se considera inactive). 0 utilizare Ireeve nta a aceslui utilitar urm!!.reste testarea lunclionalih'itii anumitor servere (HTTP,FTPetc.). i n general, aceste servere asteapta conexiuni TCP sau UDP pe anum~e porturi. Penlru a obline lisla tuturor conexiunilor TCP, se poale lolosi:
r oo t @ r o,e du : -' net,tat -- tcp -- all

> Active lntern et conn" ctions \s ervers a nd establi $ hedl


, "
6

Proto Recv - Q Send - Q Local Address tcp 0 O ' : ss h o . : smtp o tcp tcp o . :g i t o

I'orei qn

"'dd~"ss

State
L I S TEN L I STEN L I STEN

.:

(. . I

Pentru a verdica lunctionarea dileritelor servere instalate, care ascultli. eventuale cereri de conectare. esle utila comanda :
root@rosedu :-I n" t stat -- tcp -- li s teninq
3
-- nu m" ~lc - port s

> Ac t ive Inter net conn@ctions (o n ly se r ve""l


" Proto Recv - Q Send - Q Local Ad dress tcp 0 0 0.0 . 0.0 : 22 tcp 0 0 0 . 0 . 0 . 0 : 25 t cp 00 . 0 . 0 . 0 : 9418 I'o r e i qn "'ddr"H 0 .0.0. 0 : 0 .0.0 .0 : 0. 0. 0 .0 : State
L I STEN L I STEN LISTEN

296
7

lNTRODU CERE iN SISTEME DE OPEAARE


0127 . 0 . 0 . 1 : 3306

tcp

0 . 0.0.0"

LISTEN

"

(. .I

Se observa ca sistemu l ma~ina locala exisUi servere care ascuitA pe portul 22 (SSH), 25 (SMTP) sau 3306 (mysql). Asadar, server-ele SSH, SMTP si mysql sunt functionale. Pentru vizual izarea co nexiunilor UDP, se poate utilize parame\rul -u sa u --u dp

Sa presupunem eli sa descopera un server care lunctioneaza (sa ana In starea LI STEN)

pe porlul 22. Pentru oprirea acestui server pulem opri procesul corespunzalor, inainle
insa. trebu ie allal pid-u l aces!ui proces (optiunea - p sau --progr am):

, ,
,
,

co,

root@roseau:-I netstat --tcp -- liste ning --progum --noIDH i c-ports A.ctive lnt ~ rn e conne ction s (only server') Peoto Mcv- Q Se nd - Q Local Addre ~~ For e ign I\ddr e~~ S t ~ t e PID/Progra m Mme 0 . 0 . 0 . 0 : 80 0 . 0 . 0.0 : LISTEN 572l/apache

I .. 1
tcp6 tcp6

, , ,

, , ,

::: 22 : : 1 : 25

: : : : : :

. .

LISTEN LISTEN

5515/ .. hd 5505/maoter

Ulterior. se poate trimite un semnal KIL L catre procesu l cu numarul 5515.


root @ r o, @ du : -I kill -KI LL 5515

Monitorizarea activitii!ii utilizatorilor Pentru a determina ce utilizatori sunt autentilicati la un moment dat in sistem se loloseste comanda who :
2 3 root@cursurJ:-1 who so pt./O Aug 10 IJ : 50 I~n~cond~.c, . pub ot pull Aug 10 14 : 05 IkiwJ.cs.pub.rol
. rol

Din exemplul de mai sus se poate deduce ca in sistem sunt autentilicali utilizatorii so ~i ot. Ambii utilizatori au acces in sistem prin emu latoare de te rminal (p ts ), cu alte cuvinte prin intermediul unor ses iuni la distanla. Sesiunea utilizatorului so a lost initiata la ora 13:50 de pe sta!ia anaconda. cs . pub . ro, i n vreme eEl sesi unea uti lizatorului ot a lost lnceputa la 14:05 de pe sistemul kiw i . cs . pub . roo Pentru a determina ce utilizatori au lolosit sistemul in ultima perioada, se poate lolosi comanda 1 aa t :

,
,

root@swarm : -I l ast pta/l pte/l &ndreif pt.12 andr~if pts/2 &ndreif pts/2

-,
141 . 85 . 37 . 227 la8 . 27 . 10 5 . 225 81 . 181 . 250 . 24 81 . 181 . 250 . 24 81 . 181 . 250 . 24 1 08 : 01 : 55
200~

r oot root

.. , 'e, .. , '" " .. , '" " .. ,.. .. ..,, """


,

20 : 24 la : 21 14 : 55 14 : 25 14 : 01

still 109geo U : 39 100:11) 14 : 56 100:00) 14 : 41 100:151 14 : 25 100:241

,"

" t mp begins Tue Sep

10.3.2

Jurnalizarea

~i

gestiunea jurnalelor

Majoritatea serviciilor sistemu lui ruleaza. ca daemoni (vezi sectiunea 5.3) si nu pot comunica d irect cu utilizatorul. Utilizatorul interactioneaza cu servicii le prin intermediul

CAPITOLUL 10. ELEMENTE DE SECURITATE

297

semnalelor si a fisiere lor de configu rare, iar serviciile of era info rmatii de stare, raportare ~i funclionare prin intermediul f i ~ierelor jurnal (server logs).
Fi~iere l e jurnal pol avea diverse formate. dar, in general, liecare linie de tip jurnal precizeaza ora ~i data, adresa IP cu care serviciul a comuniCat ~i 0 descriere a mesajului. Unia de mai jos este 0 parle dinlrun jurnal al unui server Apache in Common Log Format. in cazul de fala este yo rba de a conex iune iniliala de web crawlerul de la Yahoo! ' .

72 . 30 . 78.249 - - [19/SepJ2009 : 20 : 29 : 26 +0300 1 "GET It&q/plC&s~1 HTTP!l . O 2006331 " - " " Mo zlI1a/ 5 . 0 Icompatible ; Y ~ lloo ~ Slurp/3 . 0 ; http : //help .
y~hoo.com/help/us/ysearch/s l urp)

Pe un sistem
~p~che2

U n i~ ,

jurnalele se gAsesc, de obicei, in Ivar 1 10g/ :


Ivar/lo9 daemon . log 4 . g" debu9 drne$9 dmesq . O k e r n. l og kern. l og . last l og lpr . log

, roo t @s"a rm :-I , .0 '" , '00 , &uth . log . O


~ uth .

"

mai.1.l og . mai.l . log . s. gz


rna; I . log .

.y. l og sys l og syo l og

mal1.log . 6

. 2 . g"

"

syslog

(. .. I

Crearea jurnalelor sy s k loqd este un utililar care permil e lucrul cu mesajele sistem si cele generate de kernel. Pe scurt, aplicatiile trimit dilerite mesaje catre syskl ogd iar acesta, utilizfu1d un lisier de configurare. depune aceste mesaje in anumite li~iere , Ie scrie in anumite console sau eventual Ie tr imite catre 0 altA masina. In Debian utilitarul sysk lo<;Jd este disponibil in pache\1.J1cu acelasi nume. de conligurare este letc /syslog.co n f . Aces! lisier conIi ne r&gu li care delinesc modul in care sunt stocate mesajele de jurnalizare tra nsmise de serviciile sistemului. Desi este loarte util pentru monilorizarea sistemului, syskl ogd prezinta si unele dezavantaje. De exemplu. 0 aplica!ie neglijenta ar putea genera Ioarte mutte mesaje, ceea ce ar putea duce la umplerea discului 5i la instabilitatea lntregului sistem. Trimirea mesajelor cAtre 0 alta masinA. mai pU lin importanta in relea. ar rezolva aceasta problemA. Unele aplicatii, precum serverul web Apache, nu folosesc sYll klo gd, ci implementeaza module proprii de jurnalizare.
Fi~ierul

Inspectarea jumalelor Penlru citirea jurnalelor se poate lolosi orice ulilitare de editare sau vizualizare, de la vi la less. DateritA laptului ell. me5ajele recente sunt ata5ate la sfArsitu l lisierului jurnal, un utilitar des Iolosit esle t a il.
, http ;lihe !p.yahoo.comN uslyahoolsearch/webcrawlerl

298

lNTRODU CERE iN SISTEME DE OPEAARE

Penlru inspectarea dinamica a jurnalelor sa lolosesle comanda tail eu optiunea - f .


Comanda taU
af i ~eaza

in mod implicit ultimale 10 linii dintr-un


af~area

fi~ier

dat. Prin lolosirea

paramelruiui 1 se asigura

dinamica a liniilor adaugate la respeclivu l fisier.

Comanda de mai jos esle un exemplu de 10105ire pentru inspectarea dinamica a activitatii serviciilor de e-mail:
root@cursur i :!var!logf tail - f
/v~r! l O'l/""' 11 . l o9

Rot lrea jurnalelot


Pentru a evita problema ocupi'l.rii spa!iului de pe disc de fi~ierele jurnal, sistemele Unix dispun de utilitaru l loqrotate. Acesta permite reutilizarea fi~ i erelor de jurnalizare zilnic, saptamanal sau daca au depasit 0 anumita dimensiune. in momentul in care conditia de timp sau spatiu a lost indeplinil<''i se electueazA 0 rotatie. o rotalie inseamA 5alvarea continutul jurnalului intrun li~ier de backup cu un nume lor mat din numele originalla care 5e adaugA un numAr. Fisierul de backup copia avfir1d un numAr mai mare cu cal esle mai veche (Iest.log.l . lest.log.2 etc). La fiecare rulare, logrolale va slerge fi~ierul eel mai vechi ~i Ie va actualiza pe celelalle corespunzalor. in general. fisierele de backup sunt arhivale ~i comprimale. Mai jos sunl prezentate lisierele de jurnalizare penlru un server web Apache:

, , , ,

root@.warm:-f total 35092 - rw-r----root - n,.- r ----root - r w- r ----roo t -r"-r----root - rw- r ----rOOt

I ... 1

, " , "" "" , , "" "" ""

-,

/va r /log/ a p a che2/ 5118409 10545752 54934 4 ') 12546 845592 20: 45 acc",$S . log " : 3 5 access . log. 1 '" '" ", 03 03 : 3 6 access . log . 10 . g. '"' " : 3 3 a ccess . l og . II . g< '"' '" 03 03 : 35 ace .. "" . log . 12 . gz '""

1ogrotate esle de obicei rulal zilnic de cAire serviciul de planificare periodicA (c r on ). Fisierul sAu de configurare esle / etc/ l ogro t ate . con f .

Aile utililere de jurnaliza re

Utilitarul dmasg poate Ii lolosit pentru alisarea informatiilor de la inilializarea sistemului. Aceslea sunt mesaje ale nucleului si pot Ii oblinute ~i prin vizua lizarea directA ajurnaletor de mx:leu. Pentru conliguraliile implicile. jurnalele de nucleu sunl paslrate in fisierul /var/log/ kern. l og.

10.3.3 limitarea drepturilor


Sistemele Unix olerA suport in principal doar pentru doul'i niveluri de privilegiu: ulilizatori neprivilegiali si administrator (rool). in practica este necesar un grad mai ridical de flexibilitate in acordarea privilegiilor. pentru a permite ulilizalorilor obisnuili rularea unor aplicatii privitegiate. in acelasi limp. un ulilizator obisnuil poale abuza de resursele care

CAPITOLUL 10. ELEMENTE DE SECURITATE

299

ii sunt puse la dispozitie si poate, accidental sau intentionat, conduce la destabilizarea sau susperdarea sistemului. De accea. un sistem de ope rare va oferi lacililali pentru limilarea sau extinderea privilegiilor la nivel de aplicatie sau la nivel de uti lizator.

Folosirea atributelor setuid

~i

setgid

o categorie aparte de aplicatii 0 reprez intA uti litarele ce necesitA resurse speciale din nucleu. Pentru a putea da posibilitatea si utilizatorilor neprivilegiali de a rula astlel de programe, identilicatorul utilizatorului (uid) se schimba pe parcursul executiei programului. La incheierea unei astlel de actiuni se revine la identilicatorul utilizatorului ce a lansat aplicatia. intrun sistem unux. acest lucru este reahzat prin folosirea atributelor setuid si setgid. Aceste atribute sunt marcate ca permisiuni de acces pentru un lisier executabil. in momentul rularii acelui executabil, procesul creat ru leaza nu mai ruleaza cu drepturile utihzalorului care a lansat programul, ci cu drepturile utilizatorului ce detine lisierul; daca acest utilizator este root, atunei procesul are drepturi privilegiate. Pentru activarea atributelor setuid si setgid se foloseste utilitarul chmod. Bitii asociali ce lor doua atribute se gasesc inlr-un numar in octal ca re precede cele 3 numere in octal asociale drepturilor de aeces:

, ,
, ,. " "
,

root @ l: iwi : -f - r"xr - H - X

," -,

a . out ra2van razvan IJS64

'"'

, , ,

20 : 49 a . out

root@);iwi:-I chrnod 2755 &. o ... t


root@~iw! : - I
-r"xr-Sr-~

," -,
," -,

a . o ut
u~ v&n

ra~van

13 564

'"'
'"'

20 ; 49 " . out

root @ ki wi: - f chmod 4755 root@kiwi : - I - I\;5r -x r -x a . out

~ . out

r~zv~n

ra2v~n

13564

20 : 49 a . out

In exemplul de mai sus, prima rulare a comenzii chmod activeaza bitul asociat setgid (lolosiOO va loarea oclala 2). A doua rulare a comenzii chmod acli~eaza bilul asocial set ui d (Iolosird valoarea octala 4). Alternativ, bitul asociat setgid poate Ii aetivat lolosind sinlaxa g+5, iar bitul asocial setuid eu ajutorul sintaxei u+s ca argumente la chmod. Trebu ie avut in vedere ca marcarea unui executabil cu dreptul de suid reprez inta un potenlial rise de S8Curitale. Daca pe parcursul executiei utilizalorul reuseste sa IOr!eze te rminarea anormalli a programului lnainte de relacerea uidului, se poate ob!ine acces la un shell de root. Din acest motiv un pas important in S8Curizarea unui sislem este determinarea l uturor executabilelor ce au activat atribulul set uid, si dezaclivarea acestuia de la aplicatiilor nefolosile. Aeeast lucru se poate reali za eu ajulorul comenzii f i nd (vezi S8Ctiunea 12.6.3).
roo t @ k i wi: -f f i nd I -perm -4000 -0 -p@r rn -2000 -typ@ f -prin t

300

lNTRODU CERE iN SISTEME DE OPEAARE

Printre utilitarele care au nevoie de activarea alributu lui set uid pentru a pulea Ii fu late de caIre utilizatori obi~nu i !i sa alia ping ~i traceroute .

Schlmbarea riidacinii sistemului de fisiere (c hroot)


Unu t dintre mecanismele extram de elic iente in securizarea unO( servicii sa numeste ch roa t . Acesta presupune dimininuarea vizibi litA)ii unui serviciu in raport eu sislemul de
fi~iere.

Folosirea mecanismului chro ot are rolul de reducere a riscurilor de securitate. Dad. un atacator obline aeces eu ajutorul unei vulnerabilitali intr-un proces ce folose~le chro ot,

aeesla va avea aeces limital Ie sistemul de procesului poar",i numele de chrootjail.

fi~jere.

NOlll director rAdacina yizibil

Pe de alta parte. lolosirea aeestui meeanism este destul de dilicila. datoritli laptului ea in general programele sunt eompilate pentru a Iolosi biblioteei (vezi sectiunea 11.4). Din aeeasta cauza. bibliotecile Irebuie incluse in directorul vazut de proces ea radae ina. 0 alta solulie esle compilarea statica a programelor, lara biblioteci. Fie serverul de DNS bind9. Daea se modifica seriplul de inilializare adaugand op!iunea -e Ivar/dns, servieiul va porni eonsiderand Ivar/dnsl ea radae ina a intregului sislem de lisiere. Primul lisier eaulal va Ii / etc/bind/named . con f. asllel ea inainte de lansarea serviciului va treooi copiat lisierul lete/bind/named. con f in Ivar / dnsl ete/bi ndl named . con f . Pe langa aeestli~ i er vor trebu i eopiate lisierele de zona (necesare conligurarii serviciului de DNS). li~ierele de jurnalizare, dar ~i unele lisiere speciale gen I dev /null sau Idev I log. Majorilatea programelor ce implemenleaza serviciile UNIX olera posibilitalea rularii procesului cu sistemul de lisiere limital. Daca programul nu olera aceasta posibilitate, sau daca se doresie testarea me<:anismului, se poate Iolosi utilitarul c;:hroot. Utilitarul chroot esle implemenlarea la nive lul shellului a mecanismului de schimbare a rMacinii sistemului de lisiere vazut de un proces. in exemplul de mai jos se ruleaza utilitarul chroat inlr-un nou director /root/te st. Daca nu se spe<:iliCli ce comandli se ruleaza , implicit se exe<:ula inlerpreloru l de comenzi precizat de variabila de mediu SHELL. Cum Ibi n /s h aste 0 legalurli catre Ibin/bash. esle necesara eopierea sa in viitorul sistem de lisiere.
r oot ~ ~lwj " ,

pwd

,
2

hoot root@ k iwi : -' mkdir root@ k iwi : -f mkdir roo t @ kiw i: -' cp
t e~ t
t e~ tJb1n

,
,

e "

IbinJba~h

10

t M t /bin/

11

root~k1wi:-' chroot Jroot/t e st chroot : cannot "un command ' /bin/bash ': No ouch Cil@ or di" @ cto"y

,.

"

root~Hwi:_'

"

l dd Jbin/bash 11bncur.e . o . 5 -> Jllb!11bncur.e . o . 5 {O~4001cOOO) libdl . so.2 -> IlibJtls!libdl . so . 2 (Ox4005bOOO)

CAPITOLUL 10. ELEMENTE DE SECURITATE

301

" "

li bC.,o . 6 _> Ilil>/tls/libc . ,o.6 (OK400SfOOO) I li b/1d - linux . $0 . 2 _> Ilib/la-linux.so.2 (Ox40000000) ,A root@l;iwi,-. m ~d(r test/lll> root@l;iwi:_, cp 11 (b/l Hmcuues so . S I l i b/ 1 (bdl . SO . 2 test/lib root@klwi : -I cp Ilibll i bc . so . 6 test/lib roo t @ ki wi: -f chroot roo t @ ki wi:/I pwd
Iroo t / t e ~ t

" "
."
~~

" ,.
"
26

5e observa ca. in prima laza, rularea comenzii bash prin chroot nu poale Ii realizata. Motivul este absenta bibliotecilor. 5e aliseaza apoi lisla bibliotecilor necesare bash, iar respectivele biblioteci sunt apoi copiate in viitorul sistem de fi~iere. Comanda chroot poate Ii acum executata, rezu ltfmd un prompt intrun sistem de fi~iere ce ale doar 2 directoare si 4 lisiere. 5e pot totus i rula comenz ile interne shellului bash.

sudo Utilitarul ,"udo permite utilizatorilor neprivi legiati sli ruleze unele comenzi avflnd identitalea (uid-ul) altui utilizalor (in general a utilizatorului rool). Utilitarul sudo poate Ii lolosil pentru a oleri privilegii limitate anumitor utilizatori si a evita astlel lolosirea contului root; privilegiile acesluia pot deveni 0 problema in cazul in care co ntul este compromis. Controlul utilizatorilor ca re au dreptul sa ruleze comenzi privilegiate, precum si lista exacta a comenzilor este pastrata in liSierul letc/sudoers. Fi~ierul are in mod implicit doar drepturi de citi re. Pagina de manual men!ioneazli The sudoers file should always be edited by the visudo. Utilitaru l vi.sudo evita olerirea unor drepturi proviwrii de scriere si minimizeaza astlel alte riscuri de securitate. La lansarea unei comenzi sudo, dupa verilicarea lisierului letc/sudoers va Irebui introdusa parola utilizatorului ce a Ian sat comanda sudo. Daca se doreste rularea comenzi lor privilegiate configurate fara solicitarea parolei {rise de securilate}, se loloseste tagu l NOPASSVlD in lisierul de co nligurare:
r&zv~n

ALL- (ALL) NOPASSWD : ALL

listingul de mai sus esle 0 linie din fi~ i erul / e t cl sudoers. Utilizalorul ra zvan poate rula in numele tuturor utilizatorilor din sistem (A LL - (A LL) ) oriee comanda (ALL ), tara a ii Ii solieitata parola (NOPAS SWD). Pentru exemplul urmator sa presupunem ca a lost dezaetivat atrioo tul se t ui d din cadrul executabilului /bi n /ping. Penlru a permite utilizatorului rookie sa foloseasea comanda pinq, administratorul va trebui sa adauge in fisierul /et c /sudoers urmatoarea linie:
rookie ALL_ (ALLI Ibin/pi.ng

Daca utilizatorul r ook ie ineearca rularea unui interp retor de comenzi cu drepturi pri~ilegiate, operalia e~ueaza:

302

lNTRODU CERE iN SISTEME DE OPEAARE

roo x le@xlw! : -$

s~do

/bin/bash

2 Sorry, u .er io calhost.

roo~le

Is not

~ll o~ed

to execute ' lbin/bash '

~s

root on

Daca sa incearca rularea comenzii p ing, tara a lolosi sud o, se obtine din nou mesaj de eroa re:
,

rooki@ @ xi wi, -$ /b i n!p,ng 141 . BS . 99 .1 - SU ' {bin/p i ng : Permission denied

Folosirea comenzi i sudo impune parcurgerea


rularea execulabil ului /bin/pi n g :
roo k le@kiwi : -$ .udo Ibln/ping 141 . 85 . 99.1
,

Ij~ierului

letc/sudoers si permile

PING 141.85 . 31 . 1 (141.a5 . 37 . \) : 56 dH ~ byt e , 64 byt~ s f r om 141.85 . 31 . 1 : icmp_~ ~q - O ttl - 64 t ime - O. S

m~

Rularea unei comenzi sucto lara a avea 0 corespondenta in fiSierul letc/sudoers va Ii jurnalizata ca un incident de securilale. Pentru a verifica lista eomenzilor ee pot Ii rulale ea root se poale folosi opliunea -1 a comenzii sudo :
, , Iookie @ kiwi:-$ ,udo -1 U'@ I r ool:i " may run th .. fo ll oWing commands o n this hos t: IALL) /b in /ping

Lim itarea resurselor folosile de un proces sau utilizalor Utilitarul u limit permite controlul resurselor alocal e penlru un proces pornil din interprelorul de comenzi. Pentru inspectarea limilArilor curente se poate se foloseste argumenlul -a :

, , , , ,

...

root @ ki ... i: -f ulimit core til" dH~ .He scheduling priority file SHe pending signalo loe . ed memory

-,
Iblocl:s , (kbytes, Iblocks , Ikbytes ,

,.,

.""

(. .. 1

" "
" "

root@l;iwi :

-.

ulimi t

roo t @ l;iwi:-f ulimit 204B

-. .

, -,' - 0> -" " 1-" "


I-e)
i)

unlimited unlimited 16382

2048

In exemplu de mai sus a 1051 real izala 0 listare a luturor limitarilor curenle. pentfl.l ca apoi sa fie redelinil numarul maxim de fisiere desch ise fa 2048. Dacll, in seopul prevenirii unui atae DoS local (cau zat de erearea unui numllr de procese ext rem de mare). se dore~te limitarea numarului de procese penlru utilizalorul privilegiat, se recomandll adllugarea in fisierul / root / . bashIC a unei limite de procese:
ulimit - u 102 4

Utililarul ulim i t permite limita rea dreplurilor la nivelul unui proces Illra a Ii insa persistenle. La reporni rea sistemului, conligurari le realizate se vor pierde. Penlru a

CAPITOLUL 10. ELEMENTE DE SECURITATE

303

asigura persistenta schimblirilor, pe un sistem Linux se poate lolosi lisierul /etc/security/limi t s.coof. Acest li~ier reprezintli uo mecaoism elicient pentru limitarea resurselor disponibile unui utilizator sau unui grup de utilizatori. Se pot delini doua tipur i de limite, denumite limite software si limite hardware. La deplisirea unei limite software se genereaze'i un mesaj de ateotionare. La depi'l~irea uoei limiUjri hardware procesul in cauzli este terminal. Sintaxa l isierului se bazeaza pe delinirea de reguli. 0 regula are patru elemente: !inta: utilizatorii sau grupurile pentru care se aplice'i respectiva regule'i: tlput de regula : regulile pot Ii definite ca software sau hardware; tlput de IImltare: este precizat parametrul care este limitat: !imitarea : valoarea la care se real izeaza limitarea. Ca exemplu, se presupune cli se doreste limitarea numarului de procese ale utilizatorului roo k ie la 35, iar la depa~irea limitei de 20 de procese sa lie generat un mesaj de avertisment. in plus se doreste limitarea numarului de autentificari simultane permise utilizatorului rookie la to. Pentru aeeasta vom adauga in fiS ierul /etc/security/ l im i t s. can f urmatoarele trei linii:
,
J

roo ki e roo xi e roo ki e

"oft ha r d

npro c nproc
maK109in~

Limitarea spa! iului ocupat pe disc Umitarea spa!iului ocupat de !isierele unui utilizator se realizeaza prin lolosirea de cote. ln Linux, acest lucru eSle realizat cu ajutorul utilitarului quot a . intrucfll configurarea acestui utilitar depaseste domeniul acoperit de aceasta carte. recomandam cititorului sa parcurga unul din multiplele tutoriale din Internet legat de conligurarea cote lor in Unu .

10.4

Atacuri de refea

Privite ca forma principale'i de actiune a crackerilor, atacurile de relea nu trebuie sa constitu ie cuno~tin!e interzise sau privite cu suspiciune. intelegerea modului in care un atae este produs, a eonditiilor care laciliteaza produce rea aeestuia si a efectelor ulterioare sunt esentiale pentru a proteja 0 re!ea de calculatoare sau pentru a delini politieile de securilale asociate. Cunostin!ele ~i deprinderile legate de atacurile de re!ea sunt necesare ethical hacker-itor, persoane specializate in fo rme de testare a sistemelor informatice pentru securizarea acestora.

10.4.1 Tipuri de atacuri in retea


Atac uri le de relea sunt clasilicate in lunctie de gravitate io trei categorii: atacuri de recunoa~lere. ataeuri DoS, ~i atacuri de ob!inere a accesului.

304

INTRODUCERE iN SISTEME DE OPERARE

in~iala .

Alacurile de recuno8\11ere nu SUi'll atacuri pmpriuzise, ci de obicei constituie faza de investigare, a unui alac (vezi sec)iunea 10.4l Cel mai simplu alac de

recunoastere paale Ii general printrun script ce inventariazA sla!iile dinlro relea


folos ind pachete de ping. Pentru a obtine informalii in legalura cu servici ile rulata pe 0 masina S8 poale lolosi 0 aplica!ie de scanat porturi (vezi sectiunea 10.4.3) , Ap licatiile mai complaxe de recunoastere olara nu numai lisla serviciilor, dar si 0 lisla: a posibi lelor

vulnerabilitiUL Un astfel de utililar asIa Nessus' _


Atacurile DDS (Denial of Service) au ce seop coogastionarea unai relele, a unui server sau doar a unui serviciu, in scopul reducerii sau opririi lunctionalitatii. Se poate distinge inlre atacurile c las ice DoS. bazate in general pe flooding. ~i alaeurile DoS dislribuite, numite DDoS, ce au la baza un mecanism de propagare (un virus) pe un numar cat mai mare de destinatii si sincronizarea ataeului DoS catre 0 tinta, Un flood reprezinta un numar loale mare de pachete ve nite inlrun interval scurt de limp. Un Iralic ce poale Ii inlerprelal drepl llood la nivelul ruterului de acees in re!eua locala poale Ii Iratat drept Iralit normal in nucleul Inlernelului. Penlru lehnologiile aCluale un Ilood eSle deMit astfel: la nivelul unui switch de nivel 2 un numar de 100.000-1 50.000 de pachete pe secunda; .. la nivelul unui ruler de acces (ce conecl eaza 0 relea loca la) un flood are 8.000-12,000 de pachele pe secunda: in nucleul Internelului un tralic de milioane de pachele pe secunda poale Ii tralal drept Iralic legitim. in ciuda capacitatii de prelucrare a unui valum de pachete de ordinu l zecilor de mii pe secunda, complexilatea adi"iugali"i de modele de flood specifice poate reduce limila de pachete pe secunda la cateva sute. ICMP flooding se bazeaza pe trim iterea unui numar toarte mare de pachete ICMP (de tip ping). consumand intreaga li"i!ime de banda disponibila. Cel mai adesea atacul este preven il prin liltrarea intrag Iraficului ICMP, cu costul pierderii funC!ionalila!i utililarelor p i ng ~i tra c .. r o u t ... Alacul UDP flooding are electe puternice cand lolose~te drep! !inti"i porturile 7 ~i 19, ad ica serviciile de ec ho ~i c hargen. Acesle servicii liind rar lolosite. i n relele loca le pot Ii oprite de lirewall-ul de intrare in LAN, li"ira un impact real asupra lunc!ioni"irii (etelei. Atacurile bazate pe Ilooding sunt in general combinate cu un atac de tip s poofing, pr in care se genereaza ad rese sursli fictive si dilerile pentru pachetele din flood. In lipsa unui alae spooling, 0 liltrare pe baza depi"isirii unui numar limitli de pacilete per sursli ar elimina alacul flooding. Alacu l spooling as igura in acela~i limp ascunderea idenlitalii ataeatorului. In plus, daca destinatia alaeului bazal pe llooding nu esle 0 sursi"i !inli"i ci adresa de d ifuzare a unei relele. loale ech ipamentele din respectiva retea vor incerca si"i ri"ispundi"i unei surse ce nu exisli"i T n real ilate, alac ul devenind un alac de tip DDoS si se va numi un alae smurl. Alacuri le DDoS pornesc de la pule rea enorma de calcu l disponibila in relelele actua le locale. Unele dinlre aeesle alae uri pot Ii neintentionate, precum in cazul Slashdot effect. Numele vine de la vestitul site Slashdot, care a postal un link caire un site cu capabilita!i
I http)lwww.n.... u .orglne .. usl

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

305

mai mici. CAnd loarte multi utilizatori au incercat sli acceseze respectivul site, efectul a lost echivalent cu un alae DoS. Atacurile de ob~inere a accesului au impaclul eel mai mare, deoarece prin ob)inerea accesului la un serviciu eel mai adesea pot Ii compromise ~i alte servicii sau masini. o pondere importantli in atacurile de otJtinere a accesului 0 au atacurile tJazate pe exploalarea vulneratJ ilillitii aplica)iilor wetJ. SutJieclul esle unul amplu, iar ce i ce vor sa urmlireasca numeroasele metode de exploalare a riscur ilor de securitale ar tretJui sli parcurgA cartea lui Joel ScamtJray, Hacking Exposed Web Applications [24]. Atacurile de otJlinere a accesului pot avea dreptlinta ~i tehnologi ile din spalele aplicatiitor web, un numar important de atacuri !iind directionat lmpotriva tJazelor de date. Cel mai cunoscut astlel de atac este inse rarea de cod SOL (SQL Injection). Acest atae se tJazeaza pe modul direct de interogare a bazei de date.
SELECT X from TABLE where
us~r

- $user_ input AND pa 55 - Spa ss_ input

PresupunAnd scriplul de mai sus, daca la inlroducerea in cAmpul utilizator a unui oome va lid de utilizator urmat OR -- (in SOL -- delineste un comentariu). operatia de selec)ie devine:
SELECT X from TABLE where us er - $xxx OR -- AND
pa ~~

- ' nu_ conteaza'

si va Ii validata pertru orice nume de utilizator allat in baza de date. MergAnd mai departe se poate introduce in c<'lmpul utilizator Xxx OR I- lOR -- , aceasta garantAnd accesul indite rent dacli utilizatorul xxx existli sau nu in baza de date. Pentru a preveni un astlel de atac, interogarea bazei de date trebuie facuta prin tunc!ii de biblioteca ~i nu direct prin select. Exista aplicatii ce oferli posibilitatea lansarii unui numlir mare de alaeuri. 0 astlel de aplica)ie esle melasptoit' . Dupli 0 laza de determinare a vulnerabititalilor (efecluatli, spre exemplu cu Nessus) se pot selecta vulnerabi litAti le gAsite si pot Ii lansate simultan mai mulle atacuri de obtinere a accesului. Dincolo de noliunile lehnice legate de atacurile de relea. nu trebu ie pierdul din vedere riscul de securitale adus de utilizatorii neglijenti din relea. Chiar si in cazu l unor utilizatori responsabi li, nu trebu ie ignorale riscurile unui alae bazal pe inginerie soc ialli. Nu esle 0 intamplare ca eel mai cunoscut cracker eSle Kevin Mitn ik. ale cArui atacuri s-au bazal in mare ma sura pe 0 buna inlelegere a modului de gandire a utilizalorilor ~i a administratorilor din re!etele actuate.

10.4.2

Virusi, v iermi , troieni

Un viru s esle un program sau doar 0 secven\a de eod ee se ala~eazA altor tis iere executabile larA cunostinta sau acceptul utilizatorului. Un virus include alaturi de mecanismele de execulie ~i modalitati de replicare prin inserare in eodul altei aplicalii.
, http.llwww.metasploil.co m

306

INTRODU CERE iN SISTEME DE OPERARE

Clasificarea viru~ilor in lunc;ie de modul de replicam distinge intra mai multe tip uri de dintre care eei mai intalni~ sun\: vi ru~i de email, de macro, bombe log ice, virusi de bool, vie rm i ~i tro ieoi.
viru~i.

Simpla prezenlA a unui fi~ier in/octat pe un calculator nu aSIa echivalenta cu infoctarea sistemului. Penln! a infecta sistemul, un virus trabu ie sa fie e~eculat cel pulin 0 data. Unele aphcatii fuleazA cod eXe(:utabil in mod automat (fiini informarea utilizatorului). Un exemplu asle rularea fi~ierului au to r un . i n f' la mon\area unui CDROM sau USB

sUck.
Email-u.asle unul d intre modurile pr incipate de propagare a viru$ilor. Virusii de email sun\ conlinu~ in alasamentul emailului, daseori avand exlens ia schimbata {cel mai adesea in extensie speciliea imaginilor}. Ap licatia )inta a unui astle l de vir us este clientul de email, Oalor~a numarului mare de ulili zatori ai Microsoft Outlook, 0 mare parta a acastor viru~i sunt dazvollati special pantru aceasta aplieatie.

Odata executat un atasament de email inlectal, virusul se incard in memoria RAM si va urmari sa se multipliee. Pentru aceasta va cauta lista de adrese constru ite de clientul de email (address book) , Majoritatea clientilor de ema il creeazA lisla de adrese in mod dinamic, fara consultarea utilizatorului, ~i nu 0 protejeaza prin criptare, Odata deschisa lisla de adrese. virusul va lolosi diract AP I-ul de trimis amailuri pantru a sa mu~ipliea , Exemplele de viru~ i de email sunt MyD o om, I l ov e you , o a doua categorie importanta de virlr,l i 0 reprezinta viru~ii de ma cro . Un macro esle o bucatA de cod executabi l, ata~ata unui l isier document. Aplica?ile !inta a acastor virusi sunt cele de gestionare a documentelor, gen ed itoare de text, loi de lucru, sau editoare de prezentAri. Aceste aplica)ii In general vor aten!iona ulilizatorullnainte de deschiderea unui document ce contine macro uri. Pentru a reduce gradul de rise. daca la deschiderea unui I~ier sunte~ avertiza!i de e~istenta unor macro uri, inchideti documenlul si rula!i un program antivirus pa respectivul fi~ i er. de boot nu reprezinta 0 amenintare majora pentru sistemele actuale datorita dilicultatii de laJ1sare in executie. Penlru a lansa un astf~ de virus, sistemul trebuie sa incerca initializarea de pe 0 partitie infectatiL Impactul acestor virusi sa diminuat odata cu dispari)ia floppy d iscurilor. in prezent viru~ii de boot se pot propaga prin CO -uri sau flash carduri, Trolenil (trojan horses) reprezinta aplicatii (aparent legi~me) ce con~n (sau instaleaza) un program malilios, Pentru a avila astlel de alacuri se recomaJ1dA instal area aplicatiilor doar din surse sigure, precum ~i veriticarea intag rrtati i fisierelor Inainte de instal are. Vlermii (worms) sunl programe care folosesc vulnerab ilita!i in diferite servicii din Internet pentru a se muitiplica, Virus ii de mail reprezintA 0 categorie de viermi. Pentru a reduce impactul virusilor sunt importante atat masurile lu ate la nivelul ratelei, cat ~i exersarea unor deprinderi din partea utilizatorilor. Este important ca accesu l in retea sa lie protejat de un firewall (vezi sectiunea 10.5.1), ca serverul de email sA aiba instalat un antivirus, sa existe 0 politica de monitorizare a serviciilor etc. La nivelul utilizatorului eSle important sa nu lanseze in execulie lisiera primite prin emai l, s;'i nu deschida alasamente primite de la necunoscuti, sA mentinA un antivirus actualizal pe sta)ia de lucru etc.
I htlpJ len, wikiped ia, ",glwikV Aut" Ru nif Mack _ .""t"rs
Viru~ii

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

307

10.4.3

Scanarea porturilor

Un program de scanat porturl este 0 ap li catie care iniliaza conexiun i catre toale porturile unei sistem tinta. $copul este cel de a detremina care porturi sunt deschise, alla.nd astlel ce servici i sunt disponibile. Programele de scanat porturi lac parte din setul de utilitare de baza. folosite atollt de crackeri (blackhat hackers) ~ i ethical hackeri (white-hat hackers) pentru a detecta serviciile deschise pe un sistem si versiunea acestora. Dadl in urma scanarii de porturi se detecteaza servicii potential vu lnerabile. se poate trece la folosirea unui exploit.
Slar~itul anilor '90 i n Romania a dus la 0 cre~tere dramatica a popu larit<\1i i programelor de scanat porturile, atM in nl.ndul cracker ilor c:l.t si al administratorilor de relea. Principala cauza. a acestei schimba.ri a fost dezvoltarea retelei metropolitane. precum si a dileren!ei foarte mari intre costul tralicului metropolitan si cel al tral icului Internet. Astlel intr-un interval relativ scurt numa.rul atacuriior asupra servereior allate in rete le publice (mai ales asupra celor allale in universilali) a crescutloarte mult.

nu este ilegala., lolosirea unui scaner de porluri poate Ii interpretata drepl un alae, si prin urmare este posibil sa va he liltrat accesul din reteaua din care au lost ini!iate scana.rile. 0 asHel de restriclionare este totu~i destul de improbabila.

De~i

Utititarul nmap Exista numeroase aplica!ii de scanat porturile, una dintre cele mai cunoscute liind nmap'. Dalorita popularitatii de care se bucura in randul administratorilor de sisteme Linu x, aplicatia a fost portata ~i pe platforme Windows' . nmap implementeaza mai multe metode de scanare. putand oferi inform alii despre porturile deschise, dar si despre porru rile explicit filtrate. i n plus fata de inlormatiile releriloare la sericiile rula!e. nmap pune la dispoz i ~a administralorului de relea melode de detectare a statiilor active dintro relea , de all are a vers iunii sistemului de operare, versiun ile serviciilor acti ve, utilizatorii ce ruleaza aceste servicii , precum si mulle aile informatii re levante pentru sistemul scanat. Dintre cele opt l ipuri importante de scanare, ~ase se relera la scanarea porturilor TCP, unul la scan area portur il or UDP si unul la monitorizarea conectivitajii , aceasta ultima metoda incerc:l.nd sa. determine doar daca stalia destinalie este activa ~i daca. se poale ajunge la ea.
Op~unea

- sP (Ping Scan) permite detectarea sta!iilor active intro re!ea locala:


- ~p

,
, S 6 ,

root @ eu r s ur i :-' nma p

141 . BS . 37 . 0 / 2 4

St art i nq Nma p 4 . 6 2 ( h u p : fl nrnap . o r q ) at 200 9 - 09 -23 16 : 21 EEST Ho s t c sr . es . pub. ro ( 141 . 85 . J7 .1 ) ~ppe~rs to b e u p . f.'.AC Addr ess : OO: 09 : 6B : a 9 : 0 6 : 67 I I BM ) Ho st ft s.eate . ro (14l.a 5 . 3 "] . 2 ) appurs to b e ~ p . f.'.AC Addr ess : OO : 11 : 31 : 49 : 3A : E 4 IAs u ste k Compute r)
, http ://www .in.
8 CUf8 .ory/nm ap

' http ;llwww,sourc ,.Jorge,ne~pfOj&ctsfn mapwjn

308
" 10 " 12 " ,. 15

INTRODUCERE iN SISTEME DE OPEAARE

Host p r oLc . pub . ro (141.85 . )7 . 3) ~ppe" r . to b e up . MAC Adaress, OO;09 : 6B : 89 : 05 : 24 (IBM) Host info.cS.pub . ro {l41.8S.J7 . 6) appears to be up . MAC "dare"" , OO ; 13 ; 8f : 18 : 42 : 2C Ii\si aro" k Incorporation) Host 141.65.31.7 appears to be up . MAC "ddre". , OO ; SO ; S6 : 9A : J3 : 46 IVMOI"re) Host 141.85 .37.8 a ppe a ~s to be up . MAC Addr ~ "" : 00 : 09 : 6B : 89 : 06 : 67 (IBM )

Metodele de scanare a portu rilor Tep sun! d iierentiale prin prezenta unui anumi! flag inlr-ull pachel Tep. Op!iunea - sS {Tep SYN scan) eSle op! iunea implicita care folose~te

flagul SYN al Tep si detecteaz1'i porturile deschise pe un sistem.


> You
raz" .. n @ v a lha ll a : -/cart e- uso$ ruMP - ,5 localho't r ~qu~"t~d " ,can t ype which requi r e, r oot privi.l"ge ~
.

"

QUITTHlG '

Ioot @ valhalla : -I mnap

- ~S

localhos t

,
"
~

Starting N m ~p 4.69 ( http : //nmap.o rg ) ~t 2009-09 - 23 15:38 EEST I nteresting ports on 10c&lhon 1127 . 0.0.1): Not shown : 1105 closed ports
PORT STI<TE SERVICE

10

" "
" " " " " 22

"

" "

"

21/tcp 22ftcp 25ftep 53/ tc p IIlftcp 139ftcp 445/tcp 631/tcp 5900/tcp 1634/tcp

open open
op ~ n
op~n

op ~ n op ~ n

;mtp domain rpcbind


n e tbio~ -~M micro~oft -d~

'" ,"

open ope n open op@ n


I

"0

hddt"mp
IP address II host up)

Nmap done,

scanned in 0 . 31 2 seconds

OP!iunea - s5 necesita drepturi privilegiate. in exemplul de mai sus, utilizatorul neprivilegil r a zvan nu a pulul rula comanda nmap cu oppunea - sS , liind necesara lolosirea utilizatorului root. Penlru utilizalorii neprivilegiali, se POI lolosi aile opliun i precum - sT (TCPconnecr scan). Comportament ul este simi lar op!iunii - 8S , dar mai lent:

,
" ,

'a.v a n@valha ll a,-/c~rte - u ~ o$

nmap - oT l oca l host

Starting Nffi<'lP 4 . 69 ( http : //nmap . org ) at 2009-09-23 16 : 00 nSl In t eresting port" on local hos t 1121 . 0 .0 . 1) : Not sho.on : 1105 close d poet s
PORl SlATE SERVICE
op~n


10

"
"

" "
,e

2lftep 22/ tc p 25/tcp 53/tcp II1/tcp I39/tcp 445/tcp 631/tcp 5900!tcp 7634!tcp

op@ n open ope n open open ope n open open

smtp domain rpcbind


nHbio~-~sn

,,'
'"

ml cro~oft - ds

".0

hddtemp

CAPITOLUL 10. ELEMENTE DE SECURITATE

309

" ,a

Nm~p

done: 1 IP "ddreu (I host up) scsnned in 0 . 170 seconds

Aile douA optiuni de scanare importante sunt - sV si - 0. Optiunea - sV olerA intorm at ii despre versiunea servieiilor ce asculta. pe porturile deschise, in vreme ce op)iunea - 0 oferA informa!ii des pre sistemul de operare instalat, precum si timpul de la ultima reporni re.

,
,

root@Hw i :-' n"",p - sV - 0 141 . S5 . 37 . 53

St~ r ting nm"p 3 . 55 { http : //www . in.ecu r e.or\l/nmap/ 1 o t 2004 - 06 - 27 1 7:23 EEST lftteresting ports on dhcp- 53 . cs . pUb . ro (141 . 85 . 37 . 531 : S IThe 1659 ports sc a nned bot not shown below are I n HUe : closed) 6 PORT STATE SERVICE VERSION , 22!tcp open ssh OpeoSS~ 3 . 8 . 1p1 (protocol 1 . 991 a Device type: geneul purpose Running : Linux 2 . 4.XI2 . 5 . XI 2 . 6 . X ' 0 05 details: Li nux 2 . 5 . 25 - 2 . 6 . 3 o r G~ntoo 1.2 Li.nux 2 . 4 . 19 rcl - rc7) 11 Upt ime 0. 1 05 d .. y~ (~inc@ Fei Aug 27 14:52: 1 2 20041

" "

Nm~p

r un completed -- I IP

~ddress

11 ho,t upl ,canned ,n Il . B40 second,

nmap olerA ~i alte oPliuni. Comanda de mai jos real izeazA scana rea portu ri lor cupr inse intre 1 si 100 pe slatia localA:

,
, "
6

root @ valh" l h:-/c"rte - usol


St~ r ting

nm~p

- p 1- 1 00 l oc" l host

, a g 10 12

Nm"p 4 . 6a ( http : //nmap.o r g 1 "t 2009 - 09 - 23 16 : 14 EEST Interesting ports on local host 1127.0.0. 1): Not shown: 96 closed ports FORT STATE SEIIVICE 21/tcp open ftp 22!tcp open ssh 25/tcp open smtp 53/tcp op ~ n domain
Nm~p

"

don@: 1 I F .. ddre~~

II host upl scann@d i n 0 . 107 ,@conds

10.5 Securizarea re,elei


Securizarea unui sislem sau a unei re!ele pol presupune invesli!ii imporlanle ali'll in echipamente, cAt si in software. Cu toate acestea, oriee sOlutie de securitate nu trebu ie sA piard1l din vedere c41 eva componenle de bazli.. Primul pas in orice solu!ie de securitale 0 reprez inta stabillrea unor politlcl clare de securitete. 0 astlel de politicA de securitate va urmAri: separarea domeniilor cu nivel de secu ritate dilerit: delinirea clara a drepturilor fiecarui ulilizator; delinirea servici ilor ce trebuie oferile de fiecare componenlA a relelei. Odata slabi lita. polilica de securitate va l rebui reslrie!ional l ral icul nedoriVnenecesar prin configurllrea politlcllor de fillrare II pach etelor si a unui firewall (vezi sectiunea , 0.5.1).

310

INTRODU CE RE iN SISTEME DE OPERARE

Inleclarea sialiilor dintrQ relea localA peale oferi 0 poarta de aeces unui alacalor in spatele firewall-ului, reducand gradul de securitale al rata teL Din aces! mOliv un administrator responsabil nu sa va ocupa dcar de configurarea lirewallului ~i a serverelOf, oi si de securizarea slatiilor de aeces

o componenta imporlanta a securitatii 0 reprezinta confiden!ial ilatea.

in scopul

protejarii unor dale sensibile S8 recomanda contigurarea criptArii traficului. Operalia de aulef1tificarea trebuie sa fie, in general, 0 operatie securizati:!, a~a cum S8 inlamplE!. in cazul SSH.

10.5.1

Firewall-uri

Firewall-unle sun! dispozitive sau aplieatii care filtreazA pachetele de relea pe baza unor politici sau reguli prestabilite.
Firewal'-urile au rolu l de protejare a retelei prin fi ltrarea traficu lui nedoritlnenecesar. Un firewal l peate fi configural s~ filtreze lraficul ICMP pentru a preveni atacuri de lip flood, ce rerile de ini\iere de conexiune in re\eaua locala sau orice traliC care nu este men!ional explicit ca fiind Iralic legitim, Firewal '-urile POI Ii dispozilive dedicate (firewall-uri hardware) sau aplicalii (firewalluri software), Firewall-urile hardware sun! mai rap ide, dar prezin!<l costuri mai mari. Firewal '-urile software prezinta avantajul flexi bilila!ii. dar nu sunt la fe l de eficiente ca firewal '-ur ile hardware. Ap licalia lirewall pe sistemele Linux eSle Iplables '. ExceplAnd rolul sau de til!rare a pachetelor, iptables poote fi folosit ~i pantru alterarea pachetelor ~i pentru NAT (Network Address TranslaUon). Sistemele Windows incepiind cu Windows XP dispun de a aplicatie fi rewall naliva, Windows Firewall, dar exisla numeroase aplicatii de lip lirewall persona l, precum Zone Alarm'.

10,5,2

Criptarea informatiei

o lehnica folosita incA din cele mai vech i limpuri, criptarea irltormatiei irlseamrla folosirea unui algorilm care sa trallsforme un mesaj cunoscut illtrun mesaj criptat. Aceast algoritm presupune, in general, Iolosirea unei che i de cr i p t are. Opera!ia irlversa se cheama decriptare. Criplarea este Iolosita pentru a proteja datele de aeces neautorizat. Datele proteiate pot Ii stocate la Url moment dat pa Url dispozitiv de suport sau pot fi date trarlsmise prirl relea. irl domelliul IT, exista doua lipuri de criptare: criptarea cu chei simetrice ~i criptarea cu chei asimetrice.
1http)lwww.nmfilt8f.0.li . ht.pJlwww.ZOIluta. m.comisecuf it1Ien- u..... ome.htm?lid . .... ...

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

311

Criptarea cu ch ei simetri ce presupune folosirea unei chei atfH pentru criptare cAt 5i pentru decriptare. Cheia esle secreta - esle cunoscuta doar celor doua entitali care comunica. Formal, cele doua operalii sunt descrise asUel:
cripta re : K IM) - C decr i p t are : K IC) - M

eSle che ia, M asle mesajul ini~al , iar C eSle mesajul cripta\. Foklsirea pesle mesajul criplat duce la obtinerea mesajului ini!ial.
K

aceleia~i

chei

Exemple de algoritmi de criplare cu chei simestrice sunt DES, Twol ish. Siowfish. IDEA. AES. AES (Advanced Encryption Standard) esle algoritmul adoptal ol icial de gLNernul SUA. Algoritmul a lost ales in urma unui proces de standardizare de 5 ani la care au participat 15 proiecte dilerite. Criptarea cu ch ei asimestric e Ioloseste 0 pereche de chei: 0 cheie publica si 0 che ie pri~ala. Dupa cum reiese si din denumire, cheia pri ~ata esle secreta. iar che ia publica este accesibila de oricine. Exista doua utilizari penlru 0 pereche cheie pri~atAlche i e publicA: semniituri digitate (digital signatures), in care cheia pri~ala este lolosita pentru criptarealsemnarea unui document, iar cheia publica eSle folosita pantru a ~erifica laplul ca documenlul este autentic: oricine poale face ~erif icarea dar numai de\inalorul chei pri~ate poate semna un document; criptare (public key encryption), in care cheia publica este folosita pentru criptarea unui mesaj, iar cheia pri~ala este folosM pentru decriptarea mesajului; oricine poate crea mesajul crip!at pentru a Ii transmis posesorului cheii pri~ale, dar numai acesla din urma poale decrip!a mesajul. Formal, procesele de semnare mai jos:
semnare : p( M) - S ve ri f icare : P IS) _ M c r ipta r e : P IM) - C dec r i p t are : piC ) M
~i ~Bfilicare

l?i cele de criplare l?i decriplare sunt descrise

i n cazu l semnarii. se 1010seSIe cheia privatA p penlru a "cripta" mesajul M in mesajul S. Cheia publica P es!e folosi!a pen!ru decriplarea mesajului S inapoi i n mesajul M. in cawl criptarii/decriplarii, lucrurile se deslasoara asemanator, dar se folosesle cheia publica pentru criptare ~i cheia pri~atA pentru decriptare. Criplarea cu chei asimelrice esle, in general, mai sigura decal criplarea cu chei simetrice: cheia nu Irebuie sa fie partajata si algoritmii sunt mai robusti. Cu toate aceslea. criplarea cu chei asimeslrice esle mull mai lenla decal crip!area cu chei simetrice. Exista situa!ii In care cele doua metode se folosesc la un loc. Spre exemplu, in cazul SSH, inil ierea oonexiunii se lealizeaza Iolosind criptare eu ehei asimetrice; in urma inil iBfea se rea lizeaza 0 negociere dupa care se ob!ine 0 cheie simetrica: aceas!A che ie va Ii fo lositA in continuare pentru criptarea comunicatiei . inlre clientul si . ser~erul SSH.

312

INTRODU CERE iN SISTEME DE OPERARE

o extens ie a semnalurilor digitate 0 reprezinta certificatele digi ta le' . Un certifiea! digital conIine 0 cheie publ ica si un set de informatii despre posesorul certificatului semnate

digit ale. Intruedl che ia publK:1i esle inclus1i. in certifieat, oricine poate verifiea validilalea informaliilOf. Oepinzand de infrastNctura folos ita, semnatura poale Ii a unei autor~ati
specializate (eA - certificale authority', i n cazul PKI- public key infrastructure'll sau a rna; multor utilizatori (e ndorsements), in cazul web of trust".

10.5.3 Monitorizarea retelei


Autorii de cAl1i de relele de calculatoare sau de ghiduri penlru administratori; de retea precizeaza in gel'\eral ea activilatea de monitorizare eSle una dintre cele ma, importante sarcini ate unui administrator. Cu toate aces tea , adesea, recomandAril e propuse sunt deseori limitate la cele e~k:lente precum: "Un administrator trebuie sA cileaseA regulal jurnalele de pe liecare ser~er" sau "Este important sA nu uitati . sA pornrti . ser~iciul de monitorizare".

Este important de illteles cA monitorizarea nu se rezumA dear la rularea unui daemon de genul sys klogd sau la deschiderea sAptAmilnalA a unei aplicatii pracum Eve nt Viewer, Cele douA tonetii principale ate monitorizArii sunt asigurarea dinamicA a se<:uritA)ii pr in alertarea i n lala unei illoorcAri de atac, ~ i posibilitatea localizArii ~i definirii unei delec!iuni sau a unei l unctionAri suboptimale. EXistA mai multe criterii pentru a clasilica primA clasilicare lace distinclia lnlre: monitorizaraa unui sistem specilic; monitorizarea conectivitAtii: monitorizarea tralicu lui din relea. Monitorizarea unui dispozitiv specilic presupune rularea ullui serviciu ce va urmAri apetarea celorlalle servicii , precum ~i accesul la jurnatele create de acest server. Un exemp lu este serviciul de jurnalizare olerit de syskl ogd. Monit~ permite monitorizarea proceselor, fisiere10r ~i poate sA e~ecute diverse actiuni la nevoie. Monitorizarea conectivitAlii se bazeazA deseori pe mecanisme loarte simple, cel mai important dintre acestea liind folosirea utilitarului ping , metoda l iind denumitA ping sweep. Crearea unui sistem de interogAri ICMP periodice poate oferi administratorul ui informatii despre i ntreruperaa unui segment de retea sau des pre defectarea sau stingerea unuia dintre servere. Ull astlel de sistem de interogAri poate Ii realizat ori printrun scr ipl simplu, or i se poate apela la aplicatii dedicate. Monitorizarea de relea cuprinde numeroase componente, de la dispozitive hardware dedicate (denumite generic IDS - Intrusion Defecfion System), la programe de interceptare a tralicului in relea (programe de sniffing), precum si programe de evaluare
, hnp 11en ,wikiped ia, orgIWikiID ig itaL ee, tihcate ' http j l en ,wikiped ia. or(jlwikilCe 'tilica Ie_ autho'ity ' http://en ,wikiped ia.or(jlwikilPublic_ " ''y_ infrMIruc:tur e http) l en ,wikipedia ,<> r(jlwikiIWeb_of_ l rusl http) l mmon it.comimonili

di~ersete

l ipuri de actiuni de monitorizare. 0

C JPYnghted matanal

CAPITOLUL 10. ELEMENTE DE SECURITATE

313

a securitatii unui sistem din retea, in aceasta categorie intrAnd programele de scanat porturi. 0 ap licatie Ioarte cunosc uta de monitorizare a re!elei este Nagios' . Aparilia switchurilor in re!elele locale a transformat mediul partajat al Ethernetului in tr-un mediu dediCat. Cu alte Cuvinte, inlr-o retea cu switch uri, pachete le schimbate intre doua sta!ii nu vor mai Ii vizib ile de 0 a tre ia sta!ie aflata in aceea~i re!ea locala. In aceasta situa!ie, un administrator de re!ea ce do re~te monitorizarea Iraficului catre 0 anumita deSlinatie va trebui ca inainte de a lansa prog ramul de interceptare a traliCu lui sa faca un atae ARP poisoning' pentru respectiva destinatie. Pentru aceasta se pot Iolosi ulililare precum Cain' si dsniff'.

Utilitarul tcpdump tcpdump este un utilita r deslinal monitorizarii Iraficului in re!ea


~i

achizitionarii de date.

Placile de retea. cum sunt cele Ethernet, capt ureaza la nive lul legalura de date door cadrele adresate lor sau pe cele de difuzare. De aeeea, penlru a caplura toate cadrele, tcpdump Irebuie sa Ireaca interfala intrun mod special de Il.lCru, numit promiSCuous mode, pentru care are nevoie de suportu l sistemu lui de operare. La 0 ru lare simpla, tcpdump caplureazl'i paehetele de pe prima interiata de relea a sistemului si ati~eaza informali i din antetul IP ~i

rcp.

2
3

root@froao:-' tc pa~mp tcpaump : liotening on ethO 14 : 45:09.252803 frodo . no1.39993 > 64 . 12 . 30 . 90 . 5190 : p 444608787 : 444608793(6) ack 1453900500 .. i n 32893 {DF) 14 : 45 : 09 . 254091 frodo . noi . 33335 > ma i n.no i. domain : 16713+ PTR ? 90 . 30 . 12 . 64 . in-addr . arpa . (42) {On 14 : 45 : 09 . 254583 main . noi . domain > frodo . no i. 33335 : 16713 NXDoma i n 0/1/0
{1J3)

{on

In exemplul de mai sus, fieeare linie contine: timpul in care paehetul

rcp a intrat in reteaua local1'i;

informali i legate de antetullP (adresa sur5a 5i adre5a destina!ie); informali i din anlelu l TCP (pDrt su rsa, pot de5linalie, numere de 5ecven!a, flaguri TCP). Pentru a vedea 5i contin utul pachetuiui se poate utiliza optiunea - x :

, ,

root@froao:-* tcpdump - cl -> tcpau mp: l istening on ethO 18 : 38:51.061244 64 . 1< . 24 . 46 . 5 190 froao. nol . 3<777 : 3127656695 : 3127656a09(114) 3009470569 win 16Ja4 {OF) Ites Ox60 ] 45aO 009a c7a1 4000 6406 354d 400c 1630 cO~8 OOOb 1446 8009 ba6e 40n b360 e069 5018 4000 HOd 0000 2a02 20de 006e 0003 OOOb 0000 87d9 Od61 0836 3032 3033 3631 3400 0000 0700 0 1 00 0200 7000 OcOO 2500

."

, http://Www.nag ''' .orgi , http ://M .w ikip"d ia .e , (jIwik ~AA P _ spoofing , http ://www.oxKl.lIIca in.hi mf

http ;llWww.monkey.org!-dug&Ongldsniftl

3"
10 "

lNTRODUCERE iN SISTEME DE OPEAARE


0000

6 p~c k ets r ece i ved b y filter 0 pac l; ets d ropped by kernel

Conform structurii unu; pachel IP, primii 20 octeti (4580 009a c7a l 4000 6406 354<1 400C
1830 cOa6 OOOb) reprezintA antetullP iar urm1ltorii 20 de octeti (1446 8009 ba6c 4017

b360 e069 5018 4000 1lad 0000) reprezinta a ntetul TCP.


Exisla solu!ii grafice ce realizeazd interpretarea con~nutului pachetului. Cea mai cunoscutA aplica!ie graficA de interceptare si interpretare a tralicului de relea aSle Wireshatk ' , ulilitar disponibil alaI in mediul Windows, cat ~i in Linux. Echivalentul
penlru t c pd ump in lumea Windows eSle wi nd ump'.

10.6 Studiu de caz


10.6.1 Drepturile pe
fi~iere

in NTFS

Sistemu l de fi~iere NTFS olera 0 serie de imbunatatiri lalE!. de FAT, atal din punctu l de vedere at performantei, cat ~i at securitiilii. inlr,un sistem de tis iere FAT, loate conluri le de utitizator au drepturi egate ~i depline asupra sistemului de fi~iere,

Figura 10,2: Precizarea dreplurilor in NTFS Securitatea In NTFS se implemenl eazA prin inlermediul mecanismului de lisle de acces,

o lislE!. de acces reprezinla un set descriptori ata~ati fi ~ierefo r ~ i direcloarelordin sistemut


, http;!lwww.wi,e.ha ,k. Dlg! ' http;!/www.winpcap.O'glwindu mp~ n .. a lV

right

ma'sonar

CAPITOLUL 10. ELEMENTE DE SECURITATE

31 5

de l isiere. Pentru ca un proces sa poatii accesa un lisier sau un director, sistemul de securitale verifica daca procesul are dreptul de a-I accesa. Ca masura sporita de securitate, sistemul de li~iere NTFS olera posibililalea criptarii datelor pe care Ie stocheaza. Avantajul implementarii mecanismelor de criptare direct in sistemul de li~iere 11 reprez inta viabi litatea pe care acest tip de securitate 0 men!ine in lucrul cu oriee sistem de ope rare care olera suporl pentru sistemul respecliv de lisiere. Din mediul Windows , criptarea unui l isier sau a unui director (inclusiv a con!inutului saul se lace din ecranul de proprietali al I~ i eruluildirectorului (elie dreapta > Properties> Advanced> "Encrypt contents to secure data-). Pentru a putea actiona granular asupra securitAtii sistemului de lisiere, in Windows trebuie dezactivatA oppunea "Use simple lile sharing" (de la Explorer> Folder Options> View> Use Simple File Sharing: debilare). Ullerior, alribuirea drepturilor se lace din lereastra de proprietati a unui director sau a unui fisier. sub tabul Secur i ty. Se selecleaza utilizalorul sau grupul care va Ii edila\. iar din lista de drepturi se indica permisiunile ce 'lor Ii atribuite. Toate configurar ile se aplica door lisierului sau directorului selectat. Pentru a configura explieit permisiunile. butonul Advanced aliseazA 0 nouA interia!A in care pot Ii vizual izate toate lipurile de permisiuni ce sunt aplieate fisierului sau directorului ales, inclusiv drepturi mostenite prin ierarhia sistemului de I~iere.

10.6.2

Recuperarea parolei

Un oon administrator de sistem treooie sA lie con~tient de mecanismele de recuperare a parolei pentru a putea preveni proceduri neautorizate de modi/icare a acesteia. Existii doua metode importante pentru a realiza recuperarea parolei de root, ambele necesitand accesul li2:ic la echipament. Prima metoda presupune modificarea din meniul boolloaderului a paramelrilor Ir i mi~i la incArcarea nucleului, iar a doua se bazeaza pe lolosirea unui CD Linux bootabil.

Editarea GRUB Prima metoda de a parolei de root necesrta editrea meniului de boot a GRUB. Din meniul GRUB se selecteaza imaginea de nucleu ce se doreste incarcala ~i se activeaza editarea respectivei linii de grub prin optiunea e. in capitolu l 6 sunt prezentate pe larg metodele de modificare a optiunilor transmise la incarcarea nucleului. La linia continand imaginea de nucleu selectata se adauga optiunea ini t - !bi n!bas h si se continua procesul de ini~al i zare a sistemului. in urma incheierii procesului de ini!ializare se va obtine un shell rool. Daca la execulia comenzii passvd se primeste mesaj de eroare lrebuie remonlal sislemul de li~iere penlru scriere si cilire. Acesllucru se real izeaza lolosind comanda:
roo t @ u bunt u: - I mount - 0
remount,r~

Penlru a preveni 0 recuperare neaulorizata a parolei de root se recomanda folosirea parolelor de acces la meniul bootloader-ului. in cazul GRUB, acest lucru se realizeaza cu ajutorul opliunii passwo r d in cadrul li~ierului de configurare a GRUB.

316
Fo los irea unui Li ve CD

lNTRODU CERE iN SISTEME DE OPEAARE

A daua metoda de recuperare a parolei presupune lolosirea unui Live CD Linux. DacA ordinea de boot nu acorda prioritate unila!ii optice in lata hard discului, va trebui schimbata ordinea de boot din BIOS.
DupA initializarea Sislemului de pe CD !rabuie oblinut un shell de root.
!ludo:
root~ubu n tu:-'

in

cazul Live

CD-ului Ubuntu aeeesta sa real izeaza prin executa rea din contul neprivilegia\ a comenzi
sudo bash

Trebuie creal un nou director in care sa va face monlaree vechiului sistem de I~ i e re:

,
J

r oot @ u b untu: -I mkd i r Imn t / x


Ioo t @ u b untu: -f mount
Idev/hd~2

/mn t/x

1 n acest moment putem invoca comarKIa chroat:


root@ ubunt u: -' chroot Imnt/x

Ultimul pas presupune invocarea utilitarului pssswd si schimbarea parolei de root. lnlrucAI, prin inlermediul Live CD-ului, ulilizaloru l are acces privilegialla lnlreg sislemul, va avea acces complet la sistemul de f i~iere de pe discul sistemuluL Invocarea comenzii ps sswd va conduce la modificarea inlormatiei din fi~ieru l / e t cl sha d ow. Pentru a preveni 0 asUel de procedura eSle necesar sa se forteze din BIOS ca prim dispozitiv de boot unul dintre hard discuri ~i sa se defineasca 0 paro la de acces la meniul de configurare a BIOS -ului.

Cuvinle cheie

eel mai mic privilegiu cea mai slab! veriga contro lul accesu lui aUlentificare autorizare cripla re alacuri Chmod chown chroat

drepturi pe

fi~iere

in UNIX

do
letcfsudoers lelc/passwd. /elclshadow letcfs ecurity/I im its. conf li sle de control a accesului - ACL malrice de drepluri firewall criptare, decriplare chei Simelrice, chei asimetrice chei private , chei publice semni'ltur;'j digilala, cerlil ical digital hacker

df
DoS
drepturi pe
fi~iere

in NTFS

CA PITOLUL 10. ELEMENTE DE SECUR ITATE

317

natstat monitorizara nmap paro le pol itica de securilate quota secu ritatea fizica sniffer

",lo
suid

syslog tcpdump lop

ulimit umask virusi

intrebari
I . Cara dintre urm atoarele NU este 0 functional itate olerita de utilitarul nmap?

o o o

scanarea porturilor UDP si TCP detectarea vers iunii sistemului de ope rare detectarea statiilor active din reteaua locala fi ltrarea pachetelor de re!ea

2. Fie urmatoarele comenzi:


2 3

urn" ,k 022 ",ch o "Acest a nu .. st .. un t @st " > t"st c hrnod go' x test

Care vor Ii drepturile pentru utilizatorii grupului fisierului test ?

o o o o o o o
o

doar cilire doar executie citire


~i

execulie
~i

citire. se riere

execu!ie

3. Ca re dintre paro lele de mai jos esle cea mai sigurii pentru utilizatorul cornel ? cornelush coRnel _cOrN3t[]sh+ niciuna, toate parolele vor Ii incercate lntr-un alac bazat pe dictionar

4. Care dintre riscurile de mai jos reprezinta riscu ri de secu ritate lizica pentru un server?

o o o

lipsa unui lirewall parole pentru utilizatori prea simple varfuri de tensiu ne in reteaua electrica

318

INTRODU CERE iN SISTEME DE OPERARE

o absen!3-lioontei pantru sistemul de ope rare 5. in urma procesului de scanara de porturi sa poale determina:
o daca un serviciu ruleaza pe un port dal o versiunea serviciului o daca sarvieiul asia l illral

o toate variantale
6. Primirea unui email ce contine un virus pe un sistem ce nu are antivirus duee automal la infectarea sa. Un sistem intectal eu un virus nu mai poate Ii tinta unui

a ll alac.
o adevarat,
ade~arat

o adevarat. lals
o fal$, adevArat o fals, lalS

7. Tralicul caire un server asia monitorizat eu tcpdump . Care dintre urmatoarele informalii NU poate objinuill.? o porrul pe care ruleaza serviciul o numArul de clienti ai server-ului
o dimensiunea pachetelor lolosile

o adresa IP a serveruh.li 8. Pantru a limita numlirul de p!"ocese per utilizator se poate lolosi:
Q ulimit Q quota

Q nmap
Q c:hroot

9. Care este primul pas in securizarea unei retele?


Q

definirea unei politici de securitate

Q delinirea regulilor de tiltrare pe firewall Q inslalarea de programe antivirus pe loale slaliile din relea Q criplarea tralicul ui

10. Pe un sislem

Linu ~ .

ce lisier slocheaz1i parolele ulilizatorului (criptale)?

Q !et c !passwd
Q

! e t c!shil. d o w

Q ! e t c!s e cu r i t y ! l im i t s. co n f Q Iva ( / l o g /a p ac he 2/ a cc e s s. l og

C JPYnghted matanal

Capitolul11 Compilare
~i

linking
He who hasn', hacked assembly language as a youth has no heart. He who does as an adult has no brain. John Moore

Ce se invlllii din acest ca pitol?


Cum 58 ob!ine un program executabil din\r-un program sursa Compilarea si interpretarea unui program Etapele comp ilarii Utili zarea Gee penlru compilarea si linkeditarea unui program
Optimizarea compilari i

F ~ i ere

obiect si fis iere executabi le

Bibl ioteci de tunc)ii

Automatizarea ac)iunilor cunoscand dependen)ele intra ele; utilrtarul make Concepte de portabililate Link-editarea codului C si C++

11.1

Introducere

Unul dintre aspectele importanle in utilizarea unui sistem de operare asia dezvoltarea de noi programe. Aces! lucru presupune folosirea unui limbaj de programare pentru scriaraa da cod sursi'i. Codul sursA aSia compilal, iar programul axaculabil obtinul aSia rula!. Ac!iunaa de scriere de cod sursa poarta numele de programare sau dezvoltare. Parsoana cara scria codul sa numa~ta programalor sau dazvollator. Tarmanii in limba engleza sunt programmer, software devetoper sau software engineer. Sistemele de ope rare moderne pun la dispozitia dezvoltatoruluilprogramatorului 0 suilA de aplica!ii lolosile pentru scrierea de noi programe. in cazu l lamiliei de sisteme de operare Windows, suita de aplicalii Visual Siudio reprezinla forma cea mai cunoscula 319

.1

320

INTRODU CERE iN SISTEME DE OPERARE

pentru dezvollarea de r'loi aphcal ii. Aooasta perm ila crearea de pfOg rame in diverse limbaje de program are 5i CI.l ulililate diversa. Dezvo~area de aplica!ii Sf! desf1l:soara: inlr'un mediu integral (IDE - Integrated Development Environment) (vez j sec!iullea 14.9)

De partea cealaltA, sistemala Linux pun la dispozilia utilizalorului suita de aplicatii GNU,
folosM penlru compilarea , link-editarea 5i depanarea programelor. in mod tradi!ional,

dezvoltatorii de aplicatii pe sisteme Linux Iolosesc utili tare dedicate (editor. cempilalar, depanalor). dar se Iolosesc din ce in ce mai mult ~i mediile integrate precum Eclipse sau
Anjuta (vezi sec~unea 14.9. 1 ~i seqiunea 14.9.2).

11 .1.1 Editoare
Prima fazii a procesului da dazvoltara asta scriaraa da cod specific unui limbaj da de instructiuni, variabi le si programara. Codu l reprezinta 0 Insiruira . . funetii panlru acel limbaj. limbajul impune 0 s inta~a pe care programalorul treoo ie sa 0 respecle. Fi~i erul In ca ra sa scria codul asta, in general, un lisiar . ta~t si poart<'i numele da fisiar . surs<'i, sau mai simplu sursa. E~presia -trebuie sa ma uil prin surse"' se reler<'i la parc urgerea fi$iarelor surs<'i ala unei aplica!ii pentru analiza codului. Scrierea de cod sursa sa realizeaza prin inlermediul unui editor. Editoare raspandile in lumea Uni~ sunt vi, Emacs, nano, joe, kate, gadit, Editoare r<'ispAndita i n lumea Windows sunl Notepad ...... Ultraed il , Crimson Editor. De obieei, in lumea Windows , editoare le sunt parte a unui IDE (Intagrated Development Environmant) cum este Visua l Studio sau Eclipse. Un editor eSle lolosit pentru scrieraa unui lisier sursa. Drept urmare, editoare le moderne prezi nta 0 serie de caracteristici utile acestui scop: indentare automala, colorare a codului (syntax highlighting). code folding, variable completion. folosirea de ragistre de editare pentru oparatii m u lt i ~e etc. Lumaa Unix esta dominata da rivalitatea dintra ed itoarele vi si Emacs', in weme 00 vi este un adept al filozil iei Unix (keep it simple) si este folosit doar pentru editarea de fi~iere sursa, Emacs este un ed itor complex cu fac ilil<'i!i care includ posibililalea de lolosire ca mediu integrat de dezvoltare (IDE), client de e-mail. client de IRC etc. Dea lungul vremi i, insa, numeroase fac ilita!i au fost adaugate si ed itorului iii aslfel incat functionalita!ile olerite sunt apropiate. vi ~i Emacs repraz inta de fapt doua lamilii de ed iloare. Ce i mai cunosculi re prezentanti ai celor doua lamilii sunt. re spectiv. editorul Vim' ~i GNU Emacs'. Am~e ed itoare d ispun de facilita!i avansate pentru ed itare Cunoscu\i pentru eficienla si permit pos ibilitatea de eKiensie si personalizare. fanatismul lolosirii unuia d intre cele doua ediloare, programatorii vor prezenta lisierul propriu de configurare (.vimrc in cazul Vim 5i .emacs In Calul GNU Emacs).

o prezentare mai ampl1i a editorului Vim gasi~ in capilolul14.


, httpj leney"lopedia2 .the!"'oddienaty.eomlUse.the.S<>UfCe. Luke http://M .wikiped i3. 0 rglwikiIE dilo r_war , http://Vim. ""urce1or~e. n ell http)lwww.gnu.org/soflwar.le macsi

C JPYnghted matanal

CAPITOLUL 11. COMPILARE

~I

LINKING

321

11.1.2

Compilare!iii interpretare

Programul scris in cod su~a eSle comp4lal sau interprelat pentru a indeplini sarcina penlru care a fosl scris. Atat compilarea cat si inlerprelarea unui program sunt lorme de translatare a acestuia si . executie . pe un sistem hardware. Translatarea se relera la translormarea inlrun limbaj a unui program scris intrun alt limbaj. in delinitia cea mai simpla. comp ilarea unui program se releta la obtinerea unui I ~ ier binar executabil. Execularea acestui l isier duce la indeplinirea sareinii pentru care a lost scris programul. Dupa cum se va observa in secliunea It.3 exisla mai mulle laze specilice compilarii unui program. De partea cealalla, interpretarea unui program elimina laza obtinerii unui executabil si execula codul asocial unui program pe masura pareurgerii acestuia. Avanlajul interpretarii unui program este timpul mai scurt de dezvoltare (se elimina faza de compilare) si depanarea mull mai lacila. Pe de alta parte, dezavantajul interprelatii unui program esta viteza mai scazutil de executie. in cazul compilarii , rularea executabilului inseamna rularea de cod spec~ic sistemului fizic. in cazul interpretarii. codul sursa este pareurs. analiz al si apoi executat, rezultand intr-un limp de rulare mai mare.

Limbaje compilate

~i

limbaje interpretate

Utililarul lolosit pentru compilarea unui program poarta numele de compilator, iar eel lolosil pantru interpretare poarla numele de interpmtor. Compilatorul, respectiv Aslfel , interpretorul, sunt implementar! ale limbajului de programare asocial. campilatorul/interepretorul cunoa~te sinlaxa limbajului de programare in care a 105\ scris respectivul program si este folosit pentru translatarea acesluia inlr-o forma execulabila: li~i er execulabil in cazul compilalorului, sau execu!ie in timpul translatarii in cazul interpratorului. Una dintre cele co nluziile din lumea limbajelor de programare si a programarii in general eSle clasificarea in limbaje com pilate 5i . limbaje interpretate. De multe ori se mentioneaza . ca C, CH. Ada, Fortran, Java sunt limbaja campi late, in vreme ce Perl, Python, PHP, Ruby, lisp sunt limbaje interpretale. De lapt, orice limbaj poate Ii alat interpratat cat si compilat. Astlel , de;;i limbajul C este de obicei com pilat, exista si interpretoare pentru acesta ' . in coneluzie, nu axista limbaje interpretate sau compilale ci implemenliri de compilator sau implementiirl de Interpretor pentru un limbaj. Intr-adevar, limbajele au asociate preponderant un 8I1umil tip da implamentare (C are implemenlari de compilator, Perl are implemenl<\ri de interpretor) si, drept urmare, sunt denumite "Iimbaje comp ilate " sau "Iimbaja interpretate". Totusi, aceasta clasilicare aste l0rlata ~i recomandam fie atrib\Jita implementarii acelui limbaj.

sa

, http;l/www.ooftintograHon .com!

C JPYrtghted matanal

322
Umbeje d e niv el
Sc8ZUt

INTRODU CERE iN SISTEME DE OPERARE


sl timbaje de nive l i nal!

Ointre multiplele clasificari posibile ale limbajelor de programare', 0 clasi/icare rl'ispanditA aSle in limbaje de programare de nivel scAzut si limbaje de programare de nivel inall.
Limbajele de programare d e nive l scilzut SlJnl acele limbaje care nu olera 0

abstractizare a amilecturii sistemului de calcu l in mod ob i ~nuit, aeeste limbaje olera o translatare minima a instrocjiunilor arhitecturii. limbaie de prog..-amare de nivel scazut sun! codul ma~i na, adica scriarea unui program direct in binar ~i limbajul de asamblare, Un programalor nu va serie niciodata cod ma~inll
5i loarte rar cod in limbaj de a5amblare.

Llmbaje'e de program are de n lvel i nal! sunllimbaje de programare care olera 0 abstractizare a arMecturii siste mului de calcul. Limb ajele de programare de nivel Inalt sunt mai u~or portabile ~i olera 0 sintaxa mai apropiata de limbajul natural. Limbajele de programare de nivel lnalt olera 0 plaja. larga de abstractizAri. Unale limbaje pot ascunde complet detalii legate de modul de adresare a procesorului, alocareafdezalocarea memoriei, lucrul cu obiecte etc. No\iunea de limbaj de nival ina~ devine relativa raportat la lacilitatile ole rite. Daca In anii 7 0, limbaj ul de programare C era considerat limbaj de nival inalt, in zilele noastre peale Ii cons ideral limbaj de nivel seazut Tn comparatie cu limbaje precum Java, Python, Ruby. Exemple de limbaje de nivel Scheme. Prolog, Hask~1.
Ina~

sunt: C/CH, Java, Perl, Python. PHP. Ruby. Lisp,

11.1 .3 De la sursa la executabil, de la executabilla proces


Dupi'i. cum sa precizat, In urma compilArii unui li~ier sursil. se obline un executabil care poate Ii apoi rulat pentru Indeplinirea sarcinii pentru care a lost seris. in capito lui 5 sa menlional ca un execulab11 esle 0 enlitale pasiva care deserie modul in care va ru la n cadrul unui programul. Rularea electivA se realizeazA Tn urma executiei programului T proces. Procesul eSle enlitatea activil. in eadful careia se vcr aloca resursele programului ~i se va rula codu l asociat pe procesor. cum re iese ~i din ligura 11.1 , oblinerea unui executabil dintr-un fi~ier sursa sa realizeaza in urma eompilarii aeestuia din urma. La fel, procesul este oblinut din executabil in urma eXBCutiei. Utilizatorul va trebui sA cunoasca dear limbajul de nivel Inalt si sa serie codul sursa In aeest limbaj. in continuare. eompilatorul va ob!ine executabilul; eXBCutabilul este un lisier binar care descrie, in cod masina, operatii le precizate de utilizator. in faza de execu!ie. cu suporlul nucleului sislemului de operare, din executabilul obtinut anterior se creeazi'i. un proCBs. Procesul este entitatea activil. care va executa pe procesor operatHle descrise in cod ma~ini'i. in zona de cod a execulabilului (vezi sectiunea 5.1.2).
I htlpJ len .wikiped ia. "rglwikiIC ot"l/O ricaUist_"J "'program m;" Il..JaOl/lJage.
A~a

C JPYnghted matanal

CAPITOLUL 11

COMPILARE 5 1LINKING

323 'ula,.
proce,

Co
fit i.,

,om pll~ ~

Co
fit i.,
. , e< "t o~ i l

I ~M .,e

In e" e<", ~

cO<l

,",,;I

<=>

It
, i,t em o. coleui

Figura 11.1: De la

fi~ i er

sursa la executabil; de la executabil la proces

Compilatorul olera in acest lei un benehciu important: utilizatorul nu trebuie sa delina informalii des pre sistemului lizic din spale (zone de memorie, instrucliuni ale procesorului etc.), ci numai notiuni despre limbajul fo losil pentru a serie cod ul sursi\. Compilatorul va Ii responsabi l cu Iranslatarea codului sursa {Iisieru l sursa, text} in cod masina (Iisierul executabil, binar). Ulterior, in urma ru l1l.rii executabilului, sistemul de operare creeaza procesul care executa codul pe procesor. Folosirea unui compilator aduce dupa sine avantajul portabilitatii codului: utilizatorul va scrie cod su rsa portabil specific limbajului de program are. Compilatorul genereaza cod binar neportabil spec ilic sistemului lizic pe care acesta va rula. Mai mulle detalii despre portabilitate sunt prezentate in sectiunea 11.6. fn examplul de mai jos aste prezental un lisier sursa C (h w. 0 ) 5i comenzila penlru compi larea acestuia (9"00 h.. . o), generarea unui executabil (a .out ) si executarea acestuia In cadrul unui proces ( . /a . out).

,
3

linclude <stdio . h> tnt rnai n l yo td l

pr intf (" Hello , ~jj o rl d ! I n ") ;


r . turn 0 ,

Listing 11. 1: hw.c


mi rc .a@c oug a r : -i c ar t e-u ~ o i c ap- l O$

f i l e h w.c

, ,

> h ",.c : ASCII C p rogram t e xt

mlreea@eougar : -icarte - us o/ c ap- lO$ gec hw. e

G mireea@eougar : -/carte - us o/cap- l O$ fi l e a . ou t , a . out : eLi" 32 - b \t LSe executable , Inte l 8 0 3 8 6 , version 1 ISYSV) , tor GNU/

g
10

Lin u x 2 . 4 . 1 , d y nami c all y lin k e d not s t ri ppe d

lu ses s h ared l i b s ) ,

f o r GNU/Li nn 2 . 4 . 1 ,

mlrcea@cougar : -/carte-u s oi c ap-l0 S . /a . o u t Hell o, Wo rld !

11.1.4

Pachete necesare

Pentru dezvoltarea de aplicalii este nevoie de


cuno~tin!e

des pre un anumit limbaj de program are; C right mate-rial

'"

lNTRODU CERE iN SISTEME DE OPEAARE

un editor !alosi! pentrlJ a scrie cDdui sursa:


un interpretor sau un compilator pentru acellimbaj.

in restul acestui capitol, limbajul de programare lolosi! pentru exemplilicare ~a Ii C. Compilatorul lolosil va Ii Gee' , compiiatorul implicit pe distribuliile Linux. Pachetele necesare pentru dezvoltarea de apliCatii C sub Ubuntu sunt gee, libc6- dev . Sa recomanda ~i paginile de manual pentru dezvoltare din pachelul manpages-ctev si documentatia bibliotecii standard C din pachetul glibc - doc (sau glibc-doc-reference pe sistemele Debian). Instalarea utilitarului Make (vezi secliunea 11.5) eSla, de asemenea, recomandata.
<oot@COUg3,. , -. a p t - get Install gee 1 !bc6 - dev maopsges - dev gHbc - doc m3ke

Mai u~or, se poate instala pachetu l virtua l build- essen ti al. Destinat lormal creArii de pachete .deb, instal area acestui pachet cooouce la instalarea pachetalor importante pentru dezvoltarea programelor pe un sistem Ubuntu. Pachetu l nu include pachetele de documentane, deci acestea vor trebui instalate separal:
root@eouq3r : -1 3 pt -qet ins t& ll build-essenti31 manp ages- dev ql ibe- doe

11.2
1n

Compilare. GCC

general, procesul de compi lare sa reler1!. la oblinerea unui lisier executabil dintr-un li~ier cod sursa. Apl ica!ia care realizeaza aceasta trans latare se nume~te compilator. Un compilator este 0 apl ica!ie comp lexa care, pe IAnga rolul de translator, trebuie sA indeplineasca si alte cerinte. Codul binar obtinut de compi lator In cadrul executabilului va trebui sa satislaca una (sau mai multe) din urmAtoarele solicitari: sa fie cAt mai mic; sa ruleze cAt mai rap id; sa: consume cAt mai putin:.i memorie In momentul rul:.irii. Un compilator trebuie s1!. implementeze cat mai mutt din specilicati ile standardetor in rigoare . Spre exemplu, in cazul C, standardele sunt stabil ite de ISO'. Ultimul standard este ISO 9899:1999 denumit si C99" . Pe sistemele Unix, compi larea se real izeazA prin transmiterea l isierului sursA ca Compilarea rezuUA in generarea executabilului implic~ argument compilatorului.

<I.o ut":

,
,

miree&@eouq3r ; -!e ~rte-us o/e&p -10 S

qee hw . e Is

m'ree&@eouq~r : -/e~rte-uso/eap-10S

a . ou t hw . e

mirc~a@co u qa r' -I c a rt,,-u ~ ol cap-J 0$ . ! a . out 7 Hello , lio rl a '


1htlp11""c.gnu.o r~ ' htlp11www. i~o. o r(jli . otho "''' .hI '" , http) lwww.opoen la. orglJ T e IlSe22M1G l .lwwwldoc.l n I 2~6.pdf http)l. n,wikiped ia,orglwikU A.out

e APITOLUL11. eOMPILARE !?1LINKING

325

Pe sistemele Windows compilarea se realizeaza, in linia de comandi!.. lolosind utilitarul c1 ' . Executabilul ob!inul are acela~i nume cu li~ierul sursi!. insi!. cu extensia e xe:
c : \> el hw . e
J

c: \>

h" . ~ x~

Hello , Wo rl d '

Gee este compi latorul implicil pe distribu!iile linu~ ~i pe un numar mare de alte sisteme Unix. Scris de RK:hard StaJlman' in 1989 pentru proiectul GNU, era lolosit initial dear pentru a compila programe C (GNU C Compi ler). Oe-a lungul timpului s-a extins. ~i in ziua de azi, peate compila programe scrise in C++, Fortran , Objective-C, Pascal. Java etc. Drepl urmare, denumirea sa a lost sch imbat<li Tn GNU Compiler Collection. Pachelul GCC oleri!. executab ile (denumite ~i Irontend-uri) pentru liecare tip de limbaj pe care il peate comp ila: gcc este lolosil penlru a compila programe scrise in C;
'1++ comp ileaz<li programe scrise in C++;

'1nat compileazi!. programe scrise in Ada; '1cj comp ileazi!. programe scrise In Java;
'177 comp ileazi!. programe scrise in Fortran;

11.2.1

UtilizareGCC

La 0 rulare impliciti!. a GCC, acesta genereazi!. executabi lul a . o\lt . Fie urmi!.lorul program C:
, ,
)

linel ud.
m&iniJ

<,td i o.h>

, ,

pr int f (" Hell o . ~lIorld' \n") ;

listing 11.2: hw2.c in lorma sa cea mai simpl1i, compi larea se realizeaz1i prin transm iterea li~ierului sursi!. ca argumenl comenz ii gcc:
mlreea@coug3r,/e3rte- us olc 3p- 10S gee
h~2 . e

in mod implK:it se obtine executabilul a . out. Pentru rularea acestuia se loloseste construclia . I care precizeaz<li execu!ia din directorul cu rent :
mirce3@eoug3r : -/c3rte-u s o/c&p-10 S . 13 . out Hello , World !

Se poate spec ilK:a numele executab ilului care se doreste prin folosirea optiunii . oblinut . . - 0 urmala de numele execulabilului:
, http ://m s d n .m ic ,osolt co mI.. n .u . ml>fa'yim . 235639 IVS.80) .asp' ' http ;lIe n. w ikiped ia. olglwikUR ich ard _ Sta ll man

326

lNTRODU CERE iN SISTEME DE OPEAARE

,
~

mlrcea@cougar : -Jcarte - us o/cap- IO $ gee hw2.c - 0


",I rCM@cou g a r ; -/cane-uso/ cap-1 0S . /my_ e x ec ~ello, Worl <l!

my _e ~ec

In general, executabilele in Unix nu au extensie. Opliunea - 0 poate Ii prezenta oriunde in linia de comai'lda, doar eli va trebui sa fie llrmata de numele executabilului:

,
1 ,"1 rCM @ cou gar : -/cart e-uso/cap-1 0S . / my_other_exe c Hello , Wo rld!

o
,

gre~eala

frecventa este fo losirea opliunii

- 0

urmata imediat de numele fisierului sursa:

m.rcea@couga r : -/carte-usolcap-10S gee -0 hw2 . c my_ ether_ exec


my_ether_e xec : ( . rodaoa+OxO ): Multip le definit ion of ' _fp_h w' lu s r llib/gee! H86 - linux -gnuf4 . 1 . 21 . . I . . ! .. / .. !lib/ c r t 1 . 0 : I. rodata+OxO ) : f i rst defined h e r e

(. .. 1

ATENTIE: Aceasta sursa.

gre~eala

are cOl"lsecil"l!e grave pel"llru ca duce la pierderea fisierului

Programul hw2 . c prezel"ltat mai sus compileazA, dar I"IU respectA il"ltru totul stariClardul C. De exemplu, fUl"lc!ia main trebu ie sA lntoarca int' . Compilatorul nu va alisa. 11"1 mod implicit, l"Iiciun lei de avertismel"lt pel"ltru astlel de incol"lsistel"lle. Acest lucru poate Ii schimbat pril"l lolosirea optiul"lii - Wa l l (Warnings A/f) care comariClA compilatorul sa afiseze mesaje de avertizare pel"ltru abateri de la stariClard sau pel"ltru formular; atipice:
Mir ce~ @ eo u g ~ r : -/e~rt e-us oJc ap-10 S

gee -W~ ll hw2 . c -0 my_exec h,,2 . c : 4 : w~ rnin 9 : r e turn t ype defa u lts to ' i nt O h,,2 . c : In f unction ' ma in ': h .. 2 . c : 6 : wa rning : contro l reaches end of n o n void f u nct i o n

Dupa corectare, avertismel"ltele I"IU vcr mai Ii lumizate:

, , , ,

'include <.t di o . h> int main (void l


pr i n tf ( " Hello , _W o rl d ' \n") ;
r .. turn

0;

listirog 11.3: hw2.C

,
,

Mir ce~ @eo u g ~ r : -/e ~ r te-u5 0Jcap -10 S

gee

- W ~ ll

hw2 . c - 0 my_ exec

Mi

rcea@eo u g ~

r : -I e~rte-u50 I c ap-lO S

o gre~eala Irecventa care poate Ii eliminatA prin fo losirea op!iunii - Wal l este utilizarea COl"Istructiei if ( a - 1 1. Programul de mai jos foloseste 0 astlel de cOl"Istruc!ie care este raportata, insA, de compilator i n momentul lolosirii OPliunii - Wa l l :
' Un a di ntr" IIr" . " I;!" heyent" ru lizal" de p rOQramalorjj lnc"pator i &ste folo~irea formelor void Mai n (vOid) .au main {I Siandarduf C 'p"c~ i d fo rma int ma i n (vOid l ca fiind c ~ a cor",,' ii.. N"lolosirea ac",'e i forme oafe conduce fa problem . hUpJ/uurs .aber.ac.clklauj/widmairu htmf

CAPITOLUL 11. COMPILARE !?I LINKING

327

,
3

'include <9ldlO . h>


tnt
m~in( votd l

,. "
,
~

tnt a
if
(ll

print f

"

("H~ llo ,

_loIor 1<1 ' \n " , ;

Listing 11 .4: hw3.c


mHcM@cou ga r: -/cdrte - uM/cap- l0$ gee - \'!~ ll hw2 . c - 0 my _ ~x~c h ... 2.c : I n function ' main ': h.,2 . c : 7 : w~rning : suggest p&renthese, ~ssiqn m ent u' e d dO truth v&lue

~ro und

IMPORTANT: Din cauza sintaxei re laxale a limbajului C este recomandalA folosirea opliunii - wall la orice compilare de program.

11.2.2

Compilarea din surse multiple

o aplicatie comp lexA va avea mai multe fisiere surso:! continand diverse pArti din imptementare. in exemplul de mai jos, fisierul ma i n . c COnIine functia main , fi~iere l e add . c ~i sub. c contino respectiv. implementarea func!i ifor add ~i sub, iar fisieruf tun c . h de!ine antetele (declaratiile) acelor junc\ii.

,.
" "

" ,
3

'includa <. t<1io.h>

Hndude "tu nc.h "


'defi na IIIJM tnt m&i nl yotd l print f( "Surn 4(\d l_- _'d\n " , IIIJM, ,um(llUMII , printf ( " Suma-alternanta ('d) _ - _ \d\n ", NUM , r e turn 0 , 10

~um &lt

(NUM));

"

Listing 11.5: main.c

, sum( int nl , , ( int nl ' t e ndif


" urn ~ lt

.. ...

htndef 'de fine

rUlIc rUlIc--,,-

"

Listing 11 .6: junc.h


Jinclude " Cunc.h "

328

lNTRODU CERE iN SISTEME DE OPEAARE

"
,

, , , '" " ,
,
,

int surnl int


int

"

'"" '0' " ,, " '""


",. tur" ,urn ;

"

sum;

.-

, .-"
i i

iH )

Listing 11.7: sum.c


Jinclude " tu nc. h "
int
sum~ltl int

nl

int i,

;urn ;

"

'00. ""

- 0, , , " ,"'-- 0>


<-

"

" " " " " "

"he

."

iH )

'"" '""

.-"
listing 11.8: sumalLc
fi~iere

-- "

return sum;

Pentru ob!inerea unui executabil, toale aceste


compi lator ului:

vor Ii transm ise ca argument

,
J

ra'V3 n@V3 )h 3 1l a : -/carte - us o . git/src!code/lO - comp llareS gee - Wall m a! n .c ;"m . e . umalt.c
r uva n @va l hA l 13 ; ' I carte - uM . gi t! "rc I cod e /1 0 - comp 1 h reS . I Su013 110) - 55 5u m~- .. lt ~ r n a n ta(lOI - -5
~

. out

Se peate lolos; opliunea - 0 penlru a spedica numele exec utabilului final:


'a.va n @va l h a ll a:-lcarte - uso . git/srclco d e/ l O- co rnp i l are~

gee - Wall m a in .c

,
,

sum . c su m a l t.c - 0 exec


u.va n@va lh a l La , -!cane - U$ o. glt!s<c!coa e! l O-comp i
- -5
16re~

. !exec

Suma l lO) - 55 5 Suma-alt ~ rMnta(lO)

11,3

Etapele compilarii (inclusiv link-editarea)

Exemple le de pflnl\ acum au Iolosit Gee pentru a obtine dintrun lisier sau mai multe fisiere sursl\ un executabi l. Acest lucru a fosl realizat intr-o singurl\ comancll\, Totusi, rularea unei instante a Gee presupune trecerea printr-un set de etape de pre lucrare a fisierului sursl\ pana la executabi l, Aceste faze sun\. in ordine:

CAPITOLUL 11. COMPILARE !?I LINKING

329

1. preprocesarea; 2. oompilarea; 3. asamblarea; 4. link-editarea. o rulare simpla a eomenzii gee inseamna Ireeerea prin toale acesle faze. Prezenla unor parametri poate forta GCC sa se opreasea dupa una dinlre ele. Figura 11.2 sintetizeaza etapele oompilarii:

.,;0,

""OK'

"
.,,,,,,,,,,,"

. _."
p re pnx e ,~ re

_ . -'"
comp i l~re

" .,...mOl.
~s.mbl. re

-" .. " -

"

"

iokeditare

Figura 11.2: Fazele compilarii In eazul folos irii direcle a comenzii gee. se rea lizeaza inlegrat toate cele 4 faze. Fi~iere l e oblinule in urma fieeare i laze sunl, in aeeasla situa!ie, stoeale lemporar in sislemul de fi~iere dupa care sunl sterse. 0 ru lare de lip verbose a comenzi i gee prezinta: detaliat fazele procesului de oompilare:
r~ zv ~ n @ v ~ l h alla : -/eode/p t rS

ge e - v

- W ~ ll

p tLe - 0 ptr

,
3

U ~ ing

b uil t - in ' p e c , . T~rget : ,86_ 64 - 1inux- gnu

{. .. I
l u sr/ li b/gcc/x86_ 64 - lioux - g n u/4 . 3 . 3/cc l - qu i et - v p t LC - qu iet - durnpb" ,,, p tr. c -mt un@ _ g@n@ric - au x bas e p tr - Wa ll - ve r s io n - 0 I t mp/ccYyQva x . ,

6
,
A

(. . .1
IO@bia n 4 . 3 . 3 - 14 ) versio n 4. 3 . 3 ('86_ 64 - linux - gnu ) compile d by GNU evers i o n 403. 3 . GMP version 4 . 3 .1, MPPR veu i on 2 . 4 . i - p2 .
GNU C
{.

J
- V - Oy - 0

'0

GNU assembler version 2 . 19 . 5 1

I t mp /ccofhlN3 . o /tmp/coyOvdx . s Ix8 L 64 - linux -gnu l us i ng BFD verSio n (GNU Bi nut ils fo r De b ian l 2 . 19 . 51 . 20090723

as

"
,~

(. .. I
! u sr!lib/ g cc!x86_ 64 -li nux - gnu!4 . 3 . 3!collect2 --b ui l d -. d
-- eh - fr~ m e- hdr

m elf_ x86_ 64 --ha;h -; t yle-bo t h - d yna mic - lin ke r I l ib64!ld -1 1nu x - x 8 6- 64 . ;o


. 2 - 0 pt r ! u sr/ lib /g c c/xS6_ H - linu x - g nu !4 . 3 . 3/ .. f .. I .. I .. llib!cr tl. o ( 1 !tmp/ccoFh tN3 .o - lgcc -- as -n@ e d@ a -l qcc _ ~ -- no - as - nee d @ d -l c -l gcc

{. .. I

Oupa cum se observa mai sus, exisl1i 3 elape rezu llale In urma ru larii eomenzii gcc: 1. invocarea comp il alorului (ce l ) conduce la oblinerea fisierului in limbaj de asamblare /tmpf c cYy Qv d x. s;

330

INTRODUCERE iN SISTEME DE OPERARE

2. invocaraa asamblorului /t mp /cc o f h t N3 . o;

(as)

cooouce

la

obtinerea

lii}ierului

obiect

3. invoca rea linkerului (collect 2) conduce la ob!inerea lisierului execulabil p t r ;


in cazul Gee, preprocesorul esle invocal intern de compiialor (ce1) si nu rezultl1 in obtinersa unui !isiel templXar.

in continuara vor Ii prezen late mai detaliat laz81e proces ului de compi lare si lisielele intermediare ob~nute ,

11.3.1
Etapa

Preprocesarea
de preprocesare presupu fl8 inlocuirealexpa r'ldarea direclive lOf de

preprocesare din fisierul sursa.


Directivete de preprceesara ineep cu # (diaz, sharp in 81lQIezli). Prlotte acestea sa numara d irective #i ncl ude 5i directiva tde fin e. Dupa pre procesare, directiva ti nc l ude asIa inlocuit1l cu fisierul inclus, iar directiva Idefi ne define1lte un macro care va Ii substil1Jit Cll valoarea sa oriunde apare in codul sursa.

in exemplul de mai jos se realizeaza preprocesarea fi~ ierului i nf o . c .

,
Z

h f ndef I NFO H ,daUna INFO_ H_ , d aUne MAlL/IRRA Y_ LENGTH

32

6
,

.truct

H r ay_ 'tr ~ c t

{
;

i n t a rr ~yIMAX_ARRAY_LENC;THI int l e n;

listing 11.9: info.h

,
,

,
" "

' include

in f ~.h

int g e t _ .um l otruct a <u y_ nr u c t int 1; i n t . um; tf


I ~ - en

_0 )

" " " "


" "

>-

MA X ~ RRAY _ L r, NG 7 H )

r e tu r n 0 ,

for ( i - 0 , i < a - >h n;


"~m

iH )

+-

4 - > ~ cc ~ y l iJ ;

r .. turn

'~ m ,

listing 11.10: info.c Penlru oprirea rularii GCC dupa faza de preprocesare se foloseste optitmea - E:
~hted

matanal

CAPITOlUl11. COMPIlARE!?1 LINKING

331

mircea@cougar,-/carte - us o/cap- 10$ gee - !nfo . C f 1 " into.c" f 1 " <built - in> f 1 " <convnana - jine> "

,
10

5 f 1 " into.c " f 1 "l nto.h " 1

~ t r u ct

"
1>

&rr&y_,trunct in t a rr ayl32J ; in t l en ;

) ;

"

f 2 " into.c" 2

" '" " "


18

i nt get_ sum(struct array_ struct ' a)

i nt i ;
i nt
if

s um;

20
21

"

(a -> len >- 321

r et ur n 0 ; fo r ( i 0 ; i < .. - >len ; i " ) sum +. . . - >.. rray[il ;

"

2J

..

" ""
"

retu rn .urn;

Se observa inlocuirea directivei f i ne l ude CU lisierul in fo . h si inlocuirea macrodefini\iei MAX_ARMY_ LENGTH cu 32 In lisierul preprocesat. Preprocesarea este $ingura laza a procesului de comp ilare care nu rezulta in mod implicit intr-un nou f i ~ier. in absenta opliunii -0, rezultatul preprocesarii este scris la iesirea standard. Folosirea op\iunii -0 sau a operatorului de redi rectare per mite precizarea lisierului de iesire. Conventional, lisierul preprocesat are extensia . i :

,
J

mircea@couga r : -/carte-uso/cap-10S gcc - E info . c -0 in fo .


mircea@co u ga r: -/carte -u~ o/cap - 10$

gee - E i nfo .c > i.nfo . 1

Preprocesarea este efectuata pe un sistem Linux cu ajutorul utilitarului GNU CPP (C preprocessor)'.

11.3.2

Compilarea

Compilarea este etapa in ca re din lisierul preprocesat se obtine un liSier in limbaj de asamblare. Compilarea efectivl'i Inseamna traducerea codulu i din limbaj de nive l Inal! In limbaj de asamblare. limbajul de asamblare descrie instructiunile specifice procesorului
, http;IIg<;c.gnw.o rgio nlin &doc slepp!

332

INTRODU CERE iN SISTEME DE OPEAARE

sistemului lizic. opliunea - So

Pentru oprirea rulari i GCC dupa laza de compi lare se foloseste

in exemplul de mai jos. se compi leaza li~ierul i n fo. c din sec~unea anlerioara si se obline, implicit, lisierul i nfo . S. 5e poate preciza explicit li~ieru l de iesire cu ajutorul opliun ii -0.
mirc@a@co u ga r, -/cart@-u~o/cap-IO$

15 in fo .

, ,
" ,

,nfo . e

i nfo . h

mirc@a@eou ga r: -/c .. rt@ - u~o/cap - IO$ gee - S in fo c mlrcea@cougar,-/cart@ - us o/c ap- IO$ 1. Info . ' ,nf o . " i n tO .h info . s . file . text . globl g e t _, um . type g e t_sum : pu s h l rnovl s uN movl mov i e mpl jle mov l jmp 'info . c'

" " " "


" "

, , , ,

\ebp
\@ ~p . h bp $20 . \e s p

8 (\ebp) ,

\ea~

128 (\ea~ ), S31, 'ea~

'e~~

SO , -20 I'ebp )

."

.co
listing 11 .11: info.S

( ... 1

Pe sistemele Linux ~i Unix, li~ierul in limbaj de asamblare are, de obicei, extensia . S. Pe sistemele Windows, un fi~ier In limbaj de asamblare are extensia . asm.

Limbaje de asamblare Limbajul de asamblare esle un limbaj de program are de nivel scazul Instruqiunile sa le (denumite si mnemonici) sunl de lapl reprezenlarea simbolica a instrucliunilor puse la dispozilie de procesorul sislemului Exemple de mnemonici sunt mav, cmp , add. sub, pu sh elc. Instrucliunea In cod ma~ina:
10110000 OllO OOO I (OKb 061 )

este scrisa in limbaj de asamblare ca:

.L

061 h

Mnemonica mov lnseamna electuarea unei copieri. Rezultatu l eSle incarcarea valorii OK61 In registrul a1 al procesorului. Exista, in general, 0 asociere unu la unu inlre 0 instruc!iune In limbaj de asamblare si 0 instruc!iune In cod masina. Un program seris In limbaj de asamblare eSle neportabil: peale Ii rulat numai pe arhilectura de calcul penlru care a fost scris. Oaca programul in Iimbaj de asamblare trebuie portat pe 0 alia. arhitectura, trebuie rescris si lolosile mnemonicile spcilice acelei arhilecturi.

CAPITOLUL 11. COMPILARE !?I LINKING

333

intrucAt necesitA cunoslinle despre Slructura procesorului. resursele acestuia, mecanismul de acces la memorie, programarea in limbaj de asamblare este dilicilA. Se recomandA folosirea acesluia doar la nevoie: cand un limbaj cum eSle C nu olerA instructiuni pentru electuarea unei anumite opera!ii cand este nevoie de eficientA maximA care poate Ii obtinut.:i numai prin scr ierea de cod in limbaj de asamblare Traducerea codului in limbaj de asamblare in cod obiect se realizeaz.:i cu ajutorul unui asamblor in faza de asamblare descrisA in sectiunea urmAIOare. Fiind vorba de 0 asociere unu la unu inlre mnemonici si instruc!iunile procesorului, este posibila oblinerea codului in limbaj de asamblare pornind de la codul ob iect. AceastA operalie poarta numele de dezasamblare si esle prezentala in sectiunea 11.3.3.

Ti puri de limbaje de asamblare Chiar pentru acelaSi procesor pot exista limbaje de asamblare dilerite sau. mai corect spus, sintaxe de limbaj de asamblare dilerite. Pe art1itectura x86, asamblorul de la Microsoft loloseste Sintaxa Intel, pe cAnd asambiorui de tJnu x (GNU) fo loseste sintaxa AT&T ' . Astlel , copierea valorii Ox i OO in reg istrul eax se lace. lolosind ce le douA sintaxe, astfel:
ma,,1 ma" $0,,100 , MX . t e a" lOOh

; ;

~ lnt~x~

AUT
l nt~ l

~ ln t axa

La lei. stocarea valorii IDO la adresa in dicata de eax :


, mo"l $Ox 100 . mo,,1 I M X].

(" ax 1
lOOh

~ ln t axa

~ lntax~

ATOT I nt e l

11.3.3 Asamblarea
Etapa de asamblare esle etapa de Iraducere acodului scris in limbaj de asamblare (Iisier text continAnd mnemonici spec ifiCe arhiclecturii sistemului de calcul) in cod bi nar. Acest cod binar eSle cod masinA reprezent:l.nd cod iliCarea binarA a instruc!iunilor procesorului. Fisierul obtinut poarta numele de lisier cod obiect sau modul obiect. Pe Unix un modul obiect are extensia . 0 iar pe Windows extensia . ob j . Pentru oprirea ru lArii qc:c: dupA laza de asamblare se loloseste opliunea - c. in mod implicit sa inlocuieste extensia lisierului sursa cu o. Fisierul 5ursA poate Ii un l isier C sau un lisier in limbaj de asamblare:

,
,
, 6 ,

mireea@eougar:-/carte - uso/cap- lO$ gee - e in fo . c


mireea@co~gar:'/carte - usoleap - lO$

ls -I i nfo . O -rw-r--r-- 1 ubuntu ubontu 764 Sep 19 00 : 29 info . o

m.rcea@eougar , -/earte - os o lcap- l0S gee - c info . s

, http ;lI. n.wiloiped ia.olglwikiIXS6_ao.emi>ly_la nguage

'"
"
mirce~@couq"r:-/c"rt" - u$o/c"p - lO$

INTRODUCERE iN SISTEME DE OPEAARE

1. - 1 info.o - rw- r -- r -- 1 ubuntu ubuntu 7 44 Sep 19 00 : 29 into.o

Ca si pana acum, se poate lolosl op! iunea - 0 pentru a preciza explic it numele fisierului de iesire:

,
,

mirce,,@couqa r' -/c"rt~-u$o/c"p-lO$

gee -c in fo . ,

-0 modul . o

mirceo@cougar:-lcarte - u$o/cap- lO$ 1. -1 mo<iu l ,Q - <"'- r -- r -- 1 Ubun tu ubuntu 744 Sep l~ 00:41 modul . O

in cadrul suitei de aplica!ii GNU, asamblorul folos i! Gas (GNU Assembler)" iar
executabilul asocial este a s . Un l isier in limbaj de asamblare poate Ii asamblat folosind

as :

,
,

mlrcea@cougar:-/carte - us o/c ap- lO$ as into.S - 0 as out . O


mircea@cougar ; -/carte-uso/cap-lOS Is -1 a"_ out . o
- rw- r -- r -- 1 ubuntu ubun t u 744 Sep 19 00 : 48 a'_<lUt . O

Modul oblect Un modul obiect contine cod masina specific procesorului. Acesl cod eSle obli nut in urma fazelor de preprocesare. compi lare si asamblare. Un modul obiect are. de obicei. extensia . 0 :
mircea@co u ga ": -/c~rt~-u"o/cap-lO$

info.o , ELf" 32 - b i t stripped

LSB reloca t able ,

f i le in fo . o Inte l 80386 , venion I

ISYSV) ,

not

objdump; dezasamblare Datorita asocieri i unu la unu care exista intre codul obiect si codul in limbaj de asamblare, se poate realiza 0 operatie de dezasamblare. Dezasamblare in seamna "recuperarea" mnemonicilor i n limbaj de asamblare pornil"ld de la codul ma~ina ; este operatia inversa asamblarii. Utilitarul iolosit in aces! sens este o b j d u mp:

, ,
6 ,

ra"van@anaconda : -/U$o/compilare$ objdump - d i nfo . o info . o , f il e format elfJ2 - iJ86

Disassembly of section . text :


00000000 <get_ sum> : 0: 55 89 e 5 83 ec 14 8b 45 08 8b 80 80 00 00 00 83 fS I f

" "
"

.
,, , , , , ,,,

push
~o"

",
~,

'ebp ' e sp , ' e bp $Ox14 . \ " ,P


0 ~ 8('''bp) , ' e ax

~o"
~o,

Ox80 (' e ax) . 'eax $ Oxli . ',,~x

, http)le n.wikiped ia.orglwi!<i/GNU_A..embie r

CAPITOLUL 11. COMPILARE!?I LINKING


"
,.

335
I d <get_$um'O x l<;1> $OxO . Oxf[f[f[ec (hbp)

12 :
14:

7e 09 c7 45 ec 00 00 00 00

jle mov l

'"

( ... I

om
Un alt utilrtar IO IOSitor in lucrul cu l isiere obiect este nm. Cu ajutorul aceS\1.J ia se pot lista simboluri le dintrun f i ~ i er obiect:
r~zv~n @ ~nacond" : -/u s oJcompil"reS

nm info . o

00000000 T get_ ,urn

run peate ole ri informatii despre delinirea sau nu a unui simbol intr-un modul obiect:
r~%van@anaconda : -/uso/comp i l~,eS

nm ma!n . o

U add

00000000 T main U printf


U

sub

Din rezultatul afisarii se observa ca simbo lurile sunt marcate cu u sau T. T inseamna ca acel simbo l eSle delinit in zona de text {cod} a executabilului, iar u inseamna cli este nedelinit in modulul obiect primit ca argument. In exemplul nostru, modulul are delinit simbolul rna in dar nedefinile simbolurile add, sub ~i pr i nt f. Aceste simboluri se gasesc in aile module obiect sa u in bibtioteci. Rezotvarea aceslor simboluri 5e va realiza in momentul link-edilarii.

11.3.4

Optimizarea compilarii

Un compilator translateaza codul sursa in limbaj de asambtare. ~i dupa faza de asambtare. in cod ma~in1'i. Operaliile descrise intr-un limbaj de nivel inall pot Ii traduse in diverse "scenarii" de instruC\iuni in limbaj de asamblare. Avand cunost inte intime despre arhitectu ra sistemului de calcul (setul de instruC\iuni. regislrele procesorului ~i modurile de adresare), compi latorul peate alege un scenariu mai bun de translatare. Faza tranSlatarii in care comp ilatorul i ncearca oblinerea unui cod masina mai bun poarl1'i numele de optimizarea codulul . Denumirea de optimizare este u~or IOl"\ata. Un termen mull mai bun este eel de imoon.!lUltire; nu se poate spune cli se ob!ine cod op/lm. Dalorit1'i r1'isp{md irii aceslei forme, atAI in limba romAna cat si in limba englez a (optimizing compiler), se va lolosi in conlinuare denumirea de optimizare. Optimizarea are drept scop ob!inerea unui executabil care sa ru leze cat mai rapid care sa ocupe cat mai pulin spaliu.
~i/sau

Se peate intflmpla ca aceste doua scopuri (viteza mare, spali u ocupat mic) sa lie in conlliCt; ulilizatorul va putea preciza compi lal orului care $Cop este mai important. o data cu dezvoltarea sislemelor embedded, un rol important pe care trebuie sa-I indeplineasca executabilul ob!inut de comp ilator este consumul red us de putere.

336

INTRODU CERE iN SISTEME DE OPEAARE

Folosirea optimizarii reprezintA un compromis intre obtinerea unui executabil mai rapid sau care ocupa mai pulin spaliu ~i un limp mai indelungat de compi lare. Din aces! moliv, parlea de dezvoltare a unei aplica!ii se real izeaza lara optimizare. Faza de optimizare asle lolosita in momentul in care aplicalia esla pregatitA pentru tans are (release). Pentru a justifica avantajele ~i dezavanlajele folosirii optimizarii, mai jos se prezinta doua scenarii de compilare a unei aplica!ii C++:

lara optimizare; se obtine executabilul bb- ss a- no- op t :


ou foiosirea unOf opti uni de optimizare; sa obtine exe<:utabi lul b b - ssa - op t .

Sa poate observa, ca dezavan/aj 0 orestera a timpului neeesar pentru compi lare (de la 4 . 1 secuooe la 5 . 7 secunde). dar ca avantaj 0 scadere a dimensiunii execulabilului (dela 328KB la 140KB):
r~zv~ n @ v~ l h " 1 l<t : - hc h 001/ 2 001 - 200 L eo a e/ p t/te"",4/ p t4$ time g - 0 b b - .... n o - opt b b - s s " . e pp b"sic_ b l oc x . cpp ss a . c pp asambl or . c anal i zor . c i n terpre t or. t3 b . c - t fl

10 11

".er 5 s ys
s s ~ - opt

r eal

Om4.1 43. Om 3 . 6240 OmO . 4880 t ime g .. - 0 - 0 bb an~ l i zor . c

I~ z v~ n @ v ~ lh ~ 1l ~ : -h c h o o l /200l - 2006 _ co a e/ p t/t""",4/ pt 4$

" "
,. 1e "

b b - " . epp b a. i c _ bl ock . c pp " . cpp a samb lor . c i n t e r p r eto r . t a b . c - l f 1 Om S . 769. Om 5. 288 s OmO . 4 56s

re~l user sy s

razv a n @ va lh a l l<t , '/sehool1200 1 - 200 L co a e/ p t/ t ema4/ p t4~

1$ - lh bb- ssa -no -

"

'"

- <"xr - xr - x 1 U<v3 n uzvan

328~

Au g- 2122 : 11 bb - ssa -n o - opt

ruva n @ v a l h 3 11 ~ ; -/schoo l 1200 1- 2 00 L coa e/ p t/ t e m3 4/ p t4S I s - l h bb- sS 3 - o p t - <wxr - x< - x 1 U< v 3 n uzvan 140~ Au g- 21 22 : 12 bb -~~ a - op t

Gee per mite optimizarea codulu i obtinut prin intermediul op!iunii - 0. Aceasta este urmata de un numar ca re specilica gradul de optimizarefimb\.lnatatire a cod ului. in mod implicit, comp ilatorul nu oplimizeaza codul. Acest lucru este echiva lent cu lolosirea optiunii - 00 (litera 0 majuscula si zer o):

mircea @ eoug" r:- lear t e - uso/c Op - IO$ gee - e e h at.erv . c - 00


m i rce a@ "o ~ga r : 'leart e - u s o /cap- I O$
ch ~ tserv.o

19 - ) - r w- r -- r -- 1 uountu ubu n tu 3656 Sep l a 23 : 46 chauerv.o

Gee prezinta 3 niveluri numerice de compilare: op!iunea - 01 inseamna reducerea timpului de execu!ie $i a codulu i ob!inul lara a alecta semnilic aliv timpul de compilare; este echivalentll cu lolosirea optiunii - 0 (lara un argumenl numeric)

,
)

m ireea@eouga r ' ~/ca r te - uso/c a p - 1 0$

gee - c chat s e r v . c - 01

m irce 3 @cougar , -/ c arte - u so/c~p - 1 0$ 10 - 1 c h a t, e rv . o - rw - r -- r -- 1 u b unt u ubu ntu 3200 Sep 18 2 3 , 46 c h a ts e r v . o

CAPITOlUl11. COMPllARE!?1 LINKING

337

opliunea - 02 inseamna lolosirea luturor oplimizarilor care nu atrag un compromis vitezaspaliu

,
,

rn i ree~@eougar;-/carte - U'O/Cap -l 0$ rn i ree~@coug a r : -/c~rte - u.o/c~p -l 0$


eh~tserv.Q

gee - c ch a t.erv.c - 02

1. - 1 - rw - r -- r -- 1 ubuntu ubuntu 3232 Sep 18 23 ;4 7

eh~tserv.Q

Se observa ca sa obnn ut un cod ceva mai mare decat in cazu l opti unii -01, dar care va rula mai rapid . Nu intotdeauna un cod mai mit va Ii mai rapid. optiunea - 03 este in acest moment cea mai puternica (s i agresiva) metodl! de compilare:

,
,

rn ir ce ~ @cou9ar : -/c~r t @-u.o/c~p- 1 0$ rniree~@COU9ar;-/c a rt e - u.o/c~p -l 0$

9CC -c chat s @rv . c -03 ts -1 330a Sep 18 23 :4 7 chataerv . Q

chatserv . Q - rW - r -- r -- 1 ubuntu

ubunt~

GCC olera 5i optiunea - Os care i nseamna optimizarea codului pe ntru a ocupa cal mai pulin spatiu. 0 utilizare tipica este In cazu l dispozitivelor embedded care dispun de resurse hardware rduse:
1 ,
J
"' ir c e a~cou9ar : -lcar t " - usO/cap - 1 0$

9CC - c

cha t ~ erv . c

- 0.'1

"'i rce a8 cougar : -I carte - us,,1 cap - l 0 $ 1; - 1


ch~t3 e rY . o

- n. - r -- r -- 1 u buntu ubuntu 2868 Sep 18 23 : 47

ch~t'''rv . o

11.3.5 link-editarea
Un modul obiect este asociat unui singur !isier/modul sursa. Modulul ob iect descrie datele si codu l lunctiilor proprii. Varib ialele si luncliile poarta numele generic de simbo luri. Simbolurile externe modulului (adica !uncliile sau var iabilelele e~terne ndelinite local, prezente in aile module) sun t marcate ca ndelinite in cadrul modulului. Pentru obtinerea unui fisier executabil si deci pentru rularea acestui cod este necesarl!: identilicarea simbolurilor nedelinile, ope ralie denumita si rezolvarea simbolur ilor,

,;
unilicarea sau legarea (linking) a zonelor de date si cod asociate intr-un Iisier executabil. Aceasta operalie se numesle link-editare, linking sau legare. Spre exemplu. in momentul i n care se compi leaza un modul ob iect care loloseste func!ia de bibliotecA print f, simbo lul apare ca liind nde!inil (caracterul u la run):
razvan @ anac"nda : -/u ~ o/compil~r"$

rum main . "

,
J

00000000 T rna l n
U

printf

Funelia print f este delinila in biblioteca standard C. in urma link-editarii se obtine un execulabil care imporla zona de cod asociatA luncliei pri n tf din bib lioteca starldard C. Alta situalie este folosi rea intrun modul obiect a unei lunelii definite intr-un alt modul

338

lNTRODUCERE iN SISTEME DE OPEAARE

obiect;

un exemplu eSle folos irea iUr'lCtiei sum In fisiarul mai n. c descris in


~i

sectiu nea 11.2.2. Fu ncUa sum esle definita In sum , c .

Aplica)ia care rezolva simboluri le nedefinite


obiect poarta numele de linker.

care realizeaza legarea moduletor

ROlul unui linker eSla, asadar, de a lega mai muHe l isiere obiect sau biblioteci, de a rezolva simbolurile nedefinite ~i de a obline un executab il sau 0 bib lioteca.
Figura 1 1.3 prezinUi rolul indeplinit de un linker.

ri ~i er

b ibliote<.i

obie<t

linker

bibli o tec ~

execut.bil

Figura 11.3: FUr1C\ionarea linker-ului Mai multe detalii des pre biblioteci se g1i.sesc in secliunea 11.4.

Invocare linker
linker-ul de pe distribuliile G NU/ Unux esla G NU linker sau GNU Id'. Executabilul asocial este I d. Linker-ul esle rareori invocat cu ajuloru l come nzii I d . i n mod obisnuit, linker-ul esle invocala inlern de comanda g cc:

"

, , , ,

mir c @a@cQ u qa r: -/c~rt@ - u~o/cap - lO$

,cc - Wa ll - c ma;n . c
",'

mlrcea@cQu qar:-/carte - uso/cap- lO$

- Wa ll

mircea@cQuqar:-/carte - uso/cap- lO$ ",C - Wa ll


mircea@co u q~r : '/c~rte - us o /cap - lO$

-, -,

~dd . c

sul) , c sub . o

,c'

m ~ln . o ~dd . o

-,

exec

mirce~@co u q~r : -/carte - us o /c&p - IO$

. /exec

Suma 110) :

, http)le n.wikiped ia.orglwikiIG NU_ i n~" r

"

CAPITOLUL 11. COMPILARE!?I LINKING


"
Sum~ ~lte rn ~ nt~

339

{I OI:

-s

Se poate fotosi ~i ld. ins!! num!!rul mare de argumente care trebuie transmis face aceast!! optiune mai putin viabil!!:
mirce~@co u q~r: - /c~rte - U$o/c~p - 10$

ld -d y n ~ mi c - linker /lib/ld- linu x . o . 2 I uS" l li b/crt l .o lusr/ lib/crti . 0 lus r / li b/qccl i4a6 - li.nux - qnu/ 4. 1 . 2/crtbeq i n . 0 mai n.o add.o sub . o - I e lusr/l;b/qcc/i4a6 - 1tnux- gnuI4 . 1 . 2/c,te nd. o lusr Illblcrtn . o - 0 e~ec

mj

rcea@cougar :'/carte- usolcap- 10S . /exec

Suma 1101 : 55 S Sum~ ~lt ~ rnanta 110 1: - 5

11.3.6
Un

Fisiere executabile
este un fi~ i er binar ob)inut dintr'UI"I set de in urma operatiei de linkeditare.
li~i e re

11~ler e~ecutabll

obiect si

bi~ioteci

Spre deosebire de lisierele obiect, un lisier executabil are idenlihcate si, in general, relolvate simbolurile. Aceste simboluri SUl"lt relolvate la Iinkil"lg (tegare static!!) sau la rulare (leg are dinamic!!). in momel"ltu llans!!rii il"l execulie, inlorma!iile eon!inute in fis ierul executabil sunt folosite penlru a genera un proces. Un lisier executabil va contine cod ul masin!! lolosit penlru indeplil"lirea sarcinilor date dar ~i an tete ~ i sec!iuni de lormatare auxiliare. Aeestea SUl"lt folos ite pentru a descrie modul in care se foloseste codul, zonele de memorie folosite etc. Un I~ i er executabil are, a~adar, un lormat bine delini1. Formatul de I~ i er executabil se relera la li~iere obiect, li~iere executabile ~i la biblioteci eu leg are dinamica.

Formate ale fisletelot

e~ecutablle

Formatul unui fi~ier executabil' este stnlns legat de sistemul de operare. Sistemul de operare esl e responsab il cu interpretarea unui l isier exeeulabil si generarea unui proces pe baza acestuia. Un e~ecutab i l poate Ii rulat pe un sistem de operare daca acel sistem de operare oler!! suport pentru lormatul de executabil lolosi!. Formatul de li~ier executabil se refer!! ~i la li~ierele obiect. Exemple de formate de lisiere obiecVexecutab ile sun\: ELF - folos it in sistemele Unix; COFF - versiunea anterioara ELF folosil!! pe Unix; a.out - primul lormat lolosit de sistemele Unix; a olerit del1!Jmirea pentru executabilul implicit general de compilatorlli nker; PE - formatul implicit pe sistemele Windows;
, http;lle n.wiloiped ia.olglwikilObjecUile

340

INTRODU CERE iN S IS TEME DE OPEAARE

Mach -O - formatul implicit pe Mac as X. In linux, Iormatut de fi$i&r ob iectlexecutab il folos it aSIa ELF (Exe<:utable and linking Format) ' :
mi r ce~ @ co u qa r: -/carte - U$o/c O p - IO$

f il e in fo . o i nf o . o : ELF' 32 -b it LSB reloc &table , Inte l eO~86 , v .. uion I st ri ppe d

ISYS'I) , fiot

ml rce a@ cougar:-lcarte - uso/c ap - lO$ fi l e exec


exec : ELf n - t it LS6 ,,><ecuUb l e , l n te l 80396 , v e rs i on I ISYSV) , for GNul L i nux 2 . 4 . 1 , dyn a mic a lly li n k ed lu ses s h ~ ~"d l i b s ) . fM GN lJ!L1n u, 2 . 4 . 1 , not strippe d
mircM @ co ug ~r ; -/c ~ rte - usoJc&p - l0S

,
10 11

f ile Ibin/l" Ibin/l5 : ELF 32 - bi t LSB e x e c u t able . Int e l 8 0 386 , v e r H on 1 IS YSV) . fo r GNU/L i n u x 2 . 4 .1. dynami c dly lin k e d luses , h a r ed lib $ l . fo r GNU/L inux 2 .4.1, st ri pped

m1 rC M @ cou qa r: -I c a rt .. - u~ o l cap- I 0 $ f i 1.. 11 i b / l i b c - 2 . 3 . 6 . ~ o Ilib/ li bc - 2.3 . 6.$o : E LF n - bit LSB s h a r e d o bj ect . Intel a03S 6 , ve r sion 1 ISYSV) , for GNU/ Linu x 2 . 4 . 1 , strippe d

in listingul de mai sus se observa tipurile de fisiere care folosesc formatul ELF: module ob iect; f~ierul i nfo . 0 este un modul ob iect ELF reloc abil'; fisiere executabile; fisierele e xec si /bi n /l s su nt fisiere executabile format ELF; biblioleci partajale (vezi x.y.z); fisierul /lib/ libc - 2 . 3 . 6 . so eSle 0 bibl ioleca partajata (sharedobject) (vez i secliunea 11.4.1). Utilitarul readelf poate fi folosit pentru an al iza unui fisier in format ELF. in exemplul de mai jos se pot observa cateva din secti unile unui fisier executabil: . t e x t reprezinta zona de cod, . roda t a zona de date readonly.

, , ,
, '"

ra"va n @ a n aconda : - /U$o/compilare$ r ead elf - $ eKec ThH~ a r ~ H 3~ct i on h"adH3 , 3 t a rtinq at off3et Ox,,3S : Section Head ers: INr i Na me 1M "'I

Type NULL
PROGBITS

, , "' , ," ,"" " ( J


0 0 0 0

"'ddr

'"

She

" n, "'
0

00 000000 000000 000000 00

. i n te~ p
.n ot~ . II BI - ta9

0 8 0 48114 000 11 4 000013 00 08 0 48 1 28 000128 000020 08048148 000148 000028

NOTE HIISH

. h as h

0 00 0 "'

, http;!le n.wi<iped ia .orglwikilE ' 8CUtabl<o_ and_lin kat>e Jor mal ' http;!l. n, wikiped ia, orglwikURelocatio n_ (co mput~r_ $C ie nc e )

CAPITOLUL 11. COMPILARE

~I

LINKIN G

341

11.4

Biblioteci de

func~ii

o biblioteca este colectie de lunctii sau elase care oler~ servieii preimplementate dez~oltatorului. in general, 0 biblioteca este oblinuta prin comasarea mai multor lisiere obiect. 0 biblioteca eSle, de asemenea, un l isier.
e.ecut~b i l e

0<1

0<<<'

O""'V hb .

BEl
bi bliotedi
~i

module ob iect con\inut e

Figura 1 1.4: Biblioteca Bibliotecile de !unctii {engleza: libraries} au aparut penlru a oleri 0 mai mare flexibilitate deZVQl1atorilor de software. Acestea reunese lunetii des utilizate , astlel incat un program ~a lolosi 0 biblioteca lara a Ii neVQie de reserierea eodului doril. in zilele noastre, Ioarte mllite servicii au lost incapsulate in bibliotaei de lunctii pentru a u~ura procesul de dezvo~are de nOi apticatii. Astlel: biblioteca standard C (l ibc) olera servieiile de baza ale sistemului: biblioteei preeum GTK... ' sau Qf olera primibve pentru dezvoltarea de inter/ete gratice; utili tarul Pidg i n~ de instant messaging a izolat lunetiile prineipale in biblioteca l ibpurple; dezvotatorii Subversion' au dezvoltat biblioteca 1 i bsvnl : 1 ibpng, 1 ib jpeg, 1 i bti f f sunt lolosile pentN prelucrarea de imagini; l i btorr en t -rak shasa si l i btorren t -ra sterb ar sunt biblioteei care implementeaza protocolul SitTorrent lolosite de un numar mare de elien!i BitTorrenl. Mai sus sunt prezenlate doar eateva dintre aplicaliile bibliotec ilor. Praetic. orice l unctionalitate utilizabila de mai multe aplieatii poate Ii implementata lnlro bibli oteca.
, hl!p :I.w-.(jlk.oo'{ll ' hItp :Ilqt no~la. co JT\I ' http :I.w-.pidgin.imI http ;llw~ rs ion,tig, i., ofgl

C JPYnghted matanal

3<,

lNTRODUCERE iN SISTEME DE OPEAARE

Din circa 25000 de pachate instalatlile In cadrul distributiei Debian GNUILinux


Testing/Squeeze', peste 5000 sun\ biblioteci:
r~'v~n@v" lh " ll ,, ' -/cod .. /ptr$ ~pt - c~c h e

.",uch li brary I grep 'lib I we -1

5699

11.4.1

Tipuri de biblioteci

BibHotecile i~j incep utilizarea i n momentullinkedit~r i j. Pentru rezolvarea simbolurilor nedefini\e, Iinker-ul caut.:! in modulete obiect incapsulate in cadrul bibliotecilor ~i realizeaza rezolvarea simboluri lor. Rezolvarea inseamna marcarea locului in care simbolul eSla delini\. in J unelia de tipul bibl iotecii, linker-ul decide sa adauge mOdulul obiect necesar in codul executabil ului sau doar sa marcheze referinla rezol~ata. Exisla, aSllel, doua tipuri de bibli oteci:

blblioteel Cll legare statlcii (statical/y-linked libraries) sall, pe sCLI rt. bib/ioteci slalice; biblioteei ell legare dinamicii (dinamicallylinked libraries) denllmite bib/io/eci par/ajate (shared/ibraries) pe Linux si dynamic..,ink libraries (OLL) pe Windows. Inditerent de tip, bibliotecile de \unctii existii sub lormii de lisiere independente in sistem Bibliotecile statice (static libraries) sunt aeele biblioteei ale caror module obiect componente sunt ineluse in li~ i e rul executabil in momentullink-editiirii. Aillel spus. un exeeutabit obtinut in urma legarii eu 0 bibliotecii statica deline tot eodut necesar pentru a rula. Oimensiunea executabi lului esle m1!.rita prin ineluderea Ii!;ierelor obiect necesare din cadru l bibiotecii. in eazul blbliotecilor partaJate (shared IIbrartes). operalia de link-editare doar marcheazii referi ntele ea liind rezolvate. Modulete obiect nu sunt incluse in codul executabilului obtinut; vor Ii adal,JQate in momentul lansiirii in execU\ie sau in momenlul rul1!.rii. Codul asociat unei biblioteci partajate nu ajunge nieiodatii i n eadrul unui executabil. BibHoteca va Ii inciircata. in memorie la nevoie si va Ii lolosita in eadrul procesului oblinut in urma exeeu!iei. in iunclie de momentui in care biblioteca va Ii inciircatii in memorie, exista doua subtipuri de biblioteci cu legare dinamica: blblioteel eu incarcate la exeeu!ie (load-time dynamically-linked library) biblioteca este adusii in memori e in momentul in care programul executat. daci'1 nu exista deja aeolo; blblioteel eu ineiircare la rulare (run-rime dinamicaIIY'/inked/ibrary) - biblioleca este adusa in memorie la cerere , in momentul in care programul executa 0 instruc!iune care solieil1!. acest lucru. Bibliotecile partajate, dupii cum Ie spune si denumirea, reprezinta. metoda cea mai utilizata de a pune la dispozitie fune!ii comune penlru mai multe aplica!ii. Daea doua
, http)/package .de b;an.o rgite.tingi

CAPITOlUl11. CO MPllARE !?1 LINKING

, <3

sau mai multe aplicatii lolosesc aceeasi bibliotecA, aceasta va trebui sA lie incArcatA 0 singurA datA in memorie, economisind astlel spaliul ocupat. Biblioteca standard C. folos itA de cea mai mare parle a aplicaliilor, este, de obicei, 0 bibiolecA parlajatA. Tabela I I I reprezintA 0 compara!ie lntre biblioteeile statice si eele partajate:

11 .4.2

Informa,ii despre bibliotecile de func,ii

Pe un sistem Linux, bibliotecile se gAsesc in direcloarele /lib, l u sr /lib sau lust/local / l ib. Bibliotecile statice au extensia .11, iar cele parlajate so (de la shared object). In!ormalii primare despre bibliotecile de lunetii se pot alia prin intermediul comenzii
fil .. :
mi rc~a @ couga r : -I c a rt,,-u ~ ol cap-l 0 $ fi l e lu, r I 1 i bl 1 ibm . a

> lusr/lib/ li bm.a : current o r orchive


" ro l rcea@cougar:-/cane - u$o/cap- lO$ tile I Ilbl 1 ibm. so . 6 Ilib/libm o.6 : $ymbolic link to li bm - 2.3.3 . $O ' mt rce a @couga r,-/carte - usolc &p - lOS tile 1)!b/)!bm- 2 . J . J . 80 I l ibllibm-2.3.3.so : ELf 32-b i t LSB sh a red object, I nt e l 80386 . Ver S Ion 1 ISYSV) . not 'trippe d

,
$

BibHotecile statice sunt de lapt arhi~e de li~iere obiect. Ele sunt create prin intermediul comenzi i ar. (pentru mai multe in!ormalii se poate consu lta man arlo o bibliolecA parlajatA este creatA de linker. Pe un sislem Li nux, 0 bibiiotecA partajatA se creeaza cu ajutorul comenzii gee ~i optiunea - shared '. 0 biblioteca partajata este id entilicatA printrun numar