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
|