Tehnici de Administrare a Sistemelor Linux

CUPRINS

Introducere

Capitolul I. Proiectul GNU/LINUX

I.1. Istoria LINUX

I.1.2. Distribuții LINUX

Capitolul II. Pornirea și inițializarea sistemului Linux

2.1. Bootloader

2.2. GRUB

2.3. Încărcarea nucleului

2.4. Inițializarea sistemului

2.4.1. Niveluri de rulare (runlevels)

Capitolul III. Sistemul de fișiere Linux

III.1. Generalități

III.2. Partiții și spațiul de swap

III.3. Tipuri de fișiere

III.3.1. Tipuri de fișiere Linux

III.4. Ierarhia unui sistem de fișiere

III.4.1. Căi relative și căi absolute

III.5. Lucrul cu sistemul de fișiere III.5.1. Crearea sistemului de fișiere

III.7. Drepturi de acces

Capitolul IV. Tehnici de administrare a sistemului de fișiere a distribuțiilor Fedora și Kubuntu prin soluții de virtualizare

4.1. Soluții de virtualizare

4.1.1. Microsoft Virtual PC 2007

4.1.2. Oracle VM VirtualBox

4.2. Tehnici de administrare în linie de comandă a sistemului de fișiere pe cele 2

distribuții Linux

Concluzii

Bibliografie

Introducere

Sistemele de operare reprezintă un concept familiar tuturor utilizatorilor de calculatoare personale și apar tot mai des în implementări funcționale ale diferitelor aparate cum ar fi telefoanele mobile și cardurile bancare inteligente. Orice sistem de calcul electronic nu poate să asigure prelucrarea automată fără existența unui sistem de operare. [1]

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.

Fig.1.1. Rolul unui sistem de operare

Sistemul de operare are direct acces la hardware, în timp ce utilizatorii folosesc aplicații ce apelează prin intermediul bibliotecilor sau direct la funcțiile sistemului de operare

Sistemul de operare are două componente principale [1]:

– nucleul sau programele de bază se încarcă pe hard disk î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.

Deosebirea dintre aceste două componente ale calculatorului este că nucleul se executăn în mod supervizor cu privilegii extinse asupra memoriei și a celorlalte resurse, în timp ce programele utilitare se execută în mod utilizator cu privilegii reduse la fel ca și un program de aplicație.

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 următoarele:

– 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, 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, [1]:

– 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, gestionând 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, 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.

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”

„pointer” de stivă și alți regiștri

toate acestea formând informația necesară execuției unui program.

Pentru întelegerea proceselor se face apel la sistemul ”time sharing”. Sistemul de operare periodic decide să oprirea execuției unui proces și pornirea execuției altui proces, Dacă 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. 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. În mod 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.

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 sistemelor de Operare:

Principalele tipuri de sisteme de operare existente pe PC-uri:

MS-DOS (MicroSoft-Disk Operating System)

Dezvoltarea microcalculatoarelor DOS a început în anul 1978, când INTEL CORPORATION a lansat microprocesorul I 8088, urmat la scurt timp de I 8086, care au pu-

tut utiliza mai multã memorie internă și au adus și alte întrebuințări seriei de microprocesoare I 8080.

– OS/2 (Operating System/2)

În 1988, IBM și Microsoft au introdus OS/2, care a fost proiectat să preia avantajele microprocesoarelor Intel 80386 pentru seria de microcalculatoare IBM PS/2 pe 32 de biți;

– Apple DOS

A fost un sistem de operare monoutilizator, monotasking; un sistem de operare mai performant fiind MacIntosh.

UNIX

A fost creat pentru minicalculatoare, pentru a mări disponibilitățile sistemului: memorie

virtuală și multitasking având ca distribuții: Unix System V, BSD

GNU/Linux (prescurtat Linux) este unul dintre cele mai cunoscute exemple de “Software liber” și dezvoltare de software Open source. Prezintă numeroase implementări printre care amintim : RedHat Linux, Fedora, Ubuntu, Slax, SuSE, Knoppix, Gentoo Linux.

Windows 3.1

A reprezentat o interfață grafică orientată pe ferestre, care se instalează pe un sistem de calcul ce lucrează sub MS-DOS, permițând utilizatorului lansarea concomitentă a mai multor aplicații, fiecare în fereastra ei, precum și schimbul de informații între acestea, [1].

Windows 95

A fost un sistem de operare ce a înglobat o serie de facilități noi, alături de cele regăsite la versiunile precedente.

Windows 98

Mediu complet integrat cu Internetul, constituindu-se ca un suport pentru noile tehnologii hardware și păstrând compatibilitatea cu Windows 95, față de care apare ca o extindere (upgrade)

Windows Millennium Edition sau Windows Me este un sistem de operare hibrid 16-bit/32-bit cu interfață grafică lansat de Microsoft pe 14 septembrie 2000.

Windows NT (NT – New Technology)

A fost un sistem de operare foarte complex proiectat de Microsoft și al cărui principal avantaj l-a constituit posibilitatea implementării lui atât pe PC-uri cu microprocesoare Intel, cât și pe PC-uri cu microprocesoare RISC. Variante: Windows NT 3.1 – 27 iulie 1993; Windows NT 3.5 – 21 septembrie 1994 și 3.51 pe 30 mai 1995; Windows NT 4.0 – 29 iulie 1996 (revizuit în numeroase rânduri până în noiembrie 1999); Windows NT 5.0 care va fi

transformat în Windows 2000, lansat la 17 septembrie 2000.

Windows 2000

A reprezentat ceva nou de la care se aștepta o compatibilizare a platformelor Windows și performanțe superioare. Prezintă variante pentru servere, Windows 2000 Server și Advanced Server

Windows Server 2003 (5.2) – 24 aprilie 2003;

Windows XP

Cea mai de succes ediție a sistemului de operare Windows, complet integrată cu Internetul și cu performanțe și stabilitate superioare fiind disponibil în două versiuni

Professional și Home.

Windows Vista este o recentă versiune a sistemului de operare Microsoft Windows, proiectată de corporația Microsoft. Înainte de anunțul sub acest nume din 22 iulie 2005, Windows Vista a fost cunoscut sub numele de cod Longhorn, după Salonul Longhorn, un bar cunoscut din orașul Whistler din provincia canadiană Columbia Britanică. Windows Vista a fost lansat în noiembrie 2006 pentru firme și parteneri de afaceri, iar în ianuarie 2007 a fost lansat pentru utilizatorii obișnuiți. Această lansare vine după mai mult de cinci ani de la apariția pe piață a sistemului de operare Windows XP, fiind cea mai mare distanță între două lansări succesive.

Windows server 2008 – 27 Februarie, 2008

Windows 7 a intrat în faza Release To Manufacturing (liber pentru producție; RTM) la 22 iulie 2009. Data de punere pe piață a fost 22 octombrie 2009, la mai puțin de trei ani de la lansarea sistemului anterior Windows Vista. La aceeași dată a fost lansat și Windows Server 2008 R2 (pentru servere). Are ca implementări Starter, Home Basic, Home Premium, Professional, Enterprise și Ultimate

– Windows 8, lansat în octombrie 2012, este cea mai recentă versiune a sistemului de operare de la Microsoft Windows. Windows 8 extinde suportul pentru o plajă mai largă de dispozitive, incluzând, dar nelimitându-se la computere desktop, computere portabile și tablete, edițiile ce se pot executa pe aceste dispozitive depinzând de arhitectura procesorului sistemului: x86, x64 sau ARM.

În octombrie 2013, Windows 8.1 este adăugat cu un buton de start și cu aplicații reînnoite.

Versiuni speciale ale Microsoft Windows:

Windows CE (1.0-5.0) – baza pentru: Windows CE for Automotive,

Windows Mobile (5,6), Pocket PC (2000, 2002, 2003, 2003 SE)

Windows Embedded (versiune disponibilă din codul NT 4.0 și XP)

Virtualizare. Rularea unui sistem de operare pe o mașină virtuală

Simplificată, virtualizarea este o metodă ce permite rularea a unuia sau mai multor “calculatoare” pe o singură platformă hardware, saue ca implementări Starter, Home Basic, Home Premium, Professional, Enterprise și Ultimate

– Windows 8, lansat în octombrie 2012, este cea mai recentă versiune a sistemului de operare de la Microsoft Windows. Windows 8 extinde suportul pentru o plajă mai largă de dispozitive, incluzând, dar nelimitându-se la computere desktop, computere portabile și tablete, edițiile ce se pot executa pe aceste dispozitive depinzând de arhitectura procesorului sistemului: x86, x64 sau ARM.

În octombrie 2013, Windows 8.1 este adăugat cu un buton de start și cu aplicații reînnoite.

Versiuni speciale ale Microsoft Windows:

Windows CE (1.0-5.0) – baza pentru: Windows CE for Automotive,

Windows Mobile (5,6), Pocket PC (2000, 2002, 2003, 2003 SE)

Windows Embedded (versiune disponibilă din codul NT 4.0 și XP)

Virtualizare. Rularea unui sistem de operare pe o mașină virtuală

Simplificată, virtualizarea este o metodă ce permite rularea a unuia sau mai multor “calculatoare” pe o singură platformă hardware, sau altfel spus, a două sisteme de operare diferite pe un singur PC. De exemplu, pe un PC se poate rula atât o mașină Windows cât și una Linux. O explicație mai complexă ar fi următoarea: virtualizarea eliberează utilizatorii și aplicațiile de caracteristicile hardware specifice sistemelor pe care operează.

