Carte Linux

57
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 Carte LINUX 1

Transcript of Carte Linux

Page 1: Carte Linux

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

Page 2: Carte Linux

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

Page 3: Carte Linux

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

Page 4: Carte Linux

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

Page 5: Carte Linux

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

Page 6: Carte Linux

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

Page 7: Carte Linux

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

Page 8: Carte Linux

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

Page 9: Carte Linux

InstalareaPuteti 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

Page 10: Carte Linux

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

Page 11: Carte Linux

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

Page 12: Carte Linux

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

Page 13: Carte Linux

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

Page 14: Carte Linux

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 cerereConfigurarea 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

Page 15: Carte Linux

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

Page 16: Carte Linux

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 iso9660Copiati 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

Page 17: Carte Linux

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

Page 18: Carte Linux

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

Page 19: Carte Linux

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 dedifuzare 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 Configurationlinux:$ 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

Page 20: Carte Linux

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:0x300linux:$ 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 msConfiguratia 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

Page 21: Carte Linux

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

Page 22: Carte Linux

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

Page 23: Carte Linux

[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

Page 24: Carte Linux

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

Page 25: Carte Linux

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

Page 26: Carte Linux

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$ jobserior 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

Page 27: Carte Linux

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$ fgYes>/dev/null

Carte LINUX 27

Page 28: Carte Linux

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.Dictionaralias _ 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

Page 29: Carte Linux

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

Page 30: Carte Linux

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

Page 31: Carte Linux

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

Page 32: Carte Linux

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 indeaproapeConfigurari 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 bazaTseng 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

Page 33: Carte Linux

OAK OTI067, OTI077, OTI087 S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964, 86C732, 86C764, 86C765, 86C868, 86C968, 86C325, 86C988MGA2064W 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

Page 34: Carte Linux

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

Page 35: Carte Linux

TiparireaDupa 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

Page 36: Carte Linux

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

Page 37: Carte Linux

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 rezonabileFiltre 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

Page 38: Carte Linux

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 GhostviewConfigurarea 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 NetscapeExista 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

Page 39: Carte Linux

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