Il termine inglese kernel, che può essere tradotto come "nucleo" , non fa parte del dizionario della Royal Spanish Academy (RAE). Il suo utilizzo nella nostra lingua, invece, è abbastanza frequente, soprattutto nel campo dell'informatica.
Il software che costituisce la parte essenziale di un sistema operativo si chiama kernel. Attraverso il kernel, i vari programmi su un computer (computer) possono accedere all'hardware, ad esempio. Il kernel è anche responsabile della gestione delle risorse tramite i servizi di chiamata di sistema.
Una delle funzioni del kernel, in questo framework, è definire quale software può utilizzare un dispositivo hardware e per quanto tempo. Ecco perché è molto importante nella gestione della memoria RAM.
In definitiva, ciò che fa il kernel è comunicare il software con l' hardware. Per questo, si occupa di gestire i dispositivi fisici (il processore, le periferiche, ecc.) E i vari programmi per computer, ordinando le modalità di accesso alle risorse.
Poiché i programmi sono numerosi e ognuno di essi può accedere all'hardware in modo limitato, il kernel ha la funzione di gestire questa interazione, decidendo quale dispositivo può utilizzare ogni programma e per quanto tempo. Questo è noto con il nome di multiprogrammazione, una tecnica mediante la quale due o più processi possono essere alloggiati nella memoria principale per essere eseguiti contemporaneamente dal processore principale.
L' accesso direttamente all'hardware può essere molto complesso. Per questo motivo, il kernel spesso lo fa attraverso quello che è noto come livello di astrazione hardware, un componente del sistema operativo che funge da interfaccia tra il programma e i dispositivi. Questo livello di astrazione ci fornisce una piattaforma hardware coerente su cui eseguire il software.
Grazie all'utilizzo dello strato di astrazione hardware, è possibile nascondere la complessità di cui sopra e fornire allo sviluppatore con una chiara e uniforme interfaccia a fare uso dei programmi e dispositivi.
È importante notare che alcune architetture non hanno modalità di esecuzione differenti e questo significa che i loro sistemi operativi non hanno un kernel appropriato. Un esempio sono i cosiddetti sistemi embedded.
E 'possibile per distinguere tra quattro tipi di kernel: i nuclei monolitici, i nuclei ibride, il micronucleo e exonúcleos. Ognuno è responsabile di processi diversi in base alle proprie caratteristiche.
Il microkernel o microkernel fornisce un numero minimo di chiamate al sistema per l'implementazione dei servizi di base, come la pianificazione di base, la comunicazione tra processi e gli spazi di indirizzi.
Il kernel ibrido può essere inteso come un microkernel che ha una certa quantità di codice nello spazio del kernel per eseguirlo a una velocità maggiore rispetto a se fosse nello spazio utente. Questo codice non è considerato essenziale.
L'esonucleo o exokernel è un sistema sviluppato presso il Massachusetts Institute of Technology per essere utilizzato nei progetti di ricerca. Il suo obiettivo principale è la creazione di una sorta di livello software per altri sistemi virtuali.
I tipi di kernel variano anche in base al sistema operativo. Il kernel di Windows, il famoso OS Microsoft, è ermetico: nessun utente ha la possibilità di modificarlo. Il kernel Linux, al contrario, è open source. Ciò significa che chiunque lo desideri, può apportare modifiche, il che si traduce nell'esistenza di più distribuzioni Linux. Il kernel Linux può anche essere aggiornato indipendentemente dal resto del sistema operativo.