Introduzione
Installazione
Kernel
Rete
Links
|
LINUX
Il
Kernel e la sua configurazione
COSA
E' IL KERNEL
Si può immaginare il kernel come una specie di cuore del sistema operativo.
Esso, infatti, non è altro che una una sorta di "programma a basso
livello", che si prende cura dei processi (ovvero dei programmi in
esecuzione) e che funge da interfaccia tra il livello delle applicazioni e
l'hardware sottostante; i suoi compiti principali, oltre a filtrare le richieste
dei processi verso l'hardware, sono quelle di mantenere traccia degli stessi, di
riservare a ciascuno uno spazio nella memoria e di gestire quello che in termini
informatici viene definito come "scheduling", una funzione atta a
garantire che tutti i programmi in esecuzione possano fruire della CPU per le
elaborazioni.
IL
KERNEL DI LINUX
Il kernel di Linux, sviluppato dall'ormai ultraosannato Linus Torlvalds
e da altri volontari, viene innanzitutto distribuito come sorgente in linguaggio
C, ed è proprio per questo motivo che deve essere compilato
"personalmente" per poterlo utilizzare (un listato in linguaggio C non
può infatti essere eseguito direttamente dal computer... deve venire prima
trasformato in un formato fruibile direttamente - il formato eseguibile -
attraverso una fase che viene detta "compilazione"). Esistono varie
versioni del kernel, in quanto questo viene costantemente aggiornato per
migliorarne le prestazioni e/o correggere Bug presenti nelle versioni
precedenti.
VERSIONI
DI KERNEL:
Esistono in contemporanea due versioni differenti dei sorgenti del
kernel, una assolutamente stabile per gli utenti "normali" e una più
"sperimentale" (ma comunque altamente stabile in linea di massima) per
gli sviluppatori e gli smanettoni: attualmente le versioni stabili sono quelle
contraddistinte con il numero di versione 2.0.X, mentre quelle per gli
sviluppatori hanno il numero di versione 2.1.X. Per capire se una versione del
kernel è stabile o meno si osserva il secondo numero di versione (quello in
mezzo): numeri pari = stabile, numeri dispari = sperimentale (infatti 2.0.X è
stabile, 2.1.X è sperimentale).
Per conoscere quali siano le release più recenti del kernel occorre digitare al
prompt dei comandi, una volta collegati alla rete:
finger @ftp.kernel.org
Questo
è quanto appare a me in questo momento:
jvan:~>
finger @ftp.kernel.org
[linux.kernel.org]
The latest stable version of the Linux kernel is: 2.0.35
The latest *beta* version of the Linux kernel is: 2.1.126
jvan:~>
(jvan
è il nome della mia macchina).
^
On
Top
A
COSA
SERVE IL KERNEL
Oltre all'ultima versione di kernel scaricato (possibilmente stabile...), vi
servirà il compilatore gcc e una conoscenza per lo meno approssimativa del
hardware del proprio Pc: tipo di hard disk che si utilizza (IDE o SCSI), il
CD-ROM (oggigiorno dovrebbero essere tutti IDE o SCSI, tuttavia alcuni rimasugli
del passato utilizzavano un controller proprietario), ma anche i dati inerenti
alla scheda sonora, come ad esempio i numeri di DMA o IRQ. Queste informazioni
le possiamo ottenere "a scrocco" dal caro e amato Windows 9X
semplicemente premendo il pulsante destro su "risorse del computer".
^
On
Top
LA
SUA COMPILAZIONE
Una volta determinato i vari componenti hardware con i relativi
indirizzi, bisogna entriare come root nel Pc e spostarsi innanzitutto nella
directory /usr/src (comando "cd /usr/src"); dovremmo a questo punto
trovare per lo meno due directory (utilizzate il comando "ls" per
mostrare il contenuto della directory in questione): una si chiama linux-2.0.X
(la versione del kernel, sempre che l'abbiate installata, contenuta nella
distribuzione da voi utilizzata e quasi sicuramente non la più recente
disponibile), mentre l'altra è un link a detta directory (ovvero scrivendo
"cd linux-2.0.X" o "cd linux" si entra in pratica nella
stessa directory). Visto che si è in possesso di una versione più recente fare
in modo di sostituire i sorgenti obsoleti con quelli nuovi. L'operazione in
questione è eseguita dai seguenti comandi (da eseguire ovviamente in /usr/src):
-
mkdir
linux-2.2.5 (crea la directory che andrà a contenere la versione del kernel
2.2.5)
-
rm
linux (cancella il link simbolico che punta alla vecchia directory dei
sorgenti linux-2.0.X
-
ln
-s linux-2.2.5 linux (crea un nuovo link simbolico di nome linux che punta
alla directory 2.2.5)
-
tar
xzvf /percorso/linux-2.2.5.tar.gz (al posto di percorso va sostituito il
percorso in cui avete scaricato i sorgenti; questa operazione estrae
dall'archivio compresso i sorgenti del kernel e li mette nella directory
linux-2.2.5 creata in precedenza).
-
rm
-rf linux-2.0.X (cancella la vecchia directory dei sorgenti 2.0.X; -rf
aggiunto al comando rm (remove) serve a dire "ricorsivo e
forzato", in quanto il comando in questione solitamente non cancella
directory che non sono vuote).
A
questo punto occorre entrare nella directory linux con un bel "cd linux"
al fine di eseguire la fase di messa a punto del kernel, che permetterà di
scegliere quali componenti dello stesso includere in quello che sarà il nuovo
cuore del Pc. A seconda del gusto personale sono disponibili tre differenti
comandi per compiere questa operazione; la differenza sta esclusivamente
nell'interfaccia che si vuole utilizzare:
-
make
config (modalità ascii: verrà visualizzato un elenco in cui selezionare i
componenti con Y (yes), N (no) e M.
-
make
menuconfig (sempre modalità testo ma che si caratterizza per dei comodi
menu in cui effettuare la selezione con il tasto spazio).
-
make
xconfig (da utilizzare se si ha attivo X Window. Permetterà di selezionare
i componenti del kernel con pratici click del mouse).
Esistono
3 tipi di scelte da attribuire ai vari componenti : è possibile includerne uno
con yes (asterisco se avete usato menuconfig), escluderlo con no (e in questo
caso non verrà compilato nel Kernel), ma è anche possibile renderlo un
"modulo" con la lettera "M". Uno si chiederà: cosa
significa "modulo".È presto detto: sempre per alleggerire il kernel e
non includere al suo interno componenti che non si utilizzano spesso, è
possibile rendere questi ultimi modulari; in questo caso sarà possibile
caricarli e scaricarli dalla memoria a seconda della necessità (se utilizzate i
moduli vi consiglio vivamente di dire yes al supporto di kerneld che troverete
tra le varie opzioni: esso fa in modo che queste operazioni siano automatiche e
trasparenti all'utente; in caso contrario dovrete farle a mano!).
N.B. Aggiungere elementi che non servono al kernel non comporta nulla di
particolare, se non aumentarne la dimensione e/o renderlo un po' più
"pesante".
^
On
Top
UN
PO' DI AIUTO...
Code maturity level options: conviene lasciare questa voce così com'è,
ovvero con la sola voce presente non selezionata
Loadable module support: aggiungete al supporto dei moduli nel kernel
(voce Enable loadable module support) anche kernel deamon support: serve a far
caricare al kernel i moduli in automatico.
General setup: in questo menu si seleziona il tipo di processore, si
abilita l'emulazione del coprocessore matematico virtuale (per chi non ce lo
avesse perché è ad esempio in possesso di un processore 486SX) e si limita la
memoria a meno di 16 mega (l'opzione serve per alcune scheda madri bacate del
passato che non riuscivano bene a gestire la memoria). Per un processore Pentium
o superiore coviene lasciare le cose così come stanno (a meno di non possedere
un PPro: in questo caso è possibile specificare questo tipo di CPU).
Floppy, IDE and other block devices: questa sezione è abbastanza
lunga, ma per fortuna c'è ben poco da cambiare... Innanzitutto, a meno di non
essere in possesso di una scheda madre che monta il chipset CMD640 o RZ1000,
conviene eliminare queste 2 voci (il 90% delle schede madri montano in genere un
chipset Intel, per lo meno per ora). Per il resto lasciare tutto così com'è.
Networking options: è una buona scelta lasciare le impostazioni così
come stanno!
SCSI support: stessa cosa per questo menu... Se non disponete di un
controller SCSI o non intendete accedere a un eventuale masterizzatore EIDE
attivando l’emulazione SCSI-ATAPI, lasciate tutto disabilitato (scelta di
default).
Network device support: nel caso di una macchina che si collega ad
Internet mediante un modem selezionate come modulo la voce "ppp";
opzionalmente selezionate anche, sempre come modulo, la voce "plip":
potrebbe tornare utile per creare connessioni TCP/IP tra due computer con un
cavo null-modem parallelo. Infine, a meno che non possediate una scheda di rete
ethernet, consiglio di deselezionare la voce "ethernet" e lasciare
tutto il resto così come è.
ISDN subsystem: se non si possiede di una connessione ISDN lasciare
tutto così come sta, ovvero con niente selezionato.
CD-ROM drivers: questa voce serve ad includere nel kernel il supporto
per CD-ROM non ATAPI (quelli insomma che fanno uso di controller proprietario).
Se si possiede un CD-ROM ATAPI lasciare tutto deselezionato.
Filesystems: seleziona i tipi di filesystem che il kernel supporterà
una volta compilato... Suggerisco di mettere come modulo il filesystem "minix"
e l'"extended" (non si sa mai, potrebbero anche servirvi!), di
lasciare selezionato il "second extended" (se lo deselezionate non
riuscirete più a fare il boot della macchina: è quello che utilizza Linux per
le sue partizioni!!), e di selezionare con "yes" le voci "native
language support", "ISO9660" (il filesystem dei CD-ROM!),
"DOS FAT", "MSDOS", "FVAT" (i nomi lunghi nelle
partizioni di Windows 95), "codepage 423", "NLS ISO 8859-1"
"proc". Se si pensa di aver bisogno di NFS (network filesystem, serve
per importare ed esportare il proprio filesystem in rete) selezionarlo come
modulo. Lasciare il resto con le impostazioni di default.
Character devices: lasciare pure le cose come stanno, a meno che non
possesiate una stampate; in quest'ultimo caso consiglio di selezionare il "parallel
printer support" come modulo, in quanto l'utilizzo della stampante non è
cosa indispensabile. NB: se si è in possesso di un mouse diverso da quello
seriale (ad esempio PS/2) sarà necessario selezionare anche la voce "mouse
support" e scegliere il proprio mouse dall'elenco sottostante.
Sound card support: se si è in possesso di una scheda sonora abilitare
il supporto al sonoro.
Kernel hacking: queste due voci... per ora conviene deselezionarle.
La procedura di configurazione è conclusa!!! Ora occore quindi salvare la
configurazione corrente con l'apposita opzione e uscire dal programma.
^ On
Top
I
COMANDI
Una volta eseguite le procedure precedenti occorre eseguire questi 5
comandi:
make
dep; make clean; make bzImage; make modules; make modules_install
Questa
operazione potrebbe richiedere diverso tempo e, come al solito, ciò viene
notevolemente influenzato dal tipo di macchina che si sta utilizzando.
-
make
dep; make clean: servono a ripulire i sorgenti di compilazioni
precedenti; se si ha appena installato dei nuovi sorgenti, si possono anche
evitare questi passaggi, ma in ogni caso è buona abitudine eseguirli (non
si sa mai...).
-
make
zImage: compila il nucleo del kernel
-
make
modules; make modules_install: compilano ed installano i moduli al
posto giusto.
Le
ulrime operazioni da eseguire sono:
-
Rinominare
il vecchio kernel (solitamente si chiama vmlinuz) con estensione Old (non si
sa mai, potrebbe sempre servire, almeno fino a quando non sie è sicuri che
il nuovo kernel funzioni correttamente. In questo caso cancellarlo).
N.b. Se non trovi la directory in cui è situato il kernel vecchio edita il
file lilo.conf situato nella directory etc...
-
cp
/usr/src/linux/arch/i386/boot/bzImage /vmlinuz (copia il nuovo kernel,
contenuto in /usr/src/linux/arch/i386/boot/ - ... il comando bzImage - nella
root directory e lo chiama vmlinux, proprio come quello vecchio).
-
lilo
(serve ad aggiornare il LInux LOader per fargli caricare il nuovo kernel).
-
shutdown
-r now (fa il reboot della macchina)
Se
dopo il riavvio il Pc non ha dato messaggi anomali e si è sicuri della stabilità
del nuovo kernel, conviene eliminare la vecchia directory di linux, ovvero la
2.0.x. Si noti che in fase di avvio potrebbero scorgere alcuni messaggi di
errore che reclamano la presenza dei moduli "char-major-10",
"net-pf-4" e "net-pf-5". Si possono tranquillamente
ignorarli, ma se vi danno fastidio editate il file /etc/conf.modules ed
aggiungere le seguenti linee:
alias char-major-10 off
alias net-pf-4 off
alias net-pf-5 off
Al prossimo reboot tutto sarà sistemato...
^
On
Top
|