hardware și paravirtualizarea.

Virtualizarea sistemelor de operare implică rularea peste un sistem de operare gazdă a unor containere în care rulează alte sisteme de operare; pe acestea din urmă rulează aplicațiile. Ce trebuie ințeles este că aceste aplicații interactionează doar cu sistemul de operare din container și îl consideră singurul existent pe acea mașină, deci singurul care controlează resursele sistemului; din această cauză aplicațiile nu pot vedea alte aplicații sau resurse ale altui container.

Resursele alocate de către mașina virtuală sunt exprimate prin aceea că un procenta dedicat din RAM, un spațiu fix din hard disk-ul calculatorului gazda pe care mașina virtuală îl va folosi ca pe hard sik-ul său propriu și pe care se va putea instala un sistem de fișiere diferit de cel pe care a fost alocat spațiul precum și accesul la dispozitivele periferice. Accesul celui de-al doilea sistem de operare la procesir se face prin intermediul proceselor mașinii virtuale, care vor rula alături de celelalte aplicații, împătâind aceleași resurse. [3]

Avantajul acestui tip de virtualizare îl prezintă ușurință cu care se poate instala și folosi software-ul necesar virtualizarii; de asemenea, consumul de resurse al aplicației de virtualizare este redus ceea ce înseamnă ca acestea sunt disponibile aproape în totalitate sistemelor de operare oaspete (cele din containere).

Printre soluțiile de virtualizare gratuite se regasesc Microsoft Virtual PC și Oracle VM VirtualBox, VMware.

În capitolul 4 se vor prezenta soluțiile implementate de autor Microsoft Virtual PC și VirtualBox.

Capitolul I. Proiectul GNU/LINUX

Conceptul de „free software” este un concept vechi, primele calculatoare personale au ajuns prima dată în universități, fiind instrumente de cercetare. Software-ul putea fi instalat în mod liber pe orice calculator, iar programatorii (puțini, la acea vreme) erau plătiți pentru activitatea de programare, nu pentru programele în sine pe care le realizau. Mai târziu, programatorii au început să restricționeze drepturile de folosire a software- ului pe care îl produceau, percepând taxe de utilizare pentru copiile programelor. [3]

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. [1]

Proiectul GNU a fost inițiat în 1983 de Richard Stallman și alții ce au pus bazele Fundației pentru Software Liber (FSF – Free Software Foundation). Concepția lui Stallman este aceea că utilizatorii pot face ce doresc cu software-ul achiziționat, putând face cópii 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 redistribuție a programului, asigurându-se în acest fel că nimeni nu va reclama drepturi de proprietate asupra unor versiuni viitoare și nu va impune restricții la utilizarea acestuia. În acest context, termenul free înseamnă libertate și nu neapărat gratis. [1]

Fundația FSF percepe niște costuri inițiale la distribuția 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 utilizatorilor să modifice și să reasambleze produsul fără nici o restricție în afară de aceea că nici ei, la rândul lor, nu pot impune restricții mai departe. [1]

Filozofia free software constă în faptul 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 când în august 1996 i-a fost adăugat un kernel (GNU Hurd și Mach). Fundația FSF continuă să dezvolte software free sub formă de programe de aplicații; un program de tip spreadsheet este acum disponibil. Sistemul de operare Linux este conceput cu componente GNU iar kernelul este dezvoltat de Linus Torvalds. [1]

Munca lui Stallman a inspirat multe contribuții de software free, iar definiția open source conține multe dintre ideile lui Stallman, putând fi considerată drept un concept derivat. Open Source Definition a luat naștere odată cu distribuția 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 licențe diferite de copyleft (care era prin definiție free), Debian a avut ceva probleme în definirea faptului că este free.

Similar cu acest concept a luat naștere și ideea de open hardware cu privire la dispozitivele și interfețele hardware. Acest concept însă nu a avut același succes ca ideea de software open source, dar el încă există și poate fi studiat la adresa web www.openharware.org.

I.1. Istoria LINUX

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ă ultimile contribuții și elaborează o versiune stabilă a sistemulului de operare. Linux este gratis conform GNU General Public Licence, dar există o serie de companii care adaugă 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).

Stadiul timpuriu de dezvoltare al Linux-ului se ocupa în primul rând de faci-litățile de comutare de task-uri din modul protejat al procesorului 386 și era scris în limbaj de asamblare. Versiunea 0.01 nu a fost anunțată niciodată. Sursele acesteia nici macar nu erau executabile: conțineau un rudiment de nucleu și se presupunea un minim acces la un sistem Minix pentru compilare.

Prima versiune oficială, 0.02, a fost anunțată de Linus Torvalds pe 5 octombrie 1991. Până în acel moment, Linus reușise să execute interpretorul de comenzi bash și compilatorul de C GNU. Principala preocupare era dezvoltarea nucleului. Nici una din problemele de suport pentru utilizatori, documentație sau distribuție nu fusese încă tratată, principala fiind

„programarea adevarată", dezvoltarea nucleului.

După versiunea 0.03 s-a facut un salt la 0.10, mai mulți programatori începând să contribuie la proiect. Dupa câteva revizii, Linus a crescut numărul versiunii la 0.95 exprimând astfel speranța sa ca sistemul era pregatit pentru o noua versiune oficială.

În zilele noastre, LINUX este o variantă de UNIX completă, capabilă să execute X Windows, TCP/IP, Emacs, poștă electronica și știri. Aproape toate pachetele de programe distribuite liber au fost transportate și pe Linux, tot mai multe aplicații comerciale devin disponibile și pentru acest sistem de operare. Din ce în ce mai mult hardware este suportat de Linux

I.1.2. Distribuții LINUX

O distribuție Linux este un sistem de operare construit din nucleul Linux și o serie de pachete asortate, precum Sistemul de Ferestre X și software din proiectul GNU.

Pentru că nucleul și pachetele software sunt în mare parte (dacă nu întregime) software liber, distribuțiile Linux există într-o mare varietate de forme, de la distribuțiile pentru desktopuri complete și servere până la sistemele de operare minimale ce rulează pe dispozitive înglobate, [4].

În cele ce urmează se enumeră principalele distribuții LINUX recomandate pentru pentru desktop, http://itmoldova.com/2011/02/24/principalele-distributii-linux-recomandate-pentru-desktop-2/

Ubuntu este un sistem de operare bazat pe Linux pentru computerele perso-nale, servere și netbook-uri. Rudă apropiată a sistemului de operare Debian GNU/Linux, Ubuntu se dorește a fi ușor de instalat și folosit, des actualizat și neîngrădit de restricții legale. Ubuntu este sponsorizat de Canonical Ltd., o companie privată fondată de antreprenorul sud-african Mark Shuttleworth.

Numele sistemului de operare provine din limba zulusă, unde „ubuntu” este o ideologie ce poate fi definită pe scurt drept „credința într-o legatură universală ce unește întreaga omenire”. Sloganul adoptat, „Linux pentru ființe umane” încorporează unul din scopurile declarate ale proiectului, acela de a face din Linux un sistem de operare popular și ușor de folosit. Cea mai recentă versiune este Ubuntu 12.04.

Kubuntu este un Linux-ul derivat din Ubuntu și care folosește mediul grafic KDE. Ultima versiune este Kubuntu 14.04. Suportul pentru această versiune se întinde pe o perioadă de cinci ani după modelul fratelui mai mare, Ubuntu. La capitolul noutăți se pot menționa pe lângă cel mai nou KDE (4.13) și un nou manager de drivere alături cele mai noi

variante ale aplicațiilor tale favorite,

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ă. Intitial 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 deriva 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.

Linux Mint este o distribuție ce se adresează începatorilor. Această distribuție vine cu toate codecurile gata instalate, cu flash player, soft parental control, firewall, soft pentru backup, java, soft de transfer fișire în rețea, clientul de mail Thunderbird, soft pentru download torrente, client pentru mirc, suita OpenOffice, un manager pentru upload-ul fisierelor, posibilitatea de a instala driverele wireless din windows in cazul in care cele pentru Linux nu sunt funcționale, managerul compiz de efecte 3D pentru Desktop.

SuSE GmbH. a fost fondat la sfârșitul lui 1992 ca o firmă de consultanță UNIX. La început, compania lansa regulat diverse pachete software, printre care și o variantă de Slackware, și imprima manuale de UNIX și Linux. La început, SUSE Linux era doar o traducere germană pentru Slackware.

Prima versiune de Slackware pe CD creată de SUSE a fost scoasă pe piață în 1994, sub numele de S.u.S.E Linux 1.0. Mai târziu, această versiune a fost integrată cu distribuția Jurix, pentru a crea prima versiune originală de SUSE (S.u.S.E Linux 4.2 în 1996).

Mandriva Linux este o distribuție recunoscută ca fiind prietenoasă și simplu de utilizat de către începători. A fost creată în 1998 de compania franceză Mandrakesoft, sub numele Mandrake Linux, cu scopul de a face Linux-ul mai ușor de folosit. La acea vreme, Linux-ul era foarte bine cunoscut ca fiind un sistem de operare puternic și stabil, care însă cerea cunoștințe tehnice foarte bogate și folosirea liniei de comandă în foarte multe situații;

