7.1.1 Le versioni

La release del kernel di GNU/Linux ha la stessa forma utilizzata dal software sviluppato per tale sistema, quella riportata nella sez. 1.11, cioè

 
MajorNumber.MinorNumber.RevisionNumber[-Build]  
con la particolarità che se il MinorNumber è pari, il kernel è considerato stabile, pronto per essere utilizzato su sistemi in produzione; se è dispari è considerato in fase di sviluppo e quindi può essere utilizzato con molta cautela (certe funzionalità potrebbero bloccare il sistema). Le release stabili derivano sempre da quelle in sviluppo il cui MinorNumber è diminuito di 1. Ad esempio la release stabile 2.4.X deriva dalla release di sviluppo 2.3.X. In genere nel kernel stabile si tende soltanto alla manutenzione ed alla correzione di errori (bug), ma non all’introduzione di nuove funzionalità, le quali vengono sviluppate nella versione del kernel in fase di sviluppo che, una volta reso stabile, diverrà la release stabile successiva.

In genere nei sistemi GNU/Linux il kernel è costituito soltanto da un file /boot/loader/linuz (dove loader è una directory con il nome del boot loader utilizzato). Questo file è anche detto immagine del kernel. In questo modo tutte le funzionalità del kernel risiedono all’interno di un unico file e pertanto si parla di kernel monolitico. Esiste però la possibilità di scorporare le funzionalità specifiche dall’immagine del kernel in altri files detti moduli. Si parla in tal caso di kernel modulare. In questo modo il kernel gestisce l’utiizzo dei moduli stessi: quando è necessario carica l’opportuno modulo in memoria e lo scarica quando non serve più. Un kernel monolitico ha il vantaggio di essere compatto e contenuto tutto in un file, ma allo stesso tempo è rigido e non consente di liberare risorse quando queste non servono. Per contro il kernel modulare è più dispersivo e difficile da gestire (fa uso di altri file oltre a quello del kernel di base) ma anche più flessibile di quello monolitico (può liberare le risorse scaricando dalla memoria i moduli non utilizzati).

Al momento dell’inizio della scrittura del presente testo la versione più recente del kernel Linux è la 2.4.