Sunteți pe pagina 1din 19

1

UNIX CARACTERISTICI GENERALE

1.1 Introducere Sistemul de operare UNIX, mpreun cu suita de protocoale TCP/IP pentru comunicaia n reea i cu sistemul de fiiere NFS constituie o soluie convenabil pentru constituirea unui sistem complet de operare n reea. Dezvoltat iniial n laboratoarele AT&T Bell Labs (cu participarea companiei General Electric i a faimosului MIT Massachusetts Institute of Technology), UNIX-ul reprezint, de fapt, o mare familie de sisteme de operare nrudite ce descind din munca programatorilor Dennis Ritchie i Ken Thompson (creatorii limbajului C) la sfritul anilor 60 i nceputul anilor 70. Sistemele din familia UNIX pot fi rulate pe orice tip de calculator, plecnd de la calculatoarele personale pn la super-calculatoarele cu configuraii extrem de avansate, utilizate ndeosebi n domeniul militar i cel bancar. De asemenea, toate variantele de UNIX sunt multitasking, domeniu n care UNIX are o reputaie deosebit. Numele su deriv de la un jos de cuvinte al unui alt proiect Bell Labs/MIT din acelai timp produs pe un calculator mainframe cunoscut sub numele de Multics (Multiplexed Information and Computing Service). Sistemul de operare interactiv Multics fusese scris pentru un computer al companiei General Electric dovedindu-se dup ani de dezvoltare mult prea costisitor, de aceea Bell Labs s-a retras ulterior din proiect. n timpul lucrului la proiectul Multics, programatorul Ken Thompson a scris un joc de cltorie n spaiu pentru computerul General Electric. Dup sistarea proiectului, acesta a rescris jocul mpreun

Prin multitasking se nelege capacitatea unui sistem de operare de a executa mai multe procese (task-uri) simultan. Acest lucru se realizeaz prin fenomenul time slicing ce presupune c fiecare proces aflat n execuie utilizeaz calculatorul pentru o perioad determinat de timp. Comportamentul multitasking este n opoziie cu task switching, caz n care fiecare proces aflat n execuie trebuie s se termine pentru a se ncepe execuia unui nou proces.

UNIX

cu colegul su Dennis Ritchie pentru a rula pe un computer DEC PDP-7 ce avea un display grafic mai performant. Acest calculator avea nevoie ns de un sistem de operare viabil. Iniial, noul sistem de operare a fost numit de ctre Thompson UNICS (Uniplexed Information and Computing Service), apoi numele su s-a schimbat n UNIX iar jocul de cltorie spaial a fost modificat pentru a rula sub UNIX. Cu toate mbuntirile aduse de-a lungul timpurilor, de la primele implementri de UNIX i pn acum, toate variaiile sale urmresc ntr-o mare msur arhitectura i funcionalitatea original UNIX. 1.2 Scurt istoric Pentru a nelege mai bine caracteristicile acestui sistem de operare, avantajele i dezavantajele sale, este util s cunoatem cteva lucruri legate de istoria sa. Dup cum am spus mai nainte, UNIX a fost conceput iniial la Bell Laboratories USA drept un proiect privat de cercetare, proiect nceput n 1969 de ctre un mic colectiv de cercettori. Scopul acestui colectiv de cercetare era acela de a concepe un sistem de operare care s corespund urmtoarelor exigene: s fie elegant, simplu i concis; s fie scris ntr-un limbaj de programare de nivel nalt i nu n limbaj de asamblare; s permit refolosirea codului. La nceput, UNIX a fost scris n limbaj de asamblare i de aceea nu putea rula dect pe un calculator anume. Odat cu naterea limbajului C n 1971, Ritchie i Thompson au rescris n 1973 programele de sistem UNIX n C. n acest fel UNIX-ul putea fi mutat (portat) i pe alte calculatoare fr un efort prea mare de programare. n aceeai perioad, compania AT&T (firm mam pentru Bell Laboratories) a fost declarat monopol de Comisia Federal de Comer a SUA. Drept compensaie, Bell Laboratories a oferit gratis sistemul de operare UNIX universitilor din SUA, astfel nct acesta a devenit extrem de popular n mediul academic. Cu timpul, UNIX s-a rspndit i n mediul comercial, n care studenii aplicau ceea ce au nvat pe bncile universitilor. Spre deosebire de majoritatea productorilor de sisteme de operare din acel timp, care produceau sisteme mari i scrise n limbaj de asamblare, UNIX avea un mic procent de cod scris n limbaj de asamblare (aproximativ 10% - kernelul), n timp ce restul codului era scris n C. Grupul de dezvoltare a sistemului a conceput iniial munca n limbaj de nivel nalt,

