Sunteți pe pagina 1din 39

De ce (nu) Linux?

Linux are deja o istorie care, tehnic vorbind, il impune ca un competitor puternic pe
piata sistemelor de operare. Nu stiu daca in scurt timp vom „trece" sau nu toti la
Linux. Dar intrebarea din titlu trebuie in mod sigur pusa. In continuare vom incerca
sa-i schitam raspunsurile.
Linux este foarte probabil cea mai importanta realizare din domeniul software-ului
liber, de la originalul si binecunoscutul Razboi al Stelelor sau mai recentul Emacs.
Acest sistem de operare este croit atat pe masura companiilor cat si a institutiilor de
in-vatamant sau pentru utilizatorii particulari. Nu mai este vorba despre un sistem de
operare pentru initiatii UNIX care isi petrec ore in sir in fata consolei (desi, probabil,
un numar important de utilizatori intra in aceasta categorie).
Avem de-a face cu o imitatie de UNIX care ruleaza pe calculatoare echipate cu
procesoare Intel de 32 de biti (80386 sau mai recente). Sub Linux se poate rula o
mare varietate de software: procesoare de documente cum este TeX, interfata
grafica X-Windows, compilatoare cum este GNU C/C++ sau software-ul de
comunicatie TCP/IP. Este o implementare versatila si de buna calitate de UNIX, ce
poate fi obtinuta si distribuita liber in termenii licentei publice generale GNU (GPL,
GNU _ General Public Licence _ act care stipuleaza in principal dreptul de acces
neingradit la programele GNU).
Linux transforma un calculator personal intr-o statie de lucru. Va pune la dis-pozitie
intregul potential al UNIX-ului. Firmele instaleaza Linux pe intregi retele de
calculatoare in scopul gestiunii de date, pentru crearea unui mediu de cal-cul
distribuit sau pentru telecomunicatii. In intreaga lume, universitatile folosesc Linux
pentru predarea proiectarii si implementarii sistemelor de operare. si, bi-neinteles,
entuziasti ai calculatorului de pretutindeni folosesc Linux acasa pentru a programa
cele mai diverse aplicatii.
Sarea si piperul Linux-ului este faptul ca a fost si inca mai este dezvoltat de un grup
de voluntari care comunica in principal prin Internet, facand schimb de coduri sursa,
raportand erori si rezolvand probleme intr-un mediu complet deschis. Oricine se
alatura acestui efort de dezvoltare este binevenit: tot ceea ce i se cere este interesul
de a sapa prin codul unui sistem de operare de tip UNIX si ceva cunostinte de
programare.
Scurta istorie
UNIX este unul din cele mai populare sisteme de operare din lume datorita bazei
sale largi de distributie si asistenta. Initial a fost dezvoltat ca un sistem multitasking
pentru minicalculatoare si mainframe-uri (calculatoare mari) la mijlocul anilor 70, dar
cu timpul a devenit unul dintre cele mai utilizate sisteme de operare, in ciuda unei
interfete uneori confuze si a lipsei de standardizare.

Care este motivul popularitatii UNIX-ului? Multi programatori simt ca este cel mai
potrivit _ Adevaratul Sistem de Operare. De unde si dezvoltarea Linux-ului de catre
un grup in continua crestere de programatori UNIX care vor sa-si vare miinile (si
cunostintele) in propriul sis-tem de operare.
Versiuni de UNIX exista pentru multe platforme, de la calculatoare personale ca cel
pe care il aveti acasa pana la super-computere precum Cray Y-MP. Cele mai multe
versiuni de UNIX pentru PC-uri sunt insa scumpe si greoaie.
Linux este o versiune de UNIX distribuita liber, dezvoltata in principal de Linus
Torvalds la Universitatea din Helsinki, Finlanda. Mai multi programatori dedicati, asa

Carte LINUX 1
numitii hackeri, si-au unit fortele prin intermediul Internetului, dand astfel oricarui
amator cu destule cunostinte si pricepere posibilitatea sa participe la dezvoltarea si
modificarea sistemului. Nucleul Linux-ului nu utilizeaza de loc cod care sa fie in vreun
fel proprietatea cuiva, mare parte din programele disponibile pentru Linux fiind
dezvolta-te in cadrul proiectului GNU al Fundatiei pentru Software Liber (Free
Software Foundation) din Cambridge, Massachusetts. In plus, programatori din
intreaga lume au contribuit la software-ul pentru Linux, care este in continua crestere
si di-versificare.
Initial a vazut lumina zilei un proiect-hobby al lui Linus Torvalds, inspirat din Minix, un
mic sistem UNIX dezvoltat de Andrew Tannenbaum. Primele discutii despre Linux au
avut loc prin Internet, prin newsgroup-ul comp.os.minix.
Aceste discutii vizau in principal dezvoltarea unui mic sistem UNIX academic pentru
utilizatorii de Minix care isi doreau ceva mai mult.
Stadiul timpuriu de dezvoltare al Li-nux-ului se ocupa in primul rand de faci-litatile de
comutare de task-uri din modul protejat al procesorului 386 si era scris in limbaj de
asamblare. Versiunea 0.01 nu a fost anuntata niciodata. Sursele acesteia nici macar
nu erau executabile: contineau un rudiment de nucleu si se presupunea ca ai acces
la un sistem Minix pentru a-l compila si a te juca cu el.

Prima versiune oficiala, 0.02, a fost anuntata de Linus Torvalds pe 5 octombrie 1991.
Pana in acel moment, Linus reusise sa execute interpretorul de comenzi bash si
compilatorul de C GNU ... si cam atat. Din nou era vorba de un sistem pentru
hackeri. Principala preocupare era dezvoltarea nucleului. Nici una din problemele de
suport pentru utilizatori, documentatie sau distributie nu fusese inca tratata. si astazi
aceste probleme sunt considerate de comunitatea Linux ca secundare, principala
fiind „programarea adevarata", dezvoltarea nucleului.
Dupa 0.03 s-a facut un salt la 0.10, mai multi programatori incepand sa contribuie la
proiect. Dupa cateva revizii, Linus a crescut numarul versiunii la 0.95 exprimand
astfel speranta sa ca sistemul era pregatit pentru o noua versiune oficiala. (In
general, programele capata numarul de versiune 1.0 numai cand sunt teo-retic
complete si nu contin erori). Acest lucru se petrecea in martie 1992. Un an si
jumatate mai tarziu, la sfarsitul lui decembrie 1993, nucleul se afla inca la versiunea
0.99.pl14, apropiindu-se asimptotic de numarul 1.0.
Astazi, Linux este o varianta de UNIX completa, capabila sa execute X Windows,
TCP/IP, Emacs, posta electronica si stiri. Aproape toate pachetele de programe
distribuite liber au fost transportate si pe Linux, tot mai multe aplicatii comerciale
devin disponibile si pentru acest sistem de operare. Din ce in ce mai mult hardware
este suportat de Linux. Testele arata ca un sistem 486 cu Linux este comparabil ca
performanta cu statii de lucru comerciale.
Documentatie Linux
Unul din reprosurile care se pot aduce software-ului liber este lipsa documentatiei.
Daca nu puteti sa va procurati manualele tiparite, va ramane totusi accesul la
documentatia electronica, sosita odata cu kit-ul de instalare. Aceasta documentatie
este foarte bine realizata, chiar luxurianta am putea spune. Ea inglobeaza know-how-
ul tuturor celor care prin intermediul Internet-ului au contribuit la realizarea Linux-ului.
Intai sunt paginile de manual. Orice instalare de Linux ne pune pe disc, mai mult sau
mai putin implicit sectiunile manualului Linux, ale caror pagini sunt accesibile cu
comanda man. Din ce in ce mai mult este folosit sistemul info, apelat cu comanda
respectiva.

