Pagina 1 di 1

kernel-generic vs kernel-huge

Inviato: mar 9 nov 2010, 10:16
da blackman85
La differenza sostanziale tra il kernel-generic, il kernel-huge e il kernel-huge-smp qual è? Quale consigliate e perché?
Grazie...

Re: kernel-generic vs kernel-huge

Inviato: mar 9 nov 2010, 10:57
da shark1500
Da Slackware-HOWTO.
These are the kernels shipped in Slackware:

hugesmp.s This is the default installation kernel. If possible,
you can save a bit of RAM later (and some ugly warnings at
boot time or when trying to load modules when the driver is
already built-in) by switching to a generic kernel. In this
case that would be gensmp.s, which is a similar kernel but
without filesystems and many of the less common drive
controllers built in. To support these (at the very least
your root filesystem), an initrd (actually an initramfs)
is required when a generic kernel is used. Previous
versions of Slackware used an ext2 filesystem for this, but
now a filesystem-less dynamic kernel-based directory
structure is used. A big advantage of this is that the size
usable by the initrd is only limited by the amount of RAM in
the machine. A disadvantage is that the generic kernels no
longer include *any* filesystems besides romfs, so old
initrd.gz files are not usable (they would have needed new
modules anyway), and it is trickier to get a custom binaries
or modules or whatever into the installer for guru-install
purposes. It's not impossible though -- think tar to/from a
device such as a USB stick, or leveraging ROMFS.

gensmp.s The trimmed down, more modular version of hugesmp.s. This
can be switched to, after setting up an initrd and
reinstalling LILO. It is packaged as a .txz, and can be
found on the installed system as:
/boot/vmlinuz-generic-smp-2.6.33.4-smp

Re: kernel-generic vs kernel-huge

Inviato: mar 9 nov 2010, 11:04
da ZeroUno
il kernel-*-smp supporta i sistemi multiprocessore e/o multicore ma è consigliato anche se hai un solo processore monocore; il non smp viene usato in caso il smp dia problemi.

il kernel huge ha compilati builtin gran parte dei driver, il kernel generic solo un piccolo set indispensabile, gli altri si caricano runtime come modul

di contro il kernel huge è grande il doppio del kernel generic

il kernel huge viene utilizzato in fase di installazione, in modo da non dover fare un riconoscimento dell'hardware per caricare i moduli ma avere tutto a portata di mano, oppure in fase di rescue.

Nel kernel generic non hai il filesystem ext3 e ext4, così non puoi fare il boot della macchina in modo normale ma devi creare un initrd. Per dettagli vedi /boot/README.initrd
Il mio consiglio è quello di mettere, in lilo.conf, una entry per il kernel generic, che è quella che utilizzerai in fase normale, con relativo initrd (ricordarsi che va aggiornato ad ogni upgrade del kernel), e una entry kernel huge da usare in caso l'initrd non funge, magari con l'aggiunta della riga 'append="3"' per non entrare in runlevel 4 (che non serve in un rescue)

Ciao
01

Re: kernel-generic vs kernel-huge

Inviato: mar 9 nov 2010, 12:59
da hashbang
Come ha detto ZeroUno, il kernel generic ha bisogno di un initrd per poter funzionare. Lo huge, no.
Io personalmente propendo per il kernel huge (che si può definire un kernel ibrido). Infatti tendo a escludere i generic dall'installazione, in quanto reputo che i driver di base della macchina debbano stare nell'immagine del kernel e non debbano essere caricati come moduli.

A livello di prestazioni, non ti so dire. Però se non ricordo male un kernel statico (o anche ibrido) tende a essere molto più performante, nel caso in cui i driver compilati siano "essenziali" (vale a dire che il kernel contiene solo i TUOI driver).
Il kernel generic, però, ha un vantaggio: Se hai bisogno di compilare un driver, non hai bisogno di ricompilare il kernel per intero.

Questo però lo si può ovviare con un kernel ibrido, dove i driver di base (chipset, file system, usb ecc.) si trovano nell'immagine (difficilmente dovrai compilarli in seguito). Mentre i driver di supporto li compili come moduli (supporti specifici per periferiche usb, driver webcam ecc.). Pertanto non avrai bisogno di un initrd (a meno di configurazioni particolari, come il bootsplash) e avrai la possibilità di scaricare e/o caricare i moduli esterni per un supporto specifico, qualora dovessi averne bisogno.

Re: kernel-generic vs kernel-huge

Inviato: mar 9 nov 2010, 13:38
da navajo
atomix600 ha scritto:Come ha detto ZeroUno, il kernel generic ha bisogno di un initrd per poter funzionare. Lo huge, no.
Io personalmente propendo per il kernel huge (che si può definire un kernel ibrido). Infatti tendo a escludere i generic dall'installazione, in quanto reputo che i driver di base della macchina debbano stare nell'immagine del kernel e non debbano essere caricati come moduli.

A livello di prestazioni, non ti so dire. Però se non ricordo male un kernel statico (o anche ibrido) tende a essere molto più performante, nel caso in cui i driver compilati siano "essenziali" (vale a dire che il kernel contiene solo i TUOI driver).
Il kernel generic, però, ha un vantaggio: Se hai bisogno di compilare un driver, non hai bisogno di ricompilare il kernel per intero.

Questo però lo si può ovviare con un kernel ibrido, dove i driver di base (chipset, file system, usb ecc.) si trovano nell'immagine (difficilmente dovrai compilarli in seguito). Mentre i driver di supporto li compili come moduli (supporti specifici per periferiche usb, driver webcam ecc.). Pertanto non avrai bisogno di un initrd (a meno di configurazioni particolari, come il bootsplash) e avrai la possibilità di scaricare e/o caricare i moduli esterni per un supporto specifico, qualora dovessi averne bisogno.
Anche io uso un kernel huge.
Se hai un pc recente, non vuoi sbatterti in ricompilazioni, e magari aggiungi un accessorio ogni tanto al pc, l huge va benissimo.