UNIX Caracteristici generale

apoi, odat cu dezvoltarea sa, au aprut mici schimbri ce au fost fcute n kernel i n limbajul de programare pentru a se definitiva UNIX-ul. n cadrul acestei evoluii continue, kernelul i software-ul aferent au fost extinse pn cnd s-a creat un sistem de operare scris n C, bazat pe kernelul n limbaj de asamblare. Codul surs al sistemului de operare UNIX a fost fcut public i disponibil universitilor de pe ntreg teritoriul SUA. Programatorii de la Universitatea Berkeley din California au fcut modificri substaniale codului surs original i astfel s-a nscut BSD (Berkeley Software Distribution) UNIX. Aceast nou versiune de UNIX a fost fcut cunoscut la rndul ei programatorilor din SUA care au adugat instrumente i cod. Cea mai important mbuntire adus sistemului de operare de ctre programatorii de la Berkeley a fost adugarea software-ului de reea ce a permis sistemului de operare s funcioneze ntr-o reea local. Varianta BSD UNIX a devenit extrem de popular printre productorii de computere, dintre care: Hewlett Packard, Digital Equipment Corporation i Sun Microsystems. Scurt istoric al sistemului de operare UNIX
Tabelul 1.1
1969 nceputul dezvoltrii a ceea ce urma s devin UNIX de ctre programatorii Ken Thompson i Dennis Ritchie la Bell Laboratories. 1973 UNIX este rescris n C pentru a fi portabil i a putea rula pe diverse computere. 1975 Se distribuie versiunea 6 n afara laboratoarelor Bell; prima versiune BSD deriv din aceast versiune V6. 1980 Microsoft produce Xenix iar BSD 4.2 este larg utilizat. 1984 Universitatea Berkeley din California distribuie versiunea 4.2 BSD ce include suita de protocoale TCP/IP pentru reea i alte programe aplicative. 1984 Apare versiunea SVR2 (System V Release 2); exist aproximativ 100.000 de instalri de UNIX n ntreaga lume. 1986 Apare versiunea 4.3BSD ce include internet name server. 1987 Apare versiunea SVR3; n acest moment exist aproximativ 750.000 de instalri de UNIX n ntreaga lume. 1988 Apare UNIX SVR4 prin unificarea versiunilor System V, BSD i Xenix. 1991 UNIX System Laboratories (USL) devine o companie n care acionar majoritar este AT&T; Linus Torvalds ncepe dezvoltarea Linux-ului. 1992 USL elaboreaz UNIX SVR4.2 iar Novell i anun intenia de a prelua USL. 1993 Apare versiunea 4.4BSD de la Berkeley. Novell preia USL. 1999 UNIX mplinete 30 de ani; kernel-ul Linux ajunge la versiunea 2.2. 2001 Versiunea 3 Single UNIX Specifications reunete eforturile POSIX, The Open Group i ale altor companii. Kernel-ul Linux ajunge la varianta 2.4 2003 Kernel-ul Linux ajunge la versiunea 2.5 2004 Se afl n lucru variante ale kernel-ului Linux versiunea 2.6

UNIX

n timp ce firma Sun Microsystems avea sistemul de operare SunOS bazat pe versiunea BSD UNIX 4.2, compania AT&T folosea o versiune de UNIX cunoscut sub numele de System V (system five). n anul 1988, SunOS/BSD, AT&T System V Release 3 i XENIX (o versiune de UNIX dezvoltat de Microsoft pentru PC-uri cu procesoare Intel) au fost combinate ntr-o nou versiune UNIX denumit System V Release 4 (SVR4). Aceast nou generaie a sistemului de operare UNIX a fost creat n scopul combinrii celor mai bune caracteristici din varianta BSD ct i din varianta AT&T System V pentru a crea un standard n industria sistemelor de operare. Acest lucru a permis dezvoltarea de software pentru UNIX indiferent c era vorba despre System V sau BSD 4.2. Noua variant SVR4 a devenit baza celor mai multe varieti de UNIX. n tabelul 1.1 regsim istoria de peste 30 de ani a sistemului de operare UNIX. 1.3 UNIX sistem de operare pentru reea Ca un vechi i adevrat sistem de operare pentru reea, UNIX ofer faciliti avansate n acest sens, printre care: Operare multi-utilizator Multitasking Procesare distribuit Nivel ridicat de securitate

Facilitatea de operare multi-utilizator permite accesul simultan la sistem pentru mai muli utilizatori ce pot astfel partaja aceleai resurse ale sistemului. Sistemul de operare are grij de fiecare resurs a computerului, fie c este vorba de memoria RAM, microprocesor, hard disk, scanner sau imprimant, permind partajarea fiecreia dintre acestea. Fiecare program aflat n execuie poart numele de proces sau task. Sistemul de operare UNIX ine evidena mai multor procese simultan aceast capacitate a sa este denumit multitasking. Acest fapt permite mai multor aplicaii s ruleze n acelai timp pe computer. De asemenea, capacitatea de procesare distribuit a sistemului de operare se refer la faptul c acesta permite utilizarea partajat a resurselor n cadrul reelei. Cel mai simplu exemplu n acest sens este acela n care un utilizator poate accesa fiiere i aplicaii de pe hard disk-ul altui computer situat n alt parte a reelei de calculatoare.

UNIX Caracteristici generale

n fine, sistemele de operare pentru reea au implementate sisteme de securitate foarte sigure; exist multe alte faciliti de asigurare a securitii n afar de cea clasic nume-de-utilizator/parol. De regul, facilitile de asigurare a securitii sistemului pot fi active sau nu, n funcie de politicile de securitate implementate la nivelul companiei respective. 1.4 Arhitectura UNIX Sistemul de operare UNIX este un sistem de operare structurat n principal pe urmtoarele dou nivele: Programe sistem UNIX; Nucleul (denumit kernel) sistemului UNIX.

Majoritatea programelor sistem i kernel sunt scrise n C, permind portabilitatea pe alte platforme hardware ce posed un compilator C. Programele de sistem UNIX ofer funcionalitatea cerut de utilizatori prin iniierea unui sistem de apeluri ctre nucleul sistemului UNIX. Nucleul ndeplinete aceste cereri interacionnd cu nivelul hardware i returnnd rezultatele scontate utilitarelor i programelor sistem. n aceast arhitectur stratificat, doar nucleul UNIX trebuie s se ocupe de echipamentele hardware specifice cu care trebuie s interacioneze; n interiorul nucleului majoritatea codului specific hardware se limiteaz la driverele echipamentelor. Nucleul reprezint centrul sistemului de operare i are rolul de a oferi funcionalitile de baz necesare funcionrii computerului. Nucleul este apropiat de microprocesor i hardware, fiind un fiier executabil ce este ncrcat n memorie atunci cnd are loc procesul de boot al calculatorului, fiind denumit generic unix (pe sistemele bazate pe System V) sau vmunix (pe sistemele bazate pe BSD). Odat cu ncrcarea n memorie, nucleul ncepe execuia urmtoarelor funcii: Administrarea echipamentelor, a memoriei i a proceselor; Asigur controlul funciilor de transmisie a informaiilor ntre programele de sistem i echipamentele hardware; Administreaz entiti precum spaiul de swap, demonii i sistemul de fiiere. Spaiul de swap reprezint o poriune special de pe hard-disc ce este folosit de ctre kernel pentru procesare. Buci ale programelor ce se afl n execuie pot fi interschimbate ntre memoria RAM i hard-disc ori de cte ori este nevoie. Acest mecanism de extindere a memoriei

UNIX

RAM a sistemului prin utilizarea spaiului de pe hard-disc poart denumirea de memorie virtual. Demonii sunt programe (sau procese) ce ndeplinesc un anumit rol; ei sunt procese speciale care i ncep execuia dup ncrcarea sistemului de operare n memorie. Dup aceea, demonii ateapt s ruleze anumite sarcini n sprijinul sistemului de operare, putnd fi pornii manual sau n mod automat. Un exemplu de proces demon este dtlogin care determin apariia ecranului de login CDE la nceputul unei sesiuni UNIX sau dup ce utilizatorul iese din File Manager-ul CDE. Procesele demon din lumea UNIX sunt similare cu serviciile (services) din Windows NT/2000/XP sau cu modulele NLM (Netware Loadable Modules) din sistemul de operare Novell Netware. Sistemele de fiiere reprezint modalitatea de organizare a directoarelor, subdirectoarelor, fiierelor pe hard-disc. Sistemele de fiiere pot fi situate att local (pe calculatorul local) ct i la distan (pe alt calculator din reea, de regul un aa numit server). Programele i utilitarele sistemului, precum i aplicaiile utilizatorilor sunt independente de hardware i singura cerin pentru acestea este s iniieze apeluri standardizate de sistem ctre nucleul UNIX. Cele mai multe dintre funciile nucleului UNIX se ocup de managementul fiierelor sau al anumitor tipuri de dispozitive. Pentru a simplifica i standardiza apelurile de sistem, UNIX interpreteaz echipamentele ca fiind tipuri speciale de fiiere. Poate cea mai important caracteristic a sistemului UNIX este aceea a disponibilitii codului surs, ceea ce permite multor programatori s mbunteasc i s modifice aceste sistem de operare de-a lungul anilor. Cele dou proprieti remarcabile ale sistemului de operare UNIX sunt: Portabilitatea aceasta se manifest n dou moduri: n primul rnd, UNIX este portabil pe numeroase platforme hardware; n al doilea rnd, programele scrise pentru UNIX sunt implicit portabile pe toate platformele UNIX, depinznd de nivelul de similaritate ntre nucleele i programele de sistem UNIX; Modularitatea UNIX este un sistem dinamic, a crui funcionalitate poate fi mbuntit prin adugarea de noi programe utilitare; de asemenea, este posibil i modificarea nucleului i recompilarea sa pentru un sistem de operare mai bun.

