Documente Academic
Documente Profesional
Documente Cultură
1. Kernel
Reprezinta partea cea mai importanta a OS, cea care lucreaza cu CPU si este cea mai apropiata de
Hardware. Fizic kernelul se regaseste intr-un fisier iar de cele mai multe ori acesta este /boot/vmlinuz-
version_no
Functii:
I/O Management;
managementul memoriei RAM si SWAP;
apelarea functiilor de sistem;
lucrul cu echipamentele periferice prin drivere;
managementul sistemului de fisiere si al proceselor care ruleaza;
Memoria SWAP reprezinta un tip special de memorie care se gaseste pe Hard disk, dar care este
folosita de Kernel ca si cand ar fi memorie RAM. Dimensiunea acesteia se recomanda a fi de doua ori
mai mare decat RAM. Pe Linux se foloseste o partitie speciala pentru memoria de tip Swap.
2. Shell
Utilizatorul nu poate comunica direct cu Kernelul. Accesul la functiile kernelului se face prin
intermediul shell-ului. Acesta este un program care primeste comenzi de la user sau alte aplicatii, le
interpreteaza si le transmite kernelului pentru a le executa.
Printre functiile shell-ului se afla si customizarea intregului environment (mediu de lucru) precum si
programarea folosind shell scripts.
3. Sistemul de fisiere . Pentru detalii cititi subcapitolul "Sistemul de fisiere" a acestui curs
OPTIUNI
pot fi scurte (o litera). Exemplu: ls -R sau pot fi combinate mai multe litere. Exemplu: ls -Fal
pot fi formate din unul sau mai multe cuvinte. Exemplu: smart --ignore-locks
ARGUMENTE
reprezinta scopul comenzii. Pot fi fisiere sau directoare, adrese IP, nume de domenii DNS etc
Comenzile ls si less
1. Comanda ls
Una dintre cele mai folosite comenzi in Linux este ls (list). Aceasta afiseaza informatii diverse despre
fisiere si directoare.
2. Comanda less
Intreaga configuratie a unui sistem Linux, fie ca ne referim la servere care ruleaza, firewall sau la
rezolutia monitorului se gaseste aproape exclusiv in fisiere text. Una dintre sarcinile cele mai frecvente
ale unui admin este vizualizarea diferitelor fisiere text. Cea mai folosita comanda pentru vizualizare
care se gaseste pe orice distributie de Linux sau chiar de Unix este less.
Console/terminale virtuale
In Linux si Unix exista conceptul de Consola Virtuala si Terminal Virtual sau Terminal Text.
Considerente istorice
Initial se folosea un singur calculator de tip mainframe sau similar la care se conectau mai multi useri
simultan folosind fiecare o consola. O consola era reprezentata printr-un ansamblu de tastatura si
monitor.
Linux pune la dispozitia utilizatorului 7 console virtuale (logice) care pot fi accesate folosind
combinatia de taste CTRL+ALT+F1 pt consola 1, CTRL+ALT+F2 pentru consola 2 etc.
In consola 7 este pornit mediul grafic.
Terminal windows, terminal emulator sau terminal virtual reprezinta o consola pornita din modul
grafic.
Nota
Fizic, cele 7 console virtuale sunt reprezentate prin fisierele /dev/tty1-7, iar terminalele virtuale
sunt reprezentate prin fisierele /dev/pts*
Fisierul /etc/securetty contine pe fiecare linie locatiile de unde userul root are voie sa se logheze
Runlevel
Reprezinta starea in care se afla si opereaza sistemul de operare la un anumit moment dat.
Exemplu: un sistem de operare Linux care intra in runlevel 0 se opreste, daca intra in runlevel 6 tocmai
se restarteaza.
In functie de runlevel-ul in care opereaza sistemul de operare exista anumite facilitati oferite si anumite
procese care ruleaza. Un sistem de operare Linux se poate afla la un moment dat intr-un singur
runlevel.
Linux runlevels
Ru
nle Semnificatie Descriere
vel
Halt, Shut Oprirea sistemului, aducerea lui in starea in care se intrerupe alimentarea
0
down cu energie electrica
1 single-user Modul administrator folosit pentru mentenanta. Nu exista retea, mediu
grafic si doar sistemele de fisiere locale sunt montate. Exista un sigur user
care se poate loga in sistem si anume root. Este echivalentul lui Safe-
Mode din Windows
2 multi-user Modul multi-user fara retea.
multi-user +
3 Runlevel default pentru servere.
retea
4 N/A Nu exista
multi-user +
5 retea + mediul Run level default pentru Desktop
grafic
6 reboot/restart Restartarea calculatorului
Mai poate exista runlevel-ul S sau s, care nu este folosit direct ci de catre programe si scripturi care se
executa cand se intra in runlevel 1.
2. Oprire calculator
/sbin/init 0
4. Revenire in runlevel 5
/sbin/init 5
Nota
In cazul distributiilor bazate pe Debian precum Ubuntu runlevel-urile existente au o alta
semnificatie si anume nu se diferentiaza intre runlevel 2,3,4 si 5 iar default este runlevel 2.
Resurse
· Runlevel - Wikipedia
Prezentare generala
Sistemul de fisiere reprezinta modul de organizare, structurare si accesare a fisierelor, directoarelor si
linkurilor pe hard disk.
Modul de organizare, accesare si recunoastere a particularitatilor fiecarui sistem de fisiere cade in
sarcina Kernelului. Acesta trebuie sa "ofere suport" pentru acel sistem de fisiere.
In prezent Kernelul de Linux recunoaste majoritatea sistemelor de fisiere existente: fat16, fat32, ntfs,
ext2, ext3, ReiserFS, nfs, smb, iso9660 etc.
Pentru majoritatea distributiilor de Linux default este ext3 - Third Extended File System (default pt.
RedHat, Fedora, Ubuntu) sau ReiserFS (default pt. Slackware, SuSE, Xandros, Yoper).
De multe ori in studiul sistemelor de operare Unix/Linux gasim sintagma - "everything is a file". Acest
lucru se refera la faptul ca fiecare program, sau dispozitiv hardware este reprezentat printr-un fisier. Nu
mai exista alta modalitate de reprezentare a informatiei.
In Linux fisierele sunt case sensitive - se face distinctie intre litera mare si mica.
Un fisier se considera ascuns (hidden) daca numele sau incepe cu "." (punct).
Exemplu
/dev/hda1 reprezinta prima partitie de pe hard disk-ul primary master
/dev/cdrom reprezinta CD-ROM-ul. O scriere sau o citire de pe hard disk sau CD inseamna de
fapt o scriere sau citire din fisierul respectiv.
In Linux un director este tot un fisier (dar special care are anumite proprietati).
Sistemul de fisiere in Linux este arborescent (ca si in windows) doar ca avem un sigur arbore chiar
daca avem mai multe partitii sau hard disk-uri.
Radacina sistemului de fisiere se numeste ROOT si se noteaza cu "/".
FHS
De-a lungul timpului s-a incercat standardizarea sistemului de fisiere pentru sistemele Unix/Linux
luand nastere astfel FHS - Filesystem Hierarchy Standard. Cu toate acestea nu exista un standard
general acceptat in prezent.
Nota
Fisierele din /proc pot fi modificate pentru a configura sistemul "on-the-fly".
Exemplu: echo "new-hostname" > /proc/sys/kernel/hostname
Nota
Partitia swap nu are mount point
Resurse FSH - PDF Download
Structura sistemului de fisiere
Sistemul de fisiere in Linux este arborescent si unic. Radacina se numeste root si se noteaza cu "/".
In Linux fisierele sunt case-sensitive - se face distinctie intre litera mare si mica.
In Linux "totul este un fisier". Nu mai exista alta forma de reprezentare a informatiei.
Nota
Atentie !!! Numele fisierului nu este pastrat in structura inodului.
Un director este un fisier de tip container care contine perechi de nume_fisier si inode-ul corespunzator.
In momentul in care ne referim (utilizatorul sau un proces) la un fisier, kernelul cauta in structura de
directoare conform cu calea relativa sau absoluta de referire la fisier, inode-ul corespunzator pentru acel
nume.
Fiecare inode se identifica unic printr-un numar de tip intreg numit "inode number" sau i-number.
Acesta poate fi vizualizat folosind comanda ls -i
Exista un nr. maxim pt. acest i-number care se defineste automat la instalarea sistemului in functie de
dimensiunea partitiei si deci exista un nr. maxim de fisiere (comanda df -i).
In Linux fiecarui fisier sau director i se ataseaza 3 (trei) timpi:
ctime (change time) - reprezinta data la care s-au modificat informatiile continute in inode-ul fisierului
sau directorului (permisiuni, owner, group etc). Nu se refera la timpul cand au avut loc modificari ale
continutului. Se afiseaza cu comanda ls -lc
mtime (modify time) - data la care s-a modificat informatia din fisier. Se afiseaza cu ls -l
atime ( access time ) - data la care s-a afisat continutul fisierului. Se afiseaza cu ls -lu
Pentru modificarea celor 3 timpi ai unui fisier sau director se foloseste comanda touch
touch OPTIONS FILE - listeaza continut
fara optiuni modifica atime, mtime si ctime cu timpul curent
-t
motifica atime si mtime cu DATE_TIMESTAMP in loc de data curenta
DATE_TIMESTAM
ex: touch -t 200301231230 a.txt
P
modifica atime si mtime cu DATE_STRING
-d DATE_STRING
ex: touch -d '1 May 2006 10:22' /etc/group
modifica doar atime cu data curenta sau cu o alta data daca este specificata
-a
ex: #touch -a -d '23 May 2006 10:22' /etc/group
-m modifica doar mtime cu data curenta sau cu o alta data daca este specificata
-r schimba atime si mtime cu cele ale lui REFERENCE_FILE
REFERENCE_FILE ex: touch -r b.txt a.txt
Nota
ctime nu poate fi setat in mod expres si independent de catre user
Resurse POSIX man touch
Durata: 2.58 min
Marime: 742KB
Tipuri de fisiere
In Unix si Linux fisierele se impart in urmatoarele categorii:
1) fisiere standard (regular files). Acestea pot fi text, executabile, binare etc
2) directoare. Acestea sunt tot fisiere care au rol de container pentru alte fisiere sau directoare. Ele
reprezinta un tip special de fisier (container) folosit pentru formarea structurii arborescente.
3) link-uri. Pot fi soft links/sym links (echivalentele shortcut-urilor din windows) si hard links - se
refera la aceeasi zona de date, dar identificata prin nume diferite.
4) fisiere speciale (device files). Toate dispozitivele fizice (hard disk, RAM, etc) sunt reprezentate
printr-un fisier. Accesul la aceste dispozitive se realizeaza prin scrierea/citirea din aceste fisiere.
Exemplu
1. Pentru a crea un soft link numit mylink.txt care pointeaza la /home/stud/proiect.txt se
foloseste comanda:
ln -s /home/stud/proiect.txt /home/stud/mylink.txt
2. Pentru a crea un hard link al lui /etc/passwd in /etc numit hl-passwd se foloseste comanda:
ln /etc/passwd /etc/hl-passwd
Exemplu
ls -l | less - outputul comenzii ls -l este trimis lui less pentru paginare
ls -a | sort - outputul comenzii ls -l este trimis comenzii sort care sorteaza in ordine alfabetica
Redirectarea outputului
In general scopul unei comenzi este de a trimite outputul catre standard output care este monitorul. Este
posibil ca outputul unei comenzi sa fie redirectat catre un fisier care exista sau nu. Se foloseste ">" sau
">>"
Exemplu
ls -l /bin > /home/student/binaries.txt - creaza fisierul /home/student/binaries.txt (daca acesta exista
il suprascrie) care va contine outputul comenzii ls -l /bin
Outputul unei comenzi poate fi redirectat in afara de standard output si catre standard error. Pentru
acesta se foloseste "2>".
Pentru a combina standard output cu standard error se foloseste "&>"
Exemplu
gcc program.c > output.txt 2> errors.txt - redirecteaza outputul compilarii fisierului program.c catre
output.txt, iar erorile sunt redirectate catre fisierul errors.txt
gcc program.c &> output.txt - redirecteaza catre fisierul output.txt atat standard output cat si
standard error.