Questo articolo si concentrerà sul kernel Linux, che è un kernel monolitico basato su Unix.
Altri kernel possono essere MicroKernel che delegano alcune funzioni ad altri programmi come driver esterni.
Un kernel monolitico è un kernel che monopolizza tutte le operazioni hardware e driver come parti di se stesso, in contrasto con i microkernel che si occupano di alcune attività di base lasciando il resto come attività esterne, a causa della mancanza di sistemi operativi popolari che utilizzano i microkernel ne ignoreremo esistenza per ora.Possiamo pensare al kernel come al primo livello o al livello inferiore di comunicazione tra il nostro sistema operativo (sistema operativo) e il nostro dispositivo fisico.
Essendo un "traduttore hardware-software" il compito principale del kernel è l'allocazione delle risorse hardware ai processi software, principalmente memoria e processore. Il kernel può anche limitare l'allocazione della memoria ai dispositivi guasti per prevenire arresti anomali.
Diciamo che abbiamo installato un nuovo sistema Linux e alcuni dei nostri dispositivi non funzionano correttamente, come una scheda wifi non rilevata. Dopo aver fatto alcuni controlli ci rendiamo conto che il sistema operativo appena installato non supporta la nostra scheda wifi. Prima di tale scenario possiamo modificare la configurazione del nostro kernel aggiungendo il supporto per il dispositivo di cui abbiamo bisogno. In un precedente articolo su LinuxHint abbiamo preso questo scenario per insegnare come compilare il kernel Linux di Slackware per aggiungere il supporto hardware. Se vogliamo possiamo anche rimuovere il supporto hardware di cui non abbiamo bisogno dal nostro kernel per renderlo più leggero.
Durante la modifica di un kernel possiamo modificare il supporto hardware come nativo o possiamo caricare il supporto come modulo caricabile richiesto, e ovviamente puoi scrivere i tuoi moduli se necessario.
I moduli del kernel hanno vantaggi rispetto alle normali applicazioni con la stessa utilità (come i driver esterni) perché i moduli funzionano solo quando necessario. In contrasto con le applicazioni, i moduli del kernel rilasciano risorse hardware che terminano tutte le sue attività mentre le normali applicazioni possono conservarle. D'altra parte, lo svantaggio è che le applicazioni regolari hanno meno probabilità di causare il crash del sistema.
Poiché il kernel Linux amministra ogni interazione tra il nostro hardware e software, può anche regolare le funzioni del nostro sistema. Modificando il kernel Linux possiamo rimuovere o aggiungere supporto per protocolli internet come IPv6, tabelle firewall e ogni modalità di interazione tra il nostro hardware e software.
È fondamentale mantenere il nucleo del nostro sistema, il kernel aggiornato per evitare falle di sicurezza come 2018-14634 che consente l'escalation dei privilegi all'interno di un sistema. Su LinuxHint abbiamo già spiegato come mantenere aggiornato il kernel, controlla questo articolo per mantenere aggiornato il kernel di Debian, questo per il tuo kernel Ubuntu e questo per aggiornare il kernel Linux Mint.
Vedi anche questo articolo aggiuntivo scritto su LinuxHint: Linux Kernel Tutorial for Beginners.
Spero che questa introduzione al kernel Linux ti sia stata utile per comprenderne le funzioni e le potenzialità in modo semplice. Continua a seguirci su LinuxHint per ulteriori suggerimenti e aggiornamenti su Linux.