UNIX Caracteristici generale

Arhitectura general i cele mai importante funcii ale nucleului UNIX sunt prezentate n figura 1.2.

Figura 1.2 Arhitectura general a sistemului de operare UNIX

1.5 Funcionaliti UNIX Dintre cele mai importante caracteristici funcionale ale sistemului de operare UNIX se disting urmtoarele:

Operare multiutilizator; Multitasking preemtiv; Multiprocesare; Suport pentru aplicaii multi-threaded.

O alt caracteristic important este aceea a managementului memoriei care este realizat prin dou metode de baz: memoria virtual (prin procedeul de swapping) i paginarea. Prima metod permite interschimbarea proceselor ntre memoria fizic i partiia de swap de pe hard disc, n timp ce procedeul de paginare caut s elimine sau cel puin s minimizeze fragmentarea (care apare n procesul de swapping), permind astfel proceselor s execute doar acele poriuni ale acestora care sunt prezente n memoria principal. Aceste poriuni de dimensiune fix ncrcate n memoria principal la cerere sunt cunoscute sub denumirea de pagini, iar ntregul proces este referit sub numele de sistemul de memorie virtual (bazat pe cereri de pagini).

UNIX

Alt funcionalitate de baz este aceea oferit de sistemul de intrare/ieire care ncearc s minimizeze interaciunile (specifice hardware) necesitate de nucleul UNIX. Sistemul de intrare/ieire al sistemului de operare UNIX este alctuit din: Interfaa socket, folosit pentru comunicaiile ntre procese; Driverul dispozitivelor bloc, folosit pentru comunicarea cu dispozitive orientate pe bloc (de exemplu hard discuri sau uniti de band). Transferurile efectuate de astfel de dispozitive se fac de regul n blocuri de lungime fix de 512 sau 1024 octei; Driverul dispozitivelor orientate caracter, folosite pentru comunicarea cu dispozitivelor orientate pe caracter (terminale, imprimante sau alte dispozitive care nu transfer date n blocuri de octei de dimensiune fix). n fine, un rol de baz n funcionarea sistemului UNIX l are controlul proceselor i intercomunicarea ntre procese (asigurat prin mecanismul de conduct pipe- fie prin sockets). 1.6 Implementri de UNIX Dou dintre familiile importante ale sistemului de operare UNIX sunt: UNIX System V Release 4, cunoscut de regul sub denumirea de SVR4 sau V.4, deriv din modelul original dezvoltat la Bell Laboratories, cunoscut mai trziu sub numele de UNIX Systems Laboratory (USL) i vndut apoi ctre SCO (Santa Cruz Operation) i Berkeley Software Distribution (BSD) versiunea 4.4., variant cunoscut sub denumirea de 4.4BSD. Exist ns o mare varietate de sisteme de operare UNIX, majoritatea acestora fiind similare deoarece sunt bazate pe standardul SVR4. Celelalte varieti sunt bazate pe BSD. Cele mai multe diferene apar la comenzile de administrare a sistemului. Putem spune dac lucrm pe un sistem de operare bazat pe System V sau BSD i dup comenzile de printare (lp pentru System V i lpr pentru BSD) i de vizualizare a proceselor lansate n execuie (ps ef pentru System V i ps aux pentru BSD).

UNIX Caracteristici generale

