Skip to main content

Ce este kernel-ul Linux?

Linux Tutorial for Beginners: Introduction to Linux Operating System (Aprilie 2025)

Linux Tutorial for Beginners: Introduction to Linux Operating System (Aprilie 2025)
Anonim

Pentru utilizatorii obișnuiți și fanii mai puțin decât cei cu hardcore, Linux este un sistem de operare. Cu toate acestea, pentru puristi, titlul "Linux" este rezervat pentru kernelul care forteaza sistemul de operare. Dacă sunteți curios cu privire la ceea ce este nucleul Linux, să răspundem la această întrebare cu un ochi noului utilizator.

Moduri

Înainte de a explica ce este un kernel, este important să înțelegeți termenii "modul de utilizare" și "modul kernel". Modul utilizator este atunci când codul de execuție nu are capacitatea de a accesa direct hardware-ul sau memoria de referință. Pentru a avea acces la hardware și memorie, codul care rulează în modul utilizator trebuie să delege instrucțiuni la interfețele de programare de aplicație (API) ale sistemului. Modul Kernel este atunci când codul de execuție are acces nerestricționat la toate componentele hardware și este rezervat funcțiilor cele mai de încredere ale unui sistem de operare.

Ce este un kernel?

Fiecare sistem de operare are un kernel. Windows, MacOS, iOS, Android, Chrome OS și Linux au fiecare un sistem de nivel scăzut, care răspunde de interfața tuturor aplicațiilor cu hardware-ul fizic al computerului. Fără kernel, niciuna dintre aplicațiile dvs. nu ar putea să utilizeze calculatorul fizic; aplicații precum Firefox, Chrome, LibreOffice, MS Office sau Outlook nu ar funcționa. Kernelul este, de asemenea, responsabil pentru permiterea proceselor de schimb de informații utilizând ceea ce se numește comunicare inter-proces (IPC).

Există (în general vorbind) trei tipuri de kerneluri:

  • Miezuri monolitice: aceste nuclee cuprind procesorul, memoria, IPC, driverele de dispozitiv, gestionarea sistemului de fișiere și apelurile de server de sistem. Este, de asemenea, responsabil pentru predarea de memorie de sistem liber la aplicații. Aceste tipuri de kerneluri sunt de obicei mai bune la accesarea hardware-ului și a multitasking-ului.
  • micronucleu: Microkernele iau o abordare minimalistă și gestionează doar procesorul, memoria și IPC.
  • Miezuri hibride: Kernel-urile hibride au capacitatea de a decide ce doresc să ruleze în modul User sau Kernel. Deși acest lucru oferă cele mai bune din ambele lumi, este nevoie de mult mai mult de la producătorii de hardware pentru a crea drivere care să servească la interfața între codul de funcționare și hardware.

Linux folosește un kernel monolit cu sursă deschisă, în timp ce macOS și Windows utilizează ambele nuclee hibride. Kernel-ul Linux a fost conceput în 1991 de Linus Torvalds. În prezent, dl Torvalds continuă să fie dezvoltatorul principal al kernel-ului Linux, în timp ce dezvoltatorii din întreaga lume contribuie la kernel-ul Linux. De fapt, se estimează că aproape 10.000 de dezvoltatori, de la mai mult de 1.000 de companii, au contribuit la kernel-ul Linux (începând cu începutul anului 2005).

Unde este Kernel-ul?

Dacă deschideți o fereastră terminal și emiteți comanda ls / boot, veți vedea un fișier numit vmlinuz-VERSION (Unde VERSION este numele sau numărul de lansare). Fișierul vmlinuz este kernel-ul Linux bootabil real, iar "z" indică faptul că nucleul este comprimat; așa că în loc de vmlinux avem vmlinuz.

În acest director / boot sunt alte fișiere importante ale kernel-ului, cum ar fi initrd.img-VERSION, system.map-VERSION și config-VERSION (unde VERSION este fie un nume, fie un număr de lansare). Aceste alte fișiere servesc în următoarele scopuri:

  • initrd,: utilizat ca un mic RAMdisk care extrage și execută fișierul actual al kernel-ului.
  • system.map: utilizat pentru gestionarea memoriei, înainte de încărcarea kernel-ului.
  • config: instruiește kernel-ul cu privire la ce opțiuni și module să se încarce.

module

Fără module, nucleul nu ar folosi prea mult. Modulele activează în mod eficient driverele necesare pentru a comunica cu hardware-ul fără a consuma toată memoria sistemului. Modulele adaugă de asemenea funcționalitate kernelului, cum ar fi comunicarea cu periferice, gestionarea sistemelor de fișiere, securitatea etc. Este posibil să listați, să adăugați și să eliminați modulele din kernel cu următoarele comenzi:

  • lsmod va lista toate modulele kernelului încărcate în prezent.
  • insmod va încărca un modul de kernel în kernelul care rulează.
  • rmmod va descărca un modul din kernelul care rulează.

Deci, vedeți, cu ajutorul unor comenzi simple, kernel-ul Linux poate fi destul de flexibil.

Actualul kernel

De la această scriere, nucleul stabil Linux este 4.18.5, dar nu toate distribuțiile Linux vor include cel mai recent kernel. De fapt, distribuția actualizată pentru desktop-ul OS funcționează kernel 4.15.0-30. Ce înseamnă acest număr? În cazul ultimului kernel pe OS elementar, înseamnă:

  • 4 este versiunea majoră
  • 15 este versiunea Minor
  • 0-30 este revizuirea

De asemenea, este posibil să descărcați diferite versiuni ale kernel-ului Linux de la kernel.org și să le compilați singuri. Compilarea kernel-ului Linux este o sarcină mai bună pentru cei care știu cu adevărat ce fac. Un kernel compilat necorespunzător poate face un sistem unbootabil. Deci, dacă nu sunteți gata să vă aruncați cu capul într-o sarcină dificilă de compilare a codului la acest nivel, utilizați kernelul prestabilit care se livrează și actualizează distribuția dorită.