Skip to main content

Nel calcolo, cos'è un kernel?

Nella maggior parte dei sistemi operativi per computer, il kernel è il componente centrale.È il ponte tra l'utente e le applicazioni e l'hardware del computer.È anche il meccanismo che consente al computer di gestire contemporaneamente più utenti e più attività.I tipi di kernel sono il kernel monolitico, il microkernel, il kernel ibrido, il nanokernel e l'exkernel.

Il kernel gestisce tutte le risorse del sistema dei computer.Ciò include l'archiviazione a lungo termine, l'unità di elaborazione centrale (CPU), la memoria a breve termine e i dispositivi di input e output.Quando un'applicazione necessita di una di queste risorse, il kernel rende disponibile la risorsa e completa la richiesta.

Questa gestione delle risorse consente ai sistemi operativi di essere sia multiutente che multitasking.Il sistema operativo non esegue in realtà più di un'attività alla volta.Invece, il kernel commuta le attività a una velocità così alta che il computer sembra eseguire più attività.Il kernel è inoltre responsabile di assicurarsi che le risorse utilizzate da un utente o dal processo non vengano violate la richiesta di un altro utente o processo.

Ci sono due tipi principali di kernel il kernel monolitico e il microkernel.I kernel monolitici utilizzano un metodo di supervisione di gestione delle risorse in cui tutti i servizi del sistema operativo sono eseguiti nello stesso spazio di indirizzi, chiamato spazio del kernel.Alcuni kernel monolitici possono caricare e scaricare moduli eseguibili.Ciò estende le funzionalità dei sistemi operativi pur mantenendo una quantità minima di codice in esecuzione nello spazio del kernel in qualsiasi momento.

I microkernel eseguono solo la quantità minima di servizi del sistema operativo, come la gestione della memoria, la gestione dei thread e la comunicazione tra process nello spazio del kernel.Tutti gli altri servizi, come driver di dispositivi, interfacce utente e gestione dei file, sono eseguiti nello spazio utente.Il microkernel minimizza gravemente la quantità di codice in esecuzione in modalità kernel.

Un kernel ibrido è una combinazione del monolitico e dei microkernel.La maggior parte dei servizi del sistema operativo sono eseguiti nello spazio del kernel, come un kernel monolitico.Esistono altri servizi, come il file system e il sistema di finestre, che vengono eseguiti nello spazio dell'utente.

Gli altri tipi di kernel sono il nanokernel e l'exkernel.Il nanokernel utilizza i driver di dispositivi per gestire quasi tutti i servizi.L'Exokernel utilizza i programmi per allocare le risorse fisiche.