linux user group brescia

immagine del castello

Archivio della mailing list

Ricompilazione kernel

Gabriele Villi gvilli a iol.it
Mer 16 Apr 2003 10:45:39 UTC
Alle 11:30, mercoledì 16 aprile 2003, Francesco Abeni ha scritto:

> Ho avuto modo di lavorare solo con RedHat e Mandrake fino ad ora. Sono
> sicuro che esistono notevoli differenze tra le distros (un po' come sono
> diversi Win98, WinNT, Win2k), 
No, non e' del tutto vero. Win98 fa parrocchia con win95 e precedenti, mentre 
NT e w2k sono strettamente imparentati tra loro, a quanto mi risulta.

Una distro linux e' un collage di diversi sw che compongono il sistema. Non 
c'e' un parallelo con win, in quanto per i prodotti ms non ha la possibilità 
di scegliere con sufficiente granularita' i componenti che vuoi installare. 
In win, ad esempio, non c'e' separazione tra l'interfaccia grafica ed il  
kernel vero e proprio. 

Ma questo e' un discorso molto, molto lungo....

> In particolare, perche' sento spesso parlare di "ricompilare il kernel"? Ho
> sempre creduto che si trattasse di casi estremi, che ne so, Kernel molto
> ridotti o dedicati a una specifica funzione.
> In particolare, vorrei sapere cos'e' che non riesco a ottenere
> semplicemente installando o togliendo pacchetti, o modificando eventuali
> file di configurazione e di avvio.

Si ricompila il kernel per lo stesso motivo per il quale ci si fa fare un 
vestito dal sarto. 
Una distro preconfezionata non puo' (per ovvi motivi) essere ottimizzata per 
una particolare macchina/uso; ad esempio molti programmi sono compilati per 
386 e non per pentium. 
Una delle principali caratteristiche di linux (ed in genere del sw aperto) e' 
proprio che consente ad ogni singolo utente di plasmare il sistema secondo le 
proprie specifiche esigenze. Questo approccio si sviluppa su due 
"metalivelli" principali

* la possibilita' si scegliere quale sw installare sul sistema, in termini di 
pacchetti (o componenti) 

* la possibilita' di adattare ciascuno specifico pezzo di codice ricompilando 
(ed eventualmente modificando) i sorgenti

Facendo ricorso allo stra-abusato paragone informatico-automobilistico, 
installare/disinstallare pacchetti corrisponde a scegliere gli optional di 
un'auto; ricompliare il sw corrisponde a fare elaborazioni sul motore e la 
carrozzeria o sugli optional.

Ora, un conto e' se compri un'auto per andare a comprare l'insalata al 
mercato, per andarci a lavorare e in vacanza, un altro e' se quel veicolo e' 
un tuo strumento di lavoro perche' fai il rallysta, il taxista o il 
rappresentante di sementi.
Nel primo caso probabilmente al momento dell'acquisto ti limiti a scegliere il 
colore, il tipo di radio, i cerchi in lega ecc. ecc.
Nel secondo caso quasi sicuramente fai un "tuning" piu' oculato per 
ottimizzare ad esempio i consumi, le prestazioni, la capacita' di carico ecc. 
ecc.

Tornando a noi, ricompili un sw quando vuoi adattarlo al meglio alle tue 
specifiche esigenze. La cosa diventa particolarmente importante dal momento 
che sulla macchina il kernel e' il pezzo di sw piu' importante, che ha 
impatti piu' o meno diretti sul numero, sulla natura e sulle prestazioni di 
*tutti* i servizi messi a disposizione dal tuo sistema. In linux la cosa si 
complica leggermente con i moduli, che sono delle specie di pacchetti-kernel, 
ovvero parti di kernel che non vengono compilate in blocco insieme al resto 
del codice del kernel e che possono essere caricate dinamicamente a runtime. 
Questo ha due importanti conseguenze:

1) non vengono sprecate risorse "vive" e preziose per funzionalita' che non ti 
servono (ad es, il codice che gestisce la porta parallela e' del tutto 
inutile quando non stai stampando)
2) puoi cambiare alcune parti "vitali" del sistema semplicemente 
aggiungendo/rimuovendo/cambiando e (ri)caricando un modulo (ad esempio puoi 
aggiungere il modulo per il supporto SCSI)

Riepilogando: tranne casi particolari, di norma non e' necessario ricompilare 
il kernel ma quasi sempre e' utile. Tanto per buttar li' una regola 
grossolana (un tanto alla tonnellata), e' "strano" che un utente casalingo si 
ricompili il kernel ed e' "strano" che una azienda non lo faccia. 

Piu' o  meno :)

ciao
gv




Maggiori informazioni sulla lista Lug