Sunteți pe pagina 1din 36

Introducere in LINUX

1. Istorie
Conceptul de linux stundentul finlandez LINUS TORVALDS 1991, domeniul calculatoarelor devine din ce in ce mai intens cercetat Lipsa unui SO ieftin si fiabil DOS S.O. Macintosh Unix Scumpe Neaccesibile populatiiei

1. Istorie
apare scris de Andrew S. TANENBAUM profesor danez instrument didactic acces public Avantaje: acces la mecanismele interioare (codul sursa)

limbaj scris in C

1. Istorie
Proiectul G.N.U (GNU is Not Unix) Richard Stallman Free Software Solutions spre deosebire de alte produse, software-ul trebuie s fie liber de orice restricii privind copierea, distribuirea i modificarea lui pentru a se putea obine programe mai bune 1984 inceperea scrierii compilatorului C GNU (GCC) unealta importanta in scrierea sistemelor de operare.(suita de compilatoare implicit pe majoritatea distribuiilor Linux)

1. Istorie
1991 compilatorul C GNU este deja disponibil aceleasi probleme cu SO MIMIX a fost licentiat NU exista inca un sistem de operare (in lucru la GNU)
Hello everybody out there using minix Im doing a (free) operating system (just a hobby, wont be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. Id like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). Ive currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that Ill get something practical within a few months, and Id like to know what features most people would want. Any suggestions are welcome, but I wont promise Ill implement them Linus (torvalds@kruuna.helsinki.fi) PS. Yes its free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as thats all I have:-(

TUX logoul LINUX

1. Istorie
Exista o multime de distributii de linux dintre care aminitim: Red Hat OpenSuse Ubuntu Fedora Mandriva Debian

2. Proprietatile LINUX-ului
Caracteristici Linux - sistem de operare cu divizare a timpului (timesharing operating system)

atribute de baza:
- sistem ierarhizat de fiiere; - asigur compatibilitatea ntre fiiere, dispozitive I/O i mecanismele de comunicaie ntre procese; - ofer posibilitatea de a iniia procese asincrone, multitasking; - permite selectarea de ctre utilizator a interpretorului de comenzi; - prezint un grad nalt de portabilitate, fiind scris n proporie de 90% in C

2. Proprietatile LINUX-ului
Componentele sistemului de operare Linux sunt: - nucleul LINUX (eng. kernel); - interpretorul de comenzi (eng. shell); - utilitarele (compilatoare, editoare de legturi, editoare de text, analizoare lexicale, utilitare Web, etc.) - programele utilizator.

2. Proprietatile LINUX-ului
2.1. AVANTAJE

Gratuit Poate fi portat pe orice fel de dispozitiv Versatil Functionare neintrerupta De incredere Scalabil

Laptop/PC/Tablete. Electrocasnice Smart Phone-uri

Nu existau pana de curand virusi/Malware


Sistemul de operare Linux i cele mai multe aplicaii pentru acesta se bucur de un timp scurt n care sunt puse la punct deficienele semnalate.

Deoarece Linux-ul este dezvoltat i testat de mii de oameni, att erorile, ct i cei care le pot repara sunt foarte uor de gsit. Adesea se ntmpl s treac doar cteva ore ntre descoperirea i repararea unei erori!

2. Proprietatile LINUX-ului
2.2. DEZAVANTAJE

NU este user friendly prea multe distribuii cate capete, atatea pareri

produse gratuite produse de incredere? Numarul de virusi creati pentru LINUX a crescut in ultimii ani (422 863)

2. Proprietatile LINUX-ului
2.3. NUCLEUL LINUX: Kernel C scris GNU C Limbaj de asamblare nucleu monolitic imbunatatit constant

un set de functii inter-apelabile care ruleaza n acelasi spatiu de adresa

viteza mare rulare

2. Proprietatile LINUX-ului
2.3. NUCLEUL LINUX: Kernel Nucleul are rolul de a gestiona resursele fizice (procesor, memorie, dispozitive periferice) i logice (procese, fiiere, etc). Interfaa dintre nucleu i aplicaiile utilizator este asigurat de proceduri i funcii puse la dispoziie direct de nucleu sau de o serie de biblioteci.

Fluxul de date in nucleu

3. Interfata
Utilizator Comenzi S.O. LINUX

Programe

Interfaa ntre utilizator i sistemul de operare este format din comenzi, care sunt de fapt programe ce se lanseaz n execuie cu ajutorul interpretorului de comenzi.

3. Interfata

Interpretorul de comenzi

4. Comenzi de baza

se introduc dup prompter, ntr-o fereastr terminal (in modul grafic sau n modul text) apasarea tastei Enter.

4. Comenzi de baza
Sintaxa generala comanda optiuni parametri

desemneaz programul care execut serviciul solicitat

particularizeaz modul de execuie a comenzii

precizeaz obiectele asupra crora se execut comanda

4. Comenzi de baza

Red Hot Linux

Tiparul sistemului de fiiere din Linux

4. Comenzi de baza
Comenzi pentru operaii asupra fiierelor i directoarelor Linux recunoate 4 tipuri de fiiere fiiere obinuite - iruri de octei fr o structur logic special socket-uri - sunt fiiere speciale utilizate pentru realizarea comunicrii ntre procese Linux

fiiere speciale - sunt asociate dispozitivelor periferice fiiere director (cataloage) - utilizate pentru structurarea sistemului de fiiere
fiiere FIFO - sunt fiiere speciale utilizate pentru realizarea comunicrii ntre procese Linux

4. Comenzi de baza

4. Comenzi de baza
Comenzi de informare

4. Comenzi de baza
Comenzi pentru prelucrarea fiierelor text

4. Comenzi de baza
Alte comenzi

5. Editorul de text VIm


Vi VIm IMproved Sursa deschisa multiplatforma

Editor de text

Functionalitate modala

6 module

Normal (Text)

Inserare

Linie comanda

Vizual

Selectie

Ex

5. Editorul de text VIm


Modulul Normal (Text) tastele apsate de utilizator sunt introduse ntr-un buffer (urmnd a fi salvate ulterior n fiierul deschis) i afiate pe monitor

Modulul Comanda

orice secven de taste este interpretat drept comand vim

Modulul Vizual

este util pentru copierea unor blocuri de text

Trecerea din modul text n cel comand se face cu tasta i. Trecerea din modul comand n cel vizual se face cu tasta v. Revenirea n modul text se face cu tasta Esc

5. Editorul de text VIm

Lansare: vim va deschide o fereastr n care utilizatorul poate introduce text vim nume_fisier dup lansarea n execuie, vim va ncarca un fiier

Comenzile vim pot fi executate doar n modul comand sau vizual. Comenzile precedate de : apar n linia de stare a editorului (ultima linie) i trebuie terminate cu CR pentru a se executa

5. Editorul de text Vim

5. Editorul de text Vim


Pentru a copia un bloc de text trebuie parcuri urmtorii pai: a) se activeaz modul vizual (cu ajutorul tastei v din modul comand); b) se selecteaz cu ajutorul sgeilor blocul de text; c) se apas tasta y, care va avea ca efect copierea blocului; d) se poziioneaz cursorul la poziia dorit i e) se apas tasta p

