Linux este sistemul de operare open-source care alimentează infrastructura digitală a lumii: de la peste 95% dintre primele 1 milion de servere web din lume și supercomputerele globale de top, până la platformele cloud (AWS, Google Cloud, Azure), containerele Docker / Kubernetes și sistemele embedded. Construit pe baza nucleului creat de Linus Torvalds în 1991 și îmbogățit de utilitarele Proiectului GNU, Linux se distinge prin stabilitate excepțională, performanță predictibilă și o filozofie modulară orientată pe automatizare prin linia de comandă (terminalul Bash).
Această secțiune oferă o documentație completă și orientată pe producție în limba română pentru Linux și scripting Bash: de la navigarea sistemului de fișiere, procesarea fluxurilor text (awk, sed, grep) și permisiuni speciale (SUID, SGID, Sticky Bit), până la administrarea modernă a proceselor (systemd, journalctl, crontab), diagnosticarea rețelei (ss, ip, tcpdump) și tehnici avansate de hardening și depanare de servere.
# Structura ierarhică a unui sistem de operare Linux:
# 1. User Space (Ring 3 pe x86-64):
# - Aplicațiile tale web (Nginx, Node.js, Python), shell-ul Bash și utilitarele CLI.
# - Memorie virtuală izolată; o aplicație nu poate accesa direct componentele hardware!
# 2. GNU C Library (glibc / musl):
# - Interfața standard API care traduce apelurile funcțiilor C în apeluri de sistem.
# 3. System Call Interface (Syscalls):
# - Poarta securizată de trecere din User Space în Kernel Space (Ring 0):
# ex: sys_read(), sys_write(), sys_openat(), sys_clone(), sys_epoll_create().
# 4. Linux Kernel Space (Ring 0):
# - Nucleu monolitic cu module dinamice încărcabile (Loadable Kernel Modules - LKM).
# - Gestionează planificatorul de procese (Scheduler CFS/EEVDF), stiva TCP/IP,
# sistemele de fișiere (ext4, XFS, Btrfs) și driverele hardware.
# 5. Hardware fizic: Procesor CPU, memorii RAM, discuri NVMe/SSD, plăci de rețea NIC.
Standardul Ierarhiei Sistemului de Fișiere (FHS) & „Totul este un fișier”
Un principiu cardinal moștenit din filozofia UNIX afirmă că totul în Linux este reprezentat printr-un fișier: fișierele de configurare sunt text, directoarele sunt fișiere speciale care conțin liste de inoduri, dispozitivele fizice sunt noduri de fișiere în /dev, iar starea internă a memoriei kernel-ului este expusă în pseudocăi virtuale:
| Director FHS | Rol & Conținut Tipic | Natură pe Disc |
|---|---|---|
/etc |
Fișierele statice de configurare la nivel de sistem (ex: /etc/nginx/, /etc/hosts, /etc/fstab). |
Persistent fizic pe disc. |
/var |
Date variabile dinamice: fișiere de loguri (/var/log), baze de date MySQL/Postgres (/var/lib), cozi de mail (/var/spool). |
Persistent fizic pe disc. |
/proc |
Sistem de fișiere virtual generat direct în memoria RAM de către kernel. Expune statistici live despre hardware și fiecare proces activ (/proc/PID/). |
Virtual (0 octeți pe disc). |
/sys |
Interfața sysfs: structura arborescentă a dispozitivelor conectate, driverelor și parametrilor ajustabili de kernel. | Virtual (0 octeți pe disc). |
/dev |
Noduri de dispozitive hardware: discuri fizice (/dev/nvme0n1), generatoare de entropie (/dev/urandom), gaura neagră (/dev/null). |
Gestionat de daemonul udev. |
/tmp |
Fișiere temporare ale aplicațiilor. Pe distribuțiile moderne este adesea montat ca tmpfs (memorie RAM volatilă curățată la boot). |
Temporar. |
Ciclul de Viață al Proceselor, Semnale POSIX și Containerizare
La pornirea sistemului, nucleul lansează primul proces din User Space: PID 1 (în sistemele moderne, daemonul systemd). Toate celelalte procese sunt create printr-un mecanism ierarhic de tip fork-exec (procesul părinte apelează clone()/fork() pentru a se duplica, apoi execve() pentru a încărca noul binar).
# Trimiterea semnalelor către un proces prin comanda 'kill -SEMNAL PID':
# 1. SIGTERM (Semnal 15 - Implicit): Cere politicos procesului să se oprească curat.
# Aplicația are timp să salveze datele pe disc, să închidă conexiunile de baze de date și să iasă.
kill -15 4812
# 2. SIGKILL (Semnal 9 - Forțat): Kernel-ul oprește INSTANTANEU procesul la nivel hardware!
# Procesul NU poate intercepta, bloca sau ignora acest semnal (nu are timp de curățare!).
kill -9 4812
# 3. SIGHUP (Semnal 1 - Hangup): Folosit de daemoni precum Nginx/Apache pentru a reciti
# fișierele de configurare fără a întrerupe conexiunile clienților activi (Zero-Downtime Reload).
kill -1 4812
Fundamentele Containerelor (Docker / Kubernetes): Containerele nu sunt mașini virtuale, ci procese Linux standard izolate prin două caracteristici native ale kernel-ului:
- Linux Namespaces: Creează o vizibilitate izolată pentru fiecare container: PID namespace (procesul crede că este PID 1), NET namespace (propria placă de rețea virtuală și tabelă de rutare), MNT namespace (propriul sistem de fișiere rădăcină).
- Control Groups (cgroups v2): Impun limite hardware stricte și monitorizează consumul de resurse (ex: un container nu are voie să consume mai mult de 2 nuclee CPU și 1 GB memorie RAM).
Matricea Permisiunilor Standard și Speciale (SUID, SGID, Sticky Bit)
Securitatea accesului pe fișiere combină permisiunile standard pe 3 categorii (Owner / User, Group, Others) cu permisiuni speciale esențiale pentru administrare:
| Tip Permisiune | Valoare Octală | Simbol Text | Efect & Caz de Utilizare |
|---|---|---|---|
| Read / Write / Execute | 4 / 2 / 1 |
rwx |
Drepturi de citire, modificare și execuție a fișierului sau de traversare a directorului. |
| SUID (Set User ID) |
4000 |
rwsr-xr-x |
Când fișierul este executat de un utilizator obișnuit, rulează temporar cu privilegiile proprietarului fișierului (de exemplu comanda /usr/bin/passwd are SUID root pentru a putea actualiza /etc/shadow). |
| SGID (Set Group ID) |
2000 |
rwxr-sr-x |
Pe fișiere: rulează cu privilegiile grupului. Pe directoare: toate fișierele noi create în interior moștenesc automat grupul directorului părinte (esențial pentru foldere partajate în echipă!). |
| Sticky Bit | 1000 |
rwxrwxrwt |
Într-un director partajat cu scriere publică (cum este /tmp), un fișier poate fi șters sau redenumit EXCLUSIV de către proprietarul său sau de către utilizatorul root, prevenind ștergerea malițioasă a fișierelor colegilor. |