Nucleul Linux este ca o punte care permite comunicarea de calcul între aplicații și hardware și gestionează resursele sistemului. Linus Torvalds a dezvoltat nucleul Linux cu C și Assembly și, astfel, a reușit să creeze un nucleu ușor și portabil care a fost lansat publicului ca sursă deschisă.
Puteți vedea nucleul Linux în multe sectoare diferite, cum ar fi spațiul, computerele, ceasurile inteligente, telefoanele mobile, robotica și sănătatea. Dar te-ai întrebat vreodată cum funcționează nucleul Linux sub capotă?
Utilizarea hardware-ului pe Linux
Nucleul Linux, în primul rând, controlează ce hardware va rula și în ce mod când porniți computerul. În plus, controlul software-ului de ultimă generație este posibil datorită interfeței de programare. Pentru a da un exemplu al acestor comenzi, este posibil să vezi informații despre hardware-ul instalat în sloturile de pe placa ta de bază și să beneficiezi de aceste informații detaliate.
De asemenea, această interfață de programare oferă un strat de abstractizare. De exemplu, dacă doriți să aveți o conversație video cu prietenii dvs., veți avea nevoie de o cameră web. Stratul de abstractizare face posibil ca software-ul pe care îl utilizați să folosească această cameră web, indiferent de marca și modelul acesteia. Software-ul de aici poate folosi doar interfața care există pentru Linux. Nucleul Linux traduce apelurile de funcții ale acestei interfețe în comenzi hardware reale de care are nevoie camera web.
Folosind /proc și /sys sisteme de fișiere virtuale, nucleul Linux poate exportați informații detaliate despre hardware detectează. Mai jos puteți vedea câteva instrumente utilizate pentru aceasta și ce dispozitive și carduri exportă:
- lspci: Pentru dispozitive PCI
- lsusb: Pentru dispozitive USB
- lspcmcia: Pentru carduri PCMCIA
După cum puteți vedea, distribuția Linux din captura de ecran de mai sus rulează pe VirtualBox. Cu toate acestea, aveți ocazia să vedeți o mulțime de informații, cum ar fi VGA, controler USB, poduri și controler SATA.
De asemenea, puteți utiliza -v parametru pentru a obține informații mult mai detaliate.
În nucleul Linux, aplicațiile accesează de obicei dispozitive prin fișiere speciale care există în /dev director. Aceste fișiere speciale reprezintă unități de disc și alte dispozitive fizice. Fișiere precum /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 și dev/snd/* sunt exemple ale acestor fișiere speciale.
Gestionarea sistemului de fișiere Linux
Sistemele de fișiere sunt una dintre cele mai notabile componente ale nucleului Linux. Sistemul de fișiere Linux este unul dintre cele mai mari beneficii ale sale. Toate fișierele de pe un sistem Linux se adună într-o singură ramură. Utilizatorii pot utiliza astfel această ierarhie pentru a ajunge la locurile dorite.
Punctul de pornire al acestei ierarhii este directorul rădăcină (/). Alte subdirectoare se află sub directorul rădăcină. Cel mai folosit subdirector sub / este /home director. Acest subdirector conține alte subdirectoare și fiecare director are fișiere care stochează datele reale.
De exemplu, vă puteți gândi la un fișier text pe desktop. Dacă creați un fișier text numit helloworld.txt pe desktop, vă puteți referi la el ca /home/muo/Desktop/helloworld.txt. Exemplul de /muo aici, desigur, va varia. Deoarece acest nume de subdirector depinde de numele utilizatorului actual. Cu acest sistem de denumire, nucleul Linux se traduce între stocarea reală și cea fizică care există pe un disc.
De asemenea, nucleul Linux poate integra date de pe mai multe discuri. Aici intervine sistemul de montare. Utilizează unul dintre discurile din sistemul rădăcină și le montează pe celelalte în directoare existente în ierarhie. Alte discuri sunt apoi plasate sub punctele de montare. Acest lucru permite utilizatorilor să stocheze /home director pe un al doilea hard disk care conține și alte subdirectoare.
Când montezi un disc pe /home director, puteți accesa aceste directoare din locații normale. Astfel, căi precum /home/muo/Desktop/helloworld.txt continuă să lucrezi.
Puteți vedea punctele de montare dintre fișierele de pe sistemul dvs. cu ajutorul findmnt -A comanda.
Cu multe formate de sistem de fișiere, puteți stoca fizic date pe discuri. Cele mai cunoscute pe Linux sunt ext2, ext3, și ext4 formate ale sistemului de fișiere. Cu toate acestea, există multe alte formate de sistem de fișiere. În orice caz, trebuie să formatați sistemul de fișiere înainte de a-l monta. Puteți folosi comenzi precum mkfs.ext3 (mkfs înseamnă make file system și ext3 este sistemul de fișiere) pentru aceasta.
Aceste comenzi acceptă calea fișierului dispozitivului pe care doriți să o formatați ca parametru. Este o operațiune distructivă și ar trebui să o utilizați cu prudență dacă nu doriți să ștergeți sau să resetați un sistem de fișiere.
În afară de acestea, există și sisteme de fișiere de rețea, cum ar fi NFS pe care le folosește nucleul Linux. NFS este un sistem de fișiere de rețea în care datele nu sunt stocate pe un disc local. Cu NFS, datele trec prin rețea către un server care stochează datele. Deoarece datele vor fi pe un server, utilizatorii nu trebuie să se ocupe constant de ele. Ei pot folosi, de asemenea, sistemul tradițional de fișiere ierarhic Linux, ca de obicei.
Operații cu funcții partajate
Toate software-urile din sistemul Linux au funcții comune. Acesta este motivul pentru care aceste funcții sunt centrale în nucleul Linux. De exemplu, atunci când deschideți un fișier, îl puteți deschide doar cu numele fișierului, fără a ști unde este stocat fizic fișierul și ce funcții și operațiuni va folosi. Toate aceste funcții sunt deja prezente în nucleu.
Puteți stoca fișierul pe hard disk, îl puteți împărți între mai multe hard disk-uri sau chiar îl puteți păstra pe un server la distanță. Funcțiile de comunicare cu fișiere partajate sunt importante în astfel de cazuri. Aplicațiile fac schimb de date, indiferent de modul în care sunt mutate datele. Funcțiile de comunicare partajate sunt acolo pentru a face aceste schimburi de date. Această mișcare poate fi prin rețele wireless sau chiar pe o linie telefonică fixă.
Managementul proceselor în Linux
O instanță activă a unui program care funcționează pe date sau informații din memorie este cunoscută ca proces. Sarcina nucleului Linux este să genereze și să țină evidența acestor regiuni de memorie. Nucleul alocă memorie pentru un program care rulează și încarcă codul executabil în memorie din sistemul de fișiere. Imediat după, nucleul rulează codul.
Nucleul Linux acceptă multitasking. Este capabil să ruleze mai multe procese în același timp. Totuși, există o singură tranzacție într-un interval de timp dat. Cu toate acestea, nucleul Linux împarte timpul în bucăți mici și, ca rezultat, fiecare procedură are loc secvenţial.
Deoarece aceste mici segmente de timp sunt în incremente de milisecunde, ele sunt active doar la anumite momente și rămân inactiv în restul timpului. Sarcina nucleului Linux aici este de a maximiza performanța rulând mai multe procese simultan.
Dacă intervalele de timp sunt prea lungi, este posibil ca aplicația care rulează să nu fie atât de receptivă pe cât ați dori. Dacă intervalele de timp sunt prea scurte, pot apărea probleme cu modificările sarcinilor. În funcție de prioritatea procesului, intervalul de timp necesar aici va varia. Este posibil să fi auzit de procese cu prioritate mare și procese cu prioritate scăzută înainte. Aceasta este una dintre funcțiile pe care le controlează nucleul Linux.
Această explicație nu este întotdeauna corectă. Adevărata limitare este că poate exista un singur proces de lucru pentru fiecare nucleu de procesor la un moment dat. Sistemele multiprocesor permit mai multe procese să ruleze în paralel. Un sistem de bază are aproape întotdeauna zeci de procese care rulează.
Drepturi de acces în Linux
Ca și în cazul altor sisteme de operare, puteți crea mulți utilizatori pe un sistem Linux. În astfel de cazuri, există un sistem de gestionare a drepturilor care acceptă utilizatorii individuali și grupurile. Aici e locul permisiuni pentru fișiere și utilizator intră în joc.
Nucleul Linux gestionează datele și verifică permisiunile necesare pentru fiecare proces. De exemplu, dacă încercați să deschideți un fișier, nucleul trebuie să verifice ID-ul procesului cu permisiunile de acces. Dacă nucleul verifică și vede că aveți permisiuni, va deschide fișierul.
Kernel-ul Linux controlează totul
După cum puteți vedea, nucleul Linux supraveghează totul, de la securitatea fișierelor dvs. la crearea de utilizatori și descărcarea fișierelor de pe internet. Totul este într-o anumită ordine. Fiecare utilizator are drepturi. Nucleul Linux gestionează procesele și intervalele de timp pentru performanțe de vârf.
În plus, sistemul de fișiere, care este una dintre cele mai mari caracteristici care disting kernel-ul Linux de alte sisteme de operare, este foarte important. Linux nu este o cutie ascunsă. Dimpotrivă, toate fișierele și codurile sursă sunt accesibile. Pentru a înțelege mai bine natura practică și puternică a nucleului Linux, puteți examina ierarhia sistemului de directoare Linux.