5. Editorul de text Vim


Alte comenzi Modul comanda

h muta cursorul un caracter in stanga l - muta cursorul un caracter in dreapta k muta cursorul o linie in sus j - muta corsorul o linie in jos nG sau :n cursorul este mutat pe linia n (ex. 10G muta pe linia 10) ^F (CTRl F) Forward screenful ^B Backward screenful ^f o pagina inainte ^b p pagina inapoi backward ^U - Up half screenful ^D - Down half screenful $ - muta cursorul la capatul liniei 0 muta cursorul la inceputul liniei curente w un cuvant inaintei

Cele mai multe comenzi pot fi repetate de n ori, scriind un numar n inaintea comenzii: (ex. 10dd inseamna stergerea a 10 linii) . repeta ultima comanda cw - schimba cuvantul curent cu un cuvant nou r schimba un caracter la pozitia cursorului R - incepe modul de inlocuire (se dezactiveaza apasand ESC) :/ model cauta inainte un model :? model cauta inapoi un model

6. Dezvoltarea aplicatiilor C sub Linux


Sistemul de operare Linux dispune de performante destinate dezvoltrii de aplicaii C utilitare compilatorul de C -GCC editorul de legturi - LD bibliotecarul - AR depanatorul -GDB utilitarul pentru construirea fiierelor proiect - MAKE

6. Dezvoltarea aplicatiilor C sub Linux


Limbajul C ofer suportul cel mai adecvat dezvoltrii aplicaiilor sub Linux, datorit modului convenabil n care se face accesul la serviciile sistemului de operare. Aceste funcii permit o multitudine de operaii referitoare la lucrul cu fiiere, alocare a memoriei, controlul proceselor, etc. Fiind scrise in C, funciile sistemului de operare au un mecanism de apelare comod, similar oricrei rutine scrisa de utilizator. Caracteristicile principale ale limbajului ca si majoritatea funciilor disponibile n implementrile de sub MS-DOS sunt valabile si sub Linux. n plus, sunt disponibile si alte faciliti care vor fi detaliate ulterior.

Dezvoltarea unei aplicaii C presupune editarea textului sursa cu ajutorul unui editor (vim sau editorul intern al programului mc). Fiierul creat trebuie s aib extensia .c, extensie care prin convenie este atribuit surselor scrise in limbaj C

6. Dezvoltarea aplicatiilor C sub Linux


un program simplu care tiprete la ieirea standard un ir de caractere

#include <stdio.h>

int main(void) { printf("SO, ... hello world!\n"); return 0; }

hello.c

6. Dezvoltarea aplicatiilor C sub Linux

GCC folosete pentru compilarea de programe C/C++ comanda gcc, respectiv g++. O invocare tipic este pentru compilarea unui program dintr-un singur fiier surs, n cazul nostru hello.c.

Aadar, comanda gcc hello.c a fost folosit pentru compilarea fiierului surs hello.c. Rezultatul a fost obinerea fiierului executabil a.out (nume implicit utilizat de gcc). Dac se dorete obinerea unui executabil cu un alt nume se poate folosi opiunea -o. n mod similar se poate folosi g++ pentru compilarea unui program surs C++.

Fazele compilrii Compilarea se refer la obinerea unui fiier executabil dintr-un fiier surs.

-E - se realizeaz doar preprocesarea fiierului surs gcc -E hello.c va genera fiierul preprocesat pe care, implicit, l va afia la ieirea standard. -S - se realizeaz inclusiv faza de compilare gcc -S hello.c va genera fiierul n limbaj de asamblare hello.s -c - se realizeaz inclusiv faza de asamblare gcc -c hello.c va genera fiierul obiect hello.o Opiunile de mai sus pot fi combinate cu -o pentru a specifica fiierul de ieire.

6. Dezvoltarea aplicatiilor C sub Linux


GCC trece prin mai multe faze de prelucrare a fiierului surs pn la obinerea executabilului.

6. Dezvoltarea aplicatiilor C sub Linux


program care copie un ir surs ntr-un ir destinaie

#include <stdio.h> int main(void) { char sursa[] = "abcdefg"; char dest[10]; int i = 0; while (sursa[i] != '\0') dest[i] = sursa[i++]; dest[i] = '\0'; printf("Sirul destinatie este: %s", dest); exit(0); }

S-ar putea să vă placă și