86 Martie 2004
Pagina începătoruluiLINUX USER
www.linux-magazin.ro
Propunem cititorilor începători în ceea ce privește sistemul de operare Linux, un serial
de articole care se dorește a fi un îndrumar util în utilizarea acestui sistem.
Serialul începe cu instalarea sistemului și va continua cu prezentarea noţiunilor
fundamentale Linux. Vor urma apoi explicarea interpretorului de comenzi și a unui set
de comenzi și utilitare de bază, apoi o prezentare a sistemului grafic X Window.
Utilizatorul va fi pus în temă cu principalele configurări ale sistemului.
Într-un alt episod vor fi prezentate editoarele de texte existente în Linux precum și
programele dedicate lucrului la birou (office). De asemenea, programele multimedia
vor fi și ele trecute în revistă.
Următoarele episoade vor fi dedicate programatorilor care doresc fie să înveţe sau să
utilizeze platforma Linux, fie să își porteze programele pe aceasta.
Articolele ulterioare vor aborda noţiunile de bază ale administrării unui sistem Linux,
precum și modalităţile de asigurare a unei bune securităţi ale unui server.
Sistemele de baze date, programele privitoare la Internet,
interconectarea cu alte sisteme de operare, rularea de jocuri
sub Linux sunt subiecte care de asemenea nu vor fi trecute cu vederea.
În finalul serialului, vom analiza actorii aflaţi în spatele cortinei, și anume
structura internă a nucleului Linux și programarea de sistem.
Pe parcursul acestei incursiuni așteptăm reacţiile cititorilor, pentru a putea
valorifica ideile acestora și a le oferi altora, așa cum se cuvine într-o adevarată
comunitate open-source.
LINUX LINUX LINUXÎnvăţaţi LINUX !
086-089_curs_linux.indd 86 3/17/2004, 10:33:15 AM
LINUX USERPagina începătorului
87www.linux-magazin.ro Martie 2004
Învăţaţi LINUX
Noţiuni introductive
Figura 1: Pornirea sistemului Linux
Pornirea sistemului LinuxDupă pornirea calculatorului, BIOS-ul
acestuia citește încărcătorul de boot și
îl execută. Acesta este un program spe-
cial care permite pornirea mai multor
sisteme de operare, acestea putând fi
selectate de obicei dintr-un meniu. El
oferă în plus posibilitatea de a modifica
linia de comandă conţinând parametri care
urmează a fi transmiși nucleului sistemu-
lui de operare. Încărcătoarele de boot mai
importante folosite de Linux sunt GRUB
și LILO.
În cazul utilizării programului GRUB,
pot fi utilizate tastele-săgeţi pentru selec-
tarea sistemului de operare dorit. Poate fi
folosită de asemenea și tasta “e” pentru a
modifica configuraţia GRUB sau “a” pen-
tru a edita argumentele trimise nucleului
sistemului.
Dacă se folosește programul LILO,
la prompterul afișat pe ecran trebuie
introdusă denumirea sistemului care va fi
pornit (de exemplu linux sau win), și tasta
ENTER pentru a porni nucleul. Opţional,
denumirea sistemului poate fi urmată de
argumentele care vor fi trimise nucleului.
Tasta Tab va afișa lista de sisteme definite.
Pornirea sistemuluiOdată ales de către utilizator
sistemul de operare Linux,
încărcătorul de boot citește
imaginea nucleului și îi cedează
controlul. Nucleul identifică
echipamentele cunoscute din
sistem și încarcă driverele
pentru ele, montează sistemul
de fișiere rădăcină, iar apoi
pornește o serie de scripturi
care pregătesc mediul UNIX
(începând cu scriptul init,
care devine ulterior părintele
tuturor proceselor). Astfel,
sunt montate restul sistemelor
de fișiere, este iniţializată con-
exiunea la reţea (dacă există) și
sunt pornite serviciile pe care le
va oferi sistemul (cum ar fi ser-
viciul de tipărire la imprimantă,
serverul de baze de date, serverul
Web ș.a.m.d.) vezi Figura 1.
În timpul pornirii sistemului
Linux, pot fi remarcate o serie de
mesaje care de obicei se derulează
cu viteză pe ecran. Primele
mesaje afișate sunt cele generate
de nucleu, după care urmează
mesajele cauzate de pornirea
serviciilor.
Mesajele generate de către nucleu indică
detectarea echipamentelor hardware de
către driverele în cauză. Ele sunt utile
atât în vederea diagnosticării funcţionării
acestora cât și pentru verificarea corecti-
tudinii configuraţiei în care a fost compilat
nucleul.
Mesajele legate de pornirea serviciilor
sistemului conţin descrierea serviciului
și un cod de succes a pornirii serviciului.
Astfel, codurile afișate pot fi:
- OK - având culoarea verde, și semnificând
pornirea cu succes a serviciului,
- FAILED - având culoarea roșie, semni-
ficând o pornire eșuată, și
- PASSED - având culoarea galbenă, atunci
când pornirea unui serviciu a generat o
eroare, aceasta putând fi însă corectată.
În funcţie de configuraţie, sistemul va
porni sistemul de autentificare a utilizato-
rilor, fie în mod text, fie în mod grafic.
Intrarea și ieșirea din sistemFiecare persoană căreia îi este permis să
lucreze pe un sistem UNIX trebuie să posede
un cont de utilizator pe respectivul calcula-
tor. Fiecare utilizator are asociate un set de
drepturi, având astfel acces la
o anumită serie de resurse ale
sistemului. Acesta deţine un
director propriu, în care sunt
stocate fișierele personale, inclu-
siv configurările aplicaţiilor etc.
Orice sesiune de lucru UNIX
începe cu autentificarea și
acceptarea utilizatorului în
sistem. Pentru a a-i fi permis
accesul, acesta trebuie să
furnizeze numele său de utiliza-
tor și parola.
Intrarea în sistem grafic X Win-
dow va conduce la încărcarea
mediului desktop preferat de
utilizator (KDE sau GNOME), în
configuraţia specifică acestuia.
DE DRAGOȘ ACOSTĂCHIOAIE
086-089_curs_linux.indd 87 3/17/2004, 10:33:23 AM
88 Martie 2004
Pagina începătoruluiLINUX USER
www.linux-magazin.ro
Figura 2: Oprirea sistemului Linux
Ieșirea din sistem în cazul utilizării X
Window se face prin selectarea opţiunii
Logout, controlul fiind cedat sistemului
de autentificare grafic sau consolei virtuale
din care a fost lansat în execuţie, după caz.
Intrarea la consolă va fi de felul:
Fedora Linux core 1
Kernel 2.4.25 on an i686
zeus login: dragos
Password:
După introducerea corectă a parolei (care
nu va fi afișată pe ecran), va fi pornită
execuţia interpretorului de comenzi.
Ieșirea din sistem (echivalând cu înche-
ierea execuţiei interpretorului de comenzi)
se face prin comanda exit sau logout. Poate
fi folosită și combinaţia de taste Ctrl+D,
care generează în UNIX codul pentru
sfârșit de fișier (End Of File).
Oprirea sistemuluiÎnainte de oprirea sistemului, toate pro-
gramele în curs de execuţie trebuie închise,
deoarece este posibil ca acestea să piardă
informaţii nesalvate. În acest sens, se
recomandă verificarea tuturor termina-
lelor virtuale pentru a nu exista aplicaţii
pornite, înainte de oprirea calculatorului.
Pentru oprirea sistemului din sistemul
X Window, se va selecta opţtiunea Logout
iar apoi, din sistemul de autentificare,
opţiunea Shutdown - oprire, sau Reboot
- repornire (în unele versiuni Restart) vezi
Figura 2.
Oprirea sistemului din mod text se va
face din utilizatorul root sau utilizatorul
curent dacă îi sunt conferite drepturi în
acest sens, prin intermediul comenzii halt
- oprire sau reboot - repornire. Utilă
este și comanda poweroff, care va
trimite calculatorului comanda
de închidere automată, dacă
configuraţia sa hardware permite
acest lucru. Repornirea sistemu-
lui se poate face și prin apăsarea
combinaţiei de taste Ctrl+Alt+Del.
Consola sistemuluiÎn accepţia UNIX, accesul la sistem
se face prin intermediul termina-
lelor, aflate local sau la distanţă.
Linux implementează un sistem care
permite deschiderea mai multor
sesiuni de lucru la consolă, concept
care poartă numele de terminal
virtual. La pornirea sistemului în mod text
(consolă), controlul este predat termina-
lului virtual cu numărul 1. Comutarea între
terminalele virtuale se face cu ajutorul
combinaţiei de taste Alt + Fn, unde n
reprezintă numărul terminalului.
Excepţie face sistemul X Window, căruia
în momentul pornirii i se alocă un terminal
virtual, și anume cel având numărul egal
cu numărul maxim de terminale virtuale
alocate plus unu. Spre exemplu, dacă
numărul maxim de terminale virtuale este
6 (configuraţia standard după instalare),
atunci sistemul X Window va utiliza termi-
nalul 7. Comutarea din mod grafic în mod
text se va face prin intermediul combinaţiei
de taste Ctrl + Alt + Fn.
Sesiunile de lucru clasice se desfășoară
în mod text, de aceea acest mod mai este
cunoscut și sub numele de mod consolă.
Așa cum menţionam și mai devreme,
sesiunea de lucru începe odată cu auten-
tificarea corectă a utilizatorului în sistem
și pornirea execuţiei interpretorului de
comenzi (shell). Sesiunea se încheie odată
cu încetarea execuţiei acestui interpretor.
Istoricul informaţiilor afișate pe ecranul
terminalului virtual poate fi accesat prin
intermediul combinaţiilor de taste Shift
+ PgUp (pagina precedentă) respectiv
Shift + PgDn (pagina următoare). Această
operaţiune poate fi realizată numai pentru
informaţiile afișate după ultima schimbare
a terminalului.
Terminalele virtuale permit și utiliza-
rea mouse-ului. Astfel, selecţia efectuată
cu ajutorul cursorului mouse-ului poate
fi copiată la locaţia curentă a cursorului
printr-un click-dreapta.
Dacă se utilizează sistemul X Win-
dow, o sesiune de lucru (însoţită în mod
evident de lansarea interpretorului de
comenzi) poate fi deschisă prin interme-
diul aplicaţiilor konsole, gnome-terminal
sau xterm. În mod evident, utilizatorul
care deţine sesiunea este cel care a pornit
mediul X Window.
Interpretorul de comenziUn interpretor de comenzi (shell)
reprezintă un program capabil de a executa
comenzi introduse de utilizator și de a
controla modul de afișare a rezultatelor
acestor comenzi. El pune la dispoziţia
utilizatorului un bogat set de comenzi și
utilitare, constituind totodată și limbaj de
programare care oferă mecanisme com-
plexe de operare cu sistemul.
Pentru sistemele de operare Linux,
interpretorul de comenzi implicit este
bash. Există multe alte shell-uri, dintre
care putem enumera csh și tcsh.
Există două categorii de comenzi care
pot fi apelate prin intermediul interpre-
torului:
· comenzi interne (builtins, care se găsesc
implementate în cadrul shell-ului); ca
exemple de comenzi interne putem
enumera cd, echo sau kill, lista tuturor
comenzilor interne poate fi vizualizată
prin intermediul comenzii help.
· comenzi externe (acestea se găsesc
separat fiecare în fișiere executabile; de
exemplu, passwd, ls sau mail). Comen-
zile externe pot fi fișiere executabile
(programe binare rezultate în urma pro-
cesului de compilare din programe sursă
scrise în C sau alte limbaje compilabile)
sau script-uri (fișiere de comenzi, inter-
pretate de un procesor de comenzi, cum
ar fi bash sau Perl).
Shell-ul de cele mai multe ori este apelat
interactiv, în sensul că va dialoga
cu utilizatorul, interpretând și
executând comenzile introduse
de acesta. Utilizarea interactivă a
interpretorului de comenzi (de la
invocarea sa și până la terminarea
activităţii) constituie o sesiune de
lucru.
Pornirea interpretorului de comenzi
se poate face în doua moduri:
· în mod automat, la conectarea în
sistem, fie de la consola calculatorului,
fie de la distanţă prin telnet sau ssh,
după autentificarea utilizatorului;
· din cadrul altui program care
necesită rularea interpretorului de
comenzi pentru a executa diferite
086-089_curs_linux.indd 88 3/17/2004, 10:33:33 AM
LINUX USERPagina începătorului
89www.linux-magazin.ro Martie 2004
comenzi sau la
cererea utilizatoru-
lui, cum este cazul
ferestrelor-termi-
nal atunci cand se
folosește sistemul X
Window.
Pentru a se indica
utilizatorului că inter-
pretorul de comenzi
este gata de a executa
următoarea comandă,
se va afișa un prompt.
Astfel, în exemplul
din figura 3, prom-
ptul include dragos
desemnând numele
de cont al utilizatoru-
lui, iar infoiasi este
numele mașinii pe care se lucrează. Se
precizează și numele directorului curent
(în acest caz, directorul rădăcină):
[dragos@infoiasi /]$ pwd
/
Părăsirea shell-ului interactiv (sesiunii
curente de lucru) se realizează prin
intermediul comenzii exit sau acţionând
combinaţia de taste CTRL+D (sfârșit de
fișier în UNIX).
Pentru editarea facilă a comenzilor
introduse, pot fi folosite tastele săgeţi sus
și jos pentru a parcurge lista istoricului
comenzilor introduse. În cadrul unei linii
de comenzi, combinaţia CTRL+A mută
cursorul la începutul
liniei, iar CTRL+E la
sfărșitul ei.
De asemenea, shell-
ul oferă facilitatea
numită tab completion
care dă posibilitatea
introducerii parţiale
a numelui unui fișier,
la apăsarea tastei
Tab interpretorul
completând (dacă
este posibil) cea mai
bună potrivire cu
textul (prefixul) deja
introdus.
Medii graficeUna dintre criticile
aduse în trecut siste-
mului de operare
UNIX era aceea că
îi lipsește o interfaţă grafică, utilizatorii
obișnuiţi trebuind să opereze doar la nive-
lul liniei de comandă.
Sistemul de ferestre utilizat este X
Window System (versiunea curentă
X11R6) și reprezintă un standard indus-
trial bazat pe modelul client/server.
Interfaţa este compusă dintr-un server
oferind accesul la resursele hardware și
din clienţi, într-un mod flexibil și porta-
bil. Sistemul X Window are posibilitatea
operării prin reţea, fiind dezvoltat de
MIT și DEC și standardizat de Consorţiul
X. Serverul X gestionează comunicaţia
cu echipamentele din sistem, și anume
placa video, monitorul, tastatura,
mouse-ul etc. Acest server acceptă cone-
xiuni de la clienţi
(sau aplicaţii) X,
prin reţea sau local.
Astfel, o aplicaţie X
Window poate rula
pe o anumită mașină
și interacţiona cu
utilizatorul pe o altă
mașină.
Managerul de
ferestre (window
manager) mediază
acţiunile utilizatoru-
lui privind ferestrele
aplicaţiilor și, con-
stituind un client X
special, care definește
c o m p o r t a m e n t u l
sistemului de ferestre
(e.g. modul de suprapunere a ferestrelor
sau controlul focus-ului) și permiţând
utilizatorului să manipuleze ferestrele și
să lanseze noi aplicaţii. Dintre managerii
de ferestre mai importanţi putem enu-
mera Enlightment, WindowMaker sau
fvwm2.
Un mediu desktop grupează mai mulţi
clienţi X, construiţi după o structură
comună, care pot interacţiona între ei.
De asemenea, mediul desktop include și
un manager de ferestre. Mediile desktop
cele mai răspândite sunt KDE (The K
Desktop Environment) și GNOME (The
GNU Network Object Modeling Environ-
ment).
Sistemul de ferestre X Window poate
fi pornit automat la
pornirea sistemului,
fie după dorinţă.
Pentru pornirea
manuală a sistemului
X Window, se lansează
de la consolă comanda
startx &.
Execuţia serverului
X Window poate fi
întreruptă (spre exem-
plu, atunci cand modul
video este incorect
iar imaginea nu este
lizibilă) utilizând
combinaţia de taste
Ctrl+Alt+Backspace.
Altă combinaţie utilă este
Ctrl+Alt+Plus, respectiv
Ctrl+Alt+Minus, care
cresc respectiv scad
rezoluţia de afișare. ■
Figura 3: O sesiune shell tipică
Figura 4: O sesiune de lucru X Window
086-089_curs_linux.indd 89 3/17/2004, 10:33:38 AM