Carte LINUX 2
Tot in distributiile uzuale se gaseste, in directorul /usr/doc, o seama de documentatie
cu diverse subiecte. De tinut minte sunt subdirectorul HOWTO (literal „Cum sa
facem?") in care sunt tratate in detaliu diverse probleme, cum ar fi X11, conectarea la
retea, tiparirea sau utilizarea SCSI. Subdirectorul are un index pe care este bine sa il
consultati cand aveti probleme. De cele mai multe ori, raspunsul se afla acolo. De
obicei plasate in alt subdirector sunt selectii din intrebarile puse mai des (Frequently
Asked Questions, pe scurt FAQ), legate de Linux si de componentele sale.
Preocuparile legate de documentatia Linux au condus incet incet la conturarea unui
proiect de realizare a unor manuale pentru Linux (Linux Documentation Project, pe
scurt LDP). Ne face placere sa va spunem ca sunt incluse in CD-ul dum-neavoastra
aceste carti remarcabile. Daca stiti englezeste porniti la lectura lor fara intarziere:
Ghid de instalare si inceput de Matt Welsh _ ghid utilizator perfect pentru in-cepatori;
Ghidul utilizatorului de Larry Greenfield _ ghid de lucru ca utilizator (fara
administratie);
Ghidul administratorului de sistem de Lars Wirzenius _ ghid complet de ope-rare si
configurare Linux acoperind toate necesitatile in acest sens;
Ghidul administratorului de retea de Olaf Kirch _ ghid complet de utilizare a retelelor
cu Linux, in principal TCP/IP, SLIP sau PPP, carte foarte importanta pentru utilizatorii
activi in domeniu;
Ghidul programatorului Linux _ de B.Scott Burkrtt, Sven Gold, John Harper, Sven
van der Meer, Mat Welsh;
Ghidul hackerului de nucleu _ de Michael Johnson pentru hackerii dornici sa „umble"
in nucleul Linux;
Daca ne amintim de Internet, vom spune in primul rand ca toata documentatia de
care am pomenit plus multe altele se afla pe WEB. Sursa principala de documentatie
este http://sunsite.umn.edu/mdw/linux.html
Pentru cei foarte interesati, atragem atentia asupra forumurilor USENET legate de
Linux. Aparut in 1992, comp.os. linux a trebuit repede impartit in subgrupuri:
comp.os.linux.announce _ celebrul cola: anunturi si alte lucruri importante din viata
Linux;
comp.os.linux.help _ cel mai popular site pentru obtinerea sfaturilor, daca aveti
probleme scrieti aici;
comp.os.linux.admin _ probleme serioase de administrare;
comp.os.linux.development _ pentru programatori;
comp.os.linux.misc _ diverse: spre exemplu, razboiul cu NT se poarta aici.

Carte LINUX 3
Caracteristicile sistemului

Linux este un sistem complet multitasking, multiuser, exact ca ori-ce alta varianta de
UNIX. Ceea ce inseamna ca mai multi utiliza-tori pot avea acces simultan la acelasi
sistem de calcul, rulând in-dependent programe multiple.
Linux este compatibil in mare masura cu un numar de standarde UNIX, incluzand
caracteristici IEEE POSIX.1, System V si BSD, la nivel de sursa. Scopul principal in
timpul dezvoltarii acestui sistem de operare a fost acela de a asigura un nivel de
compatibilitate cat mai mare cu restul sistemelor si aplicatiilor UNIX. Un numar mare
de programe pentru UNIX, accesibile li-ber, disponibile prin Internet sau altfel, pot fi
compilate imediat pe Linux. In plus, tot codul sursa al Linux-ului, incluzand nucleul,
driverele pentru periferie, bibliotecile, programele utilizator si utilajul de dezvoltare
sunt distribuite liber.
Caracteristicile Linux-ului includ controlul executiei joburilor tip POSIX,
pseudoterminalele, suportul pentru versiuni nationale sau particularizate de tastatura
folosind drivere de tastatura incarcate di-namic si console virtuale.
Nucleul poate emula instructiuni in virgula mobila astfel incat toate programele pot fi
executate si pe procesoare fara coprocesor integrat.
Pot fi memorate date in varii sisteme de gestiune a fisierelor: cel nativ, ext2fs, dar si
Minix-1, Xenix, DOS si ISO 9660 pentru discuri compacte.
Linux poseda o implemetare comple-ta a suitei de protocoale de comunicatie
TCP/IP. Sunt incluse drivere pentru cele mai raspandite placi de retea Ethernet,
implementari pentru SLIP, PLIP si PPP, sistem de fisiere in retea (NFS). De
asemenea este inclusa gama completa de servicii client si server TCP/IP, cum sunt
ftp, telnet, smtp, nntp.
Nucleul Linux este programat sa utilizeze facilitatile speciale ale modului protejat al
procesoarelor Intel 80386. In particular, Linux foloseste facilitatile acestor procesoare
pentru gestiunea memoriei si multitasking.
In sarcina nucleului Linux intra si executia programelelor cu ajutorul tehnicii de
paginare la cerere. Aceasta inseamna ca numai acele portiuni de program nece sare
pentru executie intr-un anumit moment sunt citite de pe disc in memoria
calculatorului. De asemenea, Linux utilizeaza partajarea de memorie intre programe
cu copiere la scriere. Acest lucru inseamna o reducere a necesarului de me-morie si
deci o mai buna utilizare globala a acesteia.
In vederea cresterii memoriei disponibile pentru executia programelor, Linux
implementeaza paginarea pe disc, permitand alocarea a pana la 256 MB a ceea ce
se numeste spatiu de swap. Cand programele au nevoie de mai multa memorie
interna, o parte din informatie este evacuata in acest spatiu de pe disc, iar locul ei
este refolosit. Portiuni de date si programe circula intre disc si memoria interna, in
functie de necesitati. Asadar, spatiul de swap este o extensie utila a memoriei RAM,
dar nu o poate inlocui, fiind mult mai lenta.

Gnu nu este Unix dar Linux este in mare masura GNU. In software asta
inseamna libertate de circulatie plus garantii de calitate.
Nucleul Linux gestioneaza intreaga memorie interna atat pentru executia
programelor cat si pentru accesul mai rapid la fisiere, de tip cache. In acest fel,toata
memoria disponibila este utilizata pentru cache de fisiere. Cand se ruleaza programe
mai mari, zona de cache este diminuata corespunzator.

Carte LINUX 4
Programele executabile pot folosi le-garea dinamica la biblioteci partajate: codul
bibliotecii, utilizat in comun, se ga-seste intr-un unic fisier pe disc. Astfel, programele
executabile pot ocupa mult mai putin spatiu. Exista si posibilitatea folosirii legarii
statice, cand codul este inclus in intregime in fisierul executabil, pentru cei care
doresc depanarea sau intretinerea unor executabile complete, care sa poata fi
executate independent de prezenta bibliotecilor partajate. Legarea dinamica a
bibliotecilor partajate se produce numai in momentul executiei, permitand
programatorului sa inlocuiasca module din biblioteca cu unele proprii.
Pentru a usura depanarea programelor, nucleul face posibil vidajul de memorie si
analiza lui in cazul terminarii anormale, pentru a putea determina cauzele caderii.
Software disponibil
Cea mai importanta parte a sistemului este gama de software de aplicatie disponibil
pentru acesta. Majoritatea acestor programe sunt distribuite liber, dar exista si un
numar tot mai mare de programe comerciale care merg pe Linux.
Comenzi si utilitare de baza
Virtualmente, toata gama de utilita- re disponibile in implementarile UNIX standard au
fost portate si pe Linux. Linux este deci un mediu familiar pentru toti utilizatorii de
UNIX, care pot sa-si fo-loseasca in intregime experienta de lucru cu sistemul
preferat.
Linux dispune de multe editoare de texte, incepand cu clasicul vi, trecand prin joe,
editorul compatibil WordStar si sfarsind cu Emacs, un mediu pentru editare integrat,
cu acces la posta electronica si stiri, cu facilitati de macroprelucrare bazate pe LISP.
Este important de notat ca toate utilitarele sunt software GNU, cu facilitati deosebite,
de negasit in versiunile BSD sau AT&T. Pe de alta parte, aceste utilitare raman
compatibile cu originalele, iar multi le considera superioare.
Cel mai important utilitar este shell-ul, interpretorul de comenzi. Acesta este un
program care citeste si executa comenzile introduse de catre utilizator. Aceste
comenzi permit in principal rularea programelor si controlul executiei acestora.
Comenzile sunt citite de la tastatura sau din fisiere de comenzi numite script-uri.
Shell-ul permite executia simultana a mai multor programe, redirectarea intrarilor si
iesirilor precum si script-uricomplexe cu instructiuni asemanatoare limbajelor de
programare, similar fisierelor .BAT (batch) din DOS. Linux dispune si de shell-urile
UNIX standard: Bourne Shell (sh), C Shell (csh) si Korn Shell (ksh). Shell-uri
populare in Linux sunt in primul rand bash, shell-ul implicit, o va-rianta de Bourne
Shell cu extensii foarte puternice, si tcsh, o versiune de C Shell cu extensii
asemanatoare bash. Fiecare administrator de sistem va intretine toate utilitarele
necesare. Pe sistemele personale putem instala doar strictul necesar: un singur
shell, de exemplu bash, si un singur editor de texte, de exemplu vi.
Prelucrarea documentelor
Toti utilizatorii calculatoarelor au nevoie de un sistem de pregatire a documentelor:
editarea si manipularea textelor precum si producerea de exemplare tiparite a
acestora, continand in plus desene, tabele si imagini. Aceste cerinte re-prezinta in
majoritatea cazurilor minimul de functionalitate pe care utilizatorii o asteapta de la un
sistem de calcul.
In lumea UNIX, sistemele de pregatire a documentelor sunt diferite de conceptul
clasic WYSWYG, raspandit in Windows. In sistemele WYSIWYG (What You See Is
What You Get _ ce vezi pe ecran este ceea ce vei obtine) textul este introdus si
modificat cu ajutorul unui editor special care afiseaza pe ecran in permanenta o
imagine cat mai apropiata, daca nu identica, cu aceea a documentului tiparit. Sub
UNIX, textele sunt introduse cu ajutorul unui editor familiar, cum este vi sau joe.

Carte LINUX 5
Totodata se introduc in fisier si comenzi care descriu modul in care se formateaza
textul. In final, fisierul obtinut este prelucrat cu un program separat care converteste
textul initial intr-un format potrivit pentru tiparire. Exista mai multe programe care
permit vizualizarea rezultatului inaintea tiparirii.
Exista doua sisteme de prelucrare de texte mai cunoscute sub Linux. Unul este groff,
versiunea GNU a programu-lui nroff, procesor de texte dezvoltat initial in
laboratoarele Bell si inca folosit in sistemele UNIX. Al doilea, mai modern si mai
sofisticat, se numeste TeX si a fost creat de legendarul Donald Knuth. O ver-siune de
TeX numita LaTeX dezvoltata de Leslie Lamport este foarte raspandita printre
utilizatorii de Linux.
In timp ce groff e capabil sa produca si o iesire ASCII, afisabila pe un terminal text,
TeX este destinat in primul rand producerii de documente tiparite. O extensie TeX
este texinfo, un procesor de texte folosit in primul rand pentru documentatie de
programe de Free Software Foundation. Texinfo poate produce documente tiparite,
sau un format hypertext care poate fi vizualizat pe ecran.
Avantajele procesoarelor de texte din UNIX este si faptul ca fisierul sursa, cel
introdus de utilizator este un fisier ASCII, cu format cunoscut. Astfel, utilizatorul poate
genera automat astfel de fisiere sau le poate prelucra, analizandu-le sau
transformandu-le dupa necesitati, extinzand astfel sistemul de prelucrare a textelor
de care dispune.
Folosirea unui procesor de texte impune un anumit standard tipografic. Forma
documentelor ramane consistenta, permitand autorilor sa se concentreze asupra
continutului si nu asupra aspectului pagi
nii. Desi sistemele WYSIWYG ofera o interfata vizuala complexa si puternica, nu
trebuie uitat nici reversul: daca tot ceea ce vezi poate fi controlat, complementara
este si ea adevarata _ numai ce vezi poate fi controlat.
Alte programe, cum este xfig, permit crearea de diagrame si figuri care pot fi ulterior
convertite si utilizate de procesoarele de texte. In mod obisnuit, procesoarele de
texte sunt insotite de o colectie de utilitare asociate cum ar fi cele pentru verificat si
corectat erori de scriere, indexare de documente, pachete de macro-uri pentru
generat formule matematice sau convertoare dintr-un format in altul.
Limbaje de programare si utilitare
Linux ofera un mediu complet UNIX pentru dezvoltarea de programe si aplicatii,
incluzand bibliotecile standard, compilatoarele, depanatoarele si intregul set de
utilitare software necesar. In mod obisnuit,dezvoltarea de programe pentru UNIX se
face in limbajele C/C++. Compilatorul standard pentru aceste limbaje este
compilatorul GNU, gcc.
In afara de C si C++, multe alte limbaje compilate sau interpretate sunt disponibile
sub Linux, cum ar fi Smalltalk, FORTRAN, Pascal, Lisp, Scheme si Ada. In plus, sunt
disponibile asambloare pentru scrierea de cod in mod protejat pentru 80386.
Interpretoare sofisticate, raspandite in lumea UNIX, cum este Perl sau Tcl/Tk pentru
dezvoltarea de aplicatii sub X Windows sunt disponibile si sub Linux.
Depanatorul standard sub Linux este gdb, care permite executia controlata a unui
program sau analiza unui vidaj de memorie. Cu ajutorul utilitarului Gprof se
realizeaza culegerea de statistici referitoare la executia unui program in scopul
ameliorarii performantelor lui. Emacs este un editor de programe sofisticat care ofera
un mediu integrat de editare si compilare interactiva programelor in diverse limbaje
de programare. Alte utilitare includ make, pentru compilarea de aplicatii mari si RCS,
un sistem pentru intretinerea versiunilor unui program.

Carte LINUX 6
http://sal.kachinatech.com contine raspunsul detaliat la intrebarea: care sunt
aplicatiile pentru Linux?
Legarea bibliotecilor se poate face dinamic, permitand fisiere executabile mici sau
inlocuirea de rutine de biblioteca cu rutine utilizator. Linux este astfel un me-diu ideal
pentru dezvoltarea de programe: modern, standard si bine echipat. Portarea pe alte
sisteme de tip UNIX este foarte mult usurata. Linux poate fi utilizat ca o solutie
economica pentru dezvoltarea de programe, acasa sau in firme specializate, pentru
diverse alte sisteme tinta. Studiul programarii sub Linux este usurat si de faptul ca
toate sursele sistemului de operare sunt disponibile.
Sistemul X Windows
Sistemul X-Windows este interfata grafica standard pentru masini UNIX. Este un
mediu puternic, utilizat practic de orice aplicatie UNIX cu pretentii. Folosind X
Windows, utilizatorul poate avea mai multe ferestre terminal, fiecare executand un
program diferit. Cel mai adesea, utilizarea X-Windows se face cu un echipament
indicator, cum este mouse-ul, desi acest lucru nu este obligatoriu.
Exista foarte multe aplicatii specifice pentru X, cum sunt jocurile, utilitare pen-tru
grafica, utilaj software pentru programare si documentare. Linux formeaza impreuna
cu X-Windows o adevarata sta-tie grafica. Cuplata la o retea TCP/IP, sta-tia grafica
poate constitui un terminal X pentru aplicatii ruland pe alte masini.
Sistemul X-Windows a fost dezvoltat initial la MIT (Massachusets Institute of
Technology) si este distribuit liber. Cu toate acestea, multi producatori
comercializeaza versiuni imbunatatite ale acestui sistem. Pentru Linux este
disponibila o varianta a versiunii X11R6 care se nu-meste XFree86. Hardware-ul
video pe care il suporta aceasta varianta porneste de la standardul VGA si merge
pana la Super VGA. Este acoperita o gama foarte larga de adaptoare grafice, cu sau
fara ac-celerator grafic. XFree86 este o distribu-tie completa, si contine serverul de
terminal, aplicatii, utilitare, biblioteci si do- cumentatie.
Aplicatiile standard sunt xterm _ un emulator de terminal pentru aplicatiile in mod
text, xdm _ pentru gestiunea sesiunilor, xclock _ un ceas analogic etc. Exista foarte
multe aplicatii X disponibile pentru Linux, dar versiunea XFree86 de baza contine
doar aplicatiile standard ale versiunii originale MIT. Multe alte aplicatii X sunt
disponibile separat si, teoretic, orice aplicatie scrisa pentru X-Windows trebuie sa
compileze fara probleme pe Linux.
Aspectul interfetei X-Windows este in buna masura controlat de managerul de
ferestre. Acest program se ocupa de plasarea ferestrelor precum si de interfata
utilizator pentru redimensionarea si mutarea ferestrelor. Distributia XFree86 include
twm, gestionarul de ferestre clasic MIT, olvwm (Open Look Virtual Window Manager)
si fvwm, foarte popular printre utilizatorii de Linux. Fvwm este mic, ofe-ra un aspect
tridimensional pentru ferestre si un desktop virtual care poate fi chiar mai mare decat
ecranul fizic. Fvwm poate fi personalizat in mare masura, permite accesul la functiile
proprii atat de la tas-tatura cat si de la mouse si este managerul de ferestre implicit in
multe distributii Linux. Astazi, el capata o raspandire tot mai mare sub forma fvwm-95
datorita look-ului sau asemanator cu cel al inter fetei de sub Windows 95.
Distributia XFree86 contine biblio-teci de programare pentru cei care doresc sa
dezvolte aplicatii X. Sunt suportate se-turi de widget-uri variate, cum sunt Athena,
Open Look sau Xaw3D. Sunt incluse fonturile standard, imaginile bitmap si
documentatia. Este suportata si PEX, o interfata de programare pentru grafica
tridimensionala.
Multi programatori de aplicatii X utilizeaza setul de widget-uri proprietar Motif. Mai
multi furnizori ofera licente pentru distributii ale versiunii binare Motif pe Linux pentru

Carte LINUX 7
unul sau mai multi utilizatori. Motif insusi este scump si putini utilizatori de Linux isi
permit achizitia. Cu toate acestea, distribuirea programelor legate static la Motif este
permisa si deci oricine poate rula aplicatii Motif fa-ra a avea licenta Motif.
Cea mai importanta observatie in legatura cu X-Windows este necesarul de
hardware pentru a putea fi rulat. Se poate rula X in 4 MB de memorie de lucru, dar 8
MB sau mai mult sunt recomandati pentru executia confortabila a acestui software.
Un procesor mai rapid este in-dicat, insa tot mai importanta este memoria RAM. In
plus, o placa video cu coprocesor accelerator, de exemplu cu cip S3, este
recomandata in cazul in care se do-resc performante deosebite. Cu suficien-te
resurse, executia X pe Linux poate fi la fel de rapida sau mai rapida comparativ cu
alte statii de lucru UNIX.
Reteaua
Asa cum azi nu mai putem discuta despre calculatoare individuale ci numai despre
retele, nu putem discuta nici despre o varianta de UNIX fara TCP/IP. In conditiile in
care Internet-ul este la capatul celalalt al telefonului nu vom accepta un sistem fara
PPP. Ei bine, Linux are posibilitatea realizarii tuturor acestor tipuri de conexiuni, de la
retele locale Eth-ernet la retele pe fir telefonic.
Toate serviciile, atat cele de tip server (ftp sau web) cat si cele client, bazate in
primul rand pe browserul de web sunt disponibile pe Linux. Vom putea organiza
serviciul de posta electronica si accesul la newsgroup-uri (forumuri de discutii).
In plus, integrarea in reteaua locala se poate face in cele mai diverse moduri:
utilizare de sisteme de fisiere NFS, proprii UNIX, partajare de resurse in retele de tip
Netware (novell) sau de tuip LanManager (Ms Windows).

Carte LINUX 8
Instalarea
Puteti avea un sistem Linux operational in circa 20 minute. Insta-larea poate fi facuta
folosind unitatea CD-ROM care se afla co-nectata la un calculator dintr-o retea
Windows.
Ce veste mai buna va puteti dori in acest moment? Poate faptul
ca intrebarile puse de procedura de instalare sunt foarte simple, iar distributia
RedHat de pe CD-ul pe care il aveti la indemina se poate instala folosind aproape
orice metoda de acces la date in retea pe care v-ati putea-o dori.
O scurta privire
Inainte de a incepe instalarea unui nou sistem de operare este bine sa vedem ce
presupune aceasta operatiune, pentru a ne putea pregati corespunzator. Trebuie
discutate trei aspecte:
1. Sursa distributiei, sau suportul pe care este disponibil noul sistem de operare.
Cazul dumneavoastra: dispuneti de un CD pe care se afla tot ceea ce este necesar.
Mai rar, distributia se poate afla pe un harddisk. Instalari interesante si comode se
pot face prin retea, de la un server care exporta un sistem de fisiere in retea de tip
NFS, sau chiar prin FTP. Aceste doua modalitati de instalare pot fi luate in con-
siderare daca aveti o legatura buna si ief-tina la Internet.
Un detaliu legat de citirea CD-ului este unitatea CD-ROM: este posibil sa avem o
asemenea unitate instalata pe cal-culatorul pe care vrem sa punem sistemul sau
doar pe un server din retea. Daca ser-verul este UNIX, trebuie sa ne asiguram ca
putem vedea CD-ul fie prin NFS fie prin FTP. In cazul in care serverul este Windows,
va trebui ca unitatea CD-ROM sa fie partajata si sa avem o legatura TCP/IP cu
serverul.
Daca nu avem acces la un CD local si nici la unul din retea..., ei bine, nu trebuie sa
disperam, poate gasim un prieten sa ni-l imprumute pe al lui.
2.Destinatia instalarii, care trebuie sa fie o partitie de disc.
Ne putem decide ca tot discul sa fie o singura partitie. Nu este cea mai buna idee
decat daca discul este prea mic pentru a fi partitionat. Avand insa un harddisk cu o
capacitate de minim 1GB, este indicata partitionarea harddisk-ului. O a doua
instalare, alta versiune de Linux sau chiar alt sistem de operare vor fi adaptate mai
usor pe un disc partitionat. De asemenea, in general este recomandabil ca spatiul
pentru fisierul de swap sa fie disponibil intr-o partitie, desi aceasta opera- tiune este
posibila si intr-un fisier.
Daca aveti deja Windows instalat pe disc si va e lehamite sa va ganditi la rein-
stalare, puteti sa va ganditi serios la folosirea programului FIPS.EXE, care poate
redimensiona o partitie. In ciuda avertismentelor care insotesc acest program,
riscurile de a strica totul sunt destul de mici si se pare ca pana in prezent nimeni nu
s-a plans ca ar fi patit asa ceva. Cititi oricum documentatia programului.
3.Procedura de instalare, sau mai bine zis, modul in care se executa aceasta.
Instalarea Linux-ului se face tot sub Linux, un sistem minimal care se incar-ca de pe
discheta. In cazul in care instalarea este locala, aveti nevoie de o singura discheta,
numita de boot (incarcare). Daca folositi reteaua pentru a avea acces la un calculator
cu CD sau la un alt server de fisiere sau daca instalati de pe un CD atasat prin
PCMCIA, veti avea nevoie de o discheta suplimentara. Cele doua dischete, de boot
si cea suplimentara, vor fi create pe un calculator cu CD.
Crearea dischetelor
In cazul in care ati achizitionat distributia Red Hat din comert, este posibil ca aceasta
sa contina si cele doua dischete de pornire. In caz contrar va trebui sa le creati
singuri.

Carte LINUX 9
Vom incepe deci cu crearea respectivelor dischete. Aveti nevoie de una sau doua
dischete de 3.5". Pe CD se gasesc fisiere care contin imagini ale dischetelor
necesare. Sub UNIX exista un utilitar ca-pabil sa scrie fizic un fisier pe floppy: el se
numeste dd. Sub sistemul de operare DOS neexistand asa ceva, a fost scris un pro
gram numit RAWRITE.EXE care se afla tot pe CD.
Crearea dischetelor sub DOS devine simpla din momentul in care CD-ul este vazut
de sistem. Sa presupunem ca drive-ul de CD este D:. Luati o discheta goala, scrieti
pe ea „Linux BOOT", introduceti-o in unitate si tastati comenzile urmatoare:
D:
CD \IMAGES
\DOSUTILS\RAWRITE.EXE
Programul va va cere sa introduceti intai numele fisierului cu imaginea discheta.
Tastati: boot.img. Apoi va intreba despre unitatea de discheta in care sa copieze
aceasta imagine. Introduceti a:. Daca aveti nevoie de discheta suplimentara,
etichetati-o „Linux SUPLIMENTAR", reluati comenzile si, la numele fisierului tastati
supp.img.
Sub UNIX,singura complicatie ar putea fi accesul la CD si la floppy: trebuie sa va
asigurati ca puteti monta CD-ul si ca aveti drept de scriere pe /dev/fd0. Ambele
probleme vi le rezolva administratia sistemului. Comenzile de creare sunt:
dd if=boot.img of=/dev/fd0 bs=1440k
dd if=supp.img of=/dev/fd0 bs=1440k
Puteti incarca sistemul sub DOS direct de pe floppy cu secventa de comenzi:
D:
CD \DOSUTILS
AUTOBOOT.BAT
dar si in acest caz este de preferat sa aveti dischete.
Partitionarea discului
Daca va hotarati ca pe harddisk sa nu existe numai o singura partitie, este foarte util
sa stati 5 minute cu un creion in mana si sa scrieti pe hartie un mic plan despre cum
sa faceti impartirea. Acest lucru este obligatoriu in situatia in care instalatia va
deservi mai multi utilizatori in retea. Di-mensiunea de plecare poate varia intre 50 MB
(sistem minimal) si 500 MB pentru instalarea completa a distributiei Red Hat. Un
sistem tipic va avea undeva intre 200 MB si 300 MB. La aceasta se adauga alte
aplicatii precum si datele utilizator, ale caror dimensiuni depind de destina-tia
sistemului. Va trebui sa tineti cont de urmatoarele:
Partitia de swap _ cu cat mai mare cu atat mai bine; chiar daca aveti multa memorie
interna in calculator, faceti o partitie de swap de 16 MB sau 32 MB. Sunt programe
care obisnuiesc sa aloce o cantitate mare de memorie virtuala, chiar daca n-o
folosesc niciodata pe toata. In sisteme de tip server cu mai multi utilizatori creati
pana la 128 MB de spatiu de swap. Daca in mod exceptional aveti ne-voie de mai
mult, va trebui sa faceti mai multe partitii fiindca, din motive tehnice, o partitie de
swap nu poate fi mai mare de 128 MB.
Partitia radacina _ de aici se va incarca sistemul de operare; aceasta partitie si
trebuie sa contina strictul necesar. O dimensiune rezonabila este cuprinsa intre 50 _
80 MB.
Partitia /usr _ puteti opta pentru separarea ierarhiei /usr de restul sistemului. Este
cea mai voluminoasa parte a sis-temului, avand intre 200 MB si 500 MB. Daca nu o
realizati separat, adaugati spatiul corespunzator la partitia radacina.
Partitia /home _ daca exista multi utilizatori si gestiunea lor va fi o problema in sine, e
mai bine sa faceti o partitie separata si sa o dimensionati corespunzator. Utilizatorul

Carte LINUX 10
tipic nu foloseste decat cativa megabyte pentru fisierele personale, cu conditia ca
toate programele de care are nevoie sa fie disponibile in sistem.
Partitia /usr/local _ este bine sa rupem distributia Red Hat de alte pachete de
programe care nu sunt distribuite in formatul gestionat de aceasta (RPM).
Pentru servere in retele mai mari, consideratiile de partitionare sunt mai ample:
intretinerea sistemului, gestiunea unor volume mari de date, arhive, partajarea unor
fisiere program sau fonturi, si asa mai departe. De exemplu, ierarhia /var va trebui
instalata separat.
Rezultatul analizei va trebui sa-l constituie un tabel cu partitii, dimensiune si punct de
montare (mount). Un exemplu ar putea fi:
/dev/hda1 / 100MB
/dev/hda2 swap 32MB
/dev/hda3 /usr 200MB
/dev/hda4 /var 500MB
Partitionarea discului se face cu programul fdisk, care este ceva mai flexibil decat
omonimul sau de sub DOS. Apelarea sa se face avand ca argument discul ce
urmeaza a fi partitionat, de exemplu
fdisk /dev/hda
Programul afiseaza urmatorul prompt (mesaj):
vom putea citi o lista cu parametrii comenzii fdisk. Am aminti aici pe cei care sunt mai
importanti:
a _ modifica indicatorul „partitie bootabila"
d _ sterge o partitie
l _ listeaza tipurile cunoscute de partitii
n _ creeaza o noua partitie
p _ tipareste tabela de partitii
t _ schimba tipul unei partitii
q_ termina programul abandonand modificarile
w _ scrie tabela de partitii pe disc si termina
Comenzile sunt usor de folosit. Raman de facut cateva comentarii. Fdisk creeaza
implicit partitii de tipul Linux nativ. In definitiv de aceea il folosim. Este posibil sa
facem spatiu de swap si din partitii de acest tip, dar este mai convenabil sa folosim
comanda t si sa modificam tipul in Linux swap. Pe de alta parte, traditia face sa nu
poata fi create mai mult de 4 partitii pri-mare pe un singur disc. Daca ne dorim mai
mult de 4 partitii,va trebui ca una din ele sa fie de tip extins si sa acopere tot restul
spatiului. Apoi vom putea sa cream oricate partitii dorim. In cazul in care fa-cem, de
exemplu, partitia 4 de tip extins, vor fi disponibile partitiile 1, 2, 3 si apoi 5 etc. Acest
lucru se intampla din cauza ca partitia extinsa nu este accesibila explicit,ci prin
intermediul partitiilor logice pe care a fost creata.
Console virtuale si taste functionale
Procedura de instalare ne prilejuieste primul contact cu ceea ce in lumea Linux este
cunoscut drept console virtuale. O consola virtuala este o sesiune distincta cu
sistemul de operare care utilizeaza aceeasi consola fizica. Procedura de instalare
are cinci astfel de console virtuale intre care se poate comuta apasand simultan
<Alt> impreuna cu una din tastele functionale F1, F2, F3, F4 sau F5. Fiecare din ele
este utilizata intr-un scop distinct.
1 Alt+F1 _ dialogul de instalare
2 Alt+F2 _ interpretor de comenzi
3 Alt+F3 _ jurnalul instalarii
4 Alt+F4 _ jurnalul sistem

Carte LINUX 11
Cursorul poate fi manevrat prin intermediul tastelor cursor. Intre campuri se poate
comuta cu [Tab] sau [Alt]+[Tab].
Selectarea unui element dintr-o lista se face prin intermediul tastei [Space] (spatiu).
Apasarea tastei [F12] produce acceptarea valorilor introduse in dialogul curent si
trecerea la urmatorul camp de dialog.
Instalarea pas cu pas
Pentru a incepe instalarea se introduce in unitate discheta etichetata „Linux BOOT"
creata anterior si se reseteaza calculatorul. Daca sistemul de operare pe care
ruleaza calculatorul este DOS, putem incarca procedura de instalare de pe CD prin
intermediul comenzii autoboot.bat asa cum a fost descris anterior. Dupa exe-cutia
acestui, sistemul va afisa urmatorul prompt:
boot:
la care va trebui sa apasam [Enter]. La acest prompt, utilizatorul avizat poate in-
troduce optiuni de incarcare. De exemplu, in cazul in care hardware-ul nu este
detectat corect, putem specifica aici
linux hdc=cdrom
Dupa incarcare, procedura de instalare incepe prin a ne intreba daca avem un
monitor color. Daca raspunsul este cel implicit, adica da, putem sa apasam [Enter] si
sa continuam. In cazul in care mo-nitorul nu este unul color, apasam [Tab] pentru a
trece pe optiunea nu si apoi [Enter]. Daca dorim, acum sau mai tarziu sa abandonam
procedura de instalare, putem sa scoatem discheta din unitate si sa reboot-am
calculatorul.
Urmatorul meniu ne permite sa alegem dispunerea sau layout-ul tastaturii. Tastaturile
tipice in Romania sunt de tip US. In unele cazuri sunt germane si trebuie sa selectam
de/latin1. Apoi trebuie sa raspundem la intrebarea daca CD-ul este pe PCMCIA sau
SCSI, caz in care ni se va cere sa introducem discheta suplimentara.
Selectia urmatoare se refera la metoda de instalare. Asa cum am aratat, exista
urmatoarele posibilitati:
CD-ROM _ distributia se afla pe un CD si exista o unitate CD-ROM atasata local;
NFS _ prin retea avem acces la un server care exporta prin NFS o distributie Linux;
Harddisk _ distributia a fost copiata pe discul local;
FTP _ un server FTP are stocata pe harddisk o distributie;
SMB _ CD-ul cu distributia este partajat intr-o retea TCP/IP sub Windows NT sau 95
(LanManager).
In functie de metoda de instalare, procedura continua diferit.
In ceea ce priveste unitatea CD-ROM care va fi instalata, programul se intereseaza
de tipul acestuia: IDE (ATAPI), SCSI sau altele.
In cazul instalarilor din retea (NFS, FTP sau SMB) se va configura mai intai placa de
retea. Procedura da posibilitatea selectiei tipului de placa pentru a putea incarca
driverul adecvat. Configurarea placii de retea se poate face prin autodetectie sau cu
parametri introdusi manual. In cele mai frecvente cazuri, driverul poate detecta corect
parametrii placii. In altele, foarte rare, autodetectia poate bloca sistemul de calcul.
Caz in care va trebui sa reluati toate operatiunile realizate pana in prezent si, reajunsi
in aceasta faza, sa configurati manual driverul placii de retea.
In continuare vi se vor cere date necesare configurarii protocolului TCP/IP. Daca
aveti posibilitatea sa faceti o instalare din retea, administratia retelei va fi capabila sa
va furnizeze datele necesare. Acestea sunt:
Adresa IP 193.254.33.1
Masca de retea 255.255.255.0
Poarta implicita 10.0.2.254

Carte LINUX 12
Server de nume primar 10.0.2.1
Nume de domeniu chip.ro
Nume de calculator linux.chip.ro
Numai primele doua campuri sunt strict necesare. Adresa portii poate fi la fel cu
adresa IP. Daca nu avem server de nume (DNS _ Domain Name Server) vom folosi
doar adrese IP, insa nu si nume de calculatoare.
Dupa configurarea propriului calculator ni se vor solicita, dupa caz, referin-te despre
serverul NFS, FTP sau SMB. In toate cazurile va trebui sa identificam intai serverul in
retea prin adresa IP sau prin nume (nu folositi nume daca nu aveti server de nume!).
Pentru NFS si FTP va trebui sa specificam directorul care contine distributia. In ceea
ce priveste SMB, va trebui sa dam numele volumului

Configurarea nucleului simplificata: interfata grafica produsa cu „make xconfig" va


permite sa modificati usor ce va, intereseaza lasand pe loc valorile implicite in rest.
bila sa aduca la zi versiuni mai vechi Red Hat, dar in acest moment nu avem in
vedere acest lucru. Vom presupune deci ca realizam o instalare completa. Dupa
aceasta confirmare, procedura de instalare ne intreaba daca avem adaptoare SCSI
sau nu.
In continuare ne este prezentata o lista cu discurile pe care programul le-a detectat in
calculator si avem posibilitatea sa-l alegem pe cel care va gazdui Linux-ul. Daca este
necesara partitionarea harddisk-ului, mutam cursorul pe el si apasam [Enter].
Programul de instalare va lansa utilitarul fdisk cu care vom putea creea partitiile
conform schemei proiectate anterior.
Dupa terminarea partitionarii se revine in meniul de instalare care continua cu
configurarea spatiului de swap. Procedura va cauta si va lista partitiile de swap, le va
afisa si ne va intreba pe care sa o ini-tializeze. Va trebui sa plasam cu [Tab] cursorul
pe cele dorite, iar cu bara de spa-tiu [Space] sa determinam selectarea lor. Vor fi
initializate unitatile sau partitiile marcate cu asterisc.
Instalarea continua cu configurarea sistemului de fisiere. Programul ne afiseaza o
lista a partitiilor din care va trebui sa o selectam pe cea care urmeaza sa gaz-duiasca
sistemul de fisiere radacina. Urmatorul dialog poate fi folosit pentru a monta alte
partitii. Se selecteaza partitia si se introduce punctul de montare proiectat. Dupa
introducerea punctelor de montare, cu ajutorul meniului urmator se vor selecta
partitiile a caror formatare este necesara.
Pentru o instalare completa se vor marca pentru formatare toate partitiile. In scopul
actualizarii vom marca partitii ca /usr/local sau /home.
Urmeaza selectarea si instalarea pachetelor software. Diferite componente sistem
sunt grupate in functii pe care instalatia ar trebui sa le execute: Dezvoltare de
programe in C, Server Web sau Statie de lucru in retea. Putem sa selectam fiecare
functie in parte sau sa selectam ultima optiune: Instaleaza tot (Everything). Exista o
optiune importanta, si anume selectarea pachetelor individuale.
Selectarea pachetelor individuale este gestionata abil de procedura de instalare. In
primul rand, un pachet poate fi nece-sar pentru mai multe functii. In al doilea rand,
exista dependente functionale in-tre pachete. De exemplu, interfata grafica pentru
administrarea sistemului in Red Hat este facuta cu mediul de programare numit
python si, deci, necesita pachetele python si pythonlib. La sfarsit vom fi in-trebati
daca dorim sa fie rezolvate automat aceste dependente si pachetele necesare sa fie
instalate.
Dupa terminarea selectiei incepe procesul de copiere a pachetelor pe harddisk,
proces care dureaza aproximativ de 10 -15 minute

Carte LINUX 13
Harddisk-uri, floppy, unitati de CD sau de streamer pot fi incluse in configuratie dupa
dorinta. In plus suportul software poate fi cablat in nucleu sau compilat in-tr-un modul
separat incarcabil la cerere
Configurarea
Ultima etapa consta intr-o prima configurare a sistemului care tocmai a fost instalat.
Este important sa stim ca putem reveni, si in unele cazuri vom fi obligati sa revenim,
asupra oricarui parametru de configurare. Primul meniu va configura mouse-ul,
oferind o lista cu tipuri de ase-menea periferice precum si optiunea de a emula 3
butoane pe un mouse cu numai doua butoane.
In continuare va fi configurat serverul X. Pentru detalii de configurare ale sistemului
X-Window puteti parcurge sectiunea respectiva. Miza acestei configurari este mica si
este posibil sa nu o folositi niciodata. Trebuie sa alegeti o placa video si un monitor
care sa corespunda cat mai exact cu hardware-ul pe care il aveti pe sistem. Neavand
date exacte, alegeti echipamente mai putin performante. Daca in rest optiunile sunt
destul de evidente, una poate parea mai obscura: ceasul procesorului de pe placa
video. Selectia recomandata este cea implicita: fara setarea ceasului, deci cu
detectie automata. Oricum, notati ca o prima sarcina, dupa ce obtineti un sistem
functional,configurarea sistemului X cu XF86Setup.
Dupa configurarea serverului X programul de instalare ne propune sa ne ocupam de
configurarea retelei. In cazul in care facem o instalare locala suntem intrebati daca
dorim configurarea retelei. Un refuz duce la obtinerea unui calculator individual. Daca
am facut o instalare din retea, avem deja o configuratie TCP/IP si putem opta pentru
pastrarea acesteia sau pentru modificarea ei. Pentru parametrii retelei va propunem
sa revedeti exemplul anterior.
Urmeaza configurarea imprimantei. Va trebui sa specificam daca:
- imprimanta este locala, adica legata la calculatorul la care lucram;
- imprimanta la distanta se afla pe un calculator UNIX la care avem acces prin retea;
- imprimanta LAN-Manager este o imprimanta partajata in retea de catre Windows
sau LAN-Manager cu SMB prin TCP/IP.
Apoi va trebui sa introducem numele imprimantei, directorul de spool, tipul
imprimantei, tipul hartiei, rezolutia si culoarea.
Imprimanta locala va avea nevoie de numele calculatorului la care este atasata,
adresa IP a acestuia, numele imprimantei partajate, numele de utilizator si parola de
acces la imprimanta.
Meniul urmator ne propune configurarea ceasului. Vom putea alege cu satisfactie ora
Europe/Bucharest. Daca ne mutam in alta zona geografica, putem folosi
/usr/sbin/timeconfig pentru modificarea fusului orar. Dupa fusul orar ni se cere sa
introducem o parola pentru uti-lizatorul root. Este important sa prote-jam accesul cu
aceasta identificare. Parola trebuie sa aiba minim 6 caractere.
Ultima secventa a acestei operatiuni de configurare este setarea incarcatorului LILO
(LInux LOader). Acesta urmeaza sa fie scris pe disc si sa fie executat la pornirea
sistemului. LILO poate fi scris in mai multe locuri diferite: MBR, Master Boot Record,
de unde este pornit au-tomat si poate controla incarcarea sistemului. Cand este
executat, LILO afiseaza pe ecran promptul boot:. LILO poate fi configurat sa boot-
eze si alte sisteme de operare cum ar fi de exemplu sistemul Windows.
Primul sector al partitiei de root. Acest lucru este posibil daca in MBR avem un alt
manager de boot cum este cel al OS/2. In acest caz LILO se incarca sub contro-lul
acelui boot manager.

Carte LINUX 14
Dupa terminare, procedura de instalare va reincarca sistemul. Nu uitati dischete in
unitate. La promptul boot: apasati [Enter]. Cand se afiseaza login: tastati root si apoi
parola configurata mai sus. si... pregatiti-va sa introduceti comenzi!
Legatura la Internet
Daca nu ati configurat reteaua, este momentul sa o faceti acum. Ca root lansati X-
Windows cu startx si de acolo mergeti in Control Panel. Acesta are o functie speciala
de gestiune a retelei: Network Configuration. In primul rand va trebui sa configurati o
interfata la retea. Selectati Interfaces si apoi Add (adauga). Vi se va oferi o lista cu
tipurile (destul de multe) de legaturi posibile. Daca sunteti conectati la o retea locala
va va interesa tipul Ethernet. In caz contrar va va interesa probabil legatura PPP.
Configurarea unei legaturi Ethernet este ceva mai simpla, fiind necesara doar adresa
IP si masca de retea pe care le obtineti de la administratia retelei. Legatura PPP este
ceva mai complicat de sta-bilit. Parametri sunt de doua feluri: cei ale caror valori vor
fi furnizate de administratie si ceilalti, pentru care valorile implicite sunt de cele mai
multe ori suficiente. Ce este mai sensibil la legatura PPP este dialogul (chat) intre
cele doua modemuri care incearca sa stabileasca legatura si deci modul in care
calculatorul va controla acest dialog. Acest mod de control difera de la modem la
modem.
Dupa configurarea interfetei puteti sa o activati. Dupa aceea sunteti conectat si nu va
mai ramane decat sa utilizati reteaua. Pana la aparitia browser-ului de Web fiecare
serviciu avea clientul lui, a carui utilizare trebuie sa o invatati. Din pacate, acele
vremuri au cam trecut si acest capitol, in care ar fi intrat utilizarea programelor ca
telnet sau ftp se reduce la o propozitie: luati un broswer de isprava (exista Netscape
pentru Linux, e liber pentru uz personal!) si invatati sa-l folositi. Pentru detalii despre
conectarea la retea, cititi capitolul urmator.
Putem sa compilam nucleul?
Raspunsul este da, e chiar mai simplu decat multe alte activitati in sistem: daca nu
va reuseste, in mod sigur ati gresit un-deva. In primul rand, daca sunteti incepator,
nu faceti aceasta operatie decat la nevoie: un motiv ar fi ca aveti hardware care nu a
fost inclus in nucleul implicit. In al doilea rand nu este indicata inceperea unei
operatiuni de optimizare. Ramaneti la modificarile strict necesare si anume la
includerea hardware-ului care va intereseaza.
Lansati X-Window cu startx. Asigurati-va ca aveti sursele nucleului pe sistem. Altfel,
copiati si despachetati nucleul in /usr/src. Schimbati directorul curent prin intermediul
instructiunii
cd /usr/src/linux.
Acest director exista dupa instalarea surselor nucleului. Tastati comanda
make xconfig
care va va ajuta sa configurati nucleul. Configuratorul, veti vedea, este interactiv si
placut in utilizare. Alegeti sectiunea de configurare dorita si includeti suportul
software necesar in nucleu. Salvati si terminati configuratorul. Apoi tastati
make dep; make clean

Putem selecta mai multe placi de retea suportate de Linux apasand butonul „y" de pe
toate liniile. Obtinem un nucleu mai flexibil dar mai mare.
Prelucrarea nu va necesita mult timp, va genera dependentele intre componente si
va sterge eventualele urme ale unor compilari anterioare. Apoi tastati
make zImage

Carte LINUX 15
care va compila nucleul. Comanda dureaza 10-20 de minute, in functie de calculator
si complexitatea nucleului configurat. In situatia in care aveti module in nucleu (daca
nu stiti, aproape sigur aveti) tastati doua comenzi suplimentare:
make modules
make modules- install
Dupa ce se termina tot, dispuneti de nucleul dorit. Ramane sa il puneti in functiune

Exista multe tipuri de sisteme de fisiere si Linux poate utiliza o buna parte din ele. Nu
uitati ca, in cazul in care aveti unitate CD-ROM, sa selectati iso9660
Copiati nucleul obtinut in /boot sub numele zDebug prin intermediul urmatoarei
instructiuni:
cp arch/i386/boot/zImage /boot/zDebug
Mergeti in /etc si editati lilo.conf:
cd /etc
joe lilo.conf
La sfarsitul fisierului adaugati:
image=/boot/zDebug
label=debug
root=/dev/hda1
read-only
In loc de /dev/hda1, scrieti numele partitiei din care boot-ati de obicei. Salvati, iesiti si
rulati lilo:
lilo
Acum puteti reboot-a sistemul. tineti tasta [Shift] apasata pentru ca incarcatorul sa se
opreasca la promptul boot. Introduceti debug, numele noului nucleu. Daca lucrurile
nu merg, reveniti la incarcarea normala (fara tasta [Shift]). In caz contrar puteti sterge
celelalte nuclee din /etc/lilo.conf si rula din nou.

Carte LINUX 16
Reteaua TCP/IP
In continuare ne vom ocupa de conectarea calculatorului la retea. Modul de
conectare si functiile pe care le poate indeplini calculatorul pot determina configuratii
complexe, a caror explicare ar trebui sa recurga la concepte care nu isi au locul aici.
Pe de alta parte, situatiile cele mai frecvente sunt simple si reduse la numar. Putem
de fapt avea in vedere doar doua astfel de situatii: conec-tarea Linux-ului la o retea
locala de tip Ethernet si conectarea la un furnizor de servicii Internet printr-o legatura
de tip PPP.
Reteta functioneaza aproape in-
totdeauna, desi detalii cum sunt
comunicatii imperfecte, hardware incompatibil sau inexactitati de administratie pot
face conexiunea la retea inutilizabila si stabilirea cauzelor poate fi dificila. Pe de alta
parte, situatii particulare, complexe si rare, pot face necesara interventia unui
administrator profesionist de sistem UNIX.
Daca nu puteti apela pe moment la asemenea solutii sau nu aveti suficienta rabdare,
curiozitate si timp, puteti sa va apucati sa cititi pe indelete documentatia aferenta
acestui sistem de operare: in pri-mul rand superbul ghid de administrare a retelei al
lui Olaf Kirch si apoi cele cateva documente de tip HOWTO (Cum sa facem?), ca
NET-2-HOWTO sau PPP-HOWTO.
Inainte de a incepe configurarea retelei ar trebui sa ne asiguram ca urmatoarele
conditii sunt indeplinite: suportul pentru TCP/IP si PPP este compilat in nucleu. Apoi
va trebui sa ne asiguram ca principalele componente ale pachetului de utilitare
TCP/IP sunt prezente: programele ifconfig si route pentru configurare si utilitarele de
baza ping, ftp sau telnet. Daca instalati Linux folosind kit-ul Red Hat de pe CD, nu
aveti decat sa selectati functiile de retea dorite. Nucleul instalat implicit va contine
suportul necesar. O minima configurare implicand conectarea la reteaua locala se
face inca din timpul instalarii.
Configurarea consta in principal in completarea unor fisiere de configurare, aflate de
obicei in directorul /etc. Desi nu atat de obscura pe cat pare, aceasta metoda tinde
sa fie inlocuita prin metode mai intuitive, folosind interfete grafice de administrare
cum ar fi panoul de comanda propus de Red Hat.
Configuratia retelei
Inainte de a incepe configurarea retelei trebuie sa capatam cateva informatii despre
reteaua la care ne conectam. Aceste informatii sunt de obicei furnizate de ad-
ministratia retelei.
adresa IP: o adresa unica a calculatorului in retea; este formata din patru numere
intre 1 si 254 separate prin „.". Un exemplu ar fi 192.168.1.3. O adresa IP particulara,
anume 127.0.0.1 este rezervata pentru a desemna calculatorul propriu si este
singura adresa necesara cand nu avem nici placa Ethernet nici legatura PPP.
masca de retea: este alcatuita tot din patru valori numerice separate prin puncte,
asemanator adresei IP. In cazul de fata, un exemplu tipic ar putea fi 255.255.255.0.
Masca de retea arata ca-re parte din adresa IP este adresa retelei la care suntem
conectati direct si care parte desemneaza calculatoarele din retea. Masca de retea
arata ca primele trei cifre ale adresei IP constituie adresa de retea. Se mai spune ca
suntem conectati direct la reteaua 192.168.1.0. Toate calculatoarele conectate la
aceasta retea vor avea adresa IP cu primele trei cifre cele din adresa de retea.
Ultima cifra, corespunzand lui 0 din masca de retea, va di-feri de la calculator la
calculator.
adresa de retea: se obtine prin operatia AND (sI) logic intre bitii adresei IP si bitii
mastii de retea. In exemplul inceput mai sus, primele trei numere 255 din masca de

Carte LINUX 17
retea lasa pe loc numerele de pe pozitii-le corespunzatoare din adresa IP, iar ultimul
0 determina 0 de pe ultima pozitie. Deci, adresa de retea va fi 192.168.1.0.
adresa de difuzare: difuzarea (broadcast) este folosita (mai rar) pentru transmiterea
de date simultan tuturor calculatoarelor conectate la aceeasi retea. Calculatoarele
recunosc prin conventie o adresa de difuzare care este in aceeasi retea si are
numarul care corespunde cal-culatorului format numai din biti 1. In cazul nostru:
192.168.1.255.

Configurarea retelei incepe cu configurarea interfetelor.


adresa de poarta: poarta (gateway) este un calculator din reteaua proprie prin
intermediul caruia se poate comunica cu exteriorul, cu alte retele. In principiu, pot
exista mai multe porti, fiecare catre retele diferite. In practica, de cele mai multe ori,
este numai una. Se obisnuieste sa se dea portii un numar de masina, numar care
poate fi 1 sau 254 (adica o adresa IP avand valoarea 192.168.1.1 sau
192.168.1.254).
adresa serverului de nume: servi-ciul de nume (DNS _ Domain Name Server) este
cel care permite utilizarea numelor in locul adreselor IP. Serverul de nume este un
calculator care are o baza de date cu nume si atributele acestora, in principal
adresele IP asociate. In acest stadiu, serviciul de nume poate fi omis.
Script-uri de pornire a retelei
Script-urile de initializare a retelei sunt executate la initializarea sistemului. Ele contin
comenzile de baza care configureaza interfata de retea si adresarea. Implicit se afla
in /etc/rc.d si se numesc rc.inet1 si rc.inet2.
rc.inet1 configureaza parametrii de baza ai retelei, iar rc.inet2 porneste principalele
servicii de retea, executate de programe care ruleaza in background, numite demoni.
Pentru configurarea parametrilor de baza ai retelei rc.inet1 foloseste doua programe:
ifconfig si route. Ifconfig configureaza si initializeaza o interfata de retea. Route este
necesara pentru gestiunea tabelei de rutare, necesara dirijarii datelor printr-o
interfata sau alta.
In majoritatea situatiilor, un fisier rc.inet1, precum cel din oglinda alaturata, (fireste,
cu parametrii modificati) va functiona corect.
Acest script este bun pentru majoritatea cazurilor, dar nu pentru toate. Daca de
exemplu calculatorul dumneavoastra e conectat la doua retele locale prin interfete
Ethernet,lucrurile pot fi sensibil mai complicate.
Script-ul rc.inet2 porneste programele care realizeaza serviciile de baza TCP/IP. Cel
mai important dintre programe este inetd sau superserverul. Acesta intercepteaza
toate cererile adresate prin retea calculatorului pe care ruleaza. Le examineaza si
apoi comanda executia programului care presteaza serviciul solicitat. Este un mod
simplu si standardizat de a dispeceriza cererile adresate calculatorului
dumneavoastra.
Un alt program server foarte important este syslogd _ programul de jurnalizare.
Configuratia acestui server este memorata in /etc/syslog.conf. Acolo sunt listate
categoriile de mesaje si fisierele jurnal in care sunt trimise fiecare. In practica sunt
utilizate unul sau doua jurnale ca /var/log/messages sau /var/log/syslog.
Trebuie sa va ingrijiti periodic si sa goliti aceste jurnale care, chiar la o activitate
minima cum este cea a unui calculator casnic, in timp pot creste oricat de mult. Nu
luati masuri radicale si nu opriti jurnalizarea! Va privati de o sursa importanta de
informatii in cazul unor anomalii de functionare.
Un alt demon important este routed, un program care intretine tabela de rutare a
sistemului fara interventia utilizatorilor.

Carte LINUX 18
Script-ul de mai jos porneste cateva procese server mai importante.
Daca ati instalat Red Hat, folositi opti-unea de configurare a retelei din panoul de
comanda (Control Panel) care este lansat automat la intrarea in sistem. Nu va
hazardati sa editati de mana script-uri. Cititi insa exemplele de mai sus pentru ca
sunt instructive: oricat de frumoasa este interfata utilizator tot la ele se ajunge.
#! /bin/sh
# /etc/rc.d/rc.inet2
# Start syslogd
if [ -f /usr/sbin/syslogd ]
then
/usr/sbin/syslogd
fi
# Start inetd
if [ -f /usr/sbin/inetd ]
then
/usr/sbin/inetd
fi
# Start routed
if [ -f /usr/sbin/routed ]
then
/usr/sbin/routed -q
fi
# Gata!
#!/bin/sh
# /etc/rc.d/rc.inet1
HOSTNAME=`CHIP`
/etc/ifconfig lo 127.0.0.1 # adresa locala cu masca implicita;
/etc/route add 127.0.0.1 # ruta pentru adresa locala;
# Interfete Ethernet. Modificati dupa caz:
IPADDR="192.168.1.3" # Inlocuiti cu adresa dumneavoastra IP
NETMASK="255.255.255.0" # Inlocuiti cu masca dumneavoastra de retea
NETWORK="192.168.1.0" # Inlocuiti cu adresa retelei dumneavoastra
BROADCAST="192.168.1.255" # Inlocuiti cu adresa dumneavoastra de
difuzare
GATEWAY="192.168.1.1" # Inlocuiti cu adresa portii dumnevoastra
/etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast #${BROADCAST}
# Daca in reteaua dumneavoastra nu se poate difuza
# comentati (puneti un # la inceput) linia de mai sus
# si decomentati (stergeti # de la inceput) linia de mai jos.
# /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK}
/etc/route add ${NETWORK}
# Cele mai multe retele nu au poarta sau iesire spre exterior.
# Daca dumneavoastra aveti, decomentati comanda de mai jos
# /etc/route add default gw ${GATEWAY} metric 1
# End of Ethernet Configuration
linux:$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:26 errors:0 dropped:0 overruns:0

Carte LINUX 19
TX packets:26 errors:0 dropped:0 overruns:0
eth0
Link encap:10Mbps Ethernet HWaddr 52:54:4C:00:60:F1
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:153 errors:0 dropped:0 overruns:0
TX packets:56 errors:0 dropped:0 overruns:0
Interrupt:3 Base address:0x300
linux:$ ping -c 3 -v 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.8 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.7 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.6 ms
— 192.168.1.1 ping statistics —-
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.7/0.8 ms
Configuratia PPP
Cel mai simplu mod de configurare este sa folosim interfata de administrare a
distributiei Red Hat. Acolo putem adauga cu usurinta o interfata de tip PPP. In cazul
cel mai favorabil (culmea, este si cel mai frecvent) vom avea nevoie numai de
numarul de telefon, numele de utilizator si o parola pentru a putea stabili o legatura
imediat, prin activarea interfetei de tip PPP.(Point to Point Protocol) considerate
depasite tehnologic. Din aceste motive nu ne vom ocupa decat de configurarea unei
legaturi PPP. PPP este un protocol destinat transmiterii de pachete IP (unitati de
baza de date in TCP/IP) prin intermediul unei linii seriale. PPP poate fi folosit atat pe
linie inchiriata (legatura permanenta) cat si pe linie comutata, cand legatura se
stabileste prin apel telefonic traditional. In ambele cazuri sunt utilizate modemuri si
trebuie spus de la bun inceput ca cea mai dificila sarcina in configurarea unei legaturi
PPP o constituie comanda modemului.
Din cauza ca in majoritatea covarsitoare a cazurilor, dintre cele doua calculatoare
care stabilesc o legatura PPP, unul asteapta iar celalalt initiaza apelul telefonic, se
poate creea impresia ca PPP este o relatie client-server, ceea ce nu este deloc
adevarat. Strategia de punere in functiune a unei legaturi PPP difera de la furnizorul
de servicii Internet la utilizatorul casnic, dar PPP este un protocol peer-to-peer.

Pentru o legatura PPP cel mai simplu lucru este sa indicam portul serial la care e
conectat modemul si viteza comunicatiei intre calculator si modem.
De unde pornim
Pornim de la situatia in care am reusit sa stabilim o legatura pe linie seriala cu
calculatorul celalalt, folosind modem-ul conectat la calculator. Este bine sa ne
asiguram ca aceasta legatura functioneaza folosind un program de comunicatie cum
este minicom. Acest program permite co-manda modem-ului si deci si apelul postului
telefonic la distanta, precum si operarea in regim de terminal a celuilalt cal- culator.
Nu treceti mai departe pana cand nu aveti o legatura seriala functionala!
Pe langa legatura seriala functionala, mai aveti nevoie de cateva date cum ar fi
adrese IP sau masca de retea. Aceste date sunt oferite de furnizorul de servicii, deci
de administratia sistemului aflat la celalalt capat al legaturii. De cele mai multe ori
aceste date sunt configurate in mod automat in momentul stabilirii legaturii _ spre
entuziasmul general.

Carte LINUX 20
Din punct de vedere software, nucleul are nevoie de suport special pentru protocolul
PPP, care este optiune de compilare. Daca ati instalat distributia Red Hat de pe CD-
ROM-ul atasat acestui CHIP Special, nucleul implicit va avea acest suport. Daca nu,
revedeti sectiunea cu compilarea nucleului si introduceti suportul amintit.

Carte LINUX 21
Interpretorul de comenzi
Accesul primar la calculator se face printr-un program cu aparenta austera care
citeste comenzi de la tastatura, le interpreteaza si le executa. Dincolo de aceasta
aparenta simpla se ascund posibilitati sofisticate de combinare a programelor, fisiere
de comenzi, moni-torizarea si controlul executiei.
Shell-ul este interfata primara a utilizatorului cu sistemul de operare. Un shell UNIX
este în primul rand un interpretor de comenzi, permitand executia bogatului set de
utilitare UNIX. În al doilea rand, shell-ul este un limbaj de programare care da
posibilitatea combinarii acestor comenzi în activitati complexe. El ofera utilizatorului
un control complet asupra programelor: executia lor poate fi sincrona sau asincrona,
intrarile si iesirile pot fi redirectate, mediul de executie poate fi ajustat dupa dorinta.
Pe langa utilitare (comenzi externe) sau programe utilizator (de aplicatie), un shell
are si un numar de comenzi interne (builtins) care implementeaza functionalitati
imposibil sau dificil de obtinut altfel.
Shell-ul poate fi utilizat interactiv, cand comenzile sunt citite de la tastatura si
rezultatele sunt afisate pe ecran. În mod interactiv, utilizatorul beneficiaza de facilitati
de editare a liniei de comanda, controlul executiei programelor sau folosirea istoriei
comenzilor anterior.
În mod neinteractiv shell-ul citeste comenzi dintr-un fisier. Astfel, utilizatorul poate
folosi facilitatile de programare ale shell-ului: variabile, structuri de control (if, while,
for), subprograme.
Unul din shell-urile traditionale Unix este Bash (acronim pentru Bourne- Again Shell,
scris de Stephen Bourne. Toate comenzile interne ale shell-ului sunt disponibile si în
bash. Facilitatile de macroprelucrare sunt conforme cu POSIX 1003.2.
Executia comenzilor
Intrarea si iesirea standard
Cele mai multe comenzi UNIX îsi executa prelucrarile citind date din ceea ce se
numeste intrarea standard (pe scurt stdin) si scriind rezultatul în ceea ce se numeste
iesirea standard (pe scurt stdout). Shell-ul aranjeaza lucrurile în asa fel încat intrarea
standard sa fie tastatura si iesirea standard sa fie ecranul. Sa luam un exemplu
folosind cat. Aceasta citeste rand pe rand fisierele primite ca argumente si scrie
continutul lor în iesirea standard. Asadar, comanda CHIP:/home/nelu$ cat cuprins
cap01 cap02
afiseaza pe ecran continutul fisierelor cuprins, cap01 si cap02. Daca executam
comanda fara parametri, cat va presupune implicit ca trebuie sa citeasca din intrarea
standard, asa ca va astepta sa in-troducem o linie de la tastatura, dupa care o va
afisa pe ecran, si tot asa pana vom tasta Ctrl+D, ceea ce semnifica sfarsit de fisier în
cazul tastaturii:
CHIP:/home/nelu$ cat
Prima linie introdusa
Prima linie introdusa
A doua linie introdusa
A doua linie introdusa
CHIP:/home/nelu$
Sa consideram un alt exemplu, în care folosim comanda sort pentru a ordona liniile
introduse de la tastatura:
CHIP:/home/nelu$ sort
lamai
portocale
banane

Carte LINUX 22
[Ctrl+D]
banane
lamai
portocale
CHIP:/home/nelu$
Am reprezentat între paranteze drepte tastarea lui Ctrl+D, sfarsitul de fisier. Desigur,
poate fi mai util sa memoram lista ordonata a fructelor într-un fisier. Acest lucru se
poate obtine prin redirectare, un procedeu prin care iesirea standard este trimisa într-
un fisier:
CHIP:/home/nelu$ sort > lista_sortata
lamai
portocale
banane
[Ctrl+D]
CHIP:/home/nelu$
Dupa cum se observa, lista nu mai este afisata pe ecran, ci este salvata în fisierul
lista_sortata si, de exemplu, poate fi afisa-ta cu comanda cat:
CHIP:/home/nelu$ cat lista_sortata
banane
lamai
portocale
CHIP:/home/nelu$
Mai exista cel putin un mod de a obtine acelasi lucru: vom memora lista fructelor în
fisierul fructe cu ajutorul comenzii cat, apoi vom sorta acest fisier cu comanda sort.
CHIP:/home/nelu$ cat > fructe
lamai
banane
portocale
CHIP:/home/nelu$ sort < fructe > lista_sortata

Bash este certificat de standardele GNU. Mai mult decat regulile formale sunt
exigentele programatorilor participanti la proiect.
Redirectarea intrarii se face cu caracterul „<". Practic vorbind sort < fructe este
echivalent cu sort fructe, dar exemplul este ilustrativ. În ceea ce priveste programul
sort, în cazul redirectarii, el se comporta ca si cand ar citi de la tastatura. Shell-ul se
ocupa de redirectare, iar sort nu are habar de fisierul fructe. În cazul sort fructe,
programul sort trebuie sa des-chida explicit fisierul fructe.
Astfel ajungem la un concept foarte familiar utilizatorilor de UNIX, si anume acela de
filtru. Un filtru este un program care citeste din intrarea standard, prelucreaza datele
într-un anumit mod, si trimite datele prelucrate în iesirea standard. Utilizand
redirectarea, intrarea si/sau iesirea standard pot fi luate din/scrise în fisiere. Sort este
un filtru simplu, el sorteaza, apoi scrie în iesirea standard liniile citite din intrare. Cat
este un filtru si mai simplu: el doar copiaza intrarea în iesire.
Prelucrari în conducta
În exemplele de mai sus, cand am demonstrat utilizarea comenzilor cat si sort ca
filtre, am presupus ca datele de intrare sunt fie introduse de la tastatura, fie se afla
într-un fisier. Un caz mai inte-resant este acela în care datele de intrare ale unui
program sunt rezultatul prelucrarii altui program.

Carte LINUX 23
De exemplu, daca dorim sa obtinem lista fisierelor din directorul curent sortata în
ordine inversa putem sa redirectam iesirea standard a comenzii ls într-un fisier si
apoi sa sortam acest fisier cu pro-gramul sort, optiunea -r:
CHIP:/home/nelu/lucrare$ ls
bibliografie
cuprins
documente
text
CHIP:/home/nelu/lucrare$ ls > lista_fisiere
CHIP:/home/nelu/lucrare$ sort -r lista_fisiere
text
documente
cuprins
bibliografie
CHIP:/home/nelu/lucrare$
Metoda de mai sus necesita folosirea explicita a unui fisier intermediar temporar
precum si executia succesiva a unor comenzi. O solutie mai buna este oferita de
shell si se numeste prelucrare în conducta, în limba engleza pipelining. Prelucrarea
în conducta permite sa se conecteze un sir de comenzi în care si o intrare este
simbolizata de caracterul „|". În exemplul urmator lista sortata este obtinuta prin
conectarea în conducta a comenzii ls si a programului sort:
CHIP:/home/nelu/lucrare$ ls | sort -r
Prelucrarea în conducta de mai sus este mai usor de tastat si,de multe ori,mai
eficient de executat. Un alt exemplu util de conducta este examinarea continutului
unui director mare:
CHIP:/home/nelu/lucrare$ ls /usr/bin | less
În acest exemplu, lista fisierelor din directorul /usr/bin este transmisa programului de
vizualizare less. În acest fel, lista poate fi examinata pe îndelete si eventual putem
cauta anumite fisiere în ea. Pentru a demonstra conectarea în con-ducta a mai mult
de doua comenzi, vom dori sa exemplificam prin afisarea ultimelor trei fisiere din
directorul /usr/bin. Acest lucru presupune listarea directorului, sortarea în ordine
descrescatoare si afisarea primelor trei linii din rezultat:
CHIP:/home/nelu/lucrare$ ls /usr/bin | sort -r | head -3
znew
zmore
zless
Ultima prelucrare este executata de comanda head -3, care pur si simplu afi-seaza
primele 3 linii citite din intrarea standard dupa care se opreste.
Mai ramane de rezolvat un amanunt. Redirectarea iesirii standard într-un fisier
folosind „>" este distructiva, în sensul ca vechiul continut al fisierului (daca exista) se
pierde. Sunt situatii în care este de dorit sa adaugam la fisierul de iesire în loc sa-l
rescriem. În aceste cazuri vom fo-losi semnul de redirectare „>>". De exemplu:
CHIP:/home/nelu$ ls doc > fisiere
CHIP:/home/nelu$ ls txt >> fisiere
Prima comanda va crea fisierul fisiere în care va scrie continutul directorului doc.
Comanda a doua va adauga la aceasta lista lista de fisiere din directorul txt.
Procese si job-uri
De fiecare data cand executam un program se spune ca pornim un proces. Un
program în executie merita numele special de proces fie si pentru ca putem lansa în
executie acelasi program în acelasi timp de mai multe ori. Procesul ne permite sa

Carte LINUX 24
distingem între diferitele executii ale aceluiasi program sau între executiile
programelor diferite. Exista o comanda numita ps care ne permite sa afisam
procesele din sistem. De exemplu:
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
2622 p3 R 0:00 ps
În aceasta forma, comanda, probabil executata de nelu, afiseaza numai procesele a
caror executie a fost comandata de nelu (sau în numele lui!). În cazul de fata nu sunt
multe: shell-ul bash si comanda ps. Lista cu date despre procese contine printre
altele, în prima coloana, cea cu numele PID, un numar care identifica procesul:
identificatorul de proces (Process IDentifier). Pentru o lista completa a proceselor pe
care le executa sistemul putem tasta „ps -aux".

Homepage-ul lui Brian J.Fox, autorul bash-ului.


Din punct de vedere al shell-ului, un proces este un job. În cazul simplu, dar foarte
frecvent, termenii de job si de proces sunt interschimbabili. Job este termenul folosit
în special în legatura cu posibilitatile oferite de shell pentru controlul executiei
acestora. Uzual, utilizatorul executa un singur job, ultima comanda introdusa de la
tastatura. Exista însa multe situatii în care este util sa putem comuta între mai multe
joburi care se executa simultan. Unele prelucrari dureaza mult si nu fac nimic
interesant între timp. Ar fi placut sa putem juca un joc pana se termina. În alte situatii
suntem nevoiti sa întrerupem temporar o editare, sa executam cateva comenzi în
shell dupa care sa reluam editarea.
Foreground si background
Job-urile pot rula în foreground sau în background. Un singur job poate rula în
foreground. Acesta este job-ul care poate interactiona direct cu tastatura prin
intermediul intrarii si iesirii standard. În background pot rula mai multe joburi si, de
obicei, acestea nu au nevoie de interactiunea cu utilizatorul.
Exista posibilitatea sa suspendam un job. Dupa suspendare, un job poate fi re-luat în
foreground sau în background, dupa dorinta. Spre deosebire de suspendare,
întreruperea unui job (un proces în foreground este întrerupt cu Ctrl+C) produce
efecte iremediabile: procesul este distrus si nu mai poate fi reluat. Mai trebuie
mentionat faptul ca apasarea lui Ctrl+C nu termina imediat toate procesele: unele
mai executa o scurta perioada de timp operatii necesare terminarii corecte. Altele pur
si simplu nu pot fi terminate cu Ctrl+C.
Sa luam exemplul unui program simplu, yes. Executia lui produce un sir de „y" în
iesirea standard pana cand este oprit:
CHIP:/home/nelu$ yes
y
y
y
y
y
Puteti distruge procesul cu Ctrl+C. Putem scapa de plictisitorul sir de y redirectand
iesirea standard a programului catre /dev/null.
CHIP:/home/nelu$ yes > /dev/null
Fisierul special /dev/null se comporta ca o gaura neagra, capabila sa absoarba orice.
În plus, am dori ca, în timp ce yes ruleaza, sa mai facem si alte lucruri. În acest scop
putem sa executam procesul în background. Un mod de a rula un proces în

Carte LINUX 25
background este sa scriem comanda care îl lanseaza în executie terminata cu
caracterul „&".
De exemplu:
CHIP:/home/nelu$ yes > /dev/null &
[1] 2854
CHIP:/home/nelu$
Dupa cum se vede, primim înapoi doua numere si apoi promptul shell-ului, semn ca
putem sa executam si alte comenzi. Primul, scris între paranteze drepte, reprezinta
numarul job-ului. Shell-ul numeroteaza începand cu 1 toate job-uri-le în curs de
executie. Al doilea este iden-tificatorul procesului. Acesta este unic de la o încarcare
de sistem la alta. Putem afisa starea job-urilor cu comanda:
CHIP:/home/nelu$ jobs
erior este marcat cu un _ iar celelalte, în cazul în care exista, nu sunt marcate. O
prima deosebire între job-uri si procese se poate observa din rezultatul comenzilor
jobs si ps. De exemplu, shell-ul este un proces executat în beneficiul utilizatorului dar
nu apare în lista de joburi. La fel si comanda ps.
Terminarea unui job se poate face cu comanda kill. Ca argument, comanda primeste
caracterul % urmat de numarul job-ului:
CHIP:/home/nelu$ kill %1
CHIP:/home/nelu$ jobs
[1] Terminated yes >/dev/null
CHIP:/home/nelu$

Richard M.Stallman (RSM), presedintele FSF. A fondat proiectul GNU în 1984. Este
initiatorul si programatorul principal în produse majore cum este Emacs si GNU C.
Comanda urmatoare va afisa job-urile. Între timp, sistemul va afisa terminarea job-
ului 1. În acest caz putem termina job-ul distrugand procesul care îl constituie.
În continuare vom analiza un caz doar putin mai complicat, care însa ne va per-mite
sa distingem între procese si job-uri. Putem conecta în conducta programul yes cu
programul wc, care numara caracterele, cuvintele si liniile din intrare, în speranta ca
vom avea sansa de a numara caracterele y afisate.
CHIP:/home/nelu$ yes | wc &
[1] 2999
CHIP:/home/nelu$ jobs
[1]+ Running yes | wc &
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
2998 p3 R 0:00 yes
2999 p3 S 0:00 wc
3002 p3 R 0:00 ps
CHIP:/home/nelu$ jobs
[1]+ Running yes | wc &
Concluzia este ca ambele procese, yes si wc, fac parte din acelasi job. Concluzia
este întarita experimentand terminarea job-ului:
CHIP:/home/nelu$ kill %1
CHIP:/home/nelu$ ps
[1]+ Terminated yes | wc
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash

Carte LINUX 26
3015 p3 R 0:00 ps
CHIP:/home/nelu$
Afisarea proceselor arata ca nici yes, nici wc nu mai sunt active. Terminarea jobului
produce distrugerea tuturor pro ceselor din conducta. Pe de alta parte, terminarea
unuia din procesele conductei poate avea diverse efecte.
Încercati mai întai distrugerea procesului wc:
CHIP:/home/nelu$ yes | wc &
1] 3049
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
3048 p3 R 0:06 yes
3049 p3 S 0:01 wc
3050 p3 R 0:00 ps
CHIP:/home/nelu$ kill 3049
CHIP:/home/nelu$
[1]+ Terminated yes | wc
CHIP:/home/nelu$
Asadar, daca distrugem ultimul proces din conducta se termina tot job-ul.
Sa încercam sa distrugem yes:
CHIP:/home/nelu$ yes | wc &
[1] 3059
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
3058 p3 R 0:01 yes
3059 p3 S 0:00 wc
3060 p3 R 0:00 ps
CHIP:/home/nelu$ kill 3058
CHIP:/home/nelu$ 8544256 8544256 17088512
[1]+ Done yes | wc
CHIP:/home/nelu$
Nu trebuie neaparat sa ne surprinda ca, în sfarsit, am obtinut un rezultat: pana la
terminare, yes a scris un numar de 8544256 caractere „y".
O alta metoda de a pune un job în back-ground este sa-l pornim în foreground, sa-l
suspendam si apoi sa îl reluam în background. Întai sa pornim job-ul în foreground:
CHIP:/home/nelu$ yes > /dev/null
Suspendarea job-ului se face cu o combinatie speciala de taste, asemanator
terminarii: Ctrl+Z.
[1]+ Stopped yes >/dev/null
CHIP:/home/nelu$
Dupa suspendare, starea job-ului este afisata în acelasi mod în care ar afisa-o
comanda jobs. Job-ul suspendat nu are nici o activitate si deci nu consuma resurse
sistem. Dupa suspendare se observa ca obtinem promptul shell-ului. Putem relua
executia executia job-ului in doua feluri: in foreground cu comanda fg, sau in
background cu comanda bg:
CHIP:/home/nelu$ fg
Yes>/dev/null

Carte LINUX 27
Comanda fg reia in foreground ultimul job suspendat. Comanda prin care a pornit
job-ul este afisata si nu mai avem prompt shell. Reluarea in background are efect
diferit:
CHIP:/home/nelu$ bg
[1]+ yes >/dev/null &
CHIP:/home/nelu$
Comanda afisata este terminata cu „&", semn ca este executata în background. În
plus, vom obtine si promptul shell.
Cum suspendam un job din background? Trebuie mai întai sa-l aducem în
foreground cu comanda fg si apoi sa îl suspendam cu Ctrl+Z.
În continuare,vom mai nota ca job-ul yes, chiar lansat în background:
CHIP:/home/nelu$ yes &
va produce încontinuu sirul nesfarsit de „y" si, în lipsa redirectarii, îl va afisa pe ecran.
O ultima nota: comenzile fg si bg actioneaza implicit asupra ultimului job suspendat.
Comanda jobs afiseaza acest job cu semnul +. Daca avem mai multe joburi
suspendate, putem sa-l reluam pe cel pe care îl dorim scriindu-i numarul prefixat cu
% în argumentul comenzilor fg sau bg. De exemplu:
CHIP:/home/nelu$ fg %2
reia executia jobului 2 în foreground. Iar:
CHIP:/home/nelu$ bg %7
reia în background executia jobului cu numarul 7. Mai mult, putem utiliza numarul de
job ca în
CHIP:/home/nelu$ %3
în locul comenzii echivalente
CHIP:/home/nelu$ fg %3.
Dictionar
alias _ un sinonim pentru o comanda; utilizatorii definesc alias-uri pentru
prescurtarea unor comenzi complexe sau pentru a da nume familiare unor comenzi
frec-vent utilizate;
blanc _ caracterul spatiu sau caracterul tab;
builtins _ comenzi interne ale unui shell;
cod de retur _ exit status, indicator de iesire. O valoare returnata de o comanda celui
care o apeleaza, de exemplu shell-ului;
comanda interna speciala _ comanda interna clasificata ca special builtin de POSIX
1003.2;
controlul joburilor _ mecanism prin care utilizatorul poate controla selectiv executia
proceselor: le poate suspenda sau le poate relua individual;
cuvant _ unitate lexicala care nu este operator.
cuvant rezervat _ un cuvant cu înteles special pentru shell; de exemplu cuvintele
rezervate if, for si while desemneaza structuri de control de program ale shell-ului;
filtru _ program care citeste date din intrarea standard si scrie datele prelucrate în
iesirea standard; multe comenzi UNIX sunt filtre;
grup de procese _ o colectie de procese asociate care au un unic identificator numit
identificator (ID) de grup de procese;
intrare standard _ locul de unde un program citeste comenzi si date; în mod obisnuit
este tastatura;
iesire standard _ locul unde un program afiseaza mesaje sau rezultate ale
prelucrarilor; în mod obisnuit este ecranul monitorului;
job _ fie un singur proces fi o conducta de procese precum si celelalte procese
derivate din conducta;

Carte LINUX 28
nume sau identificator _ un cuvant care consta numai din litere, cifre si caracterul
underscore („_") si începe cu o litera sau cu underscore; numele identifica variabile
sau functii shell;
operator _ operator de control sau operator de redirectare;
pipe _ conducta; procedeu prin care iesirea standard a unui program este conectata
direct în intrarea standard a altui program; ansamblu de procese interconectate în
cascada prin acest procedeu;
POSIX _ o familie de standarde pentru sisteme deschise bazate pe UNIX; bash are a
face cu POSIX 1003.2, standardele pentru shell si utilitare;
proces _ un program în executie; spre deosebire de programul în forma de fisier
executabil, procesul are o stare a executiei; starea procesului este informatia care
face posibila suspendarea executiei si reluarea acesteia;
redirectare _ procedeu prin care intrarii (iesirii) standard a unui program i se atribuie
o alta sursa (destinatie) decat cea implicita;
script _ fisier de comenzi; datorita fa-cilitatilor de programare deosebite, utilizatorul
poate crea script-uri care sa implementeze comenzi foarte puternice sau activitati
complexe;
semnal _ mecanism prin care nucleul sistemului de operare notifica un proces
despre evenimentele din sistem; procesele pot asocia semnalelor proceduri
detratare;
sesiune _ perioada de executie a unui program; tipic, acest program este shell-ul de
login, adica shell-ul care se lanseaza automat cand accesul unui utilizator este
validat de sistem; atunci o sesiune de lucru este asociata cu perioada în care
utilizatorul are acces la sistem;
token _ unitate lexicala; secventa de caractere tratata ca un tot de catre shell;
unitatile lexicale sunt cuvinte sau operatori;

Carte LINUX 29
X-Window
Instalarea unui sistem Linux nu inseamna neaparat revenirea la interfata
saracacioasa de tip DOS. Dimpotriva: interfata grafica pe sitemele UNIX, pe numele
ei X-Window, are calitati superioare altor interfete grafice.
Sistemul X-Window este un mediu grafic mare si puternic (unii
spun ca este prea mare si excesiv de complex) pentru sisteme UNIX. Codul original
a fost dezvoltat la MIT si s-a raspandit atat in lumea comerciala cat si pe platforme
libere. Versiunea 11 a sistemului MIT, cunoscuta generic ca X11 are o varianta libera
pentru platforme Intel care a ajuns la editia (release) 6: X11R6 sau XFree86. Este
completa si este accesibila liber. Pentru informatii suplimentare se poate consulta
http://www.XFree86.org.
Hardware
Zona video este poate cea mai delicata din tot calculatorul. Este implicat cel mai mult
hardware si cu varietatea cea mai mare. Daca achizitionati un calculator nou sau il
imbunatatiti pe cel vechi, consultati documentatii de compatibilitate: intotdeauna veti
avea pe o discheta driverul pentru MS Windows, dar cu Linux va trebui sa va
descurcati singuri. Avantajul pietei romanesti este ca nu te pierzi usor in varietate si,
daca e sa cumperi, vei ni-meri cu usurinta ceva de „larga respiratie" care are suport
si in cel mai obscur program.
Data fiind integrarea la care s-a ajuns azi, in majoritatea interfetelor, si deci si in cea
video, informatia vitala este cipul cu care a fost facuta. Va trebui sa va bazati pe
aceste informatii si, eventual, pe juramintele de compatibilitate ale vanzatorului. In
mod normal, daca aveti dubii, va trebui sa il avertizati ca vreti sa rulati X pe Linux.
Daca nu da din umeri a dezolare, ci se ofera sa va ajute, chemati mass-media: va
aflati in fata unei fericite exceptii. Nu ca ar sti de Linux, dar se com- porta normal. Pe
placile video nu se precizeaza ca sunt facute numai pentru MS Windows.
Puteti testa o placa pe Linux cu programul SuperProbe. Pe calculatorul meu
programul afiseaza:
SuperProbe Version 2.14 (20 May 1997)
<...>
First video: Super-VGA
Chipset: S3 Trio64V+ (Port Probed)
Memory: 2048 Kbytes
RAMDAC: Generic 8-bit pseudo-color DAC
(with 6-bit wide lookup tables (or in 6-bit mode))
Cipurile S3 si, mai nou, S3 Virge se ga-sesc peste tot si cu 2 MB de memorie, restul
depinde de calitatea monitorului.
In cazul in care calculatorul dumneavoastra nu este o achizitie recenta, veti fi
interesat de cipurile Super VGA suportate. Daca nu mai aveti pliantul care in-soteste
placa, poate veti deslusi inscriptia de pe integratele interfetei.
Aceste placi video sunt suportate pe orice tip de magistrala, incluzand VLB si PCI.
Toate merg in mod monocrom si cu 256 de culori. Daca aveti destula memorie pe
placa video, veti putea avea acces la moduri cu 16 sau 32 de biti pe pixel. Con-
figuratia uzuala cu 8 biti pe pixel permite 256 de culori. Se pot folosi si placi VGA in
mod monocrom.
Configuratia recomandabila este 486 (autorul a rulat servere X11 pe calculatoare 386
cu performante rezonabile), 8 MB de memorie si o placa grafica accelerata (S3).
Placile accelerate dau rezultate foarte bune cu XFree86 si testele arata ca de multe
ori sunt mai performante decat statiile de lucru comerciale UNIX.

Carte LINUX 30
Fonturile au probleme importante de reprezentare. Orice sistem grafic este mandru
sa le scaleze corect.
Instalarea
XFree86 este usor de obtinut, fiind in-clus in toate distributiile Linux. Majoritatea
dintre cititori pot sari direct la sectiunea de configurare.
Pentru referinta, dam doua URL-uri la care puteti gasi distributia binara XFree86 si
de unde o puteti copia cu ftp prin Internet:
ftp://ftp.xfree86.org/pub/XFree86/ current/binaries/Linux
ftp://sunsite.unc.edu/pub/Linux/X11 .
Sistemul este compus in principal din:
- servere de terminal, care gestioneaza sistemul video, precum si tastatura si mouse-
ul;
- gestionar de display, gestionare de ferestre, fisierele de configurare ale acestora;
- alte utilitare;
- documentatie si pagini de manual;
- fonturi;
- biblioteci si fisiere antet pentru dezvoltarea de programe.
Aceste componente se gasesc intr-o serie de fisiere X32*.tgz.
Instalarea lor se face standard in /usr/X11R6, a carui structura o puteti consulta in
sectiunea care descrie sistemul de fisie-re Linux. Asadar, ca root creati directorul
/usr/X11R6. Pentru fiecare arhiva comprimata (fisier .tgz) instalati continutul cu
comanda:
gunzip -c X32*.tgz | tar xfB -
sau cu orice alta comanda preferata. Oricum, dezarhivarea trebuie facuta in
/usr/X11R6.
Dupa instalare va trebui sa va asigurati ca programele sunt accesibile pentru
executie, adica usr/X11R6/bin este pe cale. Acest lucru se poate realiza editand
/etc/profile si adaugand la sfarsit o linie:
export PATH=$PATH:/usr/X11R6/bin
De asemenea este important ca programele sa poata avea acces la bibliotecile
partajate. De aceea va trebui ca in fisierul /etc/ld.so.conf sa adaugati linia:
/usr/X11R6/lib
dupa care sa executati comanda
ldconfig
Configurarea
Configurarea serverului XFree86 pentru a utiliza corect mouse-ul, tastatura,
monitorul si placa grafica era o arta, de-taliile de functionare ale hardware-ului facand
fisierul de configurare greu de manevrat manual. Ultimile editii ale sistemului X11 au
un program de configurare numit XF86Setup care lucreaza in-tr-un mod grafic
minimal, este interactiv si usor de operat.
Pentru fiecare dintre componentele hardware exista un meniu separat. Este bine sa
cunoasteti datele despre acestea, din documentatia de achizitie sau din programe de
test ca SuperProbe. De multe ori raman necunoscute tocmai datele monitorului
pentru care programele nu pot face mare lucru. Ramane sa incercati pe rand fiecare
din tipurile de monitoare, acestea fiind enumerate in ordinea crescatoare a
performantelor. Cand imaginea se strica, reveniti la tipul de monitor an-terior.
Inainte de a termina, puteti rula optiunea xvidtune, din curiozitate sau chiar pentru ca
va pricepeti sa ajustati moduri video! Nu luati in seama avertismentele, nu prea mai
sunt in functiune monitoarele care pot fi distruse cu ajutorul unor frecvente de
sincronizare mari.

Carte LINUX 31
Uneori, ceea ce configurati nu se potriveste cu ce obtineti cand rulati serverul de
terminal. Unele probleme sunt minore si se pot corecta cu xvidtune. Altele sunt intr-
adevar importante si atunci este de preferat sa reveniti la configurare si sa alegeti un
monitor mai putin pretentios.
Un mod de diagnoza este sa rulati serverul X pur si simplu, cu iesirea in fisier:
X > /tmp/x.out 2>&1
Puteti opri serverul imediat prin intermediul combinatiei de taste [Ctrl]+[Alt]+
[Backspace] si examina jurnalul x.out. Veti observa unele avertismente, cum ar fi
nesincronizari intre placa video si monitor.
Folositi Ctrl-Alt-Num+ si Ctrl-Alt-Num- pentru a comuta intre modurile video. Alegeti-l
pe cel care va convine, optimul depinde si de tipicul activitatii de zi cu zi. Nu uitati ca
monitorul dumneavoastra are butoane. Nu totul se rezolva prin soft (inca!) si daca
imaginea este deplasata intr-o parte sau este mai ingusta, nu ezitati sa folositi
reglajele de monitor.

Multi au facut o pasiune din a urmari indeaproape


Configurari suplimentare
Cea mai mare rezolutie suportata de XF86Setup este 1280 x1024 pixeli. Daca aveti
un monitor performant, de exemplu un model care poate afisa 1600 x 1200 de
puncte va trebui sa configurati manual monitorul.Un ghid bun in acest sens este scris
de Hitchiker si poate fi gasit la adresa:
http://www.ccil.org/~esr/xconfig/vid eo-modes.html
Pentru a afisa un numar mai mare de culori, lucrurile sunt mai simple. Implicit,
serverul X foloseste 8 biti pe pixel, insemnand 256 de culori. Pentru a ocoli restrictia,
multe aplicatii folosesc harti de culoare proprii provocand modificari bruste de
cromatica la trecerea de la o fereastra la alta. Browserul de WEB Arena sau xPaint
lucreaza astfel. Daca observati acest fenomen sau pur si simplu aveti nevoie de mai
multe culori porniti serverul cu comanda
startx — -bpp 16
sau introduceti linia:
exec X :0 -bpp 16
in fisierul .xserverrc din directorul dumneavoastra de baza
Tseng ET3000, ET4000AX, ET4000/W32, ET6000
Western Digital/Paradise PVGA1
Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31,
WD90C33
Genoa GVGA
Trident
TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i,
TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420, TGUI9420DGi,
TGUI9430DGi, TGUI9440AGi, TGUI9660XGi, TGUI9680
ATI
18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX,
68800LX, 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX, 264CT,
264ET, 264VT, 264VT2, 264GT
NCR 77C22, 77C22E, 77C22E+
Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428,
CLGD5429, CLGD5430, CLGD5434, CLGD5436, CLGD5440, CLGD5446,
CLGD5462, CLGD5464, CLGD6205, CLGD6215, CLGD6225, CLGD6235,
CLGD6410, CLGD6412, CLGD6420, CLGD6440

Carte LINUX 32
OAK OTI067, OTI077, OTI087
S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964,
86C732, 86C764, 86C765, 86C868, 86C968, 86C325, 86C988
MGA2064W Avance Logic ALG2101, ALG2228, ALG2301, ALG2302, ALG2308,
ALG2401
Chips & Technologies 65520, 65530, 65540, 65545, 65520, 65530, 65540, 65545,
65546, 65548, 65550, 65554
MX MX68000, MX680010Video 7/Headland Technologies HT216-32
SiS 86C201, 86C202, 86C205
ARK Logic ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT
RealTek RTG3106
Alliance AP6422
Matrox MGA2064W
NVidia/SGS Thomson NV1, STG2000
Mai sunt suportate urmatoarele cipuri accelerate:
8514/A si clonele veritabile
ATI Mach8, Mach32, Mach64
Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429,
CLGD5430, CLGD5434, CLGD5436, CLGD5440, CGLD5446, CLGD5462,
CLGD5464.
Western Digital WD90C31, WD90C33, WD90C24A
Weitek P9000
IIT AGX-014, AGX-015, AGX-016
IBM XGA-2
Tseng ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000
Ark Logic ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT
Mai multe culori inseamna mai multe date transferate de placa grafica. Daca acest
lucru nu este posibil, fie rata de re-improspatare trebuie scazuta, fie rezolutia redusa.
Implicit, XFree reduce rezolutia. Daca doriti mentinerea rezolutiei la o rata de refresh
mai mica inlocuiti de exemplu linia
Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777
806 -hsync -vsync
cu urmatoarea:
Modeline "1024x768"
65 1024 1032 1176 1344 768 771 777
806 -hsync -vsync.
Numerele din coloana a treia reprezinta frecventele de ceas. Efectele nu sunt evident
de controlat asa ca fie sunteti dispus sa experimentati, fie sa cititi cu atentie
documentatia XF86 despre monitoare si placi video.

Versiunea X a paginilor de manual. Nu numai ca putem selecta inregistrarile cu


mouse-ul, dar avem si o functionalitate superioara.
Pornirea
Dupa ce ati terminat de instalat si de configurat puteti porni serverul cu comanda
startx
Aceasta comanda va porni serverul X si va executa comenzile din fisierul .xinitrc din
directorul de baza. Daca acesta nu exista, va fi executat script-ul implicit:
/usr/X11R6/lib/X11/xinit/xinitrc
In .xinitrc putem avea, de exemplu:
#!/bin/sh

Carte LINUX 33
xterm -fn 7x13bold -geometry
80x32+10+50 &
xterm -fn 9x15bold -geometry
80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &
exec twm
Comenzile de mai sus pornesc doi clienti xterm si un ceas oclock, stabilesc culoarea
ecranului midnightblue (albastru inchis, incercati, mie imi place foarte mult) si
executa gestionarul de ferestre twm. Ultima comanda din .xinitrc trebu-ie data cu
exec si in foreground (nu cu ampersant `&') pentru ca altfel serverul X va iesi imediat
ce o va executa.
Terminarea serverului se face in mod traditional cu [Ctrl]+[Alt]+ [Backspace].
Configuratia de mai sus este foarte simpla. Incet, incet veti invata sa adaugati
programele indragite in script-urile de pornire si va veti mobila dupa gust desktop-ul.
In acest moment sunteti pregatit sa cititi o carte buna: ghidul utilizatoru-lui X-Window.

Carte LINUX 34
Tiparirea
Dupa ce obtinem rezultatele dorite intr-un fisier, un alt aspect im-portant al lucrului cu
calculatorul este tiparirea la imprimanta a acestui fisier. De la simple liste sau tabele
cu cifre la articole si pli-ante cu grafica sofisticata a caror pregatire este o activitate in
sine, toate pana la urma trebuie sa ajunga pe hartia din imprimanta.
Intr-un sistem desktop cum este
DOS sau Windows lucrurile sunt
simplificate datorita faptului ca exista un singur utilizator care stie exact ce doreste de
la unica imprimanta atasata calculatorului. In sistemele de tip server (UNIX, NT) in
care una sau mai multe imprimante trebuie adecvate necesitatilor diverse si uneori
imprevizibile ale mai multor utilizatori, locali sau din retea, lu-crurile iau o turnura mai
complicata.
Imprimanta si nucleul
Pentru sistemul de operare, porturile paralele la care pot fi atasate imprimante sunt
fisierele speciale de tip caracter /dev/lp0, /dev/lp1 si /dev/lp2. Se pot atasa
imprimante si la porturi seriale ca /dev/ttyS1, dar acest tip de instalare este din ce in
ce mai rar.
Cea mai simpla posibilitate de tiparire este copierea in fisierul special cu o comanda
de genul
cp fisier /dev/lp1
Acest mod ridica mai multe probleme, cum ar fi: fisierul trebuie sa contina exact
formatul acceptat de imprimanta, altfel rezultatele pot fi surprinzatoare. Imprimanta
trebuie sa fie locala, pornita si dis-ponibila. Pentru utilizatorul casnic este posibil ca
toate aceste probleme sa nici nu aiba sens. Intr-o retea insa ele pot face viata
imposibila.
Sa luam un exemplu. Avem de tiparit o imagine si un text simplu. Putem presupune
ca imaginea este in formatul de in-trare al imprimantei, continand deci comenzile
care sa determine desenarea corecta. Imprimanta va primi fisierul caracter cu
caracter si il va trata ad literam. Acest comportament se va dovedi fatal pentru text.
In textele UNIX, sfarsitul de linie este reprezentat prin caracterul linie noua. Daca
imprimanta se va conforma pur si simplu intrarii, aspectul tipariturii va fi cam asa:
Prima linie
Linia urmatoare nu mai incepe de la capat
si tot asa
Acasa vom modifica parametri imprimantei astfel incat aceasta sa genereze si un
retur de car pentru fiecare linie noua, eliminand astfel neplacutul efect de scara.
Solutiile software sunt mai elegante, dar punerea lor la punct necesita un minim de
efort initial.

Functia de configurare imprimanta, optiunea adaugare: trebuie sa alegem intre o


imprimanta locala, una conectata la un alt sistem UNIX din retea sau o imprimanta
partajata de un sistem Windows.
Software pentru accesul la imprimanta
Rezolvarea problemelor descrise mai sus este realizata cu sisteme de spool (Shared
Peripheral Operating On-Line: echipamente partajate operand in modul on-line), o
solutie a carei istorie se suprapune in buna masura cu cea a sistemelor de operare.
Sistemele de spool sunt sisteme de acces la resurse utilizate in comun, ca
imprimantele. Ele primesc comenzi de executie, impreuna cu datele aferente:
comenzi de tiparire si fisierele de tiparit. Acestea vor fi executate pe rand, pe masura

Carte LINUX 35
ce imprimanta solicitata devine disponibila. Pana atunci, comenzile sunt pastrate in
cozi de asteptare, asociate fiecarei imprimante in parte (in /var/spool).
Desi sunt disponibile mai multe sisteme de spool, cel care vine implicit cu instalatia
dvs., in cazul Linux-ului este BSD lpd (Line Printer Daemon), este si cel mai bun.
Cazurile complicate, cu foarte multi utilizatori folosind intens imprimantele, sunt
destul de rare ca sa nu folosim lpd macar intr-o prima faza.
Sistemul lpd este compus din urmatoarele programe:
lpd _ asa numitul demon de imprimanta; controleaza totul in sistem si ruleaza cate un
exemplar pentru fiecare im-primanta care tipareste ceva;
lpr _ introducerea unei comenzi in sis-tem, comanda de tiparire; lpr ia contact cu lpd
si inregistreaza un job de tiparire;
lpq _ listarea cozilor de comenzi de ti-parire (a joburilor);
lpc _ controlul sistemului de tiparire: poate porni si opri imprimanta sau reordona
joburile in coada;
lprm _ sterge un job din coada.
Odata aceste programe accesibile si demonul de imprimanta lpd pornit, este relativ
usor sa comandam tiparirea unui fisier si chiar sa obtinem rezultatul pe hartie.
Configurarea
Pentru a adauga o imprimanta in sistem, trebuie facute doua lucruri: adaugarea unui
director pentru coada de tiparire, de obicei in /var/spool/lps si descrierea imprimantei
intr-o intrare noua in fisierul /etc/printcap.
# Imprimanta locala HP DeskJet 500
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:sh:
Mai intai cateva observatii despre sintaxa inregistrarilor in /etc/printcap. Putem scrie
comentarii care incep cu #. Fiecare inregistrare se scrie pe o linie, dar putem sa
trecem la linia urmatoare terminand-o pe cea curenta cu \. Campurile inregistrarii se
separa cu :. si, in sfarsit, in campuri putem avea valori sau perechi nume=valoare. In
exemplu se defineste o imprimanta numita (primul camp) lp sau dj sau deskjet, cu
directorul de spool /var/spool/lpd/dj, fara dimensiune maxima pe job, care tipareste
pe portul fizic /dev/lp0, fara antet.
Daca vom tipari acum un fisier text UNIX la imprimanta, in mod sigur vom obtine
efect de scara. Putem insa adauga un filtru de intrare:
lp|dj|deskjet:\
:sd=/var/spool/lpd/dj:\
:mx#0:\
:lp=/dev/lp0:\
:if=/var/spool/lpd/dj/filtru:\
:sh:
care este campul cu numele if (input filter). Acest camp ne spune ca, inainte de a fi
tiparit efectiv, fisierul primit de spool trebuie prelucrat cu programul /var
/spool/lpd/dj/filtru. Acesta poate fi scris in orice limbaj de programare sau poate fi un
script care citeste un fisier din intrarea standard si scrie un alt fisier in iesirea
standard. Se copiaza fiecare caracter in parte, cu exceptia celor „linie noua", iar in
final se scrie la iesire un caracter „retur de car".
Ceea ce vom constata imediat este ca, dupa ce adaugam filtrul, fisierele text nu
ridica probleme, in schimb se strica cele grafice. O solutie rezonabila este sa creem

Carte LINUX 36
doua imprimante in /etc/printcap: una cu filtru pentru texte si alta fara filtru pentru
grafica. Singurul lucru care trebuie sa difere este numele.

Dupa ce autodetecteaza portul de imprimanta, procedura ne propune cateva date de


configurare cu valori implicite rezonabile
Filtre magice
Solutia optima este insa complicarea filtrului. Acesta va trebui sa recunoasca
automat tipul de fisier pe care il are de tiparit si sa-l prelucreze (filtreze)
corespunzator. Aceste filtre se numesc magice. Nu numai ca nu este trivial sa scriem
filtre, dar sensul software-ului liber este ca daca cineva a facut un program util,
ceilalti se pot bucura de el.
Unul dintre cele mai interesante filtre este APS. A fost scris de Andreas Klemm si
este intretinut de Thomas Buenschgens. Poate fi gasit in URL-ul de baza
ftp://ftp-i2.informatik.rwth-aachen.de/pub/Linux/pak/APSfilter/aps -491.tkz
sau in
ftp://sunsite.unc.edu/pub/Linux/sys tem/printing/aps-491.tgz.
Necesita compilator de C, emulatorul postscript gs si pachetul pbmutils. Instalat ca
filtru if, obtineti o imprimanta pentru text, PostScript, dvi, gif si altele.
Pachetul Magic-filter al lui B.A. McCawley lucreaza asemanator cu filtrul APS, dar
fiind scris in bash poate fi mai usor intretinut. Este descris ca un set de script-uri
menite sa simplifice problema configurarii lpd pentru a autodetecta ti
puri de fisiere folosind /etc/magic. Acest filtru foloseste la randul lui filtre existente. Se
gaseste la
ftp://tsx-11.mit.edu/pub/linux/sourc es/usr.bin/magic-filter-0.4.tar.gz
Tot filtru magic se numeste si pache-tul lui Peter Anvin de la
ftp://sunsite.unc.edu//pub/Linux/sys tem/Printing/magicfilter-1.1b.tar.gz
Filtrul este scris in C, este complet controlabil printr-un fisier de configuratie extern.
Poate detecta aproape orice tip de fisier pentru care exista un program de conversie.
Mai mult, poate crea fisiere de configurare pe baza programelor deja in-stalate in
sistem.
Tiparirea in retea
Unul din lucrurile simple si utile pe care le putem face este sa tiparim la o alta masina
UNIX conectata in retea. Exista doua posibilitati. Prima este sa definim in
/etc/printcap local o imprimanta afla-ta in retea:
# DekJet 500 aflata pe un calculator in retea
lp|dj|deskjet:\
sd=/var/spool/lpd/dj:\ rm=calculator.din.retea:\
:rp=imprimanta:\ lp=/dev/null:\ sh:
Se observa aparitia campului rm, care specifica numele calculatorului la care este
legata imprimanta, si a campului rp, numele imprimantei asa cum este scris el pe
acel calculator. Fisierul special asociat cu o imprimanta din retea este /dev/null. De
asemenea, administratia nodului calculator din retea trebuie sa ne permita sa
accesam imprimanta, scriind numele cal culatorului nostru in /etc/hosts.allow sau
in /etc/hosts.deny. Job-urile care sunt ti-parite la distanta pot zabovi fie in coada
locala cand reteaua nu functioneaza sau celalalt nod este oprit, fie in coada locala a
imprimantei.
A doua solutie, buna mai ales daca este folosita ocazional, este accesul direct la
demonul lpd de la distanta cu rlpr. Rlpr se poate gasi la
ftp://sunsite.unc.edu/pub/Linux/sys tem/Printing/

Carte LINUX 37
El functioneaza intr-un mod compatibil cu lpr, dar este capabil sa ia legatura prin
TCP/IP cu demoni lpd aflati la distanta. Astfel avem posibilitatea sa tiparim „de
oriunde oriunde" fara bataie de cap cu configurarea in /etc/printcap. Daca doriti, il
puteti include in cadrul filtrelor existente.
Prin intermediul unui serviciu de tiparire SMB, bazat pe TCP/IP, se poate ti-pari prin
retea pe imprimante conectate la calculatoare care ruleaza Windows 95, Windows
NT sau Lan Manager. Este ne-cesar un filtru de intrare numit smbprint care este
inclus in pachetul samba, cel care da posibilitatea Linux-ului sa comunice conform
standardului SMB. Daca puneti filtrul in /usr/local/sbin, intrarea in /etc/printcap poate
arata astfel:
lp|imprimanta-smb:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lp:\
:if=/usr/local/sbin/smbprint:

De tiparit, putem tipari din Ghostview


Configurarea script-ului smbprint tine mai mult de detaliile de functionare Samba
decat de imprimare.
La o imprimanta NetWare puteti avea acces cu utilitarul nprint din pachetul ncpfs.
Ncpfs este interesant pentru ca pu-teti monta volume Netware sub Linux, puteti tipari
de pe Linux pe NetWare si invers. Ncpfs poate fi gasit la
ftp://linux01.gwdg.de/pub/ncpfs/. Nprint are o functionalitate similara cu smbprint si
putem scrie o imprimanta in /etc/printcap:
sub2|imprimanta-NetWare:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/sub2:\
:if=/var/spool/lpd/nprint-script:
Script-ul nprint-script poate arata cam asa:
#! /bin/sh
/usr/local/bin/nprint -S net -U name -P passwd -q printq- q -

Un meniu mai complet de tiparire ne ofera Netscape


Exista imprimante care au interfata Ethernet si se conecteaza direct la reteaua
dumneavoastra locala. Aceste imprimante pot avea diverse functionalitati, dar, in
general, ele executa un demon lpd cu una sau mai multe cozi de spool. O intrare in
printcap descriind o astfel de imprimanta poate arata astfel:
lj-5|hplj-retea:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:rm=imprimanta.din.retea:rp=raw:
O problema cu imprimantele in retea este ca lpd nu executa filtrul de intrare pentru
acestea. Ca sa atasam un astfel de filtru, trebuie sa recurgem la un truc: se
cascadeaza doua imprimante, una locala, al carei filtru prelucreaza si tipareste la cea
din retea. Intrarile in /etc/printcap pot fi:
lj-5:hplj:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:if=/usr/lib/lpd/filtru-lj-5:
lj-5-retea:lp=/dev/null:sh:rm=impri manta.din.retea:\
:rp=raw:sd=/var/spool/lpd/lj-5-raw:

Carte LINUX 38
Filtrul filtru-lj-5 va trebui sa tipareasca pe lj-5-retea

Ghostscript
Ghostscript este unul din cele mai im-portante utilitare legate de tiparirea sub Linux.
Optiunile PostScript sunt scumpe si se ataseaza la imprimante scumpe. Ghostscript
e liber si poate genera iesire pentru imprimanta dvs. dintr-un fisier PostScript. Poate
fi utilizat in filtre si deci va da accesul la o imprimanta virtuala PostScript, ceea ce
poate fi o imensa simplificare in multe situatii.
Ghostscript vine intr-o versiune comerciala numita Alladin Ghostscript, libera pentru
uzul personal, si Ghostscript GNU, care este o versiune mai ve-che cedata prin
bunavointa lui Alladin. Problema nu este atat ca versiunea GNU este de obicei mai
veche cu un an, ci ca fonturile sunt licentiate. Fonturi de calitate pe care Ghostscript
le poate citi sunt fonturile Adobe tip 1, livrate cu Adobe Acrobat sau cu alte produse,
chiar Windows. Daca le aveti din oricare din aceste surse, le puteti folosi linistiti si pe
Linux.
Vizualizarea rezultatului inainte de tiparire
Aproape orice se poate tipari se poate si vedea pe ecran. Ghostscript are un driver
pentru X11 si o interfata numita numita Ghostview cu care putem afisa sub X-
Window fisiere PostScript. Sistemele TeX produc fisiere .dvi care pot fi vizualizate cu
xdvi

Carte LINUX 39