linux user group brescia

immagine del castello

Archivio della mailing list

Kernels [Was: Re: Linux e Serial ATA]

Sergio Bevilacqua clockwork.orange a inwind.it
Mar 9 Mar 2004 10:10:27 UTC
On Mon, 2004-03-08 at 18:39, Vernia Damiano wrote:

>       Ignoranza mia: Serial ATA finisce sotto SCSI? Mi sarei aspettato
> IDE. Immagino a questo punto che si vedano come (ex.) sdb2.
> 
no. non proprio.
il supporto nel kernel lo trovi sotto le scsi devices, ma alla fine hai
sempre dei dischi hda, hdb, ecc...
ovviamente devi avere un supporto ide generico abilitato nell'apposita
sezione.

>       Esiste un 2.4.24? Ero fermo al 2.4.23 di qualche settimana fa. 
> Bene, aggiornero' il mio sistema (aspetto ancora un poco prima di
passare 
> ad un 2.6)
> 
ehm... sì, esiste il 2.4.24! 2.4.23 e 2.4.24 sono usciti in rapida
sequenza per coprire due gravissime vulnerabilità che permettevano di
ottenere accesso come root mediante exploit locali.
per intenderci il 2.4.24 tappa la famosa vulnerabilità di do_brk() che
affliggeva tutti i kernel precedenti al 2.6.2
attualmente è stato rilasciato il 2.4.25 ed è in fase di test il 2.4.26
che però contengono solo pochi bugfix ed enhancements. io al tuo posto
compilerei il più presto possibile (almeno) il 2.4.24


>       Scusa, io non so nemmeno cosa sia un "initrd", eppure il kernel 
> l'ho compilato piu' volte. Mi daresti una dritta su cosa e'? 4-5 righe
> bastano ed avanzano, giusto per inquadrare il concetto. Grazie mille.
>
dunque... supponiamo che tu abbia compilato un kernel modulare, e che il
gestore del file system debba essere implementato come modulo.
ovviamente non puoi caricare nessun modulo finché il file system non è
stato inizializzato, ma, come detto, dipende anch'esso da un modulo...
per cavarsela in queste situazioni, si crea l'initrd, che è un ramdisk
compresso contenente quei moduli vitali per il sistema e che devono
essere caricati all'avvio.
initrd viene letto subito dopo l'immagine del kernel, e decompresso in
ram. da lì vengono letti tutti i moduli necessari alla fase di boot del
sistema e che non possono essere reperiti dal file system.
alla fine della fase preliminare di boot, (quando viene richiamato init,
per intenderci), viene smontata l'immagine initrd, e il boot prosegue da
hard disk (o da qualche altro supporto).
le tracce dell'initrd le vedi nel file system: c'è una dir vuota che si
chiama appunto /initrd, ed è il mount point dell'initrd.

per creare l'initrd, alla fine della compilazione dei moduli (dopo make
modules_install), devi usare il comando mkinitrd, e includere un
riferimento all'immagine creata in lilo o grub.

nei sistemi con hd ide standard l'initrd è superfluo, ed occupa qualche
kB. diventa fondamentale nei sistemi scsi o con qualche tipo di raid,
dove lo scsi-subsystem (o raid-subsystem) sono un po' troppo voluminosi
per essere inclusi nel kernel (o in alcuni casi non possono proprio
entrarci, per motivi che onestamente ignoro).

diverso è il caso dei kernel monolitici, in cui tutto viene
impacchettato nell'immagine del kernel fregandosene di moduli e
compagnia bella... lì initrd non serve.

spero di esser stato abbastanza chiaro. se vuoi un po' di doc fammi
sapere.
scusate tanto se mi sono dilungato così tanto :)




Maggiori informazioni sulla lista Lug