În informatică, ce este un kernel?

În majoritatea sistemelor de operare ale computerelor, nucleul este componenta centrală. Este puntea dintre utilizator și aplicații și hardware-ul computerului. De asemenea, este mecanismul care permite computerului să gestioneze mai mulți utilizatori și mai multe sarcini simultan. Tipurile de sâmburi sunt nucleul monolit, microkernel, kernel hibrid, nanokernel și exokernel.

Nucleul gestionează toate resursele de sistem ale computerului. Aceasta include stocarea pe termen lung, unitatea centrală de procesare (CPU), memoria pe termen scurt și dispozitivele de intrare și ieșire. Când o aplicație are nevoie de una dintre aceste resurse, nucleul face resursa disponibilă și completează cererea.

Această manipulare a resurselor permite sistemelor de operare să fie atât multi-utilizator, cât și multitasking. Sistemul de operare nu realizează de fapt mai mult de o sarcină la un moment dat. În schimb, nucleul comută sarcinile la o viteză atât de mare încât computerul pare să îndeplinească mai multe sarcini. Nucleul este, de asemenea, responsabil pentru a se asigura că resursele utilizate de un utilizator sau proces nu sunt încălcate la cererea altui utilizator sau proces.

Există două tipuri principale de sâmburi sunt nucleul monolitic și microkernel. Nucleele monolitice folosesc o metodă de supraveghere de gestionare a resurselor în care toate serviciile sistemului de operare sunt rulate în același spațiu de adrese, numit spațiu kernel. Unele nuclee monolitice pot încărca și descărca module executabile. Acest lucru extinde capacitățile sistemului de operare, menținând în același timp o cantitate minimă de cod care rulează în spațiul kernelului la un moment dat.

Microkernel-urile rulează doar cantitatea minimă de servicii ale sistemului de operare, cum ar fi managementul memoriei, managementul firelor și comunicarea între procese în spațiul kernelului. Toate celelalte servicii, cum ar fi driverele de dispozitiv, interfețele utilizator și gestionarea fișierelor, sunt rulate în spațiul utilizatorului. Microkernel-ul minimizează sever cantitatea de cod care rulează în modul kernel.

Un nucleu hibrid este o combinație de nuclee monolitice și micro-nuclee. Cele mai multe dintre serviciile de sistem ale sistemului de operare sunt rulate în spațiul nucleului, ca un nucleu monolitic. Există și alte servicii, cum ar fi sistemul de fișiere și sistemul de ferestre, care sunt rulate în spațiul utilizatorului.
Celelalte tipuri de nuclee sunt nanokernel-ul și exokernel-ul. Nanokernel-ul folosește drivere de dispozitiv pentru a gestiona aproape toate serviciile. Exokernel-ul folosește programe pentru a aloca resurse fizice.