UNIX a devenit o marc nregistrat (deinut de The Open Group www.opengroup.org), de aceea fiecare productor de UNIX i-a ales propriul nume. Spre exemplu, versiunea de UNIX a firmei Sun se numete Solaris, a firmei IBM se numete AIX iar a firmei Hewlett Packard se intituleaz HP-UX. n tabelul 1.3 sunt prezentate o serie de implementri UNIX, platformele hardware pe care acestea activeaz precum i vnztorii produselor. Diferite implementri de UNIX
Tabelul 1.2
Implementarea UNIX A/UX AIX HP-UX Linux NextStep OSF/1 i Ultrix SCO OpenServer Solaris UNIXWare Platforma hardware Macintosh Staii i mainframe-uri IBM, RS/6000 Staii HP RISC Intel x86 Intel 486 sau Pentium, Next Staii DEC VAX i Alpha Intel 486 sau Pentium Staii Sun Sparc i Intel x86 Intel 486 sau Pentium Vnztor Apple Computer IBM Hewlett-Packard Corporation Shareware Next Computer Digital Equipment Corporation Santa Cruz Operation SunSoft Novell

Aceste variante de UNIX sunt concepute s ruleze pe platformele hardware specifice firmelor care le-au dezvoltat. Unele variante ns ruleaz pe mai multe platforme hardware; spre exemplu, Solaris ruleaz att pe staii de lucru Sun ct i pe staii cu microprocesoare Intel i pn la computere de tip mainframe i supercomputere. Ultimul sistem de operare derivat din kernelul UNIX l reprezint Linux-ul, conceput s ruleze pe microprocesorul Intel de la staii de lucru ieftine (chiar i 386!) pn la servere performante. Linux-ul a devenit foarte popular printre specialitii entuziati ai computerelor n necesitatea gsirii unui sistem de operare stabil i ieftin.

UNIX

Totul a plecat n 1992 de la Linus Torvalds de la Universitatea din Helsinki, Finlanda, care a fcut public Linux-ul pe Internet i a ncurajat pe toat lumea s contribuie la dezvoltarea sa. n mod periodic un grup de dezvoltatori revizuiesc i testeaz ultimile contribuii i elaboreaz o versiune stabil a sistemulului de operare. Linux este gratis conform GNU General Public Licence (www.gnu.org) dar exist o serie de companii care adaug sistemului produse de tip Office, interfee desktop, software pentru Web server, etc. precum i CD-uri de instalare i percep astfel o tax (care este, oricum, mult mai mic dect a oricrui alt sistem de operare comercial). 1.7 GNU Not UNIX, free software i open source Conceptul de free software este un concept vechi; primele calculatoare personale au ajuns prima dat n universiti, fiind instrumente de cercetare. Software-ul putea fi instalat n mod liber pe orice calculator, iar programatorii (puini, la acea vreme) erau pltii pentru activitatea de programare, nu pentru programele n sine pe care le realizau. Ceva mai trziu ns, atunci cnd calculatoarele personale au intrat n lumea afacerilor, programatorii au nceput s restricioneze drepturile de folosire a softwareului pe care l produceau, percepnd taxe de utilizare pentru copiile programelor. Numele de GNU provine de la sintagma GNU Not UNIX i s-a dorit a fi un sistem de operare precum UNIX ce este distribuit cu codul surs i poate fi copiat, modificat i redistribuit. Proiectul GNU a fost iniiat n 1983 de Richard Stallman i alii ce au pus bazele Fundaiei pentru Software Liber (FSF Free Software Foundation). Concepia lui Stallman este aceea c utilizatorii pot face ce doresc cu software-ul achiziionat, putnd face cpii ale acestuia pentru prieteni i modifica codul surs redistribuind-ul la un anumit cost. FSF stipuleaz termenul copyleft care nseamn c oricine redistribuie software free trebuie s lase n continuare libertatea de copiere i redistribuie a programului, asigurndu-se n acest fel c nimeni nu va reclama drepturi de proprietate asupra unor versiuni viitoare i nu va impune restricii la utilizarea acestuia. n acest context, termenul free nseamn libertate i nu neaprat gratis. Fundaia FSF percepe nite costuri iniiale la distribuia GNU. Redistribuitorii pot, de asemenea, s perceap taxe pentru copiile programelor n scopul profitului sau pentru acoperirea costurilor. Ideea de baz a software-ului liber (free software) este aceea c se las libertatea

UNIX Caracteristici generale

