Documente Academic
Documente Profesional
Documente Cultură
Despre Linux
Despre 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
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-howul 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
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, rulnd 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.
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
Carte LINUX
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.
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
Carte LINUX
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.
http://sal.kachinatech.com contine raspunsul detaliat la intrebarea: care sunt
aplicatiile pentru Linux?
Carte 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
unul sau mai multi utilizatori. Motif insusi este scump si putini utilizatori de Linux isi
Carte LINUX
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
Instalarea
Puteti avea un sistem Linux operational in circa 20 minute. Insta-larea poate fi facuta
folosind unitatea CD-ROM care se afla co-nectata la un calculator dintr-o retea
Windows.
Ce veste mai buna va puteti dori in acest moment? Poate faptul
ca intrebarile puse de procedura de instalare sunt foarte simple, iar distributia
RedHat de pe CD-ul pe care il aveti la indemina se poate instala folosind aproape
orice metoda de acces la date in retea pe care v-ati putea-o dori.
O scurta privire
Inainte de a incepe instalarea unui nou sistem de operare este bine sa vedem ce
presupune aceasta operatiune, pentru a ne putea pregati corespunzator. Trebuie
discutate trei aspecte:
1. Sursa distributiei, sau suportul pe care este disponibil noul sistem de operare.
Cazul dumneavoastra: dispuneti de un CD pe care se afla tot ceea ce este necesar.
Mai rar, distributia se poate afla pe un harddisk. Instalari interesante si comode se
pot face prin retea, de la un server care exporta un sistem de fisiere in retea de tip
NFS, sau chiar prin FTP. Aceste doua modalitati de instalare pot fi luate in considerare 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 reinstalare, 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
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
Carte LINUX
11
Cursorul poate fi manevrat prin intermediul tastelor cursor. Intre campuri se poate
comuta cu [Tab] sau [Alt]+[Tab].
Selectarea unui element dintr-o lista se face prin intermediul tastei [Space] (spatiu).
Apasarea tastei [F12] produce acceptarea valorilor introduse in dialogul curent si
trecerea la urmatorul camp de dialog.
Instalarea pas cu pas
Pentru a incepe instalarea se introduce in unitate discheta etichetata Linux BOOT"
creata anterior si se reseteaza calculatorul. Daca sistemul de operare pe care
ruleaza calculatorul este DOS, putem incarca procedura de instalare de pe CD prin
intermediul comenzii autoboot.bat asa cum a fost descris anterior. Dupa exe-cutia
acestui, sistemul va afisa urmatorul prompt:
boot:
la care va trebui sa apasam [Enter]. La acest prompt, utilizatorul avizat poate introduce 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
Carte LINUX
13
Carte LINUX
14
Carte LINUX
15
Carte LINUX
16
Reteaua TCP/IP
In continuare ne vom ocupa de conectarea calculatorului la retea. Modul de
conectare si functiile pe care le poate indeplini calculatorul pot determina configuratii
complexe, a caror explicare ar trebui sa recurga la concepte care nu isi au locul aici.
Pe de alta parte, situatiile cele mai frecvente sunt simple si reduse la numar. Putem
de fapt avea in vedere doar doua astfel de situatii: conec-tarea Linux-ului la o retea
locala de tip Ethernet si conectarea la un furnizor de servicii Internet printr-o legatura
de tip PPP.
Reteta functioneaza aproape intotdeauna, 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 administratia retelei.
adresa IP: o adresa unica a calculatorului in retea; este formata din patru numere
intre 1 si 254 separate prin .". Un exemplu ar fi 192.168.1.3. O adresa IP particulara,
anume 127.0.0.1 este rezervata pentru a desemna calculatorul propriu si este
singura adresa necesara cand nu avem nici placa Ethernet nici legatura PPP.
masca de retea: este alcatuita tot din patru valori numerice separate prin puncte,
asemanator adresei IP. In cazul de fata, un exemplu tipic ar putea fi 255.255.255.0.
Masca de retea arata ca-re parte din adresa IP este adresa retelei la care suntem
conectati direct si care parte desemneaza calculatoarele din retea. Masca de retea
arata ca primele trei cifre ale adresei IP constituie adresa de retea. Se mai spune ca
suntem conectati direct la reteaua 192.168.1.0. Toate calculatoarele conectate la
aceasta retea vor avea adresa IP cu primele trei cifre cele din adresa de retea.
Ultima cifra, corespunzand lui 0 din masca de retea, va di-feri de la calculator la
calculator.
adresa de retea: se obtine prin operatia AND (sI) logic intre bitii adresei IP si bitii
mastii de retea. In exemplul inceput mai sus, primele trei numere 255 din masca de
Carte LINUX
17
retea lasa pe loc numerele de pe pozitii-le corespunzatoare din adresa IP, iar ultimul
0 determina 0 de pe ultima pozitie. Deci, adresa de retea va fi 192.168.1.0.
adresa de difuzare: difuzarea (broadcast) este folosita (mai rar) pentru transmiterea
de date simultan tuturor calculatoarelor conectate la aceeasi retea. Calculatoarele
recunosc prin conventie o adresa de difuzare care este in aceeasi retea si are
numarul care corespunde cal-culatorului format numai din biti 1. In cazul nostru:
192.168.1.255.
Configurarea retelei incepe cu configurarea interfetelor.
adresa de poarta: poarta (gateway) este un calculator din reteaua proprie prin
intermediul caruia se poate comunica cu exteriorul, cu alte retele. In principiu, pot
exista mai multe porti, fiecare catre retele diferite. In practica, de cele mai multe ori,
este numai una. Se obisnuieste sa se dea portii un numar de masina, numar care
poate fi 1 sau 254 (adica o adresa IP avand valoarea 192.168.1.1 sau
192.168.1.254).
adresa serverului de nume: servi-ciul de nume (DNS _ Domain Name Server) este
cel care permite utilizarea numelor in locul adreselor IP. Serverul de nume este un
calculator care are o baza de date cu nume si atributele acestora, in principal
adresele IP asociate. In acest stadiu, serviciul de nume poate fi omis.
Script-uri de pornire a retelei
Script-urile de initializare a retelei sunt executate la initializarea sistemului. Ele contin
comenzile de baza care configureaza interfata de retea si adresarea. Implicit se afla
in /etc/rc.d si se numesc rc.inet1 si rc.inet2.
rc.inet1 configureaza parametrii de baza ai retelei, iar rc.inet2 porneste principalele
servicii de retea, executate de programe care ruleaza in background, numite demoni.
Pentru configurarea parametrilor de baza ai retelei rc.inet1 foloseste doua programe:
ifconfig si route. Ifconfig configureaza si initializeaza o interfata de retea. Route este
necesara pentru gestiunea tabelei de rutare, necesara dirijarii datelor printr-o
interfata sau alta.
In majoritatea situatiilor, un fisier rc.inet1, precum cel din oglinda alaturata, (fireste,
cu parametrii modificati) va functiona corect.
Acest script este bun pentru majoritatea cazurilor, dar nu pentru toate. Daca de
exemplu calculatorul dumneavoastra e conectat la doua retele locale prin interfete
Ethernet,lucrurile pot fi sensibil mai complicate.
Script-ul rc.inet2 porneste programele care realizeaza serviciile de baza TCP/IP. Cel
mai important dintre programe este inetd sau superserverul. Acesta intercepteaza
toate cererile adresate prin retea calculatorului pe care ruleaza. Le examineaza si
apoi comanda executia programului care presteaza serviciul solicitat. Este un mod
simplu si standardizat de a dispeceriza cererile adresate calculatorului
dumneavoastra.
Un alt program server foarte important este syslogd _ programul de jurnalizare.
Configuratia acestui server este memorata in /etc/syslog.conf. Acolo sunt listate
categoriile de mesaje si fisierele jurnal in care sunt trimise fiecare. In practica sunt
utilizate unul sau doua jurnale ca /var/log/messages sau /var/log/syslog.
Trebuie sa va ingrijiti periodic si sa goliti aceste jurnale care, chiar la o activitate
minima cum este cea a unui calculator casnic, in timp pot creste oricat de mult. Nu
luati masuri radicale si nu opriti jurnalizarea! Va privati de o sursa importanta de
informatii in cazul unor anomalii de functionare.
Un alt demon important este routed, un program care intretine tabela de rutare a
sistemului fara interventia utilizatorilor.
Carte LINUX
18
Carte LINUX
19
Carte LINUX
20
Din punct de vedere software, nucleul are nevoie de suport special pentru protocolul
PPP, care este optiune de compilare. Daca ati instalat distributia Red Hat de pe CDROM-ul atasat acestui CHIP Special, nucleul implicit va avea acest suport. Daca nu,
revedeti sectiunea cu compilarea nucleului si introduceti suportul amintit.
Carte LINUX
21
Interpretorul de comenzi
Accesul primar la calculator se face printr-un program cu aparenta austera care
citeste comenzi de la tastatura, le interpreteaza si le executa. Dincolo de aceasta
aparenta simpla se ascund posibilitati sofisticate de combinare a programelor, fisiere
de comenzi, moni-torizarea si controlul executiei.
Shell-ul este interfata primara a utilizatorului cu sistemul de operare. Un shell UNIX
este n primul rand un interpretor de comenzi, permitand executia bogatului set de
utilitare UNIX. n al doilea rand, shell-ul este un limbaj de programare care da
posibilitatea combinarii acestor comenzi n activitati complexe. El ofera utilizatorului
un control complet asupra programelor: executia lor poate fi sincrona sau asincrona,
intrarile si iesirile pot fi redirectate, mediul de executie poate fi ajustat dupa dorinta.
Pe langa utilitare (comenzi externe) sau programe utilizator (de aplicatie), un shell
are si un numar de comenzi interne (builtins) care implementeaza functionalitati
imposibil sau dificil de obtinut altfel.
Shell-ul poate fi utilizat interactiv, cand comenzile sunt citite de la tastatura si
rezultatele sunt afisate pe ecran. n mod interactiv, utilizatorul beneficiaza de facilitati
de editare a liniei de comanda, controlul executiei programelor sau folosirea istoriei
comenzilor anterior.
n mod neinteractiv shell-ul citeste comenzi dintr-un fisier. Astfel, utilizatorul poate
folosi facilitatile de programare ale shell-ului: variabile, structuri de control (if, while,
for), subprograme.
Unul din shell-urile traditionale Unix este Bash (acronim pentru Bourne- Again Shell,
scris de Stephen Bourne. Toate comenzile interne ale shell-ului sunt disponibile si n
bash. Facilitatile de macroprelucrare sunt conforme cu POSIX 1003.2.
Executia comenzilor
Intrarea si iesirea standard
Cele mai multe comenzi UNIX si executa prelucrarile citind date din ceea ce se
numeste intrarea standard (pe scurt stdin) si scriind rezultatul n ceea ce se numeste
iesirea standard (pe scurt stdout). Shell-ul aranjeaza lucrurile n asa fel ncat intrarea
standard sa fie tastatura si iesirea standard sa fie ecranul. Sa luam un exemplu
folosind cat. Aceasta citeste rand pe rand fisierele primite ca argumente si scrie
continutul lor n iesirea standard. Asadar, comanda CHIP:/home/nelu$ cat cuprins
cap01 cap02
afiseaza pe ecran continutul fisierelor cuprins, cap01 si cap02. Daca executam
comanda fara parametri, cat va presupune implicit ca trebuie sa citeasca din intrarea
standard, asa ca va astepta sa in-troducem o linie de la tastatura, dupa care o va
afisa pe ecran, si tot asa pana vom tasta Ctrl+D, ceea ce semnifica sfarsit de fisier n
cazul tastaturii:
CHIP:/home/nelu$ cat
Prima linie introdusa
Prima linie introdusa
A doua linie introdusa
A doua linie introdusa
CHIP:/home/nelu$
Sa consideram un alt exemplu, n care folosim comanda sort pentru a ordona liniile
introduse de la tastatura:
CHIP:/home/nelu$ sort
lamai
portocale
banane
Carte LINUX
22
[Ctrl+D]
banane
lamai
portocale
CHIP:/home/nelu$
Am reprezentat ntre paranteze drepte tastarea lui Ctrl+D, sfarsitul de fisier. Desigur,
poate fi mai util sa memoram lista ordonata a fructelor ntr-un fisier. Acest lucru se
poate obtine prin redirectare, un procedeu prin care iesirea standard este trimisa ntrun fisier:
CHIP:/home/nelu$ sort > lista_sortata
lamai
portocale
banane
[Ctrl+D]
CHIP:/home/nelu$
Dupa cum se observa, lista nu mai este afisata pe ecran, ci este salvata n fisierul
lista_sortata si, de exemplu, poate fi afisa-ta cu comanda cat:
CHIP:/home/nelu$ cat lista_sortata
banane
lamai
portocale
CHIP:/home/nelu$
Mai exista cel putin un mod de a obtine acelasi lucru: vom memora lista fructelor n
fisierul fructe cu ajutorul comenzii cat, apoi vom sorta acest fisier cu comanda sort.
CHIP:/home/nelu$ cat > fructe
lamai
banane
portocale
CHIP:/home/nelu$ sort < fructe > lista_sortata
Bash este certificat de standardele GNU. Mai mult decat regulile formale sunt
exigentele programatorilor participanti la proiect.
Redirectarea intrarii se face cu caracterul <". Practic vorbind sort < fructe este
echivalent cu sort fructe, dar exemplul este ilustrativ. n ceea ce priveste programul
sort, n cazul redirectarii, el se comporta ca si cand ar citi de la tastatura. Shell-ul se
ocupa de redirectare, iar sort nu are habar de fisierul fructe. n cazul sort fructe,
programul sort trebuie sa des-chida explicit fisierul fructe.
Astfel ajungem la un concept foarte familiar utilizatorilor de UNIX, si anume acela de
filtru. Un filtru este un program care citeste din intrarea standard, prelucreaza datele
ntr-un anumit mod, si trimite datele prelucrate n iesirea standard. Utilizand
redirectarea, intrarea si/sau iesirea standard pot fi luate din/scrise n fisiere. Sort este
un filtru simplu, el sorteaza, apoi scrie n iesirea standard liniile citite din intrare. Cat
este un filtru si mai simplu: el doar copiaza intrarea n iesire.
Prelucrari n conducta
n exemplele de mai sus, cand am demonstrat utilizarea comenzilor cat si sort ca
filtre, am presupus ca datele de intrare sunt fie introduse de la tastatura, fie se afla
ntr-un fisier. Un caz mai inte-resant este acela n care datele de intrare ale unui
program sunt rezultatul prelucrarii altui program.
Carte LINUX
23
De exemplu, daca dorim sa obtinem lista fisierelor din directorul curent sortata n
ordine inversa putem sa redirectam iesirea standard a comenzii ls ntr-un fisier si
apoi sa sortam acest fisier cu pro-gramul sort, optiunea -r:
CHIP:/home/nelu/lucrare$ ls
bibliografie
cuprins
documente
text
CHIP:/home/nelu/lucrare$ ls > lista_fisiere
CHIP:/home/nelu/lucrare$ sort -r lista_fisiere
text
documente
cuprins
bibliografie
CHIP:/home/nelu/lucrare$
Metoda de mai sus necesita folosirea explicita a unui fisier intermediar temporar
precum si executia succesiva a unor comenzi. O solutie mai buna este oferita de
shell si se numeste prelucrare n conducta, n limba engleza pipelining. Prelucrarea
n conducta permite sa se conecteze un sir de comenzi n care si o intrare este
simbolizata de caracterul |". n exemplul urmator lista sortata este obtinuta prin
conectarea n conducta a comenzii ls si a programului sort:
CHIP:/home/nelu/lucrare$ ls | sort -r
Prelucrarea n conducta de mai sus este mai usor de tastat si,de multe ori,mai
eficient de executat. Un alt exemplu util de conducta este examinarea continutului
unui director mare:
CHIP:/home/nelu/lucrare$ ls /usr/bin | less
n acest exemplu, lista fisierelor din directorul /usr/bin este transmisa programului de
vizualizare less. n acest fel, lista poate fi examinata pe ndelete si eventual putem
cauta anumite fisiere n ea. Pentru a demonstra conectarea n con-ducta a mai mult
de doua comenzi, vom dori sa exemplificam prin afisarea ultimelor trei fisiere din
directorul /usr/bin. Acest lucru presupune listarea directorului, sortarea n ordine
descrescatoare si afisarea primelor trei linii din rezultat:
CHIP:/home/nelu/lucrare$ ls /usr/bin | sort -r | head -3
znew
zmore
zless
Ultima prelucrare este executata de comanda head -3, care pur si simplu afi-seaza
primele 3 linii citite din intrarea standard dupa care se opreste.
Mai ramane de rezolvat un amanunt. Redirectarea iesirii standard ntr-un fisier
folosind >" este distructiva, n sensul ca vechiul continut al fisierului (daca exista) se
pierde. Sunt situatii n care este de dorit sa adaugam la fisierul de iesire n loc sa-l
rescriem. n aceste cazuri vom fo-losi semnul de redirectare >>". De exemplu:
CHIP:/home/nelu$ ls doc > fisiere
CHIP:/home/nelu$ ls txt >> fisiere
Prima comanda va crea fisierul fisiere n care va scrie continutul directorului doc.
Comanda a doua va adauga la aceasta lista lista de fisiere din directorul txt.
Procese si job-uri
De fiecare data cand executam un program se spune ca pornim un proces. Un
program n executie merita numele special de proces fie si pentru ca putem lansa n
executie acelasi program n acelasi timp de mai multe ori. Procesul ne permite sa
Carte LINUX
24
distingem ntre diferitele executii ale aceluiasi program sau ntre executiile
programelor diferite. Exista o comanda numita ps care ne permite sa afisam
procesele din sistem. De exemplu:
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
2622 p3 R 0:00 ps
n aceasta forma, comanda, probabil executata de nelu, afiseaza numai procesele a
caror executie a fost comandata de nelu (sau n numele lui!). n cazul de fata nu sunt
multe: shell-ul bash si comanda ps. Lista cu date despre procese contine printre
altele, n prima coloana, cea cu numele PID, un numar care identifica procesul:
identificatorul de proces (Process IDentifier). Pentru o lista completa a proceselor pe
care le executa sistemul putem tasta ps -aux".
Homepage-ul lui Brian J.Fox, autorul bash-ului.
Din punct de vedere al shell-ului, un proces este un job. n cazul simplu, dar foarte
frecvent, termenii de job si de proces sunt interschimbabili. Job este termenul folosit
n special n legatura cu posibilitatile oferite de shell pentru controlul executiei
acestora. Uzual, utilizatorul executa un singur job, ultima comanda introdusa de la
tastatura. Exista nsa multe situatii n care este util sa putem comuta ntre mai multe
joburi care se executa simultan. Unele prelucrari dureaza mult si nu fac nimic
interesant ntre timp. Ar fi placut sa putem juca un joc pana se termina. n alte situatii
suntem nevoiti sa ntrerupem temporar o editare, sa executam cateva comenzi n
shell dupa care sa reluam editarea.
Foreground si background
Job-urile pot rula n foreground sau n background. Un singur job poate rula n
foreground. Acesta este job-ul care poate interactiona direct cu tastatura prin
intermediul intrarii si iesirii standard. n background pot rula mai multe joburi si, de
obicei, acestea nu au nevoie de interactiunea cu utilizatorul.
Exista posibilitatea sa suspendam un job. Dupa suspendare, un job poate fi re-luat n
foreground sau n background, dupa dorinta. Spre deosebire de suspendare,
ntreruperea unui job (un proces n foreground este ntrerupt cu Ctrl+C) produce
efecte iremediabile: procesul este distrus si nu mai poate fi reluat. Mai trebuie
mentionat faptul ca apasarea lui Ctrl+C nu termina imediat toate procesele: unele
mai executa o scurta perioada de timp operatii necesare terminarii corecte. Altele pur
si simplu nu pot fi terminate cu Ctrl+C.
Sa luam exemplul unui program simplu, yes. Executia lui produce un sir de y" n
iesirea standard pana cand este oprit:
CHIP:/home/nelu$ yes
y
y
y
y
y
Puteti distruge procesul cu Ctrl+C. Putem scapa de plictisitorul sir de y redirectand
iesirea standard a programului catre /dev/null.
CHIP:/home/nelu$ yes > /dev/null
Fisierul special /dev/null se comporta ca o gaura neagra, capabila sa absoarba orice.
n plus, am dori ca, n timp ce yes ruleaza, sa mai facem si alte lucruri. n acest scop
putem sa executam procesul n background. Un mod de a rula un proces n
Carte LINUX
25
Carte LINUX
26
3015 p3 R 0:00 ps
CHIP:/home/nelu$
Afisarea proceselor arata ca nici yes, nici wc nu mai sunt active. Terminarea jobului
produce distrugerea tuturor pro ceselor din conducta. Pe de alta parte, terminarea
unuia din procesele conductei poate avea diverse efecte.
ncercati mai ntai distrugerea procesului wc:
CHIP:/home/nelu$ yes | wc &
1] 3049
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
3048 p3 R 0:06 yes
3049 p3 S 0:01 wc
3050 p3 R 0:00 ps
CHIP:/home/nelu$ kill 3049
CHIP:/home/nelu$
[1]+ Terminated yes | wc
CHIP:/home/nelu$
Asadar, daca distrugem ultimul proces din conducta se termina tot job-ul.
Sa ncercam sa distrugem yes:
CHIP:/home/nelu$ yes | wc &
[1] 3059
CHIP:/home/nelu$ ps
PID TTY STAT TIME COMMAND
2611 p3 S 0:00 -bash
3058 p3 R 0:01 yes
3059 p3 S 0:00 wc
3060 p3 R 0:00 ps
CHIP:/home/nelu$ kill 3058
CHIP:/home/nelu$ 8544256 8544256 17088512
[1]+ Done yes | wc
CHIP:/home/nelu$
Nu trebuie neaparat sa ne surprinda ca, n sfarsit, am obtinut un rezultat: pana la
terminare, yes a scris un numar de 8544256 caractere y".
O alta metoda de a pune un job n back-ground este sa-l pornim n foreground, sa-l
suspendam si apoi sa l reluam n background. ntai sa pornim job-ul n foreground:
CHIP:/home/nelu$ yes > /dev/null
Suspendarea job-ului se face cu o combinatie speciala de taste, asemanator
terminarii: Ctrl+Z.
[1]+ Stopped yes >/dev/null
CHIP:/home/nelu$
Dupa suspendare, starea job-ului este afisata n acelasi mod n care ar afisa-o
comanda jobs. Job-ul suspendat nu are nici o activitate si deci nu consuma resurse
sistem. Dupa suspendare se observa ca obtinem promptul shell-ului. Putem relua
executia executia job-ului in doua feluri: in foreground cu comanda fg, sau in
background cu comanda bg:
CHIP:/home/nelu$ fg
Yes>/dev/null
Carte LINUX
27
Comanda fg reia in foreground ultimul job suspendat. Comanda prin care a pornit
job-ul este afisata si nu mai avem prompt shell. Reluarea in background are efect
diferit:
CHIP:/home/nelu$ bg
[1]+ yes >/dev/null &
CHIP:/home/nelu$
Comanda afisata este terminata cu &", semn ca este executata n background. n
plus, vom obtine si promptul shell.
Cum suspendam un job din background? Trebuie mai ntai sa-l aducem n
foreground cu comanda fg si apoi sa l suspendam cu Ctrl+Z.
n continuare,vom mai nota ca job-ul yes, chiar lansat n background:
CHIP:/home/nelu$ yes &
va produce ncontinuu sirul nesfarsit de y" si, n lipsa redirectarii, l va afisa pe ecran.
O ultima nota: comenzile fg si bg actioneaza implicit asupra ultimului job suspendat.
Comanda jobs afiseaza acest job cu semnul +. Daca avem mai multe joburi
suspendate, putem sa-l reluam pe cel pe care l dorim scriindu-i numarul prefixat cu
% n argumentul comenzilor fg sau bg. De exemplu:
CHIP:/home/nelu$ fg %2
reia executia jobului 2 n foreground. Iar:
CHIP:/home/nelu$ bg %7
reia n background executia jobului cu numarul 7. Mai mult, putem utiliza numarul de
job ca n
CHIP:/home/nelu$ %3
n locul comenzii echivalente
CHIP:/home/nelu$ fg %3.
Dictionar
alias _ un sinonim pentru o comanda; utilizatorii definesc alias-uri pentru
prescurtarea unor comenzi complexe sau pentru a da nume familiare unor comenzi
frec-vent utilizate;
blanc _ caracterul spatiu sau caracterul tab;
builtins _ comenzi interne ale unui shell;
cod de retur _ exit status, indicator de iesire. O valoare returnata de o comanda celui
care o apeleaza, de exemplu shell-ului;
comanda interna speciala _ comanda interna clasificata ca special builtin de POSIX
1003.2;
controlul joburilor _ mecanism prin care utilizatorul poate controla selectiv executia
proceselor: le poate suspenda sau le poate relua individual;
cuvant _ unitate lexicala care nu este operator.
cuvant rezervat _ un cuvant cu nteles special pentru shell; de exemplu cuvintele
rezervate if, for si while desemneaza structuri de control de program ale shell-ului;
filtru _ program care citeste date din intrarea standard si scrie datele prelucrate n
iesirea standard; multe comenzi UNIX sunt filtre;
grup de procese _ o colectie de procese asociate care au un unic identificator numit
identificator (ID) de grup de procese;
intrare standard _ locul de unde un program citeste comenzi si date; n mod obisnuit
este tastatura;
iesire standard _ locul unde un program afiseaza mesaje sau rezultate ale
prelucrarilor; n mod obisnuit este ecranul monitorului;
job _ fie un singur proces fi o conducta de procese precum si celelalte procese
derivate din conducta;
Carte LINUX
28
nume sau identificator _ un cuvant care consta numai din litere, cifre si caracterul
underscore (_") si ncepe cu o litera sau cu underscore; numele identifica variabile
sau functii shell;
operator _ operator de control sau operator de redirectare;
pipe _ conducta; procedeu prin care iesirea standard a unui program este conectata
direct n intrarea standard a altui program; ansamblu de procese interconectate n
cascada prin acest procedeu;
POSIX _ o familie de standarde pentru sisteme deschise bazate pe UNIX; bash are a
face cu POSIX 1003.2, standardele pentru shell si utilitare;
proces _ un program n executie; spre deosebire de programul n forma de fisier
executabil, procesul are o stare a executiei; starea procesului este informatia care
face posibila suspendarea executiei si reluarea acesteia;
redirectare _ procedeu prin care intrarii (iesirii) standard a unui program i se atribuie
o alta sursa (destinatie) decat cea implicita;
script _ fisier de comenzi; datorita fa-cilitatilor de programare deosebite, utilizatorul
poate crea script-uri care sa implementeze comenzi foarte puternice sau activitati
complexe;
semnal _ mecanism prin care nucleul sistemului de operare notifica un proces
despre evenimentele din sistem; procesele pot asocia semnalelor proceduri
detratare;
sesiune _ perioada de executie a unui program; tipic, acest program este shell-ul de
login, adica shell-ul care se lanseaza automat cand accesul unui utilizator este
validat de sistem; atunci o sesiune de lucru este asociata cu perioada n care
utilizatorul are acces la sistem;
token _ unitate lexicala; secventa de caractere tratata ca un tot de catre shell;
unitatile lexicale sunt cuvinte sau operatori;
Carte LINUX
29
X-Window
Instalarea unui sistem Linux nu inseamna neaparat revenirea la interfata
saracacioasa de tip DOS. Dimpotriva: interfata grafica pe sitemele UNIX, pe numele
ei X-Window, are calitati superioare altor interfete grafice.
Sistemul X-Window este un mediu grafic mare si puternic (unii
spun ca este prea mare si excesiv de complex) pentru sisteme UNIX. Codul original
a fost dezvoltat la MIT si s-a raspandit atat in lumea comerciala cat si pe platforme
libere. Versiunea 11 a sistemului MIT, cunoscuta generic ca X11 are o varianta libera
pentru platforme Intel care a ajuns la editia (release) 6: X11R6 sau XFree86. Este
completa si este accesibila liber. Pentru informatii suplimentare se poate consulta
http://www.XFree86.org.
Hardware
Zona video este poate cea mai delicata din tot calculatorul. Este implicat cel mai mult
hardware si cu varietatea cea mai mare. Daca achizitionati un calculator nou sau il
imbunatatiti pe cel vechi, consultati documentatii de compatibilitate: intotdeauna veti
avea pe o discheta driverul pentru MS Windows, dar cu Linux va trebui sa va
descurcati singuri. Avantajul pietei romanesti este ca nu te pierzi usor in varietate si,
daca e sa cumperi, vei ni-meri cu usurinta ceva de larga respiratie" care are suport
si in cel mai obscur program.
Data fiind integrarea la care s-a ajuns azi, in majoritatea interfetelor, si deci si in cea
video, informatia vitala este cipul cu care a fost facuta. Va trebui sa va bazati pe
aceste informatii si, eventual, pe juramintele de compatibilitate ale vanzatorului. In
mod normal, daca aveti dubii, va trebui sa il avertizati ca vreti sa rulati X pe Linux.
Daca nu da din umeri a dezolare, ci se ofera sa va ajute, chemati mass-media: va
aflati in fata unei fericite exceptii. Nu ca ar sti de Linux, dar se com- porta normal. Pe
placile video nu se precizeaza ca sunt facute numai pentru MS Windows.
Puteti testa o placa pe Linux cu programul SuperProbe. Pe calculatorul meu
programul afiseaza:
SuperProbe Version 2.14 (20 May 1997)
<...>
First video: Super-VGA
Chipset: S3 Trio64V+ (Port Probed)
Memory: 2048 Kbytes
RAMDAC: Generic 8-bit pseudo-color DAC
(with 6-bit wide lookup tables (or in 6-bit mode))
Cipurile S3 si, mai nou, S3 Virge se ga-sesc peste tot si cu 2 MB de memorie, restul
depinde de calitatea monitorului.
In cazul in care calculatorul dumneavoastra nu este o achizitie recenta, veti fi
interesat de cipurile Super VGA suportate. Daca nu mai aveti pliantul care in-soteste
placa, poate veti deslusi inscriptia de pe integratele interfetei.
Aceste placi video sunt suportate pe orice tip de magistrala, incluzand VLB si PCI.
Toate merg in mod monocrom si cu 256 de culori. Daca aveti destula memorie pe
placa video, veti putea avea acces la moduri cu 16 sau 32 de biti pe pixel. Configuratia 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
Carte LINUX
31
Carte LINUX
32
Carte LINUX
33
Carte LINUX
34
Tiparirea
Dupa ce obtinem rezultatele dorite intr-un fisier, un alt aspect im-portant al lucrului cu
calculatorul este tiparirea la imprimanta a acestui fisier. De la simple liste sau tabele
cu cifre la articole si pli-ante cu grafica sofisticata a caror pregatire este o activitate in
sine, toate pana la urma trebuie sa ajunga pe hartia din imprimanta.
Intr-un sistem desktop cum este
DOS sau Windows lucrurile sunt
simplificate datorita faptului ca exista un singur utilizator care stie exact ce doreste de
la unica imprimanta atasata calculatorului. In sistemele de tip server (UNIX, NT) in
care una sau mai multe imprimante trebuie adecvate necesitatilor diverse si uneori
imprevizibile ale mai multor utilizatori, locali sau din retea, lu-crurile iau o turnura mai
complicata.
Imprimanta si nucleul
Pentru sistemul de operare, porturile paralele la care pot fi atasate imprimante sunt
fisierele speciale de tip caracter /dev/lp0, /dev/lp1 si /dev/lp2. Se pot atasa
imprimante si la porturi seriale ca /dev/ttyS1, dar acest tip de instalare este din ce in
ce mai rar.
Cea mai simpla posibilitate de tiparire este copierea in fisierul special cu o comanda
de genul
cp fisier /dev/lp1
Acest mod ridica mai multe probleme, cum ar fi: fisierul trebuie sa contina exact
formatul acceptat de imprimanta, altfel rezultatele pot fi surprinzatoare. Imprimanta
trebuie sa fie locala, pornita si dis-ponibila. Pentru utilizatorul casnic este posibil ca
toate aceste probleme sa nici nu aiba sens. Intr-o retea insa ele pot face viata
imposibila.
Sa luam un exemplu. Avem de tiparit o imagine si un text simplu. Putem presupune
ca imaginea este in formatul de in-trare al imprimantei, continand deci comenzile
care sa determine desenarea corecta. Imprimanta va primi fisierul caracter cu
caracter si il va trata ad literam. Acest comportament se va dovedi fatal pentru text. In
textele UNIX, sfarsitul de linie este reprezentat prin caracterul linie noua. Daca
imprimanta se va conforma pur si simplu intrarii, aspectul tipariturii va fi cam asa:
Prima linie
Linia urmatoare nu mai incepe de la capat
si tot asa
Acasa vom modifica parametri imprimantei astfel incat aceasta sa genereze si un
retur de car pentru fiecare linie noua, eliminand astfel neplacutul efect de scara.
Solutiile software sunt mai elegante, dar punerea lor la punct necesita un minim de
efort initial.
Functia de configurare imprimanta, optiunea adaugare: trebuie sa alegem intre o
imprimanta locala, una conectata la un alt sistem UNIX din retea sau o imprimanta
partajata de un sistem Windows.
Software pentru accesul la imprimanta
Rezolvarea problemelor descrise mai sus este realizata cu sisteme de spool (Shared
Peripheral Operating On-Line: echipamente partajate operand in modul on-line), o
solutie a carei istorie se suprapune in buna masura cu cea a sistemelor de operare.
Sistemele de spool sunt sisteme de acces la resurse utilizate in comun, ca
imprimantele. Ele primesc comenzi de executie, impreuna cu datele aferente:
comenzi de tiparire si fisierele de tiparit. Acestea vor fi executate pe rand, pe masura
Carte LINUX
35
Carte LINUX
36
doua imprimante in /etc/printcap: una cu filtru pentru texte si alta fara filtru pentru
grafica. Singurul lucru care trebuie sa difere este numele.
Dupa ce autodetecteaza portul de imprimanta, procedura ne propune cateva date de
configurare cu valori implicite rezonabile
Filtre magice
Solutia optima este insa complicarea filtrului. Acesta va trebui sa recunoasca
automat tipul de fisier pe care il are de tiparit si sa-l prelucreze (filtreze)
corespunzator. Aceste filtre se numesc magice. Nu numai ca nu este trivial sa scriem
filtre, dar sensul software-ului liber este ca daca cineva a facut un program util,
ceilalti se pot bucura de el.
Unul dintre cele mai interesante filtre este APS. A fost scris de Andreas Klemm si
este intretinut de Thomas Buenschgens. Poate fi gasit in URL-ul de baza
ftp://ftp-i2.informatik.rwth-aachen.de/pub/Linux/pak/APSfilter/aps -491.tkz
sau in
ftp://sunsite.unc.edu/pub/Linux/sys tem/printing/aps-491.tgz.
Necesita compilator de C, emulatorul postscript gs si pachetul pbmutils. Instalat ca
filtru if, obtineti o imprimanta pentru text, PostScript, dvi, gif si altele.
Pachetul Magic-filter al lui B.A. McCawley lucreaza asemanator cu filtrul APS, dar
fiind scris in bash poate fi mai usor intretinut. Este descris ca un set de script-uri
menite sa simplifice problema configurarii lpd pentru a autodetecta ti
puri de fisiere folosind /etc/magic. Acest filtru foloseste la randul lui filtre existente. Se
gaseste la
ftp://tsx-11.mit.edu/pub/linux/sourc es/usr.bin/magic-filter-0.4.tar.gz
Tot filtru magic se numeste si pache-tul lui Peter Anvin de la
ftp://sunsite.unc.edu//pub/Linux/sys tem/Printing/magicfilter-1.1b.tar.gz
Filtrul este scris in C, este complet controlabil printr-un fisier de configuratie extern.
Poate detecta aproape orice tip de fisier pentru care exista un program de conversie.
Mai mult, poate crea fisiere de configurare pe baza programelor deja in-stalate in
sistem.
Tiparirea in retea
Unul din lucrurile simple si utile pe care le putem face este sa tiparim la o alta masina
UNIX conectata in retea. Exista doua posibilitati. Prima este sa definim in
/etc/printcap local o imprimanta afla-ta in retea:
# DekJet 500 aflata pe un calculator in retea
lp|dj|deskjet:\
sd=/var/spool/lpd/dj:\ rm=calculator.din.retea:\
:rp=imprimanta:\ lp=/dev/null:\ sh:
Se observa aparitia campului rm, care specifica numele calculatorului la care este
legata imprimanta, si a campului rp, numele imprimantei asa cum este scris el pe
acel calculator. Fisierul special asociat cu o imprimanta din retea este /dev/null. De
asemenea, administratia nodului calculator din retea trebuie sa ne permita sa
accesam imprimanta, scriind numele cal culatorului nostru in /etc/hosts.allow sau
in /etc/hosts.deny. Job-urile care sunt ti-parite la distanta pot zabovi fie in coada
locala cand reteaua nu functioneaza sau celalalt nod este oprit, fie in coada locala a
imprimantei.
A doua solutie, buna mai ales daca este folosita ocazional, este accesul direct la
demonul lpd de la distanta cu rlpr. Rlpr se poate gasi la
ftp://sunsite.unc.edu/pub/Linux/sys tem/Printing/
Carte LINUX
37
El functioneaza intr-un mod compatibil cu lpr, dar este capabil sa ia legatura prin
TCP/IP cu demoni lpd aflati la distanta. Astfel avem posibilitatea sa tiparim de
oriunde oriunde" fara bataie de cap cu configurarea in /etc/printcap. Daca doriti, il
puteti include in cadrul filtrelor existente.
Prin intermediul unui serviciu de tiparire SMB, bazat pe TCP/IP, se poate ti-pari prin
retea pe imprimante conectate la calculatoare care ruleaza Windows 95, Windows
NT sau Lan Manager. Este ne-cesar un filtru de intrare numit smbprint care este
inclus in pachetul samba, cel care da posibilitatea Linux-ului sa comunice conform
standardului SMB. Daca puneti filtrul in /usr/local/sbin, intrarea in /etc/printcap poate
arata astfel:
lp|imprimanta-smb:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lp:\
:if=/usr/local/sbin/smbprint:
De tiparit, putem tipari din Ghostview
Configurarea script-ului smbprint tine mai mult de detaliile de functionare Samba
decat de imprimare.
La o imprimanta NetWare puteti avea acces cu utilitarul nprint din pachetul ncpfs.
Ncpfs este interesant pentru ca pu-teti monta volume Netware sub Linux, puteti tipari
de pe Linux pe NetWare si invers. Ncpfs poate fi gasit la
ftp://linux01.gwdg.de/pub/ncpfs/. Nprint are o functionalitate similara cu smbprint si
putem scrie o imprimanta in /etc/printcap:
sub2|imprimanta-NetWare:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/sub2:\
:if=/var/spool/lpd/nprint-script:
Script-ul nprint-script poate arata cam asa:
#! /bin/sh
/usr/local/bin/nprint -S net -U name -P passwd -q printq- q Un meniu mai complet de tiparire ne ofera Netscape
Exista imprimante care au interfata Ethernet si se conecteaza direct la reteaua
dumneavoastra locala. Aceste imprimante pot avea diverse functionalitati, dar, in
general, ele executa un demon lpd cu una sau mai multe cozi de spool. O intrare in
printcap descriind o astfel de imprimanta poate arata astfel:
lj-5|hplj-retea:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:rm=imprimanta.din.retea:rp=raw:
O problema cu imprimantele in retea este ca lpd nu executa filtrul de intrare pentru
acestea. Ca sa atasam un astfel de filtru, trebuie sa recurgem la un truc: se
cascadeaza doua imprimante, una locala, al carei filtru prelucreaza si tipareste la cea
din retea. Intrarile in /etc/printcap pot fi:
lj-5:hplj:\
:lp=/dev/null:sh:\
:sd=/var/spool/lpd/lj-5:\
:if=/usr/lib/lpd/filtru-lj-5:
lj-5-retea:lp=/dev/null:sh:rm=impri manta.din.retea:\
:rp=raw:sd=/var/spool/lpd/lj-5-raw:
Carte LINUX
38
Carte LINUX
39