Kernel

Indice dei contenuti

    Il kernel (nucleo) è il componente centrale di un sistema operativo, incaricato di gestire l’interazione tra l’hardware del computer e le applicazioni software. È il primo programma a essere caricato in memoria durante l’avvio (boot) e rimane attivo fino allo spegnimento del sistema.

    Le responsabilità ingegneristiche principali di un kernel includono:

    1. Gestione dei processi: pianifica l’esecuzione dei programmi sulla CPU (scheduling), gestendo il multitasking e la comunicazione tra i processi (IPC).
    2. Gestione della memoria: assegna e protegge gli spazi di memoria RAM per ogni processo, implementando spesso la memoria virtuale.
    3. Gestione dell’I/O: comunica con le periferiche (dischi, schede video, tastiere) attraverso i driver di dispositivo.
    4. System Call: fornisce un’interfaccia protetta alle applicazioni per richiedere servizi di basso livello.

    Esistono diverse architetture di kernel:

    • Monolitici (es. Linux, FreeBSD): tutti i servizi di base (file system, driver, stack di rete) girano nello stesso spazio di memoria protetto (kernel space), massimizzando le prestazioni.
    • Microkernel (es. Mach, Minix): solo le funzioni minimali girano nello spazio kernel; gli altri servizi girano come processi utenti separati, aumentando la sicurezza e la modularità.
    • Ibridi (es. NT di Windows, XNU di macOS): una via di mezzo che cerca di coniugare la velocità del monolitico con la stabilità del microkernel.

    Ultimo aggiornamento: