Sunteți pe pagina 1din 10

INIIERE N SISTEMUL DE OPERARE LINUX

COMPETENE GENERALE SI SPECIFICE


1. Aplicarea unor comenzi i utilitare Linux.
Recunoaterea i utilizarea corect a comenzilor DOS echivalente Linux.
Identificarea structurii de fiiere i directoare a sistemului de operare.
2. Proiectarea aplicaiilor pentru rezolvarea unor probleme utiliznd programarea C/C+
+ sub Linux.
Cunoaterea i nelegerea programarii open souce.

Identificare noiunilor de baz ale programrii structurate.


Utilizarea instrumentelor de programare Linux.
3. Analiza rezolvrii unei probleme prin compilarea, depanarea i execuia programului
C/C++.
Aplicarea unor opiuni de compilare i link editare.
Depanarea pas cu pas a programelor executabile.
Utilizarea utilitarului make.
Generaliti S.O Linux
Linux este un sistem de operare bazat pe Unix, ceea ce nseamn c motenete din caracteristicile
acestuia: multitasking (adic poate rula mai multe programe n acelai timp), multiuser (adic mai muli
utilizatori pot folosi calculatorul n acelai timp sau la momente diferite, n sesiuni de lucru diferite),
securitate (fiecare user are drepturi i restricii la folosirea tuturor resurselor puse la dispoziie de sistemul
de operare), programe specializate (unul din principiile de baz spune c programele care alctuiesc SO-ul
trebuie s execute un singur job, dar acela foarte bine; problemele mai complexe vor fi realizate din
nlnuirea mai multor programe (procese de execuie) ceea ce conduce la urmtoarea caracteristic:
interoperabilitate (programele trebuie s comunice ntre ele, astfel nct s poat fi folosite mpreun. O
alt caracteristic se refer la respectarea standardelor (Linux este construit pe standarde, POSIX fiind
unul din standardele de baz) i portabilitate (astzi Linux ruleaz pe procesoare x86, Alpha, Sun
SPARC i UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390,
MIPS, HP PA-RISC, Intel IA-64 i AMD x86-64).
Alte caracteristici sunt scalabilitate (Linux se gsete n aparate electronice cu utilitate casnic,
PDA-uri, workstation-uri, sisteme desktop i sisteme server), customizabil (ofer o mulime de opiuni
pentru programele rulate, interfeele folosite, i posibilitile de configurare).
O caracteristic foarte important este modul de dezvoltare distribuit, caracteristic oricrui
software liber. Practic, versiunile noi apar cu mare rapiditate, bug-urile se repar foarte repede (ceea ce
Computer Science and Electrical Engineering Department
Adrian FLOREA
1

este enorm de important cnd apar carene n securitatea unui sistem). n general oricine este binevenit
s contribuie i s mbunteasc Linux-ul.
Iniial aplicaiile pentru Linux aveau un caracter tiinific, aplicaii cu baze de date, aplicaii pentru
reele i uneltele specifice programatorilor (compilatoare, link-editoare, debugger-e). Utilizatorii obinuii
se plngeau c interfeele acestor aplicaii nu sunt destul de prietenoase. n ultimii ani ns aplicaiile pe
SO Linux s-au schimbat i s-au fcut progrese majore spre sistemul desktop user friendly. nfiarea
Linux-ului s-a schimbat i mbuntirile continu s apar i s fie vizibile de la o zi la alta. Exist
aplicaii pentru office (AbiWord, OpenOffice, etc), aplicaii pentru comunicare n reea (suita Mozilla,
clientul de mail i organizator Evolution, messenger-ul Pidgin, etc), aplicaii pentru entertainment (pentru
video i DVD exist Mplayer sau Xine, pentru muzic XMMS, foarte multe jocuri de calitate ca Doom,
Unreal Turnament, Civilization, etc).
Principalele avantaje Linux
Pretul initial este nul sau sub 50$. Comoditatea utilizarii Linux-ului se refera:
la pretul total al acestuia, care este foarte mic neavand nevoie de licenta sau in caz contrar
aceasta este foarte ieftina;
la abilitatea de a modifica orice cod din acesta fiind open-source;
la capabilitatea de a folosi componente hardware ieftine la fel ca si solutiile software.
Linux ofera si o foarte mare siguranta, neavand nevoie de softuri antivirus, in caz contrar, acesti
antivirusi se folosesc pentru a detecta virusii care infecteaza sistemele Windows.
Modalitatea de acces direct la codul sursa, permite modificarea oricarei component a acestuia (SO),
alaturi de alte aplicatii care vin cu acesta. Diferit de alte produse comerciale, softurile open-source sunt
construite pe bucati care interactioneaza una cu cealalta, astfel incat utilizatorul este liber sa mixeze si sa
potriveasca componentele dupa propriul scop.
Un alt avantaj al Linux-ului consta in posibilitatea gasirii solutiilor (ajutor) pe Internet. Este foarte
probabil ca cineva dintr-un newsgroup sau mailing list sa doreasca sa te ajute in rezolvarea problemei.
Fiindca codul sursa este accesibil, in cazul in care ai nevoie sa repair ceva la system, poti construi un
patch chiar tu, ajutand astfel si pe ceilalti utilizatori ai Linux-ului. Utilizatorii OS-urilor non open source
sunt obligati intre timp sa astepte un release official pana la rezolvarea unei probleme, putandu-se ajunge
si la o asteptare de cateva luni.
Geneza Fedora xx i686
Proiectul Fedora a fost creat n toamna anului 2003 cand a ncetat dezvoltarea de ctre Red Hat
Linux, continuarea proiectului fiind realizat n cadrul unei comunitati open-source. Red Hat Enterprise
Linux (RHEL) a ramas singura distributie suportata comercial de catre Red Hat. Versiunile RHEL sunt
bazate pe Fedora, cu o selectie a pachetelor instalate, perioad de testare mai ndelungata i suport
comercial. Numele Fedora deriva de la un proiect voluntar, Fedora Linux, care furniza un numar de
aplicatii suplimentare pentru Red Hat Linux si de la termenul Fedora (a hat made of felt with a creased
crown), care este un element distinctiv al siglei "Shadowman" folosita de catre Red Hat. Fedora Linux si
Red Hat Linux au format mpreuna Fedora Core iar in 2007 prin unirea cu Fedora Extras a rezultat
Fedora.
Comenzi i utilitare Linux [selecie]
Pentru a testa urmtoarele comenzi se acceseaz meniul ApplicationsSystem ToolsTerminal.
1. Pentru a determina cte / i care partitii sunt instalate pe sistemul de calcul se foloseste comanda
fdisk cum urmeaza:
$ fdisk l
2. Pentru a determina care kernel il folosesti in momentul de fata se tasteaza comanda:
Computer Science and Electrical Engineering Department
Adrian FLOREA
2

$ uname r
3. Pentru a determina structura de fisiere si directoare de pe sistemul de calcul se tasteaza comanda
(dir) existenta si in DOS. Ambele returneaza aceleasi date, diferand detaliile.
$ dir
4. Pentru afiarea coninutului directoarelor se poate folosi i comanda (ls).
$ ls
Diferena dintre ls i dir const n faptul c ls se bazeaz pe un evideniator de sintax
(SyntaxHighlighter).
5. Pentru a curata fereastra terminalului se tasteaza comanda (clear) existent in Linux si de
asemenea in limbajul de programare C/C++ accesata ca functie (clear();). Comanda echivalenta
DOS este cls.
$ clear
6. Pentru a schimba directorul current se folosete comanda (cd) existenta in Linux si DOS.
$ cd
7. Pentru a afia informaii despre utilizatorii nregistrai se folosete:
$ who
8. Afiarea sau schimbarea hostname-ul sistemului se realizeaz cu comanda:
$ hostname
9. Pentru tergerea unui director gol se folosete (rmdir) specific att Linux ct i DOS:
$ rmdir
10. Pentru tergerea unui fiier sau director se folosete (rm). Opiunea -r asigur tergerea recursiv
(imbricat).
$ rm -r
11. Pentru a oferi informaii privitoare la un fiier (permisiuni, dimensiune, proprietar, data accesrii,
etc) se folosete:
$ stat
12. Crearea de noi directoare se realizeaz folosind comanda (mkdir) specific att Linux ct i DOS:
$ mkdir
13. Copierea unui fiier la o alt locaie sau sub un alt nume se face folosind (cp). Echivalentul de
DOS este comanda xcopy.
$ cp
14. Copierea de fiiere aflate la distan, n regim securizat (accesul pe staie s-a fcut cu ssh) se
realizeaz cu utilitarul (scp).
$ scp [[user@]from-host:]source-file [[user@]to-host:][destination-file]
$ scp aflorea@172.16.21.22:/home/aflorea/Hands-on-30.zip Hands-on-30.zip
Computer Science and Electrical Engineering Department
Adrian FLOREA
3

Ultima comanda presupune c se cunoate faptul c userul aflorea exist pe staia


172.16.21.22 (se verific cu ifconfig iar apoi cu who). Se copiaz de la respectiva adres
(172.16.21.22:/home/aflorea/) din contul userului aflorea n directorul curent.
Dac scp este nsoit de opiunea r atunci are loc copierea recursiv cu toate subdirectoarele.
15. Mutare sau redenumirea unui fiier (dintr-o surs ntr-o destinaie) sub un alt nume se face folosind
(mv).
$ mv
16. Afiarea spaiului folosit i a celui rmas disponibil penrtru utilizator
$ quota
17. Facilitarea operrii cu fiiere utiliznd utilitarul midnight commander (manager de fiiere n mod
text foarte asemntor cu versiunea de Windows a vechii aplicaii Norton Commander sau a
mai recentei aplicaii Total Commander)
$ mc
18. Afiarea unei liste cu comenzi posibile se face folosind (help).
$ help
19. Afiarea la ieirea standard (terminal) a unui ir de caractere se face folosind (echo). Se utilizeaz
de multe ori n fiiere de tip shell avnd un caracter explicative.
$ echo
20. Cutarea de fiiere se poate realiza dup numele sau tipul fiierului respectiv dup numele
proprietarului sau grupul din care face parte proprietarul fiierului.
$ find [cale] [expresie] [aciune]
Parametri opionali specific unde se face cutarea, ce fiiere (sunt cutate) i ce aciune trebuie
ntreprins dup gsirea fiierelor.
$ find /tmp -name *.cpp -print // Afiarea fiierelor de tip .cpp din directorul tmp.
$ find /
-user aflorea -print // Afiarea fiierelor utilizatorului aflorea
$ find ./powertop-1.8/ -name '*.h' -exec rm "{}" ";" // tergerea fiierelor de tip header din
folderul specificat
21. Cutarea n cadrul fiierelor (la nivel de linie) a diverselor iruri de caractere se face folosind
(grep).
$ grep "return_values" -r ./ *.c
22. Lansarea editoarelor de text emacs, gedit
$ emacs sim-outorder.cpp &
$ gedit sim-outorder.cpp &
Simbolul & permite continuarea execuiei n sistemul de operare fr a nchide editorul (nu rmne
agat ecranul).

Computer Science and Electrical Engineering Department


Adrian FLOREA
4

23. Vizualizarea n mod text a fiierelor.


vi fiier
Pentru salvarea datelor i ieirea din editor :wq
Pentru ieirea din editor fr a salva datele :q
24. Concatenarea coninutului mai multor fiiere de tip text i afiarea la consol a fiierului rezultat se
se face folosind (cat).
$ cat
25. Dezarhivarea unui fiier (.gz) compresat anterior cu gzip se face folosind (gunzip).
$ gunzip simplesim-3.0b.tar => genereaz fiierul .tar
26. Crearea unui arhive (fiier .gz) se face folosind (gzip).
$ gzip simplesim-3.0b.tar => genereaz fiierul simplesim-3.0b.tar.gz
27. Arhivarea / dezarhivarea unui grup de fiier, pstrnd informaiile legate de permisiuni, proprietar,
data crerii, se face folosind (tar).
$ tar cf copie.tar *.pdf (=> are loc arhivarea i se genereaz fiierul .tar)
$ tar xvf simplesim-3.0b.tar (=> extrage directorul simplesim-3.0 din arhiva.tar)
28. Arhivarea / dezarhivarea unui fiier se poate face folosind (bzip2).
$ bzip2 fiier (=> se genereaz fiierul fiier.bz2)
$ bunzip2 fiier.bz2 (=> extrage fiierul din arhiva.bz2)
29. Afiarea cii curente (path) se realizeaz cu utilitarul (pwd).
$ pwd
30. Raportarea informaiilor privitoare la procesele din sistem: identificatori, stare, proprietar, etc se
face folosind utilitarul (ps). Id-ul procesului dorit (<pid>) se poate omor vezi comanda kill.
<pid> reprezint prima coloan din afiaj.
$ ps aux
$ ps ef
31. Trimiterea unui semnal (implicit de terminare) tuturor proceselor existente n sistem se face
folosind utilitarul (kill). Id-ul procesului dorit a fi terminat este (<pid>).
$ kill n 9 <pid>
$ kill <pid>
$ killall -u aflorea => oprete (omoar) toate procesele utilizatorului aflorea
32. Accesarea la distan a unui server (HPC) / staii de lucru folosind un client securizat cu rol de
interpretor de comenzi se face cu utilitarul (ssh).
$ ssh l aflorea@Zamolxe.hpc.ulbsibiu.ro => oblig utilizatorul aflorea s i introduc parola
proprie
$ hostname => Zamolxe.hpc.ulbsibiu.ro
Pentru conectarea pe CELL trebuie anterior conectat pe Zamolxe (HPC) XEON.
$ ssh computecell-000
$ hostname => ComputeCell-000.hpc.ulbsibiu.ro
Computer Science and Electrical Engineering Department
Adrian FLOREA
5

33. Oprirea sistemului de operare se realizeaz folosind comanda (halt).


$ halt
34. Restartarea sistemului de calcul se realizeaz folosind comanda (reboot).
$ reboot
35. Oprirea sistemului de calcul (eventual restartarea acestuia) se realizeaz cu utilitarul (shutdown).
$ shutdown
$ shutdown h now
36. Configurarea interfetelor de retea se face folosind comanda (ifconfig). Comanda echivalenta DOS
este ipconfig.
$ ifconfig
37. Modificarea permisiunilor de acces la fiiere / directoare se face folosind comanda (chmod).
Comanda echivalenta DOS este attrib. + seteaz un flag iar - terge (reseteaz) un flag.
$ chmod +r script.cgi
$ chmod 755 hello_ppu (transform fiierul hello_ppu ntr-un executabil)
Dac la rularea unui fiier de tip shell (trebuie s includ pe prima linie secvena de caractere
#!/bin/sh), fie acesta ./run_applu.sh apare mesajul de eroare Permission denied atunci verificm dac
fiierul are caracter executabil (dac este setat atributul x). Pentru aceasta se execut:
$ ls -l
Dac fiierul nu este executabil atunci i setez flagul / atributul x prin comanda:
$ chmod +x run_applu.sh
Oprirea simulrii se poate face n orice moment i cu comanda Ctrl + Z.
38. Modificarea proprietarului fiierelor / a grupului din care face parte proprietarul se realizeaz cu
comanda (chown).
$ chown
39. Substituirea unui utilizator cu root (administrator) n vederea obineri de drepturi suplimentare se
face folosind comanda (su). Evident trebuie apoi introdus parola de root.
$ su
40. Substituirea unui utilizator cu root (administrator) pentru a gestiona drepturile de acces asupra
unor fiiere / directoare se face folosind comanda (sudo nautilus). Nautilus reprezint managerul
de fiiere oferit de GNOME (the Free Software Desktop Project).
$ sudo nautilus
Comenzile urmatoare sunt caracteristice job-urilor de pe supercomputer (HPC)
41. Lansarea unui job in executie se face folosind comanda (bsub).
$ bsub
42. Terminarea executiei unui job se face folosind comanda (bkill).
$ bkill
Computer Science and Electrical Engineering Department
Adrian FLOREA
6

43. Suspendarea temporara a executiei unui job se face folosind comanda (bstop).
$ bstop
44. Vizualizarea unui job (sau a tuturor celor aflate) in executie se face folosind comanda (bjobs).
$ bjobs a (all)
$ bjobs L <jid> (details on job jid)
45. .gcc apeleaz compilatorul care exist implicit instalat.
Cu opiunea v se afieaz versiunea compilatorului
Cu opiunea V <nr_version> se apeleaz dac exist instalat versiunea < nr_version > a
compilatorului nu a celui care exist implicit
Folosirea terminalelor virtuale pentru lansarea de simulri pe noduri multiple ale sistemului HPC
Din Putty se execut succesiunea de comenzi:
1. Pentru crearea unui terminal virtual (VT) tastai: screen
2. Pentru a trece din VT n terminal real se apas Ctrl + A + D. Atenie, nu Ctrl + D ntruct
aceast comand omoar terminalul.
3. Pentru reataarea terminalului se tasteaz screen -R
4. Dac exist mai multe terminale se tasteaz screen -R <pid>
5. Omorrea unui terminal virtual sau ieirea din acesta se face cu comanda exit sau Ctrl + D
Dintre aplicaiile existente pe SO Windows care permit conexiunea pe supercomputerul HPC se amintesc:
putty, winscp, SshClient, etc.

Computer Science and Electrical Engineering Department


Adrian FLOREA
7

Analiza rezolvrii unei probleme prin compilarea, depanarea i execuia programului


C/C++
Pentru instalarea Cygwin (emulator de Linux pe SO Windows), sau pentru lucrul cu comenzi Linux n
special cele legate de compilare, link-editare i depanare se recomand folosirea crii Predicia dinamic
a valorilor in microprocesoarele generaiei urmtoare, autor Adrian Florea (Universitatea Lucian Blaga
Sibiu),
editura
MatrixRom,
Bucureti,
2005,
paginile
96-144
(http://webspace.ulbsibiu.ro/adrian.florea/html/docs/FINAL_Matrix05.pdf ). n referina sugerat se
gsete o sintez foarte bun aferent instalrii i metodologiei de simulare / dezvoltare folosind mediul
SimpleScalar.
Cerine:
1. Se vor testa n terminal toate comenzile prezentate anterior.
2. S se scrie un program simplu n C (minimul / maximul dintr-un ir) care se compileaz (se
genereaz codul .asm i .exe) i se execut.

Modificri de operat pentru compilarea / depanarea / rularea i extinderea


simulatoarelor mediului Simplescalar pe SO Linux

Se dezarhiveaz fiierul arhiv n format tar.gz "simplesim-3.0b.tar.gz".


o $ gunzip simplesim-3.0b.tar
o $ tar xvf simplesim-3.0b.tar
n acest fel rezult directorul SIMPLESIM-3.0/*.* cu fisierele componente, dintre care si
directorul target-pisa. Fisierele acestui director (care descriu functionarea unei arhitecturi PISA)
sunt copiate n directorul parinte (SIMPLESIM-3.0).
Revenind n prompter de Linux se tasteaza comanda $cd SIMPLESIM-3.0 si se ajunge n
directorul tocmai copiat. Se tasteaza n continuare succesiunea de comenzi:
o $ make config-pisa
i
o $ make
Execuia comenzii make poate genera o eroare la compilare deoarece tipul returnat de functia
myrand() din fisierul misc.c care apeleaza la rndul ei functia random() difera de cel returnat de
functia standard definita n stdlib.h (din /usr/include). Eroarea se corecteaza modificnd tipul
functiei random() n misc.c (din long n int).
n fisierul eval.c se comenteaza liniile 79 i 81 i rmne DE BAZ #include <errno.h>.
Se comenteaz linia 886 extern int errno;.
n fisierul range.c se comenteaza liniile 77 i 79 i rmne #include <errno.h>.
Se comenteaz linia 96 extern int errno;.
Se recompileaz: make.
Executia din nou a comenzii make se va ncheia cu mesajul "My work is done here " ceea ce
demonstreaza compilarea / asamblarea / link-editarea cu succes a simulatoarelor setului
SimpleScalar 3.0.

Computer Science and Electrical Engineering Department


Adrian FLOREA
8

Modificri de operat pentru compilarea / depanarea / rularea i extinderea


simulatorului M-SIM pe SO Linux
1. Se dezarhiveaz fiierul arhiv n format tar.gz " m-sim_v2.0.tar.gz".
$ gunzip m-sim_v2.0.tar
$ tar xvf m-sim_v2.0.tar
n acest fel rezult directorul m-sim_v2.0/*.* cu fisierele componente, dintre care si directorul
target-alpha. Fiierele acestui director (care descriu functionarea unei arhitecturi ALPHA 21264) sunt
copiate n directorul parinte (m-sim_v2.0).
2. Revenind n prompter de Linux se tasteaza comanda $cd m-sim_v2.0 si se ajunge n directorul
tocmai copiat. Se tasteaza n continuare comanda:
$ make config-alpha
3. n fisierul machine.h se comenteaza linia 224 (extern enum md_opcode md_mask2op[];).
4. Se copiaz variabila md_mask2op[] i se pune la linia 237 (ntre } i ;) practic dup definiia
enumerrii md_opcode1.
5. Se compileaz: make.
Executia comenzii make se va ncheia cu mesajul "My work is done here " ceea ce demonstreaza
compilarea / asamblarea / link-editarea cu succes a simulatorului M-SIM 2.0.
6. Se copiaza din dir Sv_Trivial_LVP_80nm_nthread urmatoarele:
CACTI\def.h
power [c;h]
sim-outorder.c
7. Se compileaz: make.
=> sim-outorder (imbogatit cu mecanism de reutilizare dinamica a instructiunilor + a celor triviale si
predictia valorilor instructiunilor load critice
Optiuni noi de simulare:{
rb:size 1024
lvpt:size 2048
}
8. In m-sim_v2.0 cream directorul results
9. Copiem din multithread/spec2000binaries/*.arg
10. Se lanseaza comanda
./sim-outorder -redir:sim ./results/applu.res -fastfwd 1000000 -max:inst 10000000 -lvpt:size 16 applu.arg
./sim-outorder -redir:sim ./results/applu_equake.res -fastfwd 1000000 -max:inst 10000000 applu.arg
equake.arg
./results/galgel_lucas.res
./results/mesa_mgrid.res.res
1

galgel.arg lucas.arg
mesa.arg mgrid.arg

Obs: La versiunea m-sim_v3.0 modificarea exist deja.

Computer Science and Electrical Engineering Department


Adrian FLOREA
9

Alte comenzi i utilitare Linux


Pentru instalarea utilitarului cssh i instalarea remote a simulatorului de procesor IBM CELL se execut
urmtoarele comenzi:
1. Se schimba utilizatorul in root
[aflorea@localhost ~]$ su Password:
2. [root@localhost ~]# yum install clusterssh
3. Se editeaza fisierul de host-uri
[root@localhost ~]# gedit /etc/hosts
Se adaug staiile i numele acestora:
172.16.21.14

student_8

student_8

172.16.21.35

student_2

student_2

[root@localhost ~]# cssh -l root student_8 student_2


4. Din root@statie02 se tasteaza:
yum -y install tcl xterm blt tk
scp aflorea@172.16.21.25:/home/aflorea/Arhitecturi_Avansate/Cell_Bucuresti/cell-install-3.1.0-0.0.noarch.rpm
cell-install-3.1.0-0.0.noarch.rpm

rpm -ivh cell-install-3.1.0-0.0.noarch.rpm


scp aflorea@172.16.21.25:/home/aflorea/Arhitecturi_Avansate/Cell_Bucuresti/CellSDK-Devel-Fedora_3.1.0.0.0.iso
CellSDK-Devel-Fedora_3.1.0.0.0.iso

./cellsdk -o -a --iso ./ install

Computer Science and Electrical Engineering Department


Adrian FLOREA
10

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