Documente Academic
Documente Profesional
Documente Cultură
PROIECT
Dezvoltarea Aplicatiilor sub Unix
Student:
timp ce restul codului era scris n C. Grupul de dezvoltare a sistemului a conceput iniial munca n limbaj de nivel nalt, 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.
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).
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 (shellul) 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.
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. Ecranul CDE poate fi observat n figura de mai jos, cu principalele programe i instrumente de lucru: calendar, administrare de fiiere, e-mail, administrarea printrii etc.
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 u or 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 informa ii.
Documentarea n UNIX Fie c este vorba despre un ncep tor 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. 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 utiliz m 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).
S vedem n continuare cteva moduri n care poate fi utilizat comanda man: Ofer informaii cu privire la o comand anume, unde nume este denumirea complet a $man nume comenzii respective
n figura 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. Ofer informaii cu privire la o $ man -s nume 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. nr_sectiune
Unele dintre directoarele UNIX sunt mai interesante dect altele; existena i coninutul acestor directoare depinde de varianta de UNIX utilizat. Nu exist practic reguli foarte stricte cu privire la localizarea fiierelor. Spre exemplu, pentru a gsi anumite fiiere sistem binare, putem cuta ntr-unul din directoarele: /bin, /usr/bin, /sbin, /usr/sbin i chiar n /etc. Spaiul dedicat stocrilor temporare este localizat, de regul, n directorul /tmp. Acest director poate fi accesat pe majoritatea sistemelor ca /tmp, /usr/tmp sau /var/tmp. Dou dintre cele trei referine vor fi directoare reale iar cea de-a treia va fi o legtur simbolic (symlink) ctre una din primele dou. Varianta de UNIX utilizat va influena care dintre aceste referine este legtura simbolic. Se recomand totui ca aceste directoare s fie reconfigurate astfel nct o singur referin s fie un director real, iar celelalte dou s fie legturi simbolice ctre acest director. Mai mult, acest director se recomand a fi montat separat. Deoarece utilizatorii pot scrie fiiere de dimensiuni mari n spaiul temporar /tmp, montarea separat asigur protecia directoarelor / i /usr fa de umplerea cu fiiere temporare. O regul general valabil n acest sens este aceea c utilizatorii nu trebuie s aib drept de creare i tergere de fiiere n locaiile / i /usr. Directorul /tmp trebuie s aib permisiuni de acces 1777, nu 777. Dreptul de acces 777 permite ca orice utilizator s aib drepturi depline n directorul /tmp, n timp ce 1777 seteaz aa-numitul sticky bit ce nseamn c directorul poate fi modificat sau ters doar de ctre proprietar. Directorul /usr poate fi montat separat sau poate fi subdirector al lui /. Subdirectoarele sale pot fi: bin fiiere binare include fiiere pentru programare lib biblioteci de programe
local pachete software locale, biblioteci, fiiere include, fiiere binare (de regul /usr/local se monteaz separat pentru a nu umple directorul /usr). sbin fiiere de sistem binare share informaie partajat, inclusiv pagini de manual. Directorul /var poate fi montat separat (ceea ce este recomandat) sau poate fi subdirector al lui / sau /usr. Subdirectoarele sale pot fi: adm stocare fiiere log (Solaris) crash diagnostic n situaii de oprire brusc log stocare fiiere log (Solaris i Linux Red Hat) mail zona de stocare pentru pota electronic spool zona de spool pentru printare, utilitarul cron i alte servicii yp zona de stocare pentru fiierul de configurare NIS.
Partiii Partiiile reprezint modalitatea de organizare a spaiului de pe disc la nivel jos. Partiiile sunt independente de sistemul de operare; un sistem de operare solid recunoate diviziunile la nivel jos de pe disc i adreseaz fiecare partiie ca pe un echipament logic separat. Toate informaiile cu privire la partiii sunt localizate n aa-numita tabel de partiii (partition table), stocat n eticheta de disc sau n header-ul de volum (volume header) al discului fizic. Aceasta este modalitatea prin care discurile pstreaz propriile informaii referitoare la modalitatea de aranjare a datelor i de aceea ele pot fi transferate de la un calculator la altul fr riscul pierderii informaiei. De asemenea, partiiile permit existena mai multor sisteme de operare pe acelai calculator, instalate n partiii diferite. Iniial, exista o coresponden strict ntre partiii i sistemele de fiiere, partiiile fiind considerate drept
containere pentru sistemele de fiiere. Acum un sistem de fiiere se poate ntinde pe mai multe partiii prin utilizarea volumelor logice, astfel nct partiiile pot fi considerate elemente de baz pentru stocarea informaiei n loc de a fi interpretate drept simple containere. Deoarece partiiile sunt diviziuni la nivel hardware ale discurilor, ele pot oferi o protecie la nivel jos mpotriva supra-ncrc rii. Utilizndu-se anumite politici de partiionare, unele dintre partiii pot fi supra-ncrcate fr a afecta performanele generale ale sistemului; n orice caz, umplerea unei partiii nu are cum s afecteze spaiul altei partiii.