utilizatorilor s modifice i s reasambleze produsul fr nici o restricie n afar de aceea c nici ei, la rndul lor, nu pot impune restricii mai departe. Stallman crede c unul dintre rezultatele filozofiei free software este acela c mai multe programe free vor coexista mpreun provenind din alte programe free. GNU este un exemplu n acest sens; acesta a devenit un sistem de operare cnd n august 1996 i-a fost adugat un kernel (GNU Hurd i Mach). Fundaia FSF continu s dezvolte software free sub form de programe de aplicaii; un program de tip spreadsheet este acum disponibil. Sistemul de operare Linux este conceput cu componente GNU iar kernelul este dezvoltat de Linus Torvalds. Munca lui Stallman a inspirat multe contribuii de software free, iar definiia open source conine multe dintre ideile lui Stallman, putnd fi considerat drept un concept derivat. Open Source Definition a luat natere odat cu distribuia Debian GNU/Linux. Sistemul de operare Debian, o variant de Linux popular i n zilele noastre, a fost construit n ntregime pe baz de software free. Cu toate acestea, deoarece avea alte licene diferite de copyleft (care era prin definiie free), Debian a avut ceva probleme n definirea faptului c este free. Cu timpul au fost elaborate o serie de reguli definite n Debian Free Software Guidelines, document ce definete practic software-ul open source. Partizan mptimit al software-ului free, Eric Raymond a scris un articol intitulat The Cathedral and the Bazaar (Catedrala i bazarul) n ncercarea de a explica ideea de free software. n acest articol, Raymond descrie software-ul comercial ca fiind dezvoltat n stilul unei catedrale, izolat de marea majoritate a dezvoltatorilor independeni, n timp de software-ul free se construiete n stil de bazar, oferind un loc de ntlnire pentru oricine dorete acest lucru. n articol se susine ideea c modelul de bazar este superior deoarece un numr mult mai mare de utilizatori i programatori contribuie la dezvoltarea de software mai bun i ntr-un timp mai scurt. Toi cei care doresc s contribuie la scrierea codului pentru proiect sunt binevenii, iar cel mai bun cod va fi ales pentru includerea n proiectul final.

GNU s-a vrut iniial s fie o alternativ la versiunile comerciale de UNIX. Acest lucru nu s-a ntmplat nc, dar Richard Stallman i ali programatori muncesc n continuare pentru acest ideal. Paradoxal este c primele succese nregistrate de GNU au fost aplicaii adiionale sistemelor proprietare UNIX. Componente GNU precum GNU Emacs, GCC (GNU C Compiler) i bash (un nlocuitor free pentru Bourne Shell) sunt instalate astzi implicit pe majoritatea variantelor de UNIX existente.

UNIX

Articolul The Cathedral and the Bazaar a avut un mare succes i o mare influen ulterior: oficialii de la Netscape au dezvluit codul surs al vestitului lor browser web (Netscape Navigator) n sperana c dezvoltatori independeni l vor face mai bun. Mai mult, Netscape a nceput s l consulte pe Raymond cu privire la integrarea firmei n curentul free software. La nceputul anului 1998, Eric Raymond s-a ntlnit cu o serie de susintori ai conceptului de free software pentru a discuta modaliti prin care s ncurajeze i alte companii precum Netscape s li se alture. Printre ideile vehiculate atunci, s-a stabilit c termenul free (care n englez are un sens dual, de liber, dar i de gratis) sun anti-comercial, drept pentru care au propus termenul de open source drept nlocuitor. Netscape a folosit termenul de open software atunci cnd a anunat distribuirea public a codului surs pentru Netscape Navigator iar faimoasa editur OReilly and Associates a adoptat acest termen n materialele sale promoionale. Cu ajutorul acestor dou mari firme, termenul de open source a nceput s aib mare succes. Similar cu acest concept a luat natere i ideea de open hardware cu privire la dispozitivele i interfeele hardware. Acest concept ns nu a avut acelai succes ca ideea de software open source, dar el nc exist i poate fi studiat la adresa web http://www.openhardware.org/. 1.8 Comenzi i interfee grafice n UNIX Sistemul de operare UNIX posed peste 350 de comenzi de sistem i programe utilitare folosite pentru administrarea sistemului (adugare de noi utilizatori, noi dispozitive hardware, etc.), administrarea sistemului de fiiere (creare, editare, copiere, tergere, printare, etc.), asigurarea conexiunii la reea i comunicrii cu alte sisteme i oferirea de ajutor. Interpretorul de comenzi (shell-ul) preia comenzile i le execut. Unele dintre comenzi sunt nglobate n interpretor, precum comanda cd (change directory) dar marea majoritate a comenzilor se afl pe hard-disc, de regul n directoare specifice, precum directorul bin (prescurtarea de la binary code). Toate sistemele de operare moderne au un sistem grafic de interfa cu utilizatorul (GUI Graphical User Interface); interfaa grafic Macintosh, Microsoft Windows sau UNIX CDE sunt exemple de astfel de interfee.