Mandrakesoft a văzut aceasta ca pe o oportunitate de a integra cele mai bune interfețe grafice și să contribuie cu propriile utilitare de configurare.

În 2005 Mandrakesoft a achiziționat firma braziliană Conectiva, producătorul distribuției Conectiva Linux. În aprilie 2005 firma și-a schimbat numele în Mandriva (Mandrake + Conectiva), iar distribuția a devenit cunoscută sub numele de Mandriva Linux.

Debian. Această distribuție este menținută la zi datorită efortului voluntar depus de utilizatori de pe întreg mapamondul. Distribuția este testată riguros înainte de a fi lansată, pentru a asigura un grad ridicat de stabilitate. Nu este foarte ușor de configurat, această distribuție fiind orientată în principal către utilizatorul profesionist, dar are un foarte bun sistem de actualizare. Versiunile mai noi tind sa fie orientate mai mult către utilizatorul obișnuit și beneficiază de asistență de calitate oferită de comunitatea de utilizatori. Distribuția Debian a fost anunțată prima dată pe 16 august 1993 de Ian Murdock, pe atunci un student la [anonimizat]. Murdock a numit inițial sistemul lui “Debian Linux Release”. Denumirea provine din combinația prenumelui său și al soției sale, Debra.

Slackware folosește un mod de abordare diferit de distribuții renumite cum ar fi Red Hat, Debian, Gentoo, SUSE, sau Mandriva Linux. Poate fi descris cel mai bine ca fiind „UNIX-like“, având in vedere politica strictă de incorporare a aplicațiilor, și absența unor utilitare de configurare ce folosesc interfață grafică, precum în alte varietăți Linux. Prima versiune (anunțul oficial), 1.00, a fost lansată pe 17 iulie, 1993 de Patrick Volkerding. Era bazată pe distribuția SLS Linux si oferea imagini de dischetă, care erau disponibile pe FTP. Slackware a sărbatorit a zecea aniversare pe 17 iulie, 2003. Numele „Slackware“ provine de la termenul „slack“, așa cum este definit de Church of

the SubGenius.

Gentoo este un sistem de operare linux, care iese în evidență prin faptul că nu folosește pachete precompilate pentru instalare, acest lucru fiind realizat local, în funcție de configurația aleasă. Rezultatul este un sistem cu o configurabilitate deosebită, care însă poatepune în dificultate chiar ți utilizatori mai experimentați. Ideea inițială a fost realizarea unei distributii care să nu conțină software asamblat în pachete, iar acesta să fie instalat ți optimizat local în functie de hardware-ul avut la dispozitie, iar utilizatorul să instaleze doar pachetele necesare/dorite.

Capitolul II. Pornirea și inițializarea sistemului Linux

2.1. Bootloader

Bootloader-ul este încărcat în BIOS și reprezintă componenta utilizată pentru ca utilizatorul să poată selecta mai multe sisteme de operare dar și pentru transmiterea unor opțiuni de încărcare a nucleului sistemului de operare, [3].

Bootloader-ul se găsește pe primul sector al dispozitivului boot-abil, denumit sector de boot, deoarece BIOS-ul nu poate încărca în memorie decât un singur sector de capacitate 512 octeți. În situațiile în care bootloader-ul este suficient de mare și nu încape în primul sector, se va încărca o a doua etapă a bootloader-ului, ocupând un spațiu mai mare pe hard-disk. Un astfel de bootloader multiple-sttage este GRUB, ootloader-ul majorității distribuțiilor Linux.

Un dispozitiv este boot-abil dacă sectorul de boot al acestuia este un sector boot-abil. Un sector boot-abil are ultimii doi octeți 0xAA55, adică conține secvențe de cod executabile. Primul sector al unui dispozitiv boot-abil se numește MBR (master boot record). Primul sector al unei partiții al unui dispozitiv boot-abil partiționat se numește VBR (volume boot record). Conținutul sectorului de boot este încărcat în memorie de BIOS (basic input output system). După aceea, BIOS-ul transmite controlul programului rezident ăn sectorul de boot.

Tabela de partiții este rezidentă în MBR și ocupă 64 octeți. Un hard-disk conține doar patru partiții (primare), adică 16 octeți pentru descrierea fiecărei partiții/ Pentru a elimina inconvenientul de 4 partiții, a apărut noțiunea de partiție extinsă. Pe un sistem poate exista doar o singură partiție extinsă. Partițiile extinse pot conține mai multe partiții logice. Descrierea partiției extinse se regăsește în primul sector al acesteia denumit EPBR (extended partition boot record). Pentru asigurarea existenței unui sistem de fișiere pe o partiție, aceasta trebuie să fie formatată, [3].

În Linux, salvarea sectorului de boot se realizează prin intermediul comenzii dd și a dispozitivelor de tip bloc.

Codul bootloader-ului se supune unor restricții rigide. Trebuie să încapă în MBR (master boot record), mai exact este limitat la 446 octeți.

Bootloader-ul lucrează în 2 faze :

prima rezidă în MBR și are rolul de încărcare de pe hard-disk a celei de a doua faze;

– se oferă utilizatorului un ecran de selecție pentru situația în care coexistă două sisteme

de operare pe același sistem fizic.

Apoi bootloader-ul încarcă sistemul de operare și îi predă controlul. Ca exemple de bootloader-e se amintesc :

– GRUB (GRand Unified Bootloader) – implicit pe majoritatea distribuțiilor Linux;

– LILO (Linux Loader) – fostul bootloader înainte de GRUB;

– NTLDR (NT Loader) – bootloader-ul foșosit de Windows NT, 2000, XP, 2003;

– winload.exe – folosit de Windows Vista;

– SYSLINUX – suităm de bootloader-e pentru diverse medii de boot.

2.2. GRUB

Cum s-a amintit anterioar , este bootloader-ul implicit pe distribuțiile Linux și altora din familia Unix. Este folosit în situațiile de multiboot.

În cazul existenței unei limite de vizibilitate a hard-disk-ului există o fază intermediară 1.5, care deține informații despre sistemul de fișiere și încarcă faza a doua.

În faza a doua se citește fișierul principal de configurație (/boot/grub/meniu.lst), este afișat ecranul principal și se încarcă nucleul sistemului de operare. În Fig. 2.1. este prezentată structura GRUB, [3].

Fig.2.1. Localizarea diferitelor faze ale GRUB pe hard-disk

Fig. 2.2. Ecran GRUB

În Fig. 2.2. se prezintă ecranul cu opțiuni GRUB.

Fișierul de configurare, localizat /boot/grub/grub.conf, este utilizat pentru a lista sistemele de operare în interfața meniului GRUB și permite utilizatorului să aleagă la boot-are sistemul de operare inclusiv versiunile kernel-ului. Comenzile de setare globală a parametrilor pentru interfața meniului sunt la începutul liniilor de comandă fișierului, urmate de linii dedicate fiecărui kernel sau sistem de operare listate în meniu.

Se prezintă în continuare un exemplu de fișier de configurare menu GRUB pe distribuție Fedora, cu Windows ca sistem de operare alternativ, [1].

Exemplu

default=0

timeout=10

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Fedora (2.6.27.19-170.2.35.fc10.i686)

root (hd0,1)

kernel /vmlinuz-2.6.27.19-170.2.35.fc10.i686 ro

root=UUID=04a07c13-e6bf-6d5a-b207-002689545705 rhgb quiet

initrd /initrd-2.6.27.19-170.2.35.fc10.i686.img

# section to load Windows

title Windows

rootnoverify (hd0,0)

chainloader +1

Opțiunea default precizează ordinea de boot-are. Numerotarea pornește de la 0. După cum se obervă, boot-area implicită este LINUX – Fedora. Numărul pentru default este o valoare întreagă și se referă la prima linie din fișierul de configurare GRUB. Pentru ca sistemul de operare implicit să fie Windows, se schimbă valorea default=0 în default=1.

Valoarea implicită a parametrului timeout este 0. În acest caz, la boot-are, va apare pentru un timp foarte scurt, sau chiar de loc în cazul calculatoarelor performante, un mesaj privind boot-area. Pentru a mări acest timp, se setează valoarea timeout (în exemplu de sus, 10).

Analizând conținutul fișierului de configurare, se observă mai multe intrări asociate sistemelor de operare. Fiecare intrare conține un set de directive de configurare :

– title – un șir de caractere reprezentând numele intrării așa cum va apărea pe ecranul GRUB;

– root – partiția pe care se află imaginea de nucleu a sistemului de operare. Aceasta poate să coincidă sau nu cu partiția pe care este montat sistemul de fișiere rădăcină (/);

– kernek – calea spre imaginea de nucleu în cadrul partiției de mai sus. În cazul Windows ea nu există deoarece se apelează la bootloader-ul specific Windows, indicat pin opțiunea chainloader+1; opțiunea +1 specifică faptul că se citește primul sector din partiția (hd0,0).

Dacă în Linux, primul hard-disk este vizibil cu /dev/hda, iar prima partiție a acestuia cu /dev/hda1, GRUB folosește o altă convenție petru denumirea discurilor din sistem și a partițiilor acestora. Primul disc din sistem este denumit (hd0) (GRUB nu face distincție între tipul de controller folosit IDE sau SCSI). Prima partiție de pe primul disc este denumită (hd0,0). Al doilea disc (hd1) și a doua partiție (hd1,0).

2.3. Încărcarea nucleului

