Appendice 6: il kernel
Come già detto il Kernel è il motore di Linux
Ed è l'unico componenete che effettivamente si chiama
'Linux', anche se il suo nome si è poi in pratica esteso ad
indicare l'intero sistema operativo.
Il kernel di Linux non è monolitico, ma modulare.
Il che significa che ad un nucleo centrale necessario possono essere
aggiunti (oppure no) dei moduli, con funzioni e funzionalità
particolari, a seconda delle proprie esigenze. Tali moduli aggiuntivi
possono essere compilati direttamente nel kernel, diventando
così un tutt'uno con esso ma appesantendolo di conseguenza,
o, soprattutto se necessari solo saltuariamente, possono essere
compilati a parte come 'moduli' e richiamati dal kernel quando servono.
Il kernel di Suse ha praticamente tutti i moduli possibili, la maggior
parte dei quali compilata separatamente, in modo da consentire con
facilità il funzionamento del sistema su qualsiasi
piattaforma. Altre distribuzioni sono più spartane (e hanno
quindi un kernel più 'leggero') ma, in presenza di
particolari accessori, possono richiedere la ricompilazione del kernel
(per aggiungere qualche modulo) da parte dell'utilizzatore.
Oltre al kernel, il motore, evidentemente occorrono altri programmi
(ingranaggi) per poter far funzionare il PC. Ed oltre a questi occorre
poi un'interfaccia (grafica o no) per permettere
l'interoperabilità PC-utente.
Fermo restando tutto il resto è così pensabile (e
in Linux fattibile) l'idea di cambiare di tanto in tanto il motore o
quella di aggiungere al motore esistente un altro con caratteristiche
diverse.
In tal caso sarà poi necessario modificare il file di
configurazione di Grub (vedi appendice precedente) i n modo di avere la
scelta al boot di avviare il sistema col kernel preferito.
La compilazione del kernel (per cui si rimanda alle numerose guide sui
vari forum) non è difficile.
Da console si digita 'make menuconfig' ed appare una finestra grafica
nella quale si possono scegliere i vari moduli da compilare nel jkernel
o come moduli esterni. Salvata la configurazione, si dà il
comando 'make' seguito dal comando 'make modules_install.
Il kernel compilato (che si chiama 'bzImage') si trova ora nella
directory:
usr/src/versione-kernel/arch/i386/boot
per un sistema a 32 bit
oppure
usr/src/versione-kernel/arch/x86_64/boot
per un sistema a 64 bit
Basta copiare il file 'bzImage' (magari con un altro nome) nella
directory /boot, aggiungere le righe necessarie al file menu.list di
Grub e riavviare il sistema.
I moduli aggiuntivi si trovano nella directory:
/lib/modules/versione_del_kernel
Un qualsiasi modulo può essere caricato, da root, col
comando da konsole: modprobe nome_modulo_senza_suffisso
Una volta avviato il sistema, per vedere la versione del kernel
utilizzata, digitare in konsole il comando:
uname -r
e premere invio