UNIX Caracteristici generale

Interfaa grafic CDE (Common Desktop Environment) Firma Sun Microsystems a fost una dintre primele firme ce a utilizat o interfa grafic pentru sistemul de operare UNIX. n anul 1993 s-a format un consoriu de firme ce comercializau sisteme de operare UNIX, cu scopul de a dezvolta un mediu de interfa grafic, integrat, standard i funcional. Printre membrii acestui consoriu se numrau: Hewlett-Packard, IBM, Novell, Sun Microsystems, companii i membri ai fundaiilor OSF (open Software Foundation), X/Open i X Consortium. CDE este bazat pe standardul Motif, oferind o serie de caracteristici generale, comune cu alte medii desktop, printre care: ofer un mediu GUI de interfa ntre utilizator i sistemul de operare; include meniuri ce pot fi selectate de ctre utilizatori i permite rularea unor programe fr a fi necesar scrierea comenzii la linia de comand; ofer peste 300 de programe utilitare i instrumente; permite utilizatorilor s controleze mai multe documente i aplicaii pe ecran n acelai timp; controleaz activitile din ferestre att cu ajutorul mouse-ului ct i cu ajutorul tastaturii. Ecranul CDE poate fi observat n figura 1.4, cu principalele programe i instrumente de lucru: calendar, administrare de fiiere, e-mail, administrarea printrii etc.

UNIX

Figura 1.4 Interfaa grafic CDE