După încărcare și rulare, bootloader-ul încarcă nucleul sistemului de operare și transmite controlul către acesta. Nucleul rezidă într-un fișier executabil denumit imaginea de nucleu, locația acestui fișier este transmisă ca parametru în directiva kernel, [3].

În sistemele Linux, fișierul se găsește în /boot si are denumirea vmlinuz-versiune_kernel. Pe sistemul Kubuntu este prezentat în Fig.2.3.

Fig. 2/3. Imaginea de kernel de pe sistemul Fedora 21

După încărcarea imaginii de nucleu, bootloader-ul trimite controlul execuției spre nucleu. Acesta inițializează și configurează dispozitivele hardware și memoria, apoi decomprimă imaginea de nucleu. Apoi este montat sistemul de fișiere rădăcină precizat în directiva kernel din fișierul de configurare GRUB. Pe măsură ce nucleul inițializează alte subsiteme, pe ecran sunt afișate diferite mesaje. Nucleul încărcat crează procesul init (pid-1) din imaginea /sbin/init, [3].

2.4. Inițializarea sistemului

După cum s-a precizat anterior încărcarea nucleului se încheie cu pornirea procesului init. Acesta este responsabil cu crearea celorlalte procese importante din sistem și folosește un set fișiere de configurare.

Fiecare proces are asociat un număr de identificare, denumit PID (Process Identification). Deoarece init reprezintă primul proces apelat, acesta are PID=1. Rolul procesului init este acela de a inițializa sistemul și a porni alt proces (getty) ce deschide liniile pentru terminal, setând standard input (stdin), standard output (stdout) și fișierul standard de eroare (standard error – stderr). După aceasta apare un prompter (de login) pe ecran. Fișierul standard de intrare este în mod normal tastatura, fișierul standard de ieșire și cel de eroare sunt reprezentate de ecranul monitorului.

După ce se introduce un nume de utilizator la prompterul de login, se cere o parolă pentru autentificare. În acest moment, programul /bin/login verifică identitatea utilizatorului prin analiza primului câmp din fișierul /etc/passwd (unde sunt stocate parolele). Dacă numele de utilizator se regăsește aici, următorul pas este acela de a verifica dacă parola introdusă este corectă. După verificarea parolei, programul login definește un mediu inițial de lucru ce constă din anumite variabile de sistem și acest mediu de lucru este transmis shell-ului.

Variabilelor de sistem HOME, SHELL, USER și LOGNAME le sunt atribuite valori din

fișierul passwd. Variabila HOME reprezintă directorulnhome al utilizatorului; variabila SHELL reprezintă numele shell-ului de login (ultimul câmp din fișierul passwd). Variabila USER și variabilaLOGNAME reprezintă numele utilizatorului. Printre alte variabile setate acum este și variabila PATH, ce reprezintă o colecție de căi de căutare pentru comenzile introduse. În momentul terminării execuției programului login, acesta va lansa în execuție programul găsit în ultimul câmp al fișierului passwd, corespunzător liniei utilizatorului respectiv. Dacă acest câmp este /bin/ksh, va fi executat shell-ul Korn; dacă valoarea găsită este /bin/sh, se va porni shell-ul Bourne. Acest shell poartă denumirea de login shell.

După pornirea programului shell, se caută diverse fișiere generale de configurare iar apoi, în directorul home, se caută fișiere de configurare specifice utilizatorului respectiv. Dacă acestea sunt găsite, se execută. Fișierele de inițializare sunt utilizate pentru a adapta mediul uilizatorului la propriile cerințe. După ce s-au executat și aceste fișiere de configurare, apare un prompter pe ecran. Din acest moment, programul shell așteaptă introducerea comenzilor.

2.4.1. Niveluri de rulare (runlevels)

Un nivel de rulare se referă la un context de utilizare a unui sistem de operare – la serviciile puse de către sistemul de operare utilizatorului. Diferența între niveluri o constituie dispozitivele montate și servicuule pornite. Există 7 niveluri de rulare numerotate de la 0-6. Ele diferă la diversele distribuții de Linux în afara celor 3, care au aceeași semnificație :

– runlevel 0 – halt pentru oprirea sistemului;

– runlevel 1 – single pentru un sistem single-user, este montatp doar partiția rădăcină;

– runlevel 5 – starea normală a sistemului, cu login X Window;

– runlevel 6 – reboot pentru repornirea sistemului

Pentru aflarea rnivelului de rulare curent se folosește comanda runlevel (pe cont de root) sau comanda who –r (ca user obișnuit.

Fig. 2.4. Nivelul de rulare pe sistemele Kubuntu și Fedora

Schimbarea runlevel-ului se face cu comanda init urmată de numărul runlevel-ului.

Capitolul III. Sistemul de fișiere Linux

III.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.

Sistemele de operare folosesc fișierele pentru a organiza date fie ca acesetea aparțin utilizatorului sau sunt generate pe moment de sistem. În sistemele Linux și Mac OS, orice informație se găsește într-un fișier. (fiecare dispozitiv poate fi accesat rpin intermediul unui fișier, inclusiv mouse-ul, memoria și placa video. În Windows se folosește o shemă asemănătaore structurii de fișiere si directoare penrtu denumirea dispozitivelor, fără ca această structură să se suprapună peste structura de fișiere, [3].

Fig. 3.1. Sistemele de operare cu sistemele de fișiere aferente

Fig. 3.2. Ckasificarea sistemelor de fișiere după suportul datelor

Sistemul de fișiere Linux 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.

Linux 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 Linux 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 Linux este precum un document îndosariat (dosarul este directorul – directory, 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 Linux 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.

III.2. Partiții și spațiul de swap

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, [1].

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, [3].

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.

Tipul sistemului de fișiere utilizat în Linux este Ext2/Ext3 sau mai nou Ext4.

Toate distribuțiile Linux 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 decă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ă.

III.3. Tipuri de fișiere

Principalele tipuri de fișiere existente pe un sistem Unix sunt, [1]:

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 dispozitive

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ă se utilizează un editor Unix pentru a crea un mesaj pentru poșta electronică atunci se crează și un fișier text în cele mai multe dintre cazuri.

Fișiere de date

Fișierele de date sunt fișierele ce conțin date utilizate de diverse aplicații de pe sistem. Dacă se utilizează un program special 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.

Fișiere cod sursă

Fișierele cod sursă sunt fișiere ce conțin date scrise într-un limbaj de programare pre-

cum 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”.

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).

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.

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.

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 varianta 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.

III.3.1. Tipuri de fișiere Linux

– 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.

III.4. Ierarhia unui sistem de fișiere

Sisemele de fișiere permit user-ului să organizeze datele într-un mod accesibil. Cea mai des întâlnită structură este arborele. În Fig. 3.3. se prezintă structura ierarhică din sistemele Unix, [3].

Fig. 3.3. Ierarhia sistemului de fișiere în mediul Unix

În Fig. 3.4. se prezintă un exemplu de o ierarhie grafică parțială a sistmului de fișiere din Linux.

Fig. 3.4. Ierarhia sistemului de fișiere în Linux

După cum se obervă, la radacină “/” (root) sunt directoarele home, bin, usr

În fig. 3.5 se prezintă o comparație între căile sistemului de fișiere ale Windows și Linux.

Fig. 3.5. Comparație într căile sistemelor Windows și Linux

III.4.1. Căi relative și căi absolute

Există două moduri prin care se poate accesa un fișier saun un director : calea absolută, care începe cu directorul rădăcină al sistemului de fișiere și calea relativă care indică spre un fișier pornind de la directorul curent.

Trebuie menționat faptul că fiecare director conține două directoare speciale “.” (punct)

și “..” (punct punct). Primul indică spre el insuși, același director, iar celălalt spre directorul

părinte.

Dacă se dorește un traseu ascendent în ierarhia de fișiere, se folosește “..” care inică directorul părinte.

“.” se folosește pentru a indica în mod explicit o cale care capunct de pornire directorul curent. deasemenea este utilizat în mod frecvent pentru a scrie comenzi care execută scripturi (programe) aflate în directorul curent.

Un inode este o metadată (deține informații despre informații) și identifică în mod unic un fișier de pe disc, deținând informații despre acesta (uid, gid, drepturi de acces, timpi de acces, pointeri la blocurile de date etc.). Un aspect important este faptul că un inode nu deține informații despre numele fișierului (acesta este reținut de structura asociată)!

Chiar și directorul rădăcină – root – conține o referință către directorul părinte, care în acest caz este o referință către el însuși; directoarele pot conține subdirectoare și fișiere; la rândul lor, subdirectoarele pot conține alte subdirectoare și alte fișiere.

III.5. Lucrul cu sistemul de fișiere III.5.1. Crearea sistemului 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. 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 [1].

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). Într-un sistem Linux, apelarea la formatare se face prin comanda :

# mkfs –t <tip_sistem_de_fișiere> <dispozitive>

Pentru fiecare tip de sistem de fișiere există un program pentru formatare. Aceste programe au numele de forma mkfs.<fstyoe> și pot fi apelate direct pentru formatarea unei partiții.

III.5.2. Montarea unui sistem de fișiere

Sistemul de operare oferă acces uniform la datele din toate tipurile de sisteme de fișiere

prin intermediul ierarhiei de fișiere. Pentru a fi vizibil, un sistem de fișiere trebuie sa fie montat (mount) într-un director, numit director de montare (mount point). Sistemul de operare execută în mod automat aceasă operație.

În opoziție cu sistemul Windows unde sistemele de fișiere primesc automat litere diferite (modificabile de către user), în Linux, sistemele de fișiere sunt montate în locuri bine definite (la instalare) cât și în locuri special create pentru sistemele de pe medii externe (USB stick, CD/DVD ROM), în directoare ca de exemplu : /media/<nume>.

III.5.2.1. Montarea manuală

În LINUX se utilizează comanda :

# mount –t <tip_sistem_de_fișiere>[-o <opțiuni>] <dispozitiv> <director_de_montare>

Exemplu

# mount –t ext3 /dev/sda3 /mnt/data

Comanda montează partiția 3-a de pe primul disc, cu sistemul de fișiere ext3 în directorul /mnt/data (directorul trebuie creat anterior)

III.5.2.2. Montarea manuală

Într-un sistem LINUX, fișierul /etc/fstab descrie sistemele de fișiere care vor fi montate automat la pornirea sistemului de operare. Fișierul conține o linie pentru fiecare sistem de fișiere. Comentariile îmcep cu “#”.

Sintaxa unei linii este :

<dispozitiv> <director_montare> <tip_sistem_fișiere> < opțiuni> <dump> <pas>

Câmpurile au următoarele semnificații :

– <dispozitiv> – fișier care indică locul (dispozitiv) unde se găsește sistemul de fișiere;

– <director_montare> – director existent în structura de directoare unde se ca puta accesa conținutul sistemului de fișiere montat;

– <tip_sistem_fișiere> – tipul sistemului de fișiere;

– <opțiuni> – opțiuni pentru montarea sistemului de fișiere – diferă de la un

sistem de fișiere la altul;

– <dump> – indică dacă se realizează automat backup-ul partișiei utilizaând programul dump (implicit parametrul are valoarea 0)

– <pas> – indică ordinea în care fsck (repararea sistemului de fișiere) va verifica sistemele de fișiere (0 = fsck nu va verifica sistemul de fișiere)

Comanda mount fără nici un parametru afișează lista sistemelor montate la un moment dat. Există și sisteme de fișiere care sunt create și montate automat în ierarhia de fișiere pentru a oferi informații despre starea sistemului (proc). Lista de fișiere montate la un moment dat se regăsește și în fișierul etc/mtab.

Operația inversă montării unui sistem de fișiere este demontare și se realizează cu comanda umount cu unul din următoarele formate :

# umount <dispozitiv>

# umount <director_de_montare>

III.5.3. Repararea sistemului de fișiere

Sistemele de fișiere moderne au suport pentru jurnalizare, mai ales în cazul de căderi ale sistemului. La repornire, sistemul de operare efectuează o verificare a integrității sistemelor de fișiere. Astfel se execută comanfa fsck pentru fiecare sistem de fișiere, [3].

În Linux pentru verificarea unui sistem de fișiere se execută comanda :

# fsck –t <tip_de_sistem_fișiere> <dispozitiv>

În funcție de opțiunile specificate, prin această comandă se pot repara eventualele erori.

(în comanda de mai sus s-a ilustrat semnul # , indicându-se astfel faptul ca această comandă se execută de către administrator)

III.5.4. Ștergerea sistemului de fișiere

Există două tipuri de ștergere a unui sistem de fisiere :

– ștergerea logică – se obține prin ștergerea partiției corespunzătoeresistemului de fișiere din tabela de partiții (Partition Table). Practic datele mai reziduă pe disc până la o suprascriere cu altele noi;

– ștergerea fizică – realizată prin suprascrierea blocurilor de pe suportul fizic cu date aleatoare sau zero-uri.

Pentru cele două cazuri de suprascriere se folosește programul dd.

# dd if=/dev/zero of=/<dispozitiv>

III.6. Operații uzuale asupra fișierelor și directoarelor

Formatul general al unei comenzi Linux este:

$ comanda [opțiune(opțiuni)] <argument(e)>

Partea stanga a shell-ului $ este formată din [numele user-ului urmat de @domeniul de rețea și numele directorului curent].

În formatul general de mai sus se identifică următoarele componente:

semnul dolar $ reprezintă prompterul shell (pe contul curent, pe contul de root este #), comanda reprezintă programul executabil, opțiune/opțiuni identifică posibilitatea modificării programului executabil pentru a rula în condiții specifice iar argument/argumente reprezintă fișier (fișiere) sau director (directoare), inclusiv cu calea către fișierul sau directorul specificat, sau un text. Separarea acestor componente se face prin semnul spațiu. Pe o singură linie se pot introduce până la 256 de caractere (nu se recomandă, desigur, folosirea unui număr atât de mare de caractere pe o singură linie).

Toate comenzile Linux sunt scrise cu litere mici. Opțiunile sunt formate din litere precedate de semnul liniuță sau minus “-“. Se pot combina mai multe opțiuni folosind un singur semn minus!

Opțiunile pot fi atât litere mici cât și litere mari, în funcție de comandă. Nu toate comenzile necesită toate cele 3 componente. Se pot scrie mai multe comenzi pe aceeași linie, separate de caracterul punct și virgulă “;”.

III.6.1. Afișarea și schimbarea directorului curent

Principala comandă de navigare în cadrul sistemului de fișiere Linux este cd (change directory). O altă comandă folosită pentru a afla directorul curent este pwd (print working directory). Comanda pwd este folosită fără opțiuni și fără argumente.

$ cd ..

schimbă directorul curent în directorul părinte

$ cd .

se face o referință la directorul curent, deci nu se modifică directorul

$cd

poziționează în directorul home al user-ului curent

$ cd – –

schimbă directorul în directorul anterior

$ cd ../..

$ cd /

poziționează prompterul în / (root).

III.6.2. Căutarea fișierelor și a caracterelor în fișiere

find [<cale_fișier>] [<expresie>] – caută fișiere într-un arbore de directoare. La această comandă se pot folosi și metacaracterele, "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ă ( / ).

Comanda 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, [1].

Detalii despre aceste comenzi pot fi aflate cu man find, respectiv man grep.

III.6.3. Afișarea conținutului fișierelor

Se folosește comanda cat. Formatul comenzii este

$ cat <nume fișier>

În urma comenzii este afișat tot fișierul chiar dacă acesta este mai mare decât un ecran. Pentru navigarea prin output-ul unei comenzi se folosesc comenzile more sau less. Prima permite navigarea într-o singură direcție (de la începutul fișierului la sfârșitul acestuia) câte un

ecran o dată, iar cea de-a doua comandă permite navigarea în ambele direcții, câte o linie.

III.6.4. Listarea fișierelor

Una din cele mai frecvente operații asupra fișierelor este listarea, cu ajutorul comenzii ls.. Formatul comenzii este :

ls [opțiuni] [<cale>]

Dacă lipsește calea, re returnează conținutul directorului curent. Pentru a afla informații despre sintaxa și semantica comenzii ls, ca de altfel a majorității comenzilor, se apelează la manual, tastându-se man <comandă>, în cazul de față man ls. Această comandă va afișa paginile de manual pentru comanda respectivă.

Opțiunile cele mai des utilizate cu comanda de listare sunt prezentate în Fig. 3.6.

Fig.3.6. Parametrii comenzii ls

În Linux, ca în orice sistem de operare modern și multiuser, există 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.

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".

III. 6.5. Crearea fișierelor/directoarelor

Pentru crearea unei entități pe un sistem de fișiere se utilizeaza comenzile touch, mkdir și ln.

În Fig. 3.7 sunt prezentate comenzile pentru crearea fișierelor.

Fig. 3.7. Crearea fișierelor

Se pot crea simultan mai multe fișiere și directoare, [3].

Există posibilitatea utilizării unei funționalități bash de redirectare în fișiere. În urma celei de-a doua comenzi rezultă redirectarea unei comenzi (nule) către un fișier, rezultatul fiind un fișier gol.

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> nume_fișier

Redirectarea intrării:

$ comanda < nume_fișier

O caracteristică importantă a sistemului de fișiere din Linux este noțiunea de legătură

(link). Scopul legării este acela de partajare a fișierelor (sau directoarelor) între diferite directoare. Legarea unui fișier are ca efect posibilitatea referirii acelui fișier prin căi și, eventual, nume diferite în arborele de fișiere și directoare. În Linux există două tipuri de legă-

turi: fizică (hard) și simbolică.

Fiecare fișier are asociat un singur inode, iar numele fișierului și numărul său de inode sunt localizate într-o intrare din directorul în care a fost creat fișierul!

Numărul de inode este un identificator unic al fișierului în cadrul sistemului și înscrierea sa în cadrul unei intrării dintr-un director poate fi interpretată ca o referire sau o legătură spre fișier din acel director. Această interpretare stă la baza înțelegerii legăturii fizice, care se realizează prin alocarea unei noi intrări, fie în directorul inițial, fie într-unul diferit, intrare în director care va conține numărul de inode al fișierului legat. Numele intrării respective poate fi identic sau diferit de cel al altei intrări care referă același fișier. Evident, două intrări diferite din cadrul aceluiași director, care referă același fișier (conțin același număr de inode) trebuie să aibă nume diferite

Dacă în cazul legăturii fizice, nu se creează un fișier nou, ci numai o intrare în director nouă, în cazul legăturii simbolice ambele lucruri se întâmplă, adică în directorul în care se creează legătura se alocă o intrare care va referi un inode nou, alocat unui nou fișier. Acest fișier este unul special, de tip legătură simbolică. Conținutul unui fișier legătură simbolică este calea spre fișierul legat (referit) și accesarea lui are ca efect accesarea fișierului legat.

Fișierul legătură simbolică nu conține informații despre localizarea fizică a fișierului legat (inode-ul său), ci doar despre o cale spre acel fișier, astfel încât ștergerea acelei căi face ca referința din fișierul legătură simbolică să devină invalidă, fără a apărea însă inconsistențe în sistemul de fișiere.

Pentru stabilirea unei legături spre un fișier existent se poate folosi comanda ln, a cărei sintaxă este următoarea, lipsa opțiunii -s indicând crearea unei legături fizice, iar prezența ei indicând crearea unei legături simbolice:

$ ln [-s] nume_cale_veche nume_cale_nouă

Nu este permisă efectuarea de legături fizice la directoare, decât administratorului sistemului și aceasta doar în anumite cazuri în funcție de configurația sistemului. prin intermediul opțiunii –f (force).

Ștergerea unei legături se poate realiza prin comanda unlink.

III. 6.6. Copiere/mutare/redenumire

Copierea și mutarea sunt operații ce necesită 2 parametri :

sursa de unde se copiază/mută;

destinația unde se copiază/mută

Copierea

Opțiunile dele mai folosite sunt :

R – copiere recursivă (sunt copiate și copii ale directoarelor, dacă acestea există)

a – copiere cu păstrarea tuturor atributelor (dată și permisiuni)

– i : cere permisiune de suprascriere în cazul în care există un fișier cu același nume în directorul destinație

Formatul comenzii este :

$ cp [opțiuni] <sursa> <destinație>

Pentru copierea unui director care conține subdirectoare se folosește opțiunea –r.

Mutarea

Formatul comenzii este :

$ mv [opțiuni] <sursa> <destinație>

Mutarea este recursivă și păstrează atributele fișierelor. La mutare se schimbă doar părintele fișierului sau directorului care se mută. Pentru a muta un director care conține subdirectoare se folosește opțiunea –r.

Redenumirea

Se poate realiza atât cu ajutorul comenzii cp cât și cu mv, atfel :

– în cazul în care sursa este un fișier și destinația este un fișier, re realizează copierea/mutarea fișierului cu schimbarea numelui sursei;

– în cazul în care sursa este un director și destinația nu există ca director, se realizează copierea/mutarea directorului cu schimbarea numelui.

III.6.7. Ștergerea fișierelor/directoarelor

În Linux comanda de ștergere a fișierelor și directoarelor este rm. Formatul comenzii este :

$ rm [opțiuni] <cale>

Opțiunea cea mai des folosită pentru a șterge recursiv un director este –r/R. Se recomandă utilizarea atentă pentru evitarea unor rezultte negative dacă directorul care este șters conține multe informații utile.

O eroare destul de întâlnită este utilizarea comenzii :

$ rm –rf /

Aceasta comandă șterge recursiv totul începând de la rădăcină forțând ștergerile (parametrul t).

Pentru ștergerea directoarelor goale se mai foate folosi și comanda :

$ rmdir <nume_director_gol>

Se pot șterge mai multe directoare aflate la același nivel în structura sistemului de fișiere cu aceeași comandă .

III.6.8. Arhivarea, dezarhivarea și compresia fișierelor

Comanda tar

Comanda tar (tape archive) poate fi folosită pentru crearea de arhive pe suporturi magnetice (benzi sau discuri). Poate fi folosită, de asemenea, pentru crearea arhivelor de uz general pentru transferul fișierelor în rețele, Internet, etc. Comanda tar poate fi utilizată și pentru crearea de copii de siguranță pentru fișiere, fiind o comandă standard pentru toate versiunile de UNIX. Dezvoltată inițial pentru lucrul cu arhive pe bandă magnetică, comanda tar poate copia însă fișiere oriunde (hard disc, floppy disc sau alte unități de stocare externe).

Comanda tar poate crea o arhivă a unui singur fișier, dar ea este, de regulă, folosită pentru arhivarea de directoare întregi într-un singur fișier care va fi folosit mai târziu dacă este cazul.

Comanda tar nu asigură și compresia fișierelor în timp ce creează arhiva (precum utilitarele winzip, pkzip, winrar, arj, ace, etc. pentru PC).

Cele mai întâlnite opțiuni ale comenzii tar sunt c, t și x. Spre deosebire de majoritatea comenzilor UNIX, aceste opțiuni nu trebuie neapărat precedate de semnul minus (-).

Sintaxa generală a comenzii este următoarea:

$ tar funcție [modificator] [fișier_ieșire] nume_fișier | nume_dir

Funcțiile comenzii tar sunt următoarele:

– c (create) – este utilizată pentru a crea o arhivă dintr-un singur fișier sau director sau din mai multe fișiere sau directoare;

– t (table of contents) – este utilizată pentru a vedea un tabel cu conținutul arhivei. Acest tabel reprezintă un listing cu fișierele ce compun fișierul arhivă de tip tar;

– x (extract) – este utilizată pentru a extrage fișiere dintr-o arhivă și a le separa din nou. Fișierul arhivă tar există și după această extragere.

Cei mai utilizați modificatori ai funcțiilor sunt:

– f (file) – permite specificarea unui fișier tar pentru creare (c), extragere (x) sau vizualizarea tabelei de conținut (t);

– v (verbose) – execută comanda în modul „vorbăreț” care permite vizualizarea rezultate-

lor detaliate ale comenzii tar pe măsură ce aceasta rulează.

Exemplu

$ tar cvf /dev/fd0 /home/student

– se va crea o arhivă tar pe discheta /dev/fd0, copiind toate fișierele și subdirectoarele din

directorul /home/student

Comanda compress

O operație frecventă pe un sistem UNIX este aceea de a arhiva fișierele care nu au fost folosite o perioadă îndelungată de timp și apoi a le compresa pentru a reduce spațiul ocupat pe hard disc. În acest sens, se poate folosi comanda compress. Toate fișierele, inclusiv cele arhivate cu comanda tar, pot fi compresate.

Compresia fișierelor pe un sistem Linux poate reduce dimensiunea unui fișier cu 20% până 80%, în funcție de tipul fișierului. Dacă utilitarul de compresie ajunge la concluzia că fișierul nu poate fi comprimat sau nu există nici o reducere în dimensiune a fișierului, atunci fișierul va rămâne nemodificat.

Fișierele comprimate cu comanda compress sunt înlocuite cu un fișier cu același nume cu cel original, dar care are extensia .Z (litera mare).

Comanda compress oferă posibilitatea compresiei mai multor fișiere o dată, precum și folosirea metacaracterelor pentru specificarea mai multor fișiere.

Sintaxa comenzii este :

$ compress nume_fișier.tar

Fișierele comprimate sunt considerate fișiere binare, de aceea conținutul lor nu poate fi vizualizat folosind comenzile cat sau more.

Decompresia fișierelor

Fișierele compresate pot fi aduse în starea inițială comprimării prin utilizarea comenzii uncompress. Deoarece fișierele comprimate nu pot fi utilizate sub această formă, ele trebuie aduse în starea de dinaintea comprimării, operația purtând numele de decomprimare sau decompresare.

Formatul general al comenzii uncompress este următorul:

$ uncompress [opțiuni] nume_fișier

Nu este neapărat necesar specificarea extensiei .Z, având în vedere că această comandă

caută automat fișierul cu extensia implicită .Z. De asemenea, se pot decompresa mai multe fișiere o dată, folosind metacaracterele * și ?.

Pentru a vizualiza conținutul unui fișier comprimat fără a face efectiv decomprimarea, se poate folosi opțiunea -c.

Comanda gzip

Sintaxa generală a comenzii este:

$ gzip [-acdfhlLnNqrtvV19] [-S sufix] [nume_fișier …]

Este folosit algoritmul de compresie Lernel-Ziv (LZ77) pentru a reduce dimensiunea fișierelor specificate în comandă. Pentru fiecare fișier specificat, fișierul original este șters și înlocuit cu varianta sa compresată ce are același nume cu fișierul original căruia i se adaugă extensia .gz. Fișierul compresat are aceleași proprietăți referitoare la modurile de acces, permisiuni, data/ora de acces, data/ora ultimei modificări, precum fișierul original. Atunci când nu se specifică numele unui fișier pentru a fi compresat, utilitarul gzip citește de la intrarea standard, compresează și afișează la ieșirea standard.

Pentru decompresie, se pot folosi comenzile gzip -d, gunzip sau gzcat. Atunci când decompresia se face (cu gzip -d sau gunzip) pe un alt sistem de fișiere decât cel inițial, există posibilitatea ca numele original al fișierului să fie un nume invalid pentru noul sistem de fișiere. În acest caz, utilitarul de decompresie creează un fișier cu un nume valid pentru noul sistem de fișiere.

Comanda gunzip

În urma comenzii se citește fiecare fișier ce începe cu numele specificat și are o extensie de tipul .gz, .z, .Z, .bz2, apoi șterge fișierul și îl înlocuiește cu varianta decomprimată a fișierului, înlăturându-i extensia.

Sintaxa generală pentru gunzip este:

$ gunzip [-acfhlLnNqrtvV] [-S sufix] [nume_fișier …]

De asemenea, comanda gunzip recunoaște și extensiile .tgz și .taz ca prescurtări ale extensiilor .tar.gz și .tar.Z. Aceste două extensii sunt folosite de gzip atunci când fișierele comprimate au extensia .tar. În plus, se pot decomprima fișiere comprimate cu alte comenzi,

recunoscând automat tehnica de compresie folosită.

Compresia mai multor fișiere

În Linux se pot concatena mai multe fișiere comprimate. În acest caz, utilitarul gunzip va extrage toate fișierele din fișierul rezultat prin concatenare. De exemplu:

$ gzip -c fișier1 > fișiere.gz

$ gzip -c fisier2 >> fișiere.gz

După crearea fișierului comprimat fiscat.gz, comanda:

$ gunzip -c fișiere.gz

este echivalentă cu:

$ cat fisier1 fisier2

III.7. Drepturi de acces

Drepturile de acces la fișiere reprezintă o primă măsură de protecție a datelor. Un utilizator simplu (fără drepturi de administrare) pe un sistem de calcul, se supune drepturilor de acces la fișiere.

În mod general orice sistem de fișiere prezintă drepturi de citire, scriere, execuție, modi-

ficare și ștergere asupra fișierelor, [1].

În fiecare linie din listingul comenzii ls –al, primul caracter reprezintă tipul fișierului (d pentru director, – pentru fișier simplu, l pentru fișier legătură, etc.). Următoarele 9 caractere reprezintă drepturile de acces la fișier pentru utilizatorul care este proprietarul fișierului, pentru grupul din care face parte proprietarul și pentru ceilalți utilizatori (în această ordine), [9].

Fig. 3.8. Coloanele cu drepturile de acces la fișiere

Coloana 1: Arată faptul că un fișier este director (d), fișier obișnuit (-), sau un tip special de fișier.

Coloanele 2-4: Arată care sunt drepturile de acces la fișier pentru utilizatorul care este proprietarul fișierului. Drepturile de acces pot fi: de citire (r), scriere (w), și execuție (x).

Coloanele 5-7: Arată care sunt drepturile de acces la fișier pentru grupul proprietar al fișierului. Drepturile de acces pot fi aceleași: citire (r), scriere (w) și execuție (x).

Coloanele 8-10: Arată care sunt drepturile de acces la fișier pentru utilizatorii

care nu sunt în grupul proprietar al fișierului (others). Drepturile de acces pot fi aceleași: citire (r), scriere (w) și execuție (x).

III.7.1.. Schimbarea drepturilor de acces

Drepturile de acces la fișiere și directoare se pot modifica folosind comanda chmod

(change mode).

Sintaxa comenzii este :

$ chmod mod_simbolic nume_fișier/nume_director

mod_simbolic este organizat în : obiect modificare felul drepturilor

obiect poate fi de forma:

u – dă drepturi utilizatorului sau le ia de la utilizator

g – dă drepturi grupului sau le ia de la grup

o – dă drepturi altor utilizatori sau le ia de la utilizatori

a – dă drepturi tuturor utilizatorilor sau le ia de la utilizatori

modificare poate fi de forma :

+ – dă drepturi

– – ia drepturi

= – lasă drepturi

felul drepturilor poate fi – de formă literală :

r – se poate citi fișierul sau directorul

w – se poate modifica fișierul sau directorul

x – se poate executa fișierul sau directorul

– de formă numerică

Astfel pentru fiecare entitate există o cifră în baza 8, câte un bit pentru fiecare drept

Modul numeric în baza 8 este prezentat în Tabelul 3.1.

Tabelul 3.1. Modul numeric în baza 8

Pentru a schimba toate drepturile pentru toți utilizatorii în același timp folosind forma literală se utilizează caracterul “a” (=all).

Schimbarea owner-ului și/sau grupului din care face parte un fișier. Sintaxa comenzii este :

$ chown [<opțiuni>] [<utilizator>] : [<grup>] <nume_fișier>

Utilizatorul sau grupul poate să lipsească din comandă. Pentru a schimba recursiv owner-ul/grupul unui director, se utilizează parametrul –R.

III.7.2. Redirectări de comenzi

Fiecare program în execuție utilizează 3 fișiere speciale la interacțiunea cu nutilizatorul:

– stdin – fișierul standard de intrare – locul de unde programul își citește darele de intrare (tastatura);

– stdout – fișier standard de ieșire – locul unde programul scrie datele de ieșire (consola curentă);

– stderr – fișierul standard de eroare – locul unde programul scrie mesajele de eroare (consola curentă).

În Linux, fiecare fișier deschis de o aplicație are asociat un indice (descriptor de fișier) care va fi mai mare sau egal cu 3, [3].

III.7.2.1. Redirectări

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 nume_fișier

Redirectarea intrării:

$ comanda < nume_fișier

Redirectarea ieșirii:

$ comanda > nume_fișier

Pentru a completa fișierul deja creat cu rezultatul altei comenzi se dă comanda :

$ comanda >> nume_fișier1

Capitolul IV. Tehnici de administrare a sistemului de fișiere a distribuțiilor Fedora și Kubuntu prin soluții de virtualizare

4.1. Soluții de virtualizare

Cum s-a arătat în Introducere, virtualizarea este o metodă ce permite rularea a unuia sau mai multor “calculatoare” pe o singură platformă hardware, sau altfel spus, a două sisteme de operare diferite pe un singur PC. De exemplu, pe un PC se poate rula atât o mașină Windows cât și una Linux. Încărcarea multiplă este o tehnică utilizată pentru executarea unuia sau mai multor sisteme de operare pe un singur computer. Unele persoane aleg să configureze un computer cu încărcare multiplă pentru a executa programe mai vechi care necesită un sistem de operare mai vechi pentru a funcționa corect. Însă, încărcarea multiplă poate fi complicată și, dacă nu este efectuată corespunzător, poate face ca sistemul să devină inoperabil.

4.1.1. Microsoft Virtual PC 2007

O modalitate simplă pentru a profita fără probleme de beneficiile încărcării multiple este utilizarea Virtual PC 2007. Este o descărcare gratuită de care poate fi utilizată pentru instalarea mai multor sisteme de operare pe computer și pentru a comuta între ele la fel de simplu ca între programe. Virtual PC 2007 se poate descărca de pe site-ul Web http://www.microsoft.com/en-us/download/details.aspx?id=4580.

Virtual PC 2007 este una din cele mai bune soluții de virtualizare pentru mediile Windows și Linux. Fiind optimizat pentru configurare rapidă, folosind wizardul, Virtual PC poate genera o imagine virtuală în câteva minute, singurele lucruri necesare fiind câteva specificații despre memoria care se dorește a fi pusă la dispoziție,  limitarea capacității de procesare și spațiul.

Virtual PC rulează o copie virtuală a unuia sau a mai multor sisteme de operare într-un mediu protejat. Cu Virtual PC utilizatorul se poate întoarce la mai vechile MS-DOS sau OS/2 fără să trebuiască să treacă partițiile pe FAT sau FAT 32.

Aplicația poate rula pe sistemele de operare Windows:

Windows XP

Windows Vista pe 32-bit sau 64-bit,

Windows 8 și 8.1

Windows Server 2003,

Windows Server 2008

Windows XP Tablet PC.

Virtual PC 2007 poate rula pe calculatoare cu procesoare de minim de 400 MHz, dar se recomandă ca viteza acestuia să fie de cel puțin 1 GHz.

După instalarea programului Virtual Pc 2007 și pornirea lui, apar două ferestre Fig.4.1.

Fig.4.1.. Icoana și primele ferestre Virtual PC 2007

S-au urmărit etapele de creare a mașinii virtuale. S-au ales setările optime privind configurarea mașinii virtuale în ceea ce privește instalarea distribuției Kububtu 14.10. Apoi s-a trecut la instalarea prorpiu-zisă a distribuției.

Fig. 4.2. Crearea mașinii virtuale

Fig.4.3. Consola și setările mașinii virtuale Linux

S-au parcurs etapele instalării distribuției, s-a stabilit parola de root și s-a creat userul Dulău.

De fiecare dată cand se pune indicatorul nouse-ului pe fereastra mașinii virtuale apare o fereastră informativă – Fig. 4.4..

Pentru trecerea indicatorului de mouse între fereastra mașinii virtuale și desktop-ul mașinii gazdă se ține apăsată tasta Right-Alt și apoi se apasă pe butonul stâng mouse, Fig.4.4.

Pentru intrarea și ieșirea în/din modul fullscreen se apasă cobinația de taste RightAlt+Enter.

Fig. 4.4. Fereastra de informare privind “host key” de capură a indicatorului mouse-ului

Pentru intrarea în sistemul Kubuntu, trebuie ca utilizatorul să fie logat, completând parola în ecranul de logare. Fig. 4.5.

Fig. 4.5. Ecranul de logare a distribuției Kubuntu 4.10 pe mașina virtuală

4.1.2. Oracle VM VirtualBox

Oracle VM VirtualBox reprezintă unul dintre cele mai cunoscute programe creatoare de mașini virtuale, dedicate sistemelor de operare Windows. Programul gratuit VirtualBox este capabil să genereze mașini virtuale ale celor mai cunoscute sisteme de operare, cum ar fi Windows, Linux, Solaris, Mac OS X, BSD, dar și Android.

De menționat este faptul că sistemele de operare din cadrul masinilor virtuale generate de VirtualBox sunt complet funcționale, având suport USB ți conexiune la Internet. De asemenea, cel mai important proces din cadrul generării unei mașini virtuale il reprezintă instalarea propriu-zisă a sistemului de operare dorit prin interfața programului VirtualBox, acest proces necesitând o imagine (.iso) a sistemului de operare sau CD/DVD-ul acestuia.

Interfața VirtualBox este sugestivă și din ce în ce mai prietenoasă cu toate tipurile de utilizatori, înregistrând un mare plus din acest punct de vedere.

Fig.4.6. Icoana și ecranul de întâmpinare a programului Oracle VM VirtualBox

Fig. 4.7. Tipurile de fișiere salvate pe hard disk, disponibile pentru mașina virtuală

După crearea mașinii virtuale, se setează sursa de pe care Oracle VM VirtualBox va instala sistemul de operare dorit, în cazul de față distribuția Linux Fedora 21 Workstation. În Storage, se poate observa în Fig.4.8. a fost alocat un spațiu de 8 GB.

Fig. 4.8. Fereastra de configurare a mașinii virtuale Fedora 21

Fig. 4.9. Setările mașinii virtuale cu distribuția Linux Fedora

Fig. 4.11. Setarea parolei de root și crearea userului dulău

Fig. 4.12. Ecranul de logare a distribuției Fedora 21 pe mașina virtuală

Fig. 4.13. Fereastra de informare privind “host key” de capură a indicatorului mouse-ului

S-au parcurs etapele instalării distribuției, s-a stabilit parola de root și s-a creat userul dulău – Fig. 4.11.

Pentru trecerea indicatorului mouse-ului între fereastra mașinii virtuale și desktop-ul mașinii gazdă se ține apăsată tasta Right-Ctrl și apoi se apasă pe butonul stâng mouse. Pentru intrarea și ieșirea în/din modul fullscreen se apasă “tasta host” +F, Fig. 4.13.

Pentru intrarea în sistemul Kubuntu, trebuie ca utilizatorul să fie logat, completând parola în ecranul de logare, Fig. 4.12.

4.2. Tehnici de administrare în linie de comandă a sistemului de fișiere pe cele 2

distribuții Linux

În cele ce urmează se vor exemplifica prin comenzi scrise în linie de comandă în Terminal respectiv Konsole ale celor doup distribuții. De asemenea se urmărește o administrare cât mai eficientă a sistemului de fișiere ale celor dpuă distribuții Kubuntu și Fedora.

În Fig. 4.14 și 4.15 se ărezintă ferestrele Terminal respectiv Konsole ale celor două distribuții.

Fig. 4.14. Fereastra Konsole în Kubuntu

Fig. 4.15. Fereastra terminal în Fedora

În Fig. 4.16 și 4.17.sunt prezentate primele comenzi scrise în linie de comandă pe cele două distribuții:

– uname –r – este afișată versiunea kernelului;

– whoami – informații despre utilizatorul conectat la terminalul curent;

– pwd – afișarea directorului curent;

– ls –l – obținerea unui listing lung;

– df – informații despre sistemele de fișiere de pe cele două sisteme de operare.

Fig. 4.16. Primele comenzi în Konsole – Kubuntu

În continuare, În Fig. 4.18 și Fig. 4.19, se prezintă prin capturi de ecran câteva tehnici de administrare referitoare la crearea și schimbarea drepturilor de acces la un fișier de tip text (test.txt) pe ambele distribuții.

Sunt invocate următoarele comenzi Linux : touch, ls, su, chmod.

Apoi se crează un alt user dulau1 și se schimbă apartenența fișierului text creat anterior utilizând comenzile : useradd și chown.

Fig. 4.17. Primele comenzi în Terminal – Fedora 21

Fig. 4.18. Comenzi de administrare a sistemului de fișiere în distribuția Kubuntu

Fig. 4.19. Comenzi de administrare a sistemului de fișiere în distribuția Fedora

Explicații :

S-a schimbat userul curent dulau cu root prin comanda su. S-a schimbat directorul curent în / (rădăcina sistemului de fișiere). S-a facut un listing sumar cu comanda ls. S-a creat directorul Temp cu comanda mkdir. S-a intrat în directorul Temp. S-a creat fișiserul test.txt cu comanda touch. în urma listingului detaliat (ls –l) s-a observat lipsa drepturilor de modificare a fișierului pentru alți utilizatori și s-a dat acestora dreptul cu comanda chown. S-a creat un user dulau1 în grupul dulau cu comanda useradd. S-au schimbat recursiv proprietarul și grupul fișierului test.txt cu comanda chown. S-au repetat comenzile în sistemul Fedora, s-a folosit sistemul octal de schimbare a drepturilor asupra fișierului test.txt apoi s-a șters userul dulau1 cu comanda userdel , s-a șters în mod recursiv directorul acestuia cu comanda rm –iR și s-a creat din nou același user dar în alt director home/altuser/dulau1.

Fig. 4.20. Alte facilități de administrare a sistemului de fișiere în Fedora

Explicații

S-au căutat toate aparițiile șirului de caractere ‘dulau’ în fișierul /etc/passwd cu comanda grep. Apoi s-a dat un exemplu de conectare a două comenzi ls și grep prin | (pipe). Astfel sunt afișate directoarele din directorul curent, caracterul d de la început specifică faptul că fișierul respectiv este director. Apoi au fost create mai multe fișiere cu ajutorul comenzii touch pe aceeași linie de comandă. S-a creat un fișier sortare_fisiere utilizând redirectarea ieșirii (>) comenzii ls –l. Apoi prin intermediul comenzii sort, s-a realizat o sortare inversă numerică. Rezultatul comenzii este afișarea fișierelor în ordine descrescătoare. La final s-a realizat cu ajutorul comenzii tar o arhivă cu numele test.tar copiind conținutul directorului /home/dulau/Test. Apoi se vizualizează conținutul arhivei.

Fig. 4.21. Alte facilități de administrare a sistemului de fișiere în Kubuntu

Explicație

S-au vizualizat cu comanda cat conținutul fișierelor test.txt și test1.txt S-a creat cu comanda

gzip, parametru –c (scrie rezultatul produs și lasă fișierul sursă nemodificat) și redirectarea ieșirii, fișierul compresat teste.gz.care conține fișierele test.txt și test1.txt. Utilitarul gunzip extrage fișierele din fișierul rezultat prin concatenare. După crearea fișierului comprimat, comnada gunzip este echivalentă cu cat. Se poate imbunătăți nivelul de compresie prin comprimarea tuturor fișierelor împreună în loc de comprimare individuală și apoi se pot concatena rezultatele.

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 – Sisteme de operare. Editura Universității din Oradea,

ISBN 978-606-10-1382-1, pg.225, 2014, Ediție CD-ROM

2. Spoială Dragoș-Cristian, Viorica Spoială – Sisteme de Operare. Îndrumător de laborator,

Lito Univ. din Oradea

3. Rughiniș R.,Deaconescu R.,Milescu G.,Bardac M., Utilizarea Sistemelor de Operare,

Editura Printech, 2007, ISBN 978-973-718-788-8

4. Acostachioaie, D. : Administrarea și configurarea sistemelor Linux (Ediția II-a) Iași,

Polirom 2003

5. D. Acostăchioaie,Sabin Buraga Utilizare Linux. Noțiuni de bază și practică. Editura

Polirom 2004

6. A. Tanenbaum, Sisteme de Operare modern,ediția 2-a, Ed. Biblos,București,2001

7. http://fedoraproject.ro/

8. http://romikele.com/index.php?pagina=distributii

9. http://ro.wikipedia.org/wiki/UNIX

10. http://www.cs.cmu.edu/~mihaib/articles/sistem-f/sistem-f-html.html

11. http://www.scribd.com/doc/55007495/Administrarea-Sistemeleor-Linux

12. http://ro.wikipedia.org/wiki/GNU/Linux

13. http://dspoiala.webhost.uoradea.ro/didatica.html

15. http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp?id=172&idb=

Bibliografie

1. Spoială Dragoș Cristian – Sisteme de operare. Editura Universității din Oradea,

ISBN 978-606-10-1382-1, pg.225, 2014, Ediție CD-ROM

2. Spoială Dragoș-Cristian, Viorica Spoială – Sisteme de Operare. Îndrumător de laborator,

Lito Univ. din Oradea

3. Rughiniș R.,Deaconescu R.,Milescu G.,Bardac M., Utilizarea Sistemelor de Operare,

Editura Printech, 2007, ISBN 978-973-718-788-8

4. Acostachioaie, D. : Administrarea și configurarea sistemelor Linux (Ediția II-a) Iași,

Polirom 2003

5. D. Acostăchioaie,Sabin Buraga Utilizare Linux. Noțiuni de bază și practică. Editura

Polirom 2004

6. A. Tanenbaum, Sisteme de Operare modern,ediția 2-a, Ed. Biblos,București,2001

7. http://fedoraproject.ro/

8. http://romikele.com/index.php?pagina=distributii

9. http://ro.wikipedia.org/wiki/UNIX

10. http://www.cs.cmu.edu/~mihaib/articles/sistem-f/sistem-f-html.html

11. http://www.scribd.com/doc/55007495/Administrarea-Sistemeleor-Linux

12. http://ro.wikipedia.org/wiki/GNU/Linux

13. http://dspoiala.webhost.uoradea.ro/didatica.html

15. http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp?id=172&idb=

Similar Posts