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