Il kernel è il componente centrale di un sistema operativo che gestisce le operazioni del computer e dell’hardware. Fondamentalmente gestisce le operazioni di memoria e il tempo della CPU. È il componente centrale di un sistema operativo. Il kernel agisce come un ponte tra le applicazioni e l’elaborazione dei dati eseguita a livello di hardware utilizzando la comunicazione inter-processo e le chiamate di sistema.
Il kernel viene caricato per primo in memoria quando un sistema operativo viene caricato e rimane in memoria fino a quando il sistema operativo viene chiuso di nuovo. È responsabile di vari compiti come la gestione del disco, la gestione dei compiti e la gestione della memoria.
Decide quale processo deve essere assegnato al processore per essere eseguito e quale processo deve essere tenuto nella memoria principale per essere eseguito. Fondamentalmente agisce come un’interfaccia tra le applicazioni utente e l’hardware. Lo scopo principale del kernel è quello di gestire la comunicazione tra il software, cioè le applicazioni a livello utente, e l’hardware, cioè, CPU e memoria del disco.
Obiettivi del Kernel :
- Per stabilire la comunicazione tra le applicazioni a livello utente e l’hardware.
 - Per decidere lo stato dei processi in arrivo.
 - Controllare la gestione del disco.
 - Controllare la gestione della memoria.
 - Controllare la gestione dei compiti.
 
Tipi di Kernel :
1. Kernel monolitico –
È uno dei tipi di kernel in cui tutti i servizi del sistema operativo operano nello spazio del kernel. Ha dipendenze tra i componenti del sistema. Ha enormi linee di codice che sono complesse.
Esempio :
Unix, Linux, Open VMS, XTS-400 etc.
-  Vantaggi :
Ha buone prestazioni. -  Svantaggio :
Ha dipendenze tra i componenti del sistema e linee di codice in milioni. 
2. Micro Kernel –
È un tipo di kernel che ha un approccio minimalista. Ha memoria virtuale e programmazione dei thread. È più stabile con meno servizi nello spazio del kernel. Mette il resto nello spazio utente. 
Esempio:
Mach, L4, AmigaOS, Minix, K42 etc.
-  Vantaggio :
È più stabile. -  Svantaggio :
Ci sono molte chiamate di sistema e scambi di contesto. 
3. Kernel ibrido –
È la combinazione di entrambi i kernel monolitici e mircrokernel. Ha la velocità e il design del kernel monolitico e la modularità e la stabilità del microkernel.
Esempio:
Windows NT, Netware, BeOS etc.
-  Vantaggio :
Combina sia il kernel monolitico che il microkernel. -  Svantaggio :
È ancora simile al kernel monolitico. 
4. Exo Kernel –
È il tipo di kernel che segue il principio end-to-end. Ha il minor numero possibile di astrazioni hardware. Alloca risorse fisiche alle applicazioni.
Esempio:
Nemesis, ExOS etc.
-  Vantaggio :
Ha poche astrazioni hardware. -  Svantaggio :
C’è più lavoro per gli sviluppatori di applicazioni. 
5. Nano Kernel –
È il tipo di kernel che offre astrazioni hardware ma senza servizi di sistema. Anche il Micro Kernel non ha servizi di sistema quindi il Micro Kernel e il Nano Kernel sono diventati analoghi.
Esempio:
EROS etc.
-  Vantaggio :
Offre astrazioni hardware senza servizi di sistema. -  Svantaggio :
È abbastanza simile al Micro kernel, quindi è meno usato.