Interfaa grafic GNOME O alt interfa grafic mai recent n lumea UNIX este GNU Network Object Model Environment (GNOME) i face parte din proiectul GNU open source. GNOME (vezi figura 1.5) posed un mediu grafic uor de utilizat pentru utilizator precum i un cadru propice de dezvoltare a aplicaiilor de asemenea, fiind software open source, este gratis. Interfaa GNOME (http://gnome.org) este inclus n majoritatea versiunilor de UNIX BSD precum i n distribuiile de GNU/Linux. De asemenea, GNOME funcioneaz i cu Sun Solaris (http://www.sun.com/gnome). GNOME posed o interfa intuitiv, uor de utilizat, combinnd o organizare complex a desktop-ului cu faciliti de navigare ce permit un acces uor la informaii.

UNIX Caracteristici generale

Figura 1.5 Interfaa grafic GNOME

1.9 Documentarea n UNIX Fie c este vorba despre un nceptor sau despre un utilizator avansat n utilizarea UNIX-ului, totdeauna este util consultarea paginilor de help (care n UNIX se numesc pagini de manual, sau man pages). Dar s vedem cum se poate obine ajutor n UNIX atunci cnd vrem s aflm cum se utilizeaz o comand ? Cea mai la ndemn soluie este consultarea paginilor de manual, acest lucru fcndu-se prin utilizarea comenzii man. A doua soluie ar fi utilizarea resurselor Internet. n continuare vom prezenta mai pe larg aceste dou opiuni.

UNIX

1.9.1 Utilizarea comenzii man Manualul programatorului UNIX (paginile de manual) descriu toate detaliile pe care trebuie s le cunoatem pentru a utiliza comenzi, a programa sau a administra sistemul. De regul, paginile de manual sunt instalate automat odat cu instalarea sistemului. Paginile de manual se prezint sub form de text, fr grafice, desene, etc. Pentru a accesa paginile de manual trebuie s utilizm comanda man la prompter. Paginile de manual sunt deosebit de utile fie atunci cnd am uitat sintaxa unei comenzi sau dorim informaii n plus cu privire la acea comand. Paginile de manual ofer informaii cu privire la sintaxa general a comenzii, descrierea funcionalitii acesteia, opiunile i argumentele utilizate i exemple de folosire a comenzii. Unele dintre comenzi nu vor funciona la fel n cadrul shell-urilor diferite; n acest caz se va face referire la shell-ul Bourne (sh), shell-ul Korn (ksh), shell-ul Bourne Again Shell (bash) sau shell-ul C (csh).

Figura 1.6 Listing pentru comanda man ls

UNIX Caracteristici generale

S vedem n continuare cteva moduri n care poate fi utilizat comanda man: Ofer informaii cu privire la o comand anume, $ man nume unde nume este denumirea complet a comenzii respective n figura 1.6 avem ca exemplu o parte din listing-ul obinut n urma apelului comenzii man ls (informaii cu privire la comanda ls). O alt posibilitate de utilizare a comenzii man este aceea n care se folosete o anumit seciune din manualul UNIX, avnd n vedere c paginile de manual sunt structurate pe mai multe seciuni. Dintre aceste seciuni, cele mai importante sunt: seciunea 1 - comenzi utilizator, seciunea 2 - apeluri de sistem, seciunea 3 - apeluri de biblioteci. Comenzile precum man(1) sunt grupate deci n seciunea 1.
$ man -s nr_sectiune nume

Ofer informaii cu privire la o comand cu numele specificat de nume, n seciunea nr_sectiune

Observaie Aceast comand poate s difere de la un sistem la altul. Modalitatea de apel prezentat mai sus se refer la Sun Solaris. Pe un sistem FreeBSD ns, comanda poate fi apelat n felul urmtor, fr a se specifica opiunea s: man nr_sectiune nume. n cazul n care nu tim numele comenzii, putem apela comanda man folosind opiunea -k, prin care facem o cutare dup un cuvnt cheie.
$ man -k cuvant_cheie

Ofer informaii cu privire la comenzi referitoare la cuvntul cheie specificat

Exemplul urmtor ne arat cum am putea cuta informaii cu privire la modificarea proprietarului (owner) unui fiier:
$ man -k owner chown(2), fchown(2), lchown(2) - change owner and group of a file chown(8) - change file owner and group $

UNIX

Listingul anterior conine o serie de referine care conin cuvntul cheie owner. Pe unele sisteme UNIX acest lucru se poate face utiliznd comanda apropos, ca n exemplul urmtor:
$ apropos owner chown(2), fchown(2), lchown(2) - change owner and group of a file chown(8) - change file owner and group $

De asemenea, se pot afia informaii generale n legtur cu o comand specificat folosind whatis. Comanda whatis se poate folosi astfel:
$ whatis comanda

Afieaz linia de nceput din cadrul paginii de manual referitoare la comanda specificat

Comanda whatis poate fi util n cazul n care ne reamintim comanda dar nu mai tim la ce se folosete. n mod normal, listingul obinut n urma unei comenzi man se poate ntinde pe multe pagini. n acest sens, este util s cunoatem cteva taste specifice utilizate pentru navigarea n cadrul paginilor listate pe ecran. n tabelul 1.7 sunt prezentate cteva taste folosite la navigarea prin listingul paginilor de manual. Taste utilizate pentru deplasarea n cadrul paginilor de manual
Tabelul 1.7

Tasta SPACE Tasta RETURN Tasta b Tasta f Tasta q /sir_caractere Tasta n Tasta h

Determin defilarea ecran cu ecran Determin defilarea unei singure linii de ecran napoi cu un ecran (b - back) nainte un ecran (f - forward) Se ncheie listarea i comanda man (q - quit) Se caut irul de caractere specificat Se caut urmtoarea apariie a irului de caractere (n - next) Se afieaz informaii privind posibilitile de deplasare n listing (h - help)

UNIX Caracteristici generale

1.9.2 Utilizarea referinelor Internet Pe Internet exist o serie ntreag de documentaii cu privire la sistemul de operare UNIX. n tabelul 1.8 sunt prezentate cteva adrese web utile ce conin astfel de documentaii. Resurse Internet pentru diverse variante de UNIX
Tabelul 1.8
URL http://www.FreeBSD.org/cgi/man.cgi http://docs.hp.com/index.html http://docs.sun.com/ http://www.ibm.com/servers/aix/ http://support.sgi.com/search/ http://doc.sco.com/ Varianta de UNIX BSD HPUX 10 & 11 SunOS, Solaris IBM AIX SGI IRIX/Linux UnixWare & SCO

Dintre aceste adrese web, prima (http://www.FreeBSD.org) merit o atenie deosebit, deoarece prezint pagini de manual i pentru alte versiuni, cum ar fi: BSD, 2.9.1 BSD, 2.10 BSD, 2.11 BSD BSD 0.0, 386BSD 0.1 BSD NET/2, 4.3BSD Reno, 4.4BSD Lite2 FreeBSD 1.0-RELEASE - FreeBSD 4.0-RELEASE FreeBSD 5.0 FreeBSD Ports Linux Slackware 3.1 Minix 2.0 NetBSD 1.2 - NetBSD 1.4 OpenBSD 2.1 - OpenBSD 2.6 Plan 9 RedHat Linux/i386 4.2, 5.0, 5.2,etc. SunOS 4.1.3, 5.5.1, 5.6, 5.7 ULTRIX 4.2 UNIX Seventh Edition