1. Interfeţe cu utilizatorul

Orice sistem de operare deţine o interfaţă prin intermediul căreia realizează comunicarea cu operatorul uman. Primele sisteme de operare aveau interfeţe foarte simple, formate dintr-un set mic de comenzi de bază. Spre exemplu, CP/M, un sistem destinat microcalculatoarelor cu procesoare pe 8 biţi (de exemplu Z80), avea aproximativ 5 comenzi. Odată cu trecerea timpului, interfeţele dintre sistemele de operare şi utilizator au devenit din ce in ce mai complexe, oferind mai multe facilităţi şi uşurând munca de configurare şi întreţinere a calculatoarelor pe care le deservesc.

Pentru a vedea care sunt avantajele şi dezavantajele diferitelor sisteme de operare în ceea ce priveşte interfaţa cu utilizatorul, să încercăm mai întâi să realizăm o clasificare a interfeţelor. În primul rând, trebuie remarcat faptul că interfaţă este orice instrument care permite comunicarea între un sistem de operare şi un operator, indiferent dacă acest instrument este de natură hardware sau software. Din această perspectivă, putem observa următoarele tipuri de interfeţe cu utilizatorul:

  • Interfeţe hardware. De exemplu, tastatura unui mic calculator de buzunar poate fi considerată o interfaţă hardware.
  • Interfeţe software. Acestea sunt reprezentate de sisteme de programe care, sub o formă sau alta, iniţiază şi întreţin un dialog cu utilizatorul calculatorului, în scopul utilizării şi / sau configurării acestuia. Ele formează cvasitotalitatea interfeţelor cu utilizatorul incluse în sistemele de operare, deci ne vom ocupa numai de ele. Interfeţele software pot fi:
    • Monitoare. Unele calculatoare conţin, stocat într-o memorie ROM internă, un program numit monitor, care se lansează automat la pornirea calculatorului şi îi permite utilizatorului să efectueze operaţii simple asupra sistemului de calcul, cum ar fi: inspectarea şi modificarea regiştrilor procesorului, vizualizarea şi alterarea conţinutului memoriei etc. De obicei, programul monitor porneşte în cazul în care nu a putut fi încărcat sistemul de operare.
    • Interfeţe în linie de comandă (sau interfeţe text).  Acestea sunt reprezentate, în general, de un program numit interpretor de comenzi, care afişează pe ecran un prompter, primeşte comanda introdusă de operator şi o execută. Comenzile se scriu folosind tastatura şi pot fi însoţite de parametri. Aproape toate sistemele de operare includ o interfaţă în linie de comandă, unele foarte bine puse la punct (cazul sistemelor Unix) iar altele destul de primitive (MS-DOS şi MS-Windows).
    • Interfeţe grafice. Sunt cele mai populare interfeţe cu utilizatorul şi se prezintă sub forma unui set de obiecte grafice (de regulă suprafeţe rectangulare) prin intermediul cărora operatorul poate comunica cu sistemul de operare, lansând aplicaţii, setând diferite opţiuni contextuale etc. Dispozitivul cel mai folosit în acest caz este mouse-ul, de aceea acest tip de interfaţă este utilă în primul rând utilizatorilor neexperimentaţi şi neprofesioniştilor.

Avantaje şi dezavantaje ale diferitelor categorii de interfeţe

Tabelul următor prezintă, comparativ, caracteristicile interfeţelor cu utilizatorul.
 
Interfaţa în linie de comandă Interfaţa grafică
Avantaje: 
  •  Permite scrierea clară şi explicită a comenzilor, cu toţi parametrii bine definiţi
  • Oferă flexibilitate în utilizare
  • Comunicarea cu sistemul de operare se face rapid şi eficient
Dezavantaje: 
  • Operatorul trebuie să cunoască bine comenzile şi efectele lor
  • Este mai greu de utilizat de către neprofesionişti
Avantaje: 
  • Este intuitivă şi uşor de folosit
  • Poate fi utilizată şi de către neprofesionişti
  • Creează un mediu de lucru ordonat
  • Permite crearea şi utilizarea de aplicaţii de complexe, precum şi integrarea acestora în medii de lucru unitare 
Dezavantaje: 
  • Anumite operaţii legate, de exemplu, de configurarea sistemului pot să nu fie accesibile din meniurile şi ferestrele interfeţei grafice
  • Interfaţa ascunde anumite detalii legate de preluarea şi execuţia comenzilor
  • Foloseşte mai multe resurse şi este mai puţin flexibilă decât interfaţa în linie de comandă

 

Interfata in linie de comanda UNIX

Comenzi UNIX

În modul linie de comandă, Unix prezintă mult mai multe facilităţi decât MS-DOS. Interpretorul de comenzi (care porneşte după introducerea numelui utilizatorului şi a parolei) poate fi ales de către utilizator. Există mai multe interpretoare clasice, fiecare răspunzând anumitor cerinţe. Interpretorul "standard" în Unix este sh, dar foarte folosite sunt şi bash, tcsh, ksh, csh.

Comenzile Unix sunt de fapt programe executabile care pot fi găsite în directoarele /bin, /usr/bin. Diferenţele între interpretoarele de comenzi (numite şi shell-uri) se văd mai ales în contextul fişierelor de comenzi. Practic, aceste interpretoare permit scrierea de adevărate programe, complexe, folosind comenzile Unix şi directivele speciale.

Iată, în continuare, principalele comenzi Unix (fişierele de comenzi urmând a fi tratate mai târziu):

man [opţiuni] [secţiune] comandă
Este una dintre cele mai importante comenzi. Ea are ca efect afişarea paginii de manual care descrie comportarea comenzii date ca argument. Manualul este împărţit în secţiuni, numerotate de la 1 la 8. Cele mai importante secţiuni sunt:
  • Secţiunea 1 - Descrie comenzile standard
  • Secţiunea 2 - Funcţiile sistem Unix, apelabile în C
  • Secţiunea 3 - Funcţiile de bibliotecă C
  • Secţiunea 5 - Formate ale diferitelor fişiere specifice sistemului UNIX
  • Secţiunea 8 -  Comenzi de administrare a sistemului, cu privilegii sporite
Pentru fiecare secţiune există câte un capitol introductiv care descrie conţinutul acesteia. Pentru a vedea, de exemplu, introducerea la secţiunea 4, se scrie:
man 4 intro
Este, de asemenea, posibilă citirea unei pagini de manual referitoare chiar la comanda man:
    man man
pwd
tipăreşte numele directorului curent
cd director
schimbă directorul curent
ls [-adgilrst] fişier ...
afişează conţinutul unui director
mkdir director
creează directorul cu numele precizat
rmdir director
şterge directorul precizat, dacă este gol.
cat <lista de fişiere>
afiseaza la fişierul standard de ieşire conţinutul fişierelor date în listă (se pot astfel concatena mai multe fişiere)
lpr [optiuni] fişier
tipăreşte la imprimantă fişierele date
wc [opţiuni] [fişiere]
numără caractere, cuvinte şi linii in fişiere
grep [opţiuni] [şir  de caractere] fişier
filtrează liniile unui fişier, căutând şabloane
find director ... condiţie
se caută în directoarele date şi în subdirectoarele lor fişierele care satisfac condiţie. De exemplu, comanda find . -print afişează toate fişierele din subarborele curent.
od [opţiuni] fişier
afişează conţinutul unui fişier în diferite formate: octal, zecimal, hexa, ASCII etc.
rm [opţiuni] fişier ...
şterge fişierele date
mv fişier1 fişier2
mv fişier director
schimbă numele fişier1 în fişier2 sau mută fişier în directorul director
cp fişier1 fişier2
cp fişier ... director
copiază fişier1 în fişier2 sau fişier în director
ln fişier1 [fişier2]
creează o nouă intrare în director pentru fişierul precizat
chmod drepturi fişier
schimbă drepturile de acces ale unui fişier
df [sistem de fişiere]
afişează informaţii despre un sistem de fişiere (disc, partiţie etc): spaţiul total, spaţiul liber şi altele. Sistemul de fişiere poate fi indicat prin directorul în care partiţia sau discul respectiv este montat, adică "rădăcina" sistemului de fişiere. Mai multe detalii despre sistemele de fişiere, structura lor şi modul de montare pot fi găsite în  Lucrarea 4 .
du [opţiune] [director]
afisează informaţii privind spaţiul ocupat de fişierele dintr-un director (inclusiv subdirectoarele sale). du .  afişează aceste informaţii pentru directorul curent.
ps [opţiuni] [proces]
afişează starea proceselor care rulează pe sistem la momentul curent. Un proces este, în principiu, un program aflat în execuţie, împreună cu stiva sa şi zona de date proprie. Detalii, în  Lucrarea 5.
kill proces
oprirea unui proces în curs de execuţie
test expresie
se evaluează expresie, iar dacă valoarea ei este adevărat se returnează 0. Condiţiile se referă la fişiere, directoare, şiruri etc.
date
afişează data şi ora curente
who [am I]
afişează numele utilizatorilor conectaţi la sistem
echo [-n] argumente
afişează argumentele date
login [utilizator]
intrare în sistem
logout
ieşire din sistem


Încercaţi principalele comenzi Unix. Folosiţi comanda man pentru a afla parametrii pe care acestea le pot primi şi semnificaţia lor.


Autor: Dan Cosma