Administrarea Sistemului de Fisiere In Unix Linux
PROIECT DE DIPLOMĂ
ADMINISTRAREA SISTEMULUI DE FIȘIERE ÎN UNIX-LINUX
CUPRINS
Introducere
Capitolul I.Noțiuni generale privind sistemele de Operare Unix
I.1.Scurt istoric
I.2. Unix – Sistem de Operare pentru rețea
I.3. Arhitectura Unix
I.4. Distribuții Unix
I.5. Funcționalități Unix
I.6. Implementări de Unix
I.7. Comenzi și interfețe grafice în Unix
I.7.1.Interfața grafică CDE (Common Desktop Environment)
I.7.2. Interfața grafică Gnome
Capitolul II.Sistemul de fișiere în Unix
II.1. Generalități
II.2. Partiții
II.2.1 Spațiul de Swap
II.3. Tipuri de fișiere
II.3.1. Tipuri de fișiere Unix
II.4.Crearea unui sistem de fișiere
II.4.1. Crearea și distrugerea fișierelor
II.5. Operațiile pe fișiere
Capitolul III.Administrarea sistemului de fișiere în Linux-Fedora
III.1. Linux
III.2. Fedora
III.3.Administrarea fișierelor
III.3.1.Adăugarea de useri utilizând tool-ul grafic system-config-user
Concluzii
Bibliografie
Introducere
Componenta software a unui calculator are rolul de a stoca,procesa și regăsi informațiile,fiind divizată în programe de sistem sau sisteme de operare și în programe de aplicație care rezolvă problemele utilizatorului.
Un Sistem de Operare este un sistem de programe care gestionează resursele hardware din cadrul unui Sistem de Calcul și realizează suportul de bază pe care programele de aplicație pot fi scrise și executate folosind eficient resursele Sistemului de Calcul.
Sistemul de Operare este o colecție de programe care are două componente principale:
-nucleul sau programele de bază se încarcă pe Hard Disc în memoria internă la pornirea Sistemului de Calcul.
-comenzile sau programele utilitare sunt cele care realizează servicii pentru utilizarea eficientă a resurselor Sistemului de Calcul.
Funcția de bază a Sistemului de Operare este ,,ascunderea” complexității hardware prin furnizarea unui set de instrucțiuni mult mai accesibil și degrevat de detalii pentru comanda dispozitivelor periferice.
Funcțiile generale ale unui Sistem de Operare sunt urmatoarele:
-funcția de comandă și control a execuției programelor utilizatorilor;
-funcția de gestiune a memoriei evidențiazăresursele de memorie utilizate,realizează alocarea/dealocarea memoriei și asigură un sistem de protecție a datelor și programelor;
-funcția de gestiune a procesorului analizează și decide ce proces va utiliza procesorul realizând alocarea și ulterior dealocarea acestuia la expirarea cuantei de timp sau la finalizarea execuției programului,prelucrează și modifică starea fișierelor și programelor;
-funcția de gestiune a dispozitivelor periferice,inițializează și verifică starea resurselor Sistemului de Calcul,formatează Hard Disk-ul,formatează Floppy Disk-ul,definește structura sistemului de fișiere și asigură partajarea resurselor Sistemului de Calcul;
Conceptele sistemului de operare:
Câteva dintre trăsăturile mai importante referitoare la Sistemele de Operare sunt:
-Sistemul de Operare este o mașină virtuală(extinsă),adică el transformă operațiile de nivel înalt efectuate de programator în operații reale care țin seama de detaliile de programare a dispozitivelor hardware.
-Sistemul de Operare este administrator de resurse,el gestionează procesele,memoriile,dispozitivele periferice,alocându-le pe rând programelor care sunt în competiție pentru a le ocupa.
-Sistemul de Operare are o interfață cu programele utilizator realizată printr-o mulțime de „instrucțiuni extinse” („extended instructions”) numite „apeluri sistem” („system call”) aparținând Sistemului de Operare. Cele două concepte importante cu care operează apelurile de sistem sunt:-procesul și fișierul
Utilizatorii se situează deasupra Sistemului de Operare :i folosesc facilitățile oferite de acesta pentru a-și defini,realiza și exploata propriile programe de aplicație.
Interfața dintre Sistemele de Operare și programele utilizator este definită de „apelurile sistem” prin intermediul cărora se pot crea,șterge și utiliza diferite utilitare ale Sistemelor de Operare.Cele mai importante sunt „procesele” și „fișierele”.Exemplificările sunt orientate către MS-DOS și UNIX.
Procesul:
Conceptul de bază în orice Sistem de Operare este procesul.Un proces este un program în execuție care conține:
Programul executabil
Date și stiva
Program”counter”
„poiter” de stivă și alți regiștri
toate formând informația necesară execuției unui program.
Pentru a înțelege în mod intuitiv rolul proceselor este bine să ne gândim la sistemul”time sharing”.În acest sistem Sistemul de Operare periodic decide să oprească execuția unui proces și pornirea execuției altui proces,de exemplu deoarece primului dintre ele i-a expirat cuanta de timp alocată de unitatea centrală în secunda trecută.Când un proces este temporar oprit,el va trebui mai târziu repornit din starea în care a fost oprit.Aceasta înseamnă că toate informațiile despre proces trebuie să fie salvate explicit pe durata suspendării.De exemplu dacă procesul are câteva fițiere deschise,poziția exactă din fișier unde era procesul,trebuie să fie înregistrată undeva,astfel încât la restartare să se poată citi din el.În multe Sisteme de Operare aceste informații despre proces,altele decât conținutul propriu spațiului de adresă,este memorat în tabela Sistemului de Operare(„table process”),care este o arie sau listă înlănțuită de structuri,una pentru fiecare proces curent existent în execuție.
Un proces poate crea la rândul lui alte procese formându-se o structură arborescentă.
În sistemele de operare de multiprogramare,cum este Unix,este important să se păstreze urma fiecărui proprietar utilizator de sistem.În fiecare sistem,fiecare utilizator autorizat îi este asigurat un „uid” („user identification”).Fiecare proces are asigurat uid-ul proprietarului.Simular, utilizatorii pot fi divizați în grupuri având câte un identificator de grup gid („group identification”).Uid si gid joacă un rol în protecția informației.
Fișierele:
O altă categorie vastă de apeluri sistem sunt legate de fișierele sistem.O funcție majoră a Sistemului de Operare este să ascundă particularitățile hard disk-ului și a altor dispozitive periferice. Apelurile de sistem sunt necesare la crearea,schimbarea,mutarea,citirea și scrierea fișierelor.Înainte ca un fișier să poată fi citit,el trebuie deschis și după aceea el poate fi citit și ulterior închis,așa că apelurile sunt provocate de aceste operații.
Ca și procesele fișierele sunt organizate ca arbori, dar similitudinea se oprește aici.Ierarhia de procese,de obicei nu este foarte adânc(uzual maxim 3),în timp ce ierarhia de fișiere poate fi mult mai adâncă.
Evoluția și clasificarea Sistemelor de Operare:
O prezentare succintă a evoluției sistemelor de operare facilitează înțelegerea caracteristicilor calculatorului personal. În fost standardizat protocolul TCP/IP care reprezintă protocolul de transmisiune a datelor în rețelele de calculatoare cu utilizarea sistemelor de operare de tipul BSD Unix, adică în această perioadă a început dezvoltarea sistemelor de operare Unix cu utilizarea protocolului TCP/IP. Acest protocol poate funcționa individual în orice tip de rețea. Tot în această perioadă au fost dezvoltate cîteva versiuni a sistemului Unix (Unix System III, Unix System IV). Pe lîngă acestea se mai dezvoltă sistemele de operare MS DOS a firmei Microsoft, PS DOS a firmei IBM și NOVELDOS a firmei Novel.
Primul sistem de operare DOS pentru calculatoarele personale era MSDOS 1.0 care lucra cu 160Kb, apoi MSDOS 2.0 care împreună cu IBM au format o versiune nouă care avea mai multe funcții. De exemplu: MSDOS 1.1 ce permitea utilizarea a 100Mb din memoria ROM. În 1983 se dezvoltă PCDOS firmei IBM, în 1984 au apărut minicalculatoarele pe baza procesorului 286, pe baza căruia s-a dezvoltat MSDOS 3.0 bazat pe utilizarea simultană atît pe memoria ROM, cît și a memoriei RAM. În 1985 apare versiunea MSDOS 3.1 care lucrează cu rețelele Microsoft și tot în acest an apare Microsoft Windows.
Sistemul MSDOS a fost popular 3-4 ani după care pentru prima dată se utilizează Microsoft Windows 2.0. În 1988 apare versiunea Microsoft Windows 2.1, iar în 1990 Microsoft Windows 3.0. În 1995 apare Windows 98 avînd funcții adăugătoare de utilizare a rețelelor locale și a rețelelor globale. Apoi apare versiunea Windows 2000, iar versiunea actual utilizată e Windows XP care e destinată pentru o administrare mai eficientă a rețelelor de calculatoare, precum și securizarea accesului nesancționat.
Sistemele de Operare pot fi clasificate :
a) dupa structura internă în patru grupe:
-sisteme compacte(monolitice,exemplu CP/M, MS-DOS)
-sisteme ierarhizate(pe cinci sau șase niveluri)
-sisteme pe mașini virtuale (sisteme bazate pe „time-sharing”)
-sisteme pe model „clent-server”
b) în funcție de modul de alocare al resurselor:
-cu resurse alocate
-cu resurse distribuite
c) după aria de aplicații pe care o satisface:
-Sisteme de Operare pentru prelucrare pe loturi
-Sisteme de Operare în timp real
-Sisteme de Operare pentru multiprogramare
-Sisteme de Operare pentru prelucrare paralelă(multiprocesor)
-monoutilizator
-multiutilizator
e) după modul de prelucrare:
-sisteme monotasking
-sisteme multitasking
Capitolul I.Noțiuni generale privind sistemele de Operare Unix
Sistemul de Operare Unix,împreună cu suita de protocoale TCP/IP pentru comunicația în rețea și cu sistemul de fișiere NFS constituie o soluție convenabilă pentru constituirea unui sistem complet de operare în rețea.Dezvoltat inițial î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 sfârșitul anilor 60 și începutul anilor 70.Sistemele din familia Unix pot fi rulate pe orice tip de calculator,plecând de la calculatoarele personale până la super-calculatoarele cu configurații extrem de avansate,utilizate îndeosebi în domeniul militar și cel bancar. De asemenea,toate variantele de Unix sunt multitasking[http://translate.google.ro/translate?hl=ro&sl=en&u=http://en.wikipedia.org/wiki/Computer_multitasking&prev=/search%3Fq%3Dmultitasking%26biw%3D1366%26bih%3D667],domeniu în care Unix are o reputație deosebită.
Numele său derivă de la un jos de cuvinte al unui alt proiect Bell Labs/MIT din același 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 călătorie în spațiu pentru computerul General Electric.Dup{ sistarea proiectului,acesta a rescris jocul împreună cu colegul său 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.Inițial,noul sistem de operare a fost numit de către Thompson UNICS (Uniplexed Information and Computing Service),apoi numele său s-a schimbat în Unix iar jocul de călătorie spațială a fost modificat pentru a rula sub UNIX.
Cu toate îmbunătățirile aduse de-a lungul timpurilor,de la primele implementări de Unix și până acum,toate variațiile sale urmăresc într-o mare măsură arhitectura și funcționalitatea originală Unix.
I.1.Scurt istoric
Pentru a înțelege mai bine caracteristicile acestui sistem de operare,avantajele și dezavantajele sale,este util să cunoaștem câteva lucruri legate de istoria sa.
După cum am spus mai înainte,Unix a fost conceput inițial la Bell Laboratories USA drept un proiect privat de cercetare,proiect început în 1969 de către un mic colectiv de cercetători.Scopul acestui colectiv de cercetare era acela de a conistem de operare viabil.Inițial,noul sistem de operare a fost numit de către Thompson UNICS (Uniplexed Information and Computing Service),apoi numele său s-a schimbat în Unix iar jocul de călătorie spațială a fost modificat pentru a rula sub UNIX.
Cu toate îmbunătățirile aduse de-a lungul timpurilor,de la primele implementări de Unix și până acum,toate variațiile sale urmăresc într-o mare măsură arhitectura și funcționalitatea originală Unix.
I.1.Scurt istoric
Pentru a înțelege mai bine caracteristicile acestui sistem de operare,avantajele și dezavantajele sale,este util să cunoaștem câteva lucruri legate de istoria sa.
După cum am spus mai înainte,Unix a fost conceput inițial la Bell Laboratories USA drept un proiect privat de cercetare,proiect început în 1969 de către un mic colectiv de cercetători.Scopul acestui colectiv de cercetare era acela de a concepe un sistem de operare care să corespundă urmatoarelor exigențe:
• 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 decât pe un calculator anume.Odată cu nașterea 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 fără un efort prea mare de programare.În aceeași perioadă,compania AT&T (firmă mamă pentru Bell Laboratories) a fost declarată monopol de Comisia Federală de Comerț a SUA.Drept compensație, Bell Laboratories a oferit gratis sistemul de operare Unix universităților din SUA,astfel încât acesta a devenit extrem de popular în mediul academic.Cu timpul,Unix s-a răspândit și în mediul comercial,în care studenții aplicau ceea ce au învațat pe băncile universităților.
Spre deosebire de majoritatea producătorilor 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 inițial munca în limbaj de nivel înalt,apoi odată cu dezvoltarea sa,au apărut mici schimbări ce au fost făcute în kernel și în limbajul de programare pentru a se definitiva Unix-ul.
În cadrul acestei evoluții continue,kernelul și software-ul aferent au fost extinse până când 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 Făcut public și disponibil universităților de pe întreg teritoriul SUA.Programatorii de la Universitatea Berkeley din California au făcut modificări substanțiale codului sursă original și astfel s-a născut BSD (Berkeley Software Distribution) Unix. Această nouă versiune de Unix a fost făcută cunoscută la rândul ei programatorilor din SUA care au adăugat instrumente și cod.Cea mai importantă îmbunătățire adusă sistemului de operare de către programatorii de la Berkeley a fost adăugarea software-ului de rețea ce a permis sistemului de operare să funcționeze într-o rețea locală.Varianta BSD UNIX a devenit extrem de populară printre producătorii de computere,dintre care:Hewlett Packard, Digital Equipment Corporation și Sun Microsystems.
Î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ă generație a sistemului de operare Unix a fost creată în scopul combinării celor mai bune caracteristici din varianta BSD cât ș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 varietăți de Unix.
I.2. Unix – Sistem de Operare pentru rețea
Ca un vechi și adevărat sistem de operare pentru rețea,Unix oferă facilități 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 mulți utilizatori ce pot astfel partaja aceleași resurse ale sistemului.Sistemul de operare are grijă de fiecare resursă a computerului,fie că e vorba de memoria RAM,microprocesor,hard disk,scanner sau imprimantă,permițând partajarea fiecăreia dintre acestea.Fiecare program aflat în execuție poartă numele de proces sau task.Sistemul de operare Unix ține evidența mai multor procese simultan – această capacitate a sa este denumită multitasking.Acest fapt permite mai multor aplicații să ruleze în același 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 rețelei.Cel mai simplu exemplu în acest sens este acela în care un utilizator poate accesa fișiere și aplicații de pe hard disk-ul altui computer situat în altă parte a rețelei de calculatoare.
În fine,sistemele de operare pentru rețea au implementate sisteme de securitate foasrte sigure;există multe alte facilități de asigurare a securității în afară de cea clasică nume-de-utilizator/parolă.De regulă,facilitățile de asigurare a securității sistemului pot fi active sau nu,în funcție de politicile de securitate implementate la nivelul companiei respective.
I.3. Arhitectura Unix
Sistemul de operare Unix este un sistem de operare structurat în principal pe următoarele două nivele:
• Programe sistem Unix;
• Nucleul (denumit kernel) sistemului Unix
Majoritatea programelor sistem și kernel sunt scrise în C,permițând portabilitatea pe alte platforme hardware ce posedă un compilator C.Programele de sistem Unix oferă funcționalitatea cerutăde utilizatori prin inițierea unui sistem de apeluri către nucleul sistemului Unix.Nucleul îndeplinește aceste cereri interacționând cu nivelul hardware și returnând 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ă interacționeze;în interiorul nucleului majoritatea codului specific hardware se limitează la driverele echipamentelor.
Nucleul reprezintă centrul sistemului de operare și are rolul de a oferi funcționalitățile de bază necesare funcționării computerului.Nucleul este apropiat de microprocesor și hardware,fiind un fișier executabil ce este încărcat în memorie atunci când 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 încărcarea în memorie,nucleul începe execuția următoarelor funcții:
• Administrarea echipamentelor,a memoriei și a proceselor;
• Asigură controlul funcțiilor de transmisie a informațiilor între programele de sistem și echipamentele hardware;
• Administrează entități precum spațiul de swap, demonii și sistemul de fișiere.
♯ Spațiul de swap reprezintă o porțiune specială de pe hard-disc ce este folosit de către kernel pentru procesare.Bucăți ale programelor ce se află în execuție pot fi interschimbate între memoria RAM și hard-disk ori de câte ori este nevoie.Acest mecanism de extindere a memoriei RAM a sistemului prin utilizarea spațiului de pe hard-disk poartă denumirea de memorie virtuală.
♯ Demonii sunt programe (sau procese) ce îndeplinesc un anumit rol; ei sunt procese speciale care își încep execuția după încărcarea sistemului de operare în memorie.După aceea,demonii așteaptă să ruleze anumite sarcini în sprijinul sistemului de operare,putând fi porniți manual sau în mod automat. Un exemplu de proces demon este dtlogin care determină apariția 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 de NLM (Netware Loadable Modules) din sistemul de operare Novell Netware.
♯ Sistemele de fișiere reprezintă modalitatea de organizare a directoarelor,subdirectoarelor,fișierelor pe hard-disk.Sistemele de fișiere pot fi situate atât local (pe calculatorul local) cât și la distanță (pe alt calculator din rețea,de regulă un așa numit server).
Programele și utilitarele sistemului,precum și aplicașiile utilizatorilor sunt independente de hardware și singura cerința pentru acestea este să inițieze apeluri standardizate de sistem către nucleul Unix.Cele mai multe dintre funcțiile nucleului Unix se ocupă de managementul fișierelor sau al anumitor tipuri de dispozitive.Pentru a simplifica și standardiza apelurile de sistem,Unix interpretează echipamentele ca fiind tipuri speciale de fișiere.Poate cea mai importantă caracteristică a sistemului Unix este aceea a disponibilității codului sursă,ceea ce permite multor programatori să îmbunătățească și să modifice aceste sisteme de operare de-a lungul anilor.Cele două proprietăți remarcabile ale sistemului de operare Unix sunt:
• Portabilitatea – aceasta se manifestă în două moduri: în primul rând,programele scrise pentru Unix sunt implicit portabile pe toate platformele Unix,depinzând de nivelul de similaritate între nucleele și programele de sistem Unix;
• Modularitatea – Unix este un sistem dinamic,a cărui funcționalitate poate fi îmbunătațită prin adăugarea de noi programe utilitare; de asemenea,este posibilă și modificarea nucleului și recompilarea sa pentru un sistem de operare mai bun.
Arhitectura generală și cele mai importante funcții ale nucleului Unix sunt prezentate în figura de mai jos.
Fig I.3.1. Arhitectura generală a sistemului de operare Unix
I.4. Distribuții Unix
Sistemele Unix actuale se bazează pe trei ramuri originale-Unix System V(produs de cei de la AT&T la mijlocul anilor 1980),BSD(ramură desprinsă din proiectul AT&T la sfârșitul anilor 1970) și respectiv GNU/Linux(produs ca replică gratuită și open-source la celelalte două ramuri-nucleul e dezvoltat de Linus Torvalds începând cu 1991, iar o mare parte din aplicații sunt date de Proiectul GNU). Fiecare distribușie de astăzi se bazează pe una din aceste ramuri, dar a preluat și anumite caracteristici de la celelalte.
Principalele tipuri de distribuții Unix aflate în producție la ora actuală sunt:
Solaris – produs de firma Sun Microsystems. Este distribuit atât în versiune closed-source cât și în versiune open-source numită Open Solaris. Rulează pe arhitectura SPARC,x86 și x86-64.
HP-UX – produs de firma HP. Rulează pe arhitectura PA-RISC și IA-64
AIX – produs de firma IMB. Rulează pe arhitectura PowerPC și Power
IRIX – produs de firma SGI. Rulează pe arhitectura MIPS
MacOS X – produs de compania Apple pentru calculatoarele Macintosh. Este software comercial, bazat pe o combinație de FreeBSD, nucleul Mach și tehnologii specifice Apple. Rulează pe arhitectura PowerPC și x86.
Linux (sau GNU/Linux) – produs de multiple organizații într-o gama largă de distribuții, open-source în baza licenței GPL și disponibil gratuit. Rulează pe diverse arhitecturi, incluzând x86, x86-84, IA-64, PowerPC, MIPS, PlayStation 2. Dintre distribuțiile Linux cele mai importante amintim: Debian GNU/Linux, Fedora, Gentoo, Knoppix, Mandriva Linux, Red Hat Linux, Slackware, SuSE Linux și Ubuntu Linux.
BSD – astăzi open-source și disponibil în trei distribuții principale: FreeBSD, NetBSD și OpenBSD. NetBSD rulează pe 54 de arhitecturi diferite, fiind portat inclusiv pe un microcontroller care controla un prăjitor de pâine.
I.5. Funcționalități Unix
Dintre cele mai importante caracteristici funcționale ale sistemului de operare Unix se disting urmatoarele:
• Operare multiutilizator
• Multitasking preemtiv
• Multiprocesare
• Suport pentru aplicatii multi-thread.
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 partiția de swap de pe hard disc, în timp ce procedeul de paginare caută să elimine sau cel puțin să minimizeze fragmentarea (care apare în procesul de swapping), permițând astfel proceselor să execute doar acele porțiuni ale acestora care sunt prezente în memoria principală. Aceste porțiuni de dimensiune fixă încărcate î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).
Altă funcționalitate de bază este aceea oferită de sistemul de intrare/ieșire care încearcă să minimizeze interacțiunile (specifice hardware) necesitate de nucleul Unix. Sistemul de intrare/ieșire al sistemului de operare Unix este alcătuit din:
• Interfața socket, folosită pentru comunicațiile între procese;
• Driverul dispozitivelor bloc, folosit pentru comunicarea cu dispozitive orientate pe bloc (de exemplu hard discuri sau unitați de bandă). Transferurile efectuate de astfel de dispozitive se fac de regulă în blocuri de lungime fixă de 512 sau 1024 octeți;
• Driverul dispozitivelor orientate pe caracter, folosite pentru comunicarea cu dispozitivele orientate pe caracter (terminale, imprimante sau alte dispozitive care nu transferă date în blocuri de octeți de dimensiune fixă).
În fine, un rol de bază în funcționarea sistemului Unix îl are controlul proceselor și intercomunicarea între procese (asigurată prin mecanismul de conducta – pipe – fie prin sockets).
I.6. Implementări de Unix
Doua 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 târziu sub numele de Unix Systems Laboratory (USL) și vândut apoi către 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 varietăți sunt bazate pe BSD. Cele mai multe diferențe apar la comenzile de administrare a sistemului. Putem spune dacă lucrăm pe un sistem de operare bazat pe System V sau BSD și după comenzile de printare (lp pentru SystemV și lpr pentru BSD) și de vizualizare a proceselor lansate în execuție (ps-ef pentru System V și ps-aux pentru BSD).
Unix a devenit o marcă înregistrată (deținută de The Open Group-www.opengroup.org), de aceea fiecare producător de Unix și-a ales propriul nume. Spre exemplu, versiunea de Unix a firmei SUN se numește Solaris, a firmei IBM se numește AIX iar a firmei Hewlett Packard se intitulează HP-UX.
În tabelul următor sunt prezentate o serie de implementări Unix, platformele hardware pe care acestea activează, precum și vânzătorii produselor.
Tabelul I.6.1. Diferite implementări de Unix
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ă atât pe stații de lucru Sun cât și pe stații cu microprocesoare Intel și pâna 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 stații de lucru ieftine (chiar și 386!) până la servere performante. Linux-ul a devenit foarte popular printre specialiștii entuziaști ai computerelor în necesitatea găsirii unui sistem de operare stabil și ieftin.
Totul a plecat în 1992 de la Linus Torvalds de la Universitatea din Helsinki,Finlanda, care a făcut 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ă ultimele contribuții și elaborează o versiune stabilă a sistemului de operare. Linux este gratis conform GNU[General Public Licence] dar există o serie de companii care adauga sistemului produse de tip Office, interfețe desktop, software pentru Web server, etc. Precum și CD-uri de instalare și percep astfel o taxă (care este oricum, mult mai mică decât a oricărui alt sistem de operare comercial).
I.7. Comenzi și interfețe grafice în Unix
Sistemul de operare Unix posedă peste 350 de comenzi de sistem și programe utilitare folosite pentru administrarea sistemului (adăugare de noi utilizatori,noi dispozitive hardware,etc) ,administrarea sistemului de fișiere (creare, editare, copiere, ștergere, printare, etc.), asigurarea conexiunii la rețea și comunicării 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); interfața grafică Macintosh, Microsoft Windows sau Unix CDE sunt exemple de astfel de interfețe.
I.7.1.Interfața 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 consorțiu de firme ce comercializau sisteme de operare Unix, cu scopul de a dezvolta un mediu de interfață grafică, integrat, standard și funcțional. Printre membrii acestui consorțiu se numărau: Hewlett-Packard, IBM, Novell, Sun Microsystems, companii și membri ai fundațiilor 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 către utilizatori și permite rularea unor programe fără 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 aplicații pe ecran în același timp;
• controlează activitățile din ferestre atât cu ajutorul mouse-ului cât și cu ajutorul tastaturii.
Fig. I.7.1. Interfața grafică CDE
I.7.2. Interfața grafică Gnome
O altă interfață grafică , mai recenta în lumea Unix este GNU[http://ro.wikipedia.org/wiki/GNU] Network Object Model Environment (GNOME) și face parte din proiectul GNU open source. GNOME posedă un mediu grafic ușor de utilizat pentru utilizator , precum și un cadru propice de dezvoltare a aplicațiilor – de asemenea, fiind software open source , este gratis.
Interfața GNOME[http://ro.wikipedia.org/wiki/GNOME] este inclusă în majoritatea versiunilor de Unix BSD precum și în distribuțiile de GNU/Linux. De asemenea, GNOME funcționează și cu Sun Solaris . GNOME posedă o interfață intuitivă , ușor de utilizat , combinând o organizare complexă a desktop-ului cu facilități de navigare ce permit un acces uor la informații.
Fig. I.7.2. Interfața grafică GNOME
Capitolul II.Sistemul de fișiere în Unix
II.1. Generalități
Sistemul de fișiere reprezintă o construcție logică ce oferă posibilitatea stocării și regăsirii informației ce se află pe un dispozitiv de stocare cu acces aleator. Un sistem de fișiere este parte integrantă a sistemului de operare și este format din fișiere, directoare precum și informații necesare pentru localizarea și accesul acestora. Sistemul de fișiere Unix ordonează și grupează din punct de vedere logic fișierele într-omanieră eficientă, prin cuprinderea acestora în directoare ce sunt asemănătoare dosarelor ce conțin mai multe documente.
Unix posedă un sistem de fișiere ierarhic, cu o structură arborescentă multi-nivel ce pleacă de la directorul rădăcină (root), simbolizată prin caracterul „/” (slash), putând de fapt să fie suportate mai multe sisteme de fișiere simultan pe același disc. Fiecare disc este divizat în porțiuni (partiții) ce pot găzdui un sistem de fișiere, un domeniu de swap sau un domeniu de date speciale.
În Unix fișierele sunt interpretate sub forma unor șiruri de octeți; astfel, cu toate că o aplicație face o cerere pentru un fișier cu o structură specială, nucleul stochează acel fișier pe disc ca o simplă secvență de octeți, organizând fișierele în directoare. Funcția de bază a sistemului de fișiere este aceea de a oferi servicii de fișiere aplicațiilor respective fără ca acestea să fie preocupate de structura specială de stocare hardware.
Un fișier reprezintă un șir de octeți ce aparține unui director. Conceptual, un fișier Unix este precum un document îndosariat (dosarul este directorul din care face parte). Fișierul poate stoca informații diverse: text, grafică, video, sunet, imagine etc. Orice fișier din sistem are un nume; lungimea numelor de fișiere Unix este în general limitată la 255 de caractere. Caracterele valide sunt: orice caracter alfabetic, numeric, liniuța de subliniere underscore ( _ ) și punctul (.). Nu se folosesc spații în numele fișierelor, precum și următoarele caractere speciale: ! " ` ' ; / \ $ * & < > ( ) | { } [ ] ~ .
O caracteristică aparte a sistemului de fișiere Unix o constituie legăturile. O legătură link reprezintă o posibilitate a unui fișier sau de acces la acesta prin mai multe nume. O legătură este, de fapt, o intrare într-un director ce face redirectarea spre un fișier stocat în alt director sau chiar spre un întreg alt director.
Din punctul de vedere al utilizatorului, sistemele de fișiere prezintă o organizare bazată pe conceptele de fișier și director (catalog). Fiecare sistem de operare are un mod propriu specific de organizare și exploatare a informației stocate pe suporturile de memorare fizice.Fișierele sunt entități care conțin o informație de un anume fel, iar directoarele grupează în interiorul lor fișiere și alte directoare. Orice fișier sau director poate fi identificat prin numele său,indicat în mod absolut, ca nume de cale sau relativ, față de directorul curent. În cazul discurilor fixe (HDD) și în cel al dischetelor, informația se memorează folosind proprietățile magnetice ale acestora. Harddisk-ul conține în interior mai multe platane ce pot memora informație, iar discheta este formată dintr-un singur disc flexibil. O față a unui disc este împărțită în piste, care sunt cercuri concentrice în care poate fi memorată informația, aceste piste fiind împarțite la randul lor în sectoare, unde un sector memorează o cantitate fixă de informație (de obicei 512 octeți).Citirea și scrierea informației pe un disc se face la nivel de blocuri de date. Un bloc (cluster) poate fi format dintr-un singur sector (cum se întamplă la dischete) sau din mai multe (ca la hard-disk-uri). Aceste clustere pot genera în timp clustere defecte, așa numitele “bad-uri”. Un hard-disk poate fi împarțit de utilizator în partiții, fiecare partiție comportându-se, la nivel utilizator, ca un disc de sine stătator. Partiția memorează sistemul de fișiere, de unde rezultă că pe același disc fizic pot fi întalnite mai multe sisteme de fișiere. Pentru computerele de uz general, informațiile referitoare la partiții se memorează la începutul discului, în așa-numita tabelă de partiții. Aceasta contine 4 intrări în care memorează pozițiile, dimensiunile și tipurile partițiilor de pe disc. Partițiile memorate pe tabela de la începutul discului se numesc partiții primare, care pot fi, evident, cel mult patru la număr. Este posibil, însă, ca în interiorul oricărei partiții primare să se creeze câte o nouă tabelă de partiții, referind partiții care fizic se află în interiorul partiției curente și care se numesc partiții extinse.
II.2. Partiții
Partițiile reprezintă modalitatea de organizare a spațiului de pe disc la nivel jos. Partițiile sunt independente de sistemul de operare; un sistem de operare solid recunoaște diviziunile la nivel jos de pe disc și adresează fiecare partiție ca pe un echipament logic separat.
Toate informațiile cu privire la partiții sunt localizate în așa-numita tabelă de partiții (partition table), stocată în eticheta de disc sau în header-ul de volum (volume header) al discului fizic. Aceasta este modalitatea prin care discurile păstrează propriile informații referitoare la modalitatea de aranjare a datelor și de aceea ele pot fi transferate de la un calculator la altul fără riscul pierderii informației. De asemenea, partițiile permit existența mai multor sisteme de operare pe același calculator, instalate în partiții diferite.
Inițial, exista o corespondență strictă între partiții și sistemele de fișiere, partițiile fiind considerate drept containere pentru sistemele de fișiere. Acum un sistem de fișiere se poate întinde pe mai multe partiții prin utilizarea volumelor logice, astfel încât partițiile pot fi considerate elemente de bază pentru stocarea informației în loc de a fi interpretate drept simple containere.
Deoarece partițiile sunt diviziuni la nivel hardware ale discurilor, ele pot oferi o protecție la nivel jos împotriva supra-încărcării. Utilizându-se anumite politici de partiționare, unele dintre partiții pot fi supra-încărcate fără a afecta performanțele generale ale sistemului; în orice caz, umplerea unei partiții nu are cum să afecteze spațiul altei partiții.
II.2.1 Spațiul de Swap
Toate varietățile de Unix necesită minimum două partiții: partiția de root (/) și partiția pentru swap. În cazul (destul de puțin întâlnit în practică) în care există doar aceste două partiții, partiția / va conține întregul sistem de operare, aplicațiile, fișierele de configurare, conturile locale ale utilizatorilor, etc. Spațiul de swap sau, pe scurt, swap, permite accesul direct al sistemului de operare la spațiul brut de pe disc, fără implicarea sistemului de fișiere. Swap-ul a fost construit pentru a acționa ca o extensie a memoriei principale (RAM – Random Access Memory) a calculatorului, permițând, prin implementarea mecanismului memoriei virtuale, accesul la o cantitate de memorie ce nu este limitată de capacitatea memoriei RAM ci de spațiul liber de pe disc.
Principalele mecanisme utilizate de către sistemul de operare pentru a accesa spațiul de swap sunt paginarea (paging) și interschimbarea (swapping). Spațiul liniar al memoriei unui calculator este limitat iar o parte din acesta este rezervat pentru stocarea unor programe ce rămân rezidente în memorie (sistemul de operare, tabelele de paginare, etc.) pentru a fi accesate rapid când este nevoie de ele. De asemenea, multe procese și obiecte program nu necesită prezența permanentă în memorie ca în cazul programelor rezidente. Atunci când sistemul de operare găsește un astfel de proces, se caută modalități de înlocuire a lui cu altul ce trebuie executat și deci încărcat în memorie.
Procedeul de interschimbare sau swapping este unul dintre mecanismele utilizate de către sistemul de operare pentru a administra alocarea memoriei. Atunci când un proces este interschimbat, el este copiat din memorie în spațiul de swap împreună cu toate datele asociate și alte informații de stare. În acest fel, porțiunea din memorie alocată procesului devine liberă și poate fi utilizată pentru a stoca alt proces (program). În momentul în care este nevoie din nou de procesul aflat în swap, acesta este transferat rapid din swap în memoria principală pentru a fi executat. În esență, procedeul de swapping constă în transferul unui proces din memorie în spațiul de swap și viceversa. Atunci când procedeul de swapping este intens utilizat înseamnă că sistemul are nevoie de resurse hardware suplimentare (de regulă mai multă memorie RAM).
Paginarea utilizează, de asemenea, spațiul de swap. Spre deosebire de procedeul de interschimbare, care stochează împreună cu procesul și o serie întreagă de informații legate de starea procesului, paginarea stochează doar porțiuni ale codului executabil al unui proces. Paginarea reprezintă o metodă obișnuită de administrare a memoriei de către sistemul de operare, metodă în care acesta determină în prealabil dimensiunea segmentelor de memorie (denumite pagini) ce pot fi menținute în memoria principală.
II.3. Tipuri de fișiere
Principalele tipuri de fișiere existente pe un sistem Unix sunt:
Fișiere text
Fișiere de date
Fișiere sursă (ce conțin codul sursă al unor programe)
Fișiere executabile
Programe shell
Fișiere legătură
Fișiere associate unor dispositive
a) Fișiere text
Cel mai simplu tip de fișiere îl constituie fișierul text, ce conține doar caractere ca acelea pe care le puteți citi în cadrul acestui capitol. Aceste caractere ASCII (American Standard Code for Information Interchange) sunt literale sau caractere numerice ce reprezintă manifestarea muncii pe care o facem. Dacă utilizăm, spre exemplu, un editor Unix pentru a crea un mesaj pentru poșta electronică atunci creăm un fișier text în cele mai multe dintre cazuri.
b) Fișiere de date
Fișierele de date sunt fișierele ce conțin date utilizate de diverse aplicații de pe sistem. Dacă utilizăm un program de tipul FrameMaker pentru scrierea unei cărți, fișierele create cu acest program vor fi de tipul suportat de acesta (la fel ca și fișierele speciale de date de pe un system Windows). Fișierele de date conțin pe lângă informația în sine (de tip text) și informații speciale de formatare. Același lucru se petrece și în cazul unui fișier bază de date, ce conține atât date ce pot fi citite cât și informații specifice formatării respective.
c) Fișiere cod sursă
Fișierele cod sursă sunt fișiere ce conțin date scrise într-un limbaj de programare precum C, C++, Java, Pascal, Fortran etc. Aceste fișiere au, de regulă, extensii conforme cu limbajul în care au fost scrise; spre exemplu, un program sursă scris în C va avea extensia „.c”.
d) Fișiere executabile
Fișierele executabile reprezintă programe obținute cu ajutorul unui compilator (sau interpretor) și editor de legături ce pot fi rulate (executate). Dacă încercăm să citim un fișier executabil ca pe un fișier text, vom obține o serie de caractere ciudate și chiar sunete; în urma unei astfel de „citiri” se pot pierde setările ecranului. Majoritatea comenzilor Unix sunt programe executabile (vezi directorul /bin).
e) Programe de tip shell
Un fișier de tip shell este atât un fișier text cât și un fișier ce poate fi rulat. El conține linii text ce reprezintă instrucțiuni legate de programarea shell; de regulă, prima linie din program este o linie ce începe cu secvența de caractere “#!” și precizează tipul de shell utilizat. De exemplu, linia: #!/bin/sh specifică faptul că se utilizează shell-ul Bourne care este shell-ul clasic pentru un sistem Unix. În general, caracterul “#” reprezintă modalitatea de inserare a comentariilor în program; astfel, tot ce urmează după “#” și până la sfârșitul liniei este considerat comentariu.
f) Fișiere de tip legătură
Un fișier legătură (link) este o referință către un fișier stocat în altă locație în sistem. În loc să avem două sau mai multe copii ale unui fișier pe disc, putem crea o legătură către un fișier deja existent pe sistem. Un mod deosebit de utilizare a legăturilor pe un sistem Unix a fost acela legat de apariția unei noi versiuni a sistemului de operare. Cum locațiile fișierelor se modifică uneori la apariția unei noi versiuni a sistemului de operare, se folosesc legături de la locațiile vechi către cele noi în loc de a învăța noile locații. În momentul utilizării unei comenzi folosind vechea locație, legătura face referire la comanda ce acum se află în alt loc pe disc.
g) Fișiere asociate unor dispozitive
Fișierele asociate unor dispozitive, denumite în Unix “device special files”(sau, pe scurt, fișiere device) conțin informații legate de componente hardware ale calculatorului și sunt fișiere speciale cu referire (de regulă) la funcții de administrare a sistemului. Sistemul de operare Unix tratează dispozitivele hardware ca fișiere, avantajul acestei metode de administrare fiind acela că permite accesul la disc precum o simplă operație de acces (Input/Output) la un fișier.Dispozitivele instalate pe computer pot fi accesate prin intermediul unor astfel de fișiere speciale. Discul, spre exemplu, poate fi accesat fie printr-un fișier de tip bloc, fie printr-unul de tip caracter.
Fișierele device de tip caracter sunt cel mai des folosite pentru proceduri de copiere de octeți (ca în cazul comenzii dd). Majoritatea echipamentelor de bandă au asociate doar fișiere device de tip caracter.Fișierele device de tip bloc sunt utilizate pentru transferul de date în blocuri de octeți, ceea ce este mai avantajos și mai rapid pentru majoritatea aplicațiilor. Pentru varianta de Unix Solaris, hard-discurile au asociate atât un fișier device de tip caracter cât și unul de tip bloc. Fiecare dintre acestea sunt folosite în cazuri diferite. Operațiile uzuale se fac prin intermediul fișierelor bloc, însă crearea sistemului de fișiere se face cu ajutorul fișierelor
caracter.
Toate fișierele device standard Unix sunt păstrate în directorul /dev (unele implementări de Linux Red Hat păstrează acest sistem). În variant Unix Solaris și în unele noi implementări de Red Hat însă, conținutul lui /dev tinde să fie o combinație de fișiere device și de legături simbolice către fișiere device situate în alte directoare. Într-un astfel de sistem, directorul /dev acționează ca un redirector organizațional. În Red Hat directorul se numește /devfs iar sub Solaris se intitulează /devices. Fișierele și directoarele din directorul /dev variază foarte mult, chiar între versiuni ale aceleiași variante de sistem de operare.
II.3.1. Tipuri de fișiere Unix
Fișiere simple (-)
Nu este impusă nici o structură asupra conținutului – acesta reprezintă o însușire de octeți;
Aceste fișiere pot fi text (ASCII) sau binare.
Fișiere director (d)
Reprezintă un fel de table de fișiere;
Are o structură internă précis definită;
Oferă posibilitatea organizării sistemului de fișiere.
Fișierele bloc (b)
Identifică un dispozitiv;
Este un bloc de I/O;
Pot identifica unități floppy,hard-discuri,unități de bandă.
Fișiere character (c)
Identifică un dispozitiv;
Reprezintă caractere de I/O;
Pot identifica porturi seriale,paralele (terminalele,imprimante).
Fișiere de legătură simbolică (l)
Sunt fișiere pointer către alt fișier existent;
Sunt de regulă folosite pentru a oferi un alias altui fișier.
Fișiere de memorie partajată (m)
Permit mai multor programe să acceseze un spațiu comun de memorie;
Folosite de regulă de programele de aplicații.
Fișiere pipe (p)
Folosite pentru a transmite date între comenzi sau programe.
Fișiere semafor (s)
Folosite pentru sincronizarea proceselor active concurente;
Folosite de programele de aplicații.
II.4.Crearea unui sistem de fișiere
Deși utilizatorii de DOS pot avea această impresie, nu orice partiție trebuie să conțină un sistem de fișiere! Ba chiar Unix-ul folosește în mod curent o partiție (de swap) pentru a crea mecanismul de memorie virtuală. Pe acea partiție nu se află fișiere. Operația prin care pe o partiție formatată se crează un sistem de fișiere se numește în Unix mkfs (MaKe FileSystem) iar în DOS format (după cum se vede în DOS distincția între partiție și sistem de fișiere nu este prea clară nici la nivel de nume al programelor utilitare). Programul mkfs folosește driverul de disc pentru a crea blocul de boot, superblocul și a inițializa toate i-nodurile și blocurile de date ca fiind goale. Abia după ce el este executat poate fi folosit sistemul de fișiere de pe partiție, montîndu-l (cu comanda-apel de sistem mount).
II.4.1. Crearea și distrugerea fișierelor
Pentru a crea un fișier în primul rînd trebuie alocat un i-nod și apoi construit un link. În Unix toate operațiile asupra fișierelor specifică numele fișierului, și niciodată i-nodul. Nu poți accesa un fișier al cărui i-nod îl cunoști: trebuie să știi un path spre el. Din cauza asta funcționează securitatea în Unix: dacă nu există nici un path în care un utilizator să aibă dreptul de a citi toate directoarele componente, atunci el nu va putea ajunge niciodată să citească fișierul indicat de acel path. Crearea fișierelor se poate face prin mai multe apeluri de sistem: open, creat, mknod, mkdir. Toate specifică un path. Dacă procesul care le execută are dreptul de scriere în penultima componentă a path-ului (care este directorul în care se crează fișierul) atunci fișierul este creat, alocîndu-se un i-nod liber și un link în acel director. Fișierele nu pot fi șterse în Unix! În Unix se pot doar șterge link-uri. Singurul apel de sistem pentru așa ceva este unlink. Cînd este șters un link, i-nodului spre care acesta punctează i se decrementează numărul de referințe. Dacă acest număr devine 0, înseamnă că acest fișier nu mai este legat în nici un director. Dacă acest fișier nu este în acea clipă deschis de nici un proces, atunci toate blocurile de date pe care el le posedă sunt trecute pe lista de blocuri libere, iar i-nodul lui este eliberat. (Dacă este deschis, atunci el va fi eliberat numai cînd toate procesele vor închide fișierul).Nu faceți confuzie între operația de ștergere a unui link, care are nevoie de drept de scriere în directorul din care se șterge link-ul, și operația de trunchiere a unui fișier (la lungime zero, de pildă) care are nevoie de drept de scriere doar în acel fișier.
$ ls -la
drwxr-x–x 7 mihai users 1024 Jul 29 21:46 ./
drwxr-xr-x 6 root root 1024 Jul 26 22:50 ../
-rw-rw-rw- 1 mihai users 3735 Jul 29 19:18 ss
Un alt utilizator decît mihai nu poate face rm ss, dar poate face cp /dev/null ss, cu care îl șterge! În fine, o ultimă operație pe fișiere pe care o discutăm este cea de legare. Se poate crea o legătură nouă la un fișier existent, cu apelul de sistem link (sau comanda shell-ului ln, care se folosește de acest apel).
$ ln /bin/bash ./bb
procedează astfel:
află i-nodul lui /bin/bash;
crează în directorul . un link cu numele bb (dacă are drept de scriere);
pune în acest link i-nodul aflat mai-nainte.
În mod normal numai „super-user-ul'' poate face legături la un director. Pentru că o legătură conține un număr de i-nod, iar fiecare partiție are propria ei numerotare independentă de a celorlalte pentru i-noduri, nu se pot face legături pe o partiție care să arate la un fișier de pe alta. Pentru asta au fost inventate legăturile simbolice, despre care vom vorbi altădată.
II.5. Operațiile pe fișiere
După ce am aflat atîtea despre structura de date cu care se descrie un fișier putem să ne imaginăm cu ușurință cum se implementează operațiile de citire/scriere în fișiere. Să modelăm operația de scriere, care este mai complicată. Să zicem că vrem să scriem octetul nr. 100000 cu valoarea 1 într-un anumit fișier.Prima etapă, de care încă n-am spus nimic, este de a găsi i-nodul fișierului cînd i se dă numele. (Secțiunea despre directoare a articolului de față numai cu asta se ocupă.) Această etapă verifică și dacă am permisiunea de a face operația cerută pe acest fișier. Dacă nu am voie, operația nu se face și apelul de sistem care a invocat-o se termină cu o eroare. După ce am găsit i-nodul, trebuie să găsim blocul pe disc în care e octetul nr. 100000. Știm cîți octeți sunt într-un bloc, așa că aflăm al cîtulea bloc al fișierului este cel care are octetul 100000. Presupunînd, ca mai sus, că un bloc are 1024 de octeți, obținem blocul 100000/1024 = 98 (rotunjind în sus). Ca să ajung la blocul 98 trebuie să citesc pointerii din blocul de pointeri simplu indirecți (el conține pointerii pentru blocurile 11-266). Și anume trebuie să caut al 88-lea pointer (nu uitați că primele 10 blocuri au proprii pointeri). Deci mă uit la blocul cu pointerii spre blocuri.Dacă fișierul a fost mai scurt de 10 blocuri pînă acum, acest bloc (cel simplu-indirect) nu exista! În acest caz îl aloc de pe lista de blocuri libere și îl umplu cu pointeri zero, ca să arăt că e gol.După ce am găsit blocul simplu-indirect mă uit la al 88-lea pointer din el. Dacă e nenul, înseamnă că blocul 98, pe care vreau să-l modific, făcea parte deja din fișier. Altfel trebuie să îl aloc tot eu. O fac dacă e nevoie, înscriind în blocul simplu-indirect la pointerul 88 adresa blocului 98, proaspăt alocat. Blocul nou alocat îl umplu cu zerouri.
În fine, blocul la care am ajuns conține octetul cu nr. 100000. Al cîtulea este? Aflu făcînd restul împărțirii 100000 la 1024 = 672. Deci în acest bloc scriu în octetul 672 valoarea 1, după care pun blocul la loc pe disc.Dacă lungimea fișierului era mai mică de 100000 (trecută în i-nod) o aduc la această valoare. Pun și timpul accesului și modificării fișierului la ora curentă.Dacă a fost nevoie pe drum și nu s-a putut aloca un bloc liber, operația iar a eșuat.Ați prins schema? Încercați să o urmăriți pe hîrtie cu creionul.Observați că nu este obligatoriu ca blocurile 1-97 să existe! Un fișier poate avea doar octetul 100000, ocupînd pe disc doar două blocuri (cel simplu indirect și cel cu octetul) în loc să aibă 99 de blocuri cu zerouri! Aceasta este semantica operației de scriere în fișier în Unix. Citirea unui octet care nu există se soldează cu citirea unui zero.
Capitolul III.Administrarea sistemului de fișiere în Linux-Fedora
III.1. Linux
Linux este o familie de sisteme de operare de tip Unix care folosesc Nucleul Linux-kernel[http://ro.wikipedia.org/wiki/Linux_(nucleul)]. Linux poate fi instalat pe o varietate largă de hardware,începând cu telefoane mobile,tablete,console video,continuând cu calculatoare personale până la supercomputere. Linux este cunoscut în principal pentru utilizarea sa ca server, în 2009 I se estima o cotă de piață între 20-40%. Cota de piață de desktop[http://ro.wikipedia.org/wiki/Desktop] este estimată între 1-2% și 4.8%. În ultimii ani, Linux a început să devină tot mai popular atât datorită unor distribuții precum Ubuntu,openSUSE,Fedora,precum și datorită apariției netbook-urilor și a noii generații de telefoane inteligente care rulează o versiune embedded de Linux.
Uneori mai este întâlnit sub numele de GNU/Linux și este cel mai cunoscut exemplu de colaborare și dezvoltare Softaware liber sub licență GPL[http://ro.wikipedia.org/wiki/GPL_(licen%C8%9Ba)].
Termenul Linux se referă și la nucleul Linux,însă în mod usual este folosit pentru a descrie întregul system de operare pentru calculatoare,compus din nucleul Linux,biblioteci software și diverse unelte. O “distribuție Linux” adaugă acestor component de bază o mare cantitate de programe,organizate în “pachete”. Folosirea termenului “Linux” pentru întreg sistemul,deși foarte răspândită,este contestată de către Richard Stallman și Free Software Foundation (autorii Proiectului GNU,ale cărui produse sunt incluse în cea mai mare parte din distribuțiile Linux). Aceștia propun utilizarea termenului GNU/Linux.
Nucleul Linux a fost dezvoltat inițial pentru microprocesorul Intel 386,dar în present rulează pe o mare gamă de microprocesoare și arhitecturi de calculatoare. Este folosit pe calculatoare de tip personal,pe supercomputer,dar și pe sisteme încapsulate(embedded),cum ar fi unele telefoane mobile sau recordere video.
Inițial dezvoltat și utilizat de către programatori voluntary,Linux a câștigat suportul industriei IT și al marilor companii ca IBM, Hewlett-Packard, Dell, Sun Microsystems, Google, Novell sau Nokia și a depășit ca folosire versiunile proprietare de Unix. Analiștii atribuie succesul sistemului faptului că este independent de furnizor,implementarea are un cost scăzut,iar securitatea și fiabilitatea sistemului sunt considerate de către specialiști drept foarte bune.
Dezvoltarea sistemului a fost începută de către inginerul finlandez Linus Torvalds,care inițial dorea să obțină un system similar cu Minix,dar fără limitările acestuia. Linux a fost dezvoltat sub Licență Publică Generală GNU GPL,astfel încât nu numai Linux însuși,dar și codul său sursă sunt disponibile tuturor celor interesați.
Sistemele Linux include nucleul,bibliotecile de system,bibliotecile de dezvoltare și un numar de programe utilitare și aplicații,servere grafice(x),sisteme de ferestre și managere de desktop-uri(KDE,Gnome,Blackbox,Fuxbox,Xfce etc),browsere web (Firefox ,Lynx, Koqueror ), aplicații și suite de aplicații “de birou”(OpenOffice.org),software de prelucrare grafică(Gimp),software de configurare,servere de web etc. Instalarea programelor noi se poate face fie prin compilare direct fie prin intermediul pachetelor,care verifică existența și disponibilitatea altor programe necesare pe system înainte de a instala noul program. Managerele de pachete modern asigură descărcarea pachetelor lipsă necesare și instalarea lor automată. Sistemele modern Linux au atât capacități multimedia avansate cât și support pentru hardware mai vechi,fiind adaptabile și scalabile în funcție de necesități.
III.2. Fedora
Fedora este o distribuție Linux bazată pe pachete RPM dezvoltată de comunitatea Proiectul Fedora și sponsorizată de Red Hat. Își propune să includă cele mai noi programe libere și cu sursă deschisă. Inițial s-a numit Fedora Core, dar după unirea cu Fedora Extras, odată cu lansarea versiunii 7, denumirea proiectului a fost schimbată în Fedora.
Proiectul Fedora a fost creat în toamna anului 2003, când s-a încetat dezvoltarea Red Hat Linux, devenind continuatorul acestuia în cadrul unei comunități deschise; Red Hat Enterprise Linux (RHEL) a rămas singura distribuție suportată comercial de către Red Hat. Versiunile RHEL sunt bazate pe Fedora, cu o selecție a pachetelor instalate, perioada de testare mai îndelungată și suport comercial. Numele Fedora derivă de la un proiect voluntar, Fedora Linux, care furniza un număr de aplicații suplimentare pentru Red Hat Linux și de la termenul „Fedora” (pălărie, în limba engleză), care este un element distinctiv al siglei "Shadowman" folosită de către Red Hat, Fedora Linux și Red Hat Linux au format împreună Fedora Core, iar în 2007, prin unirea cu Fedora Extras, a rezultat Fedora.
Fedora Project oferă distribuțiile în mai multe moduri: pe suport optic DVD/CD – setul de pachete majore Fedora la momentul livrării, Imagini Live – imagini pentru CD sau DVD care pot fi folosite pentru crearea de CD Live sau de Live USB, opțional fiind posibilă instalare pe suportul magnetic permanent (hard disk), CD Minimal – suport minimal oferit pentru instalarea prin protocoalele HTTP, FTP sau NFS.
III.3.Administrarea fișierelor
ls [<cale>] [opțiuni] – afișarea conținutului unui director
Să inspectăm conținutul directorului curent:
Fig.III.1. Comanda ls
Pentru a afla informații despre sintaxa și semantica comenzii ls, ca de altfel a majorității comenzilor, se tastează man <comandă>, în cazul de față man ls. Această comandă va afișa paginile de manual pentru comanda respectivă.
În Linux, fiind un sistem de operare multiuser, este normal să existe mecanisme de protecție a fișierelor. Există trei tipuri de drepturi de acces care se pot pune pe un fișier și trei categorii de utilizatori cărora li se adresează. Cele trei drepturi sunt: de citire (r), de scriere (w) și de execuție (x). Categoriile de utilizatori cărora li se aplică aceste drepturi sunt: utilizatorul care deține fișierul (fiecare fișier are un proprietar), grupul din care acesta face parte și restul utilizatorilor. Grupurile de utilizatori folosesc la împărțirea utilizatorilor pe categorii, care au drepturi comune pe anumite fișiere. Un utilizator poate face parte din mai multe grupuri.
Se analizează în detaliu una din liniile ieșirii comenzii ls –l :
Fig.III.2.Comanda ls –l
Se analizează in detaliu prima linie :
drwxr-xr-x 2 student student 4096 Dec 59 14:17 Desktop
Primul caracter drwxr-xr-x reprezintă tipul fișierului (în cazul nostru d este fișier director; dacă era doar – însemna fișier obișnuit). Mai sunt și alte tipuri, care vor fi analizate în celelalte lucrări mai târziu; wxr: drepturile celui care deține fișierul (are drept de scriere, de citire și de execuție).
Următoarele trei caractere: -xr reprezintă drepturile grupului din care face parte cel care deține fișierul (în cazul nostru, drept de execuție și de citire, nu are drept de scriere).
Ultimele trei caractere reprezintă drepturile celorlalți utilizatori (la fel ca ale grupului).
În Linux, fișierele executabile nu sunt recunoscute de sistem după extensie, ci după flag-ul x ce arată că este executabil. La crearea unui fișier de comenzi (analog cu fișierele .BAT din MS-DOS), pentru a-l putea executa, trebuie setat flag-ul x (cu comandă chmod), cel puțin pentru una din cele trei categorii de utilizatori menționate mai sus.
-2 reprezintă numărul de blocuri alocate pentru fișier.
-student reprezintă deținătorul fișierului (numele de login).
-student reprezintă grupul care deține fișierul.
-4096 reprezintă dimensiunea fișierului (pentru un director, aceasta depinde de numărul intrărilor în acesta).
-Dec 5 17:17 reprezintă data și ora creării fișierului.
-Desktop reprezintă numele fișierului.
În respectarea acestor drepturi se întâlnesc două excepții: utilizatorul "root" – administratorul de sistem – are drepturi depline asupra oricărui fișier, indiferent de drepturile setate și deținătorul fișierului, care are drepturi depline asupra acestuia.
Drepturile oricărui fișier se pot modifica cu comanda chmod. Schimbarea deținătorului unui fișier se face cu comanda chown. Pot să facă aceste lucruri: utilizatorul "root", deținătorul fișierului, toți cei care au drept de scriere asupra fișierului. Detalii despre aceste comenzi se pot obține cu man chmod, respectiv man chown.
Pentru a filtra ieșirea comenzii ls, precum și în multe operații cu fișiere, este posibilă folosirea așa numitelor "wild cards", caractere care pot înlocui unul sau mai multe caractere.
Acestea sunt:
* înlocuiește un grup de caractere. Exemplu: ls ap* listează fișierele ale căror nume încep cu caracterele "ap" ;
? înlocuiește un singur caracter.
[…] Exemplu: ls ap[a-f]m: va lista toate fișierele care au primele două caractere ale numelui "ap", următorul caracter poate fi orice între "a" și "f", inclusiv și ultimul caracter "m".
cd [<cale>] Această comandă este echivalentă cu cea din MS-DOS (change directory) – schimbă directorul curent. Spre deosebire de MS-DOS, căile în UNIX se construiesc folosind ca separator între directoare caracterul /. De exemplu, dacă se dorește intrarea în directorul Desktop, se dă comanda cd Desktop. Dacă se dorește, de exemplu, viualizarea fișierelor existente în directorul usr/doc din rădăcină, se dă comanda cd /usr/doc. Calea curentă, poate fi aflată cu comanda pwd.
Linux este un sistem de operare "case-sensitive", adică face diferența între minuscule și majuscule. De pildă, desktop este diferit de Desktop.
Fiecare utilizator are un director de bază, în care își ține fișierele personale, precum și alte fișiere de configurație personalizate (home directory). Există câteva nume de directoare predefinite:
~ reprezintă home-directory al utilizatorului curent. Comanda cd ~ sau cd/home mută prompter-ul în directorul /home/student. Se poate verifica acest lucru cu comanda pwd (afișează calea curentă).
De exemplu, calea ~/Desktop este interpretată, în acest caz, ca /home/student/Desktop.
-[ .. ] reprezintă directorul părinte. cd .. (atenție, se lasă spațiu între cd și ..) ceea ce duce cu un nivel mai sus în ierarhia de directoare.
-[ . ] reprezintă directorul curent cd . se rămâne în același loc, însă are o utilizare specială: când este dată o comandă, shell-ul o caută doar în directoarele specificate de variabila sistem PATH. Dacă se dorește execuția unei comenzi care se află în directorul curent (care nu este inclus în PATH), se tastează ./ <comandă>.
Obs! Există două modalități de referire a unei căi în structura de fișiere Linux: calea absolută și calea relativă. O cale absolută este aceea care pleacă din rădăcină, deci nu începe cu /. Un exemplu de cale absolută este /usr/bin. O cale relativă reprezintă o localizare relativă la directorul curent de lucru. Căile ce încep cu ../, ./ sau altceva diferit de / sunt căi relative. Ele au avantajul că sunt mai scurte decât căile absolute. Pentru utilizare trebuie cunoscut directorul curent (el este punctul de plecare al căii relative). Ex. cale relativă $ cd .. / .. /bin.
find [<cale_fișier>] [<expresie>] – caută fișiere într-un arbore de directoare. La această comandă se pot folosi "wild-cards" ;
Comanda find poate fi folosită pentru a căuta fișiere pe hard discurile locale sau chiar și pe sisteme la distanță. Deoarece operația de căutare poate solicita destul de mult procesorul, trebuie să încercată începerea căutării din directorul cât mai apropiat de fișier; doar în cazul în care nu există nici un indiciu legat de posibila localizare a fișierului se începe căutarea din rădăcină ( / ).
grep [opțiuni] <fișiere…> – caută în <fișiere…> și afișează liniile care respectă anumite condiții.
Comanda grep (global regular expression print) este folosită pentru căutarea unor șiruri de caracactere într-unul sau mai multe fișiere sau în ieșirile generate de comenzi. Șirurile de caractere pot conține pe lângă caractere alfanumerice și spații sau diferite semne de punctuație, cu condiția
să fie încadrate de apostrofuri (’’).
De regulă, comanda grep este utilizată ca filtru pentru ieșirile altor comenzi. Comanda grep face distincție între litere mari și litere mici în mod implicit; dacă se dorește schimbarea acestei setări implicite, putem folosi opțiunea -i. Opțiunea -v caută toate liniile ce nu se potrivesc șablonului specificat.
Detalii despre aceste comenzi pot fi aflate cu man find, respectiv man grep.
Ca și alte sisteme de operare, interpretorul de comenzi Linux conține comenzi pentru vizualizarea, crearea, ștergerea, mutarea și redenumirea fișierelor și directoarelor. Aceste comenzi sunt accesibile tuturor utilizatorilor însă pot fi folosite doar în cazul în care drepturile fișierelor și directoarelor permit acest lucru.
ls parametri director – afișează fișierele și subdirectoarele dintr-un director.
Parametrii care pot fi folosiți pentru comanda ls sunt prezentați în Tabelul III.1.
Tabelul III.1. – Parametrii comenzii ls
Fișierele și directoarele care încep cu „ .” (punct) au o destinație specială. Acestea conțin date/fișiere de configurare ale anumitor aplicații folosite de către utilizatori.
Fig.III.3. Comanda ls cu parametrul ahl
Fig.III.4. Comanda touch
touch nume_fișier – creează un fișier sau schimbă data accesării unui fișier
mkdir parametri director1 director2 … directorN – creează unul sau mai multe directoare.
Folosind opțiunea –v comanda mkdir va afișa un mesaj la crearea fiecărui director. De asemenea se poate specifica și calea (destinația) unde se dorește crearea directorului.
Exemplu: mkdir –v /root/test/dir1 – creează subdirectorul dir1 în directorul /root/test (dacă /root/test există) și afișează un mesaj dacă directorul a fost creat. Dacă directorul /root/test nu există, se poate utiliza opțiunea -p cu ajutorul căreia se va crea toată structura de directoare până la dir1. (mkdir –vp /root/test/dir1).
Fig.III.5. Comanda mkdir
rmdir parametri director1 director2 … directorN – șterge unul sau mai multe directoare (dacă acestea nu conțin fișiere).
Ca și în cazul comenzii mkdir, se pot utiliza parametrii -v și -p. Cu parametrul -p se va șterge întreaga structură de directoare. -v va afișa un mesaj la fiecare ștergere.
Fig.III.6. Comanda rmdir
rm parametri director/fișier – șterge un fișier sau un director
Parametri:
-r : șterge directoarele recursiv (inclusiv subdirectoarele și fișierele)
-f : forțează ștergerea
-i : cere permisiune de ștergere pentru fiecare fișier și director
Fig.III.7. Comanda rm
cp parametri fișier_sursă fișier_destinație – creează o copie a fișierului sursă
cp parametri fișier_sursă director_destinație – copiază fișierul sursă în directorul destinație
cp –r parametri director_sursă director_destinație – copiază recursiv directorul sursă în directorul destinație
Parametri:
-i : cere permisiune de suprascriere în cazul în care există un fișier cu același nume în directorul destinație
Fig.III.8. Comanda cp
mv parametri nume_actual nume_nou – redenumește un fișier sau un director
mv parametri fișier/director director_destinație – mută un fișier sau un director în directorul destinație.
Parametri:-f : mută sau redenumește un fișier sau un director fără a cere permisiune de suprascriere în cazul în care noul fișier sau director există
-i : cere permisiune de suprascriere în cazul în care noul fișier sau director există
-v : afișează un mesaj la fiecare mutare sau redenumire
-u : mută sau redenumește fișierele doar dacă fișierele sursă sunt mai noi decât fișierele destinație (update)
Fig.III.9. Comanda mv
Sistemul de operare Linux oferă o facilitate deosebit de utilă de redirectare a intrărilor sau/și ieșirilor unei comenzi. Redirectarea ieșirii se face utilizând operatorul >, redirectarea intrării se face cu ajutorul operatorului <, iar redirectarea erorilor (mesajelor de eroare obținute în urma rulării unor comenzi) se face prin utilizarea combinației 2>. Fișierul aflat după simbolul de redirectare poate fi un fișier text sau un fișier asociat unui dispozitiv (fișier device).
Formatul general pentru redirectare este:
$ comanda simbol_redirectare fișier
Redirectarea intrării:
$ comanda < nume_fișier
Exemplu :
$ mail student < lista
adică utilizatorului student i se trimite prin e-mail conținutul fișierului lista.
Redirectarea ieșirii:
$ comanda < nume_fișier
Exemplu :
$ ls –al > lista
în care este creat fișierul lista ce conține rezultatul comenzii ls –al.
Pentru a completa fișierul deja creat lista cu rezultatul altei comenzi (de exemplu pwd), se dă comanda :
$ pwd >> lista
III.3.1.Adăugarea de useri utilizând tool-ul grafic system-config-user
Cea mai simplă cale de a crea un user în sistemele Linux cu core Fedora este utilizarea User Manager, un tool grafic pentru managementul userilor. Sunt prezentați pașii următori:
Se loghează ca administrator (“root”) și se navighează spre meniul System (din Panel)-> Administration-> și se face click pe opțiunea Users and Groups, sau se tastează din prompt-ul shell din consola terminal (x-term/GNOME terminal) system-config-users pentru a deschide fereastra grafică User Manager (Fig. III.3.1):
Fig.III.3.1Comanda pentru deschiderea fereastrei grafice User Manager
Fereastra User Manager arată userii existenți în sistem împreună cu informațiile aferente (Fig.III.3.2).
Fig.III.3.2. Fereastra User Manager
Pentru adăugarea unui nou user în sistem, se face click pe butonul Add User. Va apărea fereastra Create New User (Fig.III.3.3) Se completează câmpurile User Name, Full Name și Passwords, apoi se rescrie parola în câmpul Confirm Password. Parola trebuie să conțină minim 6 caractere.
Login Shell: – calea inițială este /bin/bash, care poate fi schimbată.
Home Directory: – calea inițială este /home/username, ce poate fi schimbată.
Create Home Directory se bifează dacă se vrea sau nu crearea directorului home al user-ului. Configurația inițială a fișierelor va fi copiată din directorul etc/skel în directorul home al userilor.
Private group for the user: – inițial de câte ori se dorește crearea unui user este creat un grup unic cu același nume cu al user-ului, dar dacă nu se dorește se debifează opțiunea :
Create a private group for the user
Specify user ID manually: – Linux Fedora reservă ID-uri sub valoarea 500 pentru fiecare user din sistem. Următorul ID pentru noul user pornește de la 500, iar pentru atribuirea manuală se bifează căsuța Specify user ID manually.
Fig.III.3.3. Fereastra Create New User
Concluzii
Sistemul de Operare este o mașină virtuală,adică el transformă operațiile de nivel înalt efectuate de programator în operații reale care țin seama de detaliile de programare a dispozitivelor hardware.
În 1983 a fost standardizat protocolul TCP/IP care reprezintă protocolul de transmisiune a datelor în rețelele de calculatoare cu utilizarea sistemelor de operare de tipul BSD Unix, adică în această perioadă a început dezvoltarea sistemelor de operare Unix cu utilizarea protocolului TCP/IP.
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 sfârșitul anilor 60 și începutul anilor 70.
Linux poate fi instalat pe o varietate largă de hardware,începând cu telefoane mobile,tablete,console video,continuând cu calculatoare personale până la supercomputer, de aceea este foarte practic și în ziua de azi este folosit de tot mai mulți utilizatori.
Fedora este o distribuție Linux bazată pe pachete RPM dezvoltată de comunitatea Proiectul Fedora și sponsorizată de Red Hat. Își propune să includă cele mai noi programe libere și cu sursă deschisă ceea ce va fi în avantajul utilizatorilor deoarece tot timpul vor avea posibilitatea să lucreze cu cele mai noi si mai performante programe.
Sistemul de fișiere reprezintă o construcție logică ce oferă posibilitatea stocării și regăsirii informației ce se află pe un dispozitiv de stocare cu acces aleator. Un sistem de fișiere este parte integrantă a sistemului de operare și este format din fișiere, directoare precum și informații necesare pentru localizarea și accesul acestora.Am creat, localizat, șters și am facut multe alte operații cu fișierele iar toate acestea nu erau posibile dacă cei ce au inventat toate aceste programe nu evoluau și nu ne puneau la dispoziție toate materialele pe care în timp ei le-au facut tot mai bune și mai simplu de manevrat.
Am ales această temă deoarece am vrut să vad care este diferența dintre un sistem de operare Windows și unul Unix și am dorit să văd dacă e mai greu să accesezi un sistem Unix și să faci diferite operații cu fișiere.
Bibliografie
1. Spoială Dragoș-Cristian, Viorica Spoială –Sisteme de Operare.Îndrumător de laborator, Lito Univ. din Oradea
2. D. Acostăchioaie,”Administrarea și Configurarea Sistemelor Linux”,ediția a 3-a,Editura Polirom,2005
3. D. Acostăchioaie,Sabin Buraga”Utilizare Linux” Noțiuni de bază și practică” Editura Polirom 2004
4. A. Tanenbaum, “Sisteme de Operare” modern,ediția 2-a,Ed. Biblos,București,2001
5. Wikipedia, http://en.wikipedia.org/wiki/Operating_system Consultat la 23.06.2013
6. http://fedoraproject.ro/ Consultat la 24.06.2013
7. http://romikele.com/index.php?pagina=distributii Consultat la 18.06.2013
8. http://ro.wikipedia.org/wiki/UNIX Consultat la 19.06.2013
9. http://www.cs.cmu.edu/~mihaib/articles/sistem-f/sistem-f-html.html Consultat la 21.06.2013
10. http://www.scribd.com/doc/55007495/Administrarea-Sistemeleor-Linux Consultat la 23.06.2013
11. http://ro.wikipedia.org/wiki/GNU/Linux Consultat la 24.06.2013
12. http://dspoiala.webhost.uoradea.ro/didatica.html Consultat 15.06.2013
13. Rughiniș R.,Deaconescu R.,Milescu G.,Bardac M.,”Introducere în Sisteme de Operare”,Editura Printech
14. http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp?id=172&idb= Consultat la 18.06.2013
Bibliografie
1. Spoială Dragoș-Cristian, Viorica Spoială –Sisteme de Operare.Îndrumător de laborator, Lito Univ. din Oradea
2. D. Acostăchioaie,”Administrarea și Configurarea Sistemelor Linux”,ediția a 3-a,Editura Polirom,2005
3. D. Acostăchioaie,Sabin Buraga”Utilizare Linux” Noțiuni de bază și practică” Editura Polirom 2004
4. A. Tanenbaum, “Sisteme de Operare” modern,ediția 2-a,Ed. Biblos,București,2001
5. Wikipedia, http://en.wikipedia.org/wiki/Operating_system Consultat la 23.06.2013
6. http://fedoraproject.ro/ Consultat la 24.06.2013
7. http://romikele.com/index.php?pagina=distributii Consultat la 18.06.2013
8. http://ro.wikipedia.org/wiki/UNIX Consultat la 19.06.2013
9. http://www.cs.cmu.edu/~mihaib/articles/sistem-f/sistem-f-html.html Consultat la 21.06.2013
10. http://www.scribd.com/doc/55007495/Administrarea-Sistemeleor-Linux Consultat la 23.06.2013
11. http://ro.wikipedia.org/wiki/GNU/Linux Consultat la 24.06.2013
12. http://dspoiala.webhost.uoradea.ro/didatica.html Consultat 15.06.2013
13. Rughiniș R.,Deaconescu R.,Milescu G.,Bardac M.,”Introducere în Sisteme de Operare”,Editura Printech
14. http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp?id=172&idb= Consultat la 18.06.2013
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Administrarea Sistemului de Fisiere In Unix Linux (ID: 149357)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
