Questa pagina è stata tradotta automaticamente da DeepL.
Switch to English
Il kernel è il cuore di un sistema operativo, l'elemento che si trova tra le app e l'hardware. Gestisce le risorse del computer (CPU, memoria, archiviazione, dispositivi) e offre al software un modo sicuro e coerente per utilizzarle. Pensalo come un vigile urbano e un traduttore che mantiene tutto in movimento senza collisioni.
Cosa fa effettivamente il kernel?
Ad alto livello, il kernel:
Gli schemi funzionano. Decidono quale programma ottiene il tempo di CPU e quando.
Gestisce la memoria. Mantiene separati i dati di ciascuna app e assegna la RAM in base alle necessità.
Gestisce dispositivi e file. Comunica con i driver della GPU, dell'SSD, della scheda di rete e dei file system.
Media l'I/O. Legge e scrive file e dati di rete per conto delle app.
Garantisce la sicurezza. Separa la modalità utente (app) dalla modalità kernel (il nucleo del sistema operativo) in modo che un'app difettosa non possa causare il crash dell'intero sistema.
Il kernel è la stessa cosa del sistema operativo?
Non proprio. Il termine "sistema operativo" solitamente include il kernel più gli strumenti e i servizi dello spazio utente (shell, librerie, ambienti desktop, servizi in background, ecc.). Nel linguaggio comune, questi termini vengono spesso confusi, ma in senso stretto il kernel è solo il nucleo privilegiato su cui si basa tutto il resto.
In che modo le app "comunicano" con il kernel?
Quando un'app deve salvare un file o inviare un pacchetto di rete, effettua una chiamata di sistema, ovvero una richiesta controllata che passa dalla modalità utente alla modalità kernel. Il kernel verifica le autorizzazioni, indirizza la richiesta al sottosistema o al driver corretto e restituisce il risultato all'app. Questo confine protegge le app l'una dall'altra e dai bordi taglienti dell'hardware.
Esistono diversi tipi di kernel?
Sì. Verranno discussi alcuni progetti generali:
I kernel monolitici raggruppano insieme i servizi di base e molti driver. (Esempio: il kernel Linux.)
I microkernel mantengono il nucleo piccolo e spingono più servizi al di fuori del kernel per l'isolamento.
Gli approcci ibridi o modulari combinano idee e sistemi pratici, spesso inserendo o rimuovendo componenti dal kernel per migliorare le prestazioni o la sicurezza.
Tutti questi sistemi mirano allo stesso obiettivo: un controllo affidabile e veloce dell'hardware. (XNU di Apple, ad esempio, combina un microkernel Mach con un livello BSD; Windows documenta un'architettura kernel a livelli).
Aggiorno mai direttamente il "kernel"?
Dipende dalla piattaforma utilizzata:
Windows/macOS: gli aggiornamenti del kernel vengono forniti come parte dei normali aggiornamenti del sistema operativo.
Linux e molti server/dispositivi: il kernel è un pacchetto separato che è possibile aggiornare tramite la propria distribuzione o il proprio fornitore. I kernel con supporto a lungo termine (LTS) sacrificano le nuove funzionalità a favore della stabilità.
L'aggiornamento apporta supporto hardware, modifiche alle prestazioni e correzioni di sicurezza, ma sui sistemi di produzione è consigliabile eseguire prima dei test.
Cosa succede durante l'avvio?
Versione molto breve: il firmware/UEFI viene eseguito per primo, il bootloader carica il kernel nella memoria, il kernel inizializza l'hardware e i driver, monta lo storage e quindi avvia il primo processo dello spazio utente che attiva il resto del sistema. Successivamente, pianifica continuamente il lavoro e gestisce l'I/O in background.
Il mio telefono ha un kernel?
Assolutamente sì. I telefoni Android, le console di gioco, i router, le smart TV utilizzano per lo più una qualche versione di sistema operativo con un kernel sotto il cofano. Il concetto non vale solo per i computer desktop e portatili.
Perché i crash vengono chiamati "kernel panic" (o "schermata blu")?
Se qualcosa va storto all'interno del kernel (come un errore critico del driver), il sistema operativo spesso si arresta piuttosto che rischiare di danneggiare i dati. I sistemi di tipo Unix segnalano un kernel panic; Windows mostra un errore di arresto (la "schermata blu"). È drammatico, ma è un'ultima misura di sicurezza che protegge i tuoi file.
Breve riassunto
Il kernel è il nucleo privilegiato del sistema operativo che gestisce CPU, memoria, dispositivi e I/O.
Le app interagiscono con esso tramite chiamate di sistema attraverso il confine tra modalità utente e modalità kernel.
Diversi modelli di kernel (monolitico, microkernel, ibrido) bilanciano prestazioni, isolamento e manutenibilità.
Termini correlati
Spazio utente / Spazio kernel: aree in cui vengono eseguite le normali applicazioni rispetto al kernel.
Chiamata di sistema (syscall): il punto di accesso controllato dalle app ai servizi del kernel.
Driver: componente del kernel o dello spazio utente che sa come far funzionare un dispositivo specifico.
Scheduler: componente del kernel che decide quale thread eseguire successivamente.
Memoria virtuale: funzionalità del kernel che assegna a ciascun processo il proprio spazio di indirizzamento.
Bootloader: programma che carica il kernel nella memoria all'avvio.
Kernel panic / errore di arresto: un errore irreversibile in modalità kernel che blocca il sistema per evitare danni.