# [LEARN] Il kernel perfetto (o quasi...)

## silian87

Forse il titolo e' un po' azzardato....  :Razz:  . La mia domanda e' la seguente: Quando conviene mettere qualcosa come modulo e quando invece conviene metterlo nativamente. Probabilmente e' una FAQ, e ho gia' sentito dire in giro che conviene come modulo le periferiche che non si usano molto spesso, ed il resto nativamente. Ma non ho capito bene il perche'. 

Questo e' perche' io VOGLIO imparare il piu' possibile con linux, e ho deciso di farlo con gentoo.

Grazie in anticipo.

P.S.:E' la volta buona che mi fate cambiar l'output del comando lsmod, che attualmente mostra solo i driver della nvidia..........  :Embarassed: 

----------

## OKreZ

Io adotto questa soluzione: tutto cio' che e' integrato nel sistema (ho un portatile quindi scheda di rete, scheda video, etc...) e che uso praticamente sempre lo compilo built-in, tutto il resto (supporto ntfs, pcmcia, emulazione scsi, etc...) lo compilo come modulo, cosi' viene caricato solo all'occorrenza senza occupare memoria per niente... senza contare che puoi togliere/aggiungere/compilare moduli senza dover riavviare  :Smile: 

----------

## fedeliallalinea

Io metto le periferiche tutte come modulo mentre il resto integrato.

----------

## comio

Io faccio così:

fondamentale per il boot? 

  SI: Allora built-in

  NO: Modulo

Ciao  :Smile: 

----------

## randomaze

io di solito metto moduli... dove posso.

Tutto sommato credo che sia una scelta completamente individuale, a meno di malfunzionamenti qui e li!

----------

## motaboy

Io traggo godimento dal vedere hotplug che mi carica tutti i moduli che mi servono in automatico, infatti il mio "/etc/modules.autoload.d/kernel-2.6" è vuoto...

Ok, è una cazzata però è bello vedere come nel kernel 2.6.2 grazie al lavoro fatto su hotplug e sui moduli che esportano i device supportati nel 90% dei casi non si deve caricare niente a mano (o con modules.autoload).

Perciò anch'io mi diletto ad ogni compilazione del kernel e mettere qualcosa che prima era builtin come modulo fino a che riesco a bootare ancora il kernel e a non avere problemi.

Bye!

----------

## MyZelF

Ti segnalo questo:

https://forums.gentoo.org/viewtopic.php?t=58790

Personalmente di solito faccio esattamente come descritto da OKreZ per scegliere cosa compilare come modulo e cosa no.

----------

## bld

A livello di p4 / 512 MB ram e' possibile notare la differenza tra un kernel con qualche modulo in piu? Oppure e' una complicazione e basta?

----------

## silian87

mm, grazie mille, credo che ricompilero' il kernel con qualche modulo in piu'. Non metto il tag risolto in quanto non si tratta di un problema, e chi vuole puo' sempre inserire i metodi che adatta per decidere cosa va compilato come modulo e cosa invece no.

----------

## emix

 *bld wrote:*   

> A livello di p4 / 512 MB ram e' possibile notare la differenza tra un kernel con qualche modulo in piu? Oppure e' una complicazione e basta?

 

Penso che il guadagno di ram (utilizzando un kernel modulare) o il guadagno di prestazioni (utilizzando un kernel monolitico che non si deve preoccupare di caricare e scaricare i moduli) siano impercettibili sui computer di oggi. La comodità dei moduli si nota ad esempio quando si compila un kernel che deve girare su più macchine diverse (vedi i kernel generici delle varie distribuzioni). In questo caso si compila tutto come modulo e poi si carica solo quello che serve.

----------

## mirko_3

bah, io invece cerco di compilare meno moduli possibili... tengo come moduli la roba scsi che mi serve per l'ipod, dato che lo collego una volta al mese se non più raramente... il resto è quasi tutto integrato. Secondo me conviene tenere come moduli la roba che potrebbe crashare - così se crasha non fa crashare tutto il kernel... poi è principalmente una questione di preferenze personali...

----------

## Diggs

Personalmente ho sempre cercato di fare il kernel "monolitico", ma ultimamente, sia per curiosità che per necessità, i componenti scsi e usb sono compilati come moduli.   :Wink: 

Io non so in quanto non l'ho mai usato,quindi lo chiedo a voi, ma genkernel produce un kernel modulare o monolitico o una "via di mezzo"?

----------

## Sparker

Mah, secondo me a livello prestazioni non cambia nulla.

Tanto, se i moduli poi li carichi lo stesso, andranno comunque ad occupare memoria, con lo svantaggio (piccolo) di dover leggere n piccoli files invece di uno unico

Aggiungo un voto per "le periferiche che non si usano spesso /  che possono crashare.

----------

## motaboy

 *mirko_3 wrote:*   

>  Secondo me conviene tenere come moduli la roba che potrebbe crashare - così se crasha non fa crashare tutto il kernel... poi è principalmente una questione di preferenze personali...

 

Su questo non sono d'accordo visto che anche i moduli funzionano in kernel-space non c'è nessuna differenza: se crasha il modulo crasha anche il kernel. Non c'è nessuna differenza da questo punto di vista tra modulo e kernel: il modulo è parte del kernel e non un programma a parte. 

Quello che dici sarebbe vero nel caso di microkernel ma vedendo winzozz e hurd non mi sembra che si siano risolti molti problemi.   :Twisted Evil: 

Bye!

----------

## Benve

 *motaboy wrote:*   

> 
> 
> Su questo non sono d'accordo visto che anche i moduli funzionano in kernel-space non c'è nessuna differenza: se crasha il modulo crasha anche il kernel. Non c'è nessuna differenza da questo punto di vista tra modulo e kernel: il modulo è parte del kernel e non un programma a parte. 
> 
> 

 

Credo anchio ma bisognerebbe provare

 *Quote:*   

> 
> 
> Quello che dici sarebbe vero nel caso di microkernel ma vedendo winzozz e hurd non mi sembra che si siano risolti molti problemi.  
> 
> Bye!

 

Anche windows ha buona parte della roba in kernelmode.

Hurd no (se esistesse), con Hurd potresti far morire il "server" che ti tiene su il file system e continua tranquillamente a funzionare. Oppure il "server" con lo scheduler. (come faccia a riprendersi poi non so).

Peccato che Hurd sia più che un Kernel una leggenda.

Sono curioso di sapere Darwin come sta messo. E' veramente a microkernel? Ho letto da qualche parte che in realtà ha molte parti in kernelmode. Chi usa Mac OSX conferma?

----------

## stefanonafets

Io ho macosX, ma nn so distingure....  :Embarassed: 

Cmq tornando sulla questione, anche io preferisco i moduli, e godo nel vedere l'hotplug che carica i moduli, anche quelli usati sempre (tipo sungem, hid, etc etc...)

 :Very Happy:   :Very Happy: 

----------

## motaboy

 *Benve wrote:*   

> 
> 
> Credo anchio ma bisognerebbe provare
> 
> 

 

Sei hai un chipset usb UHCI prova a compilare il supporto SCO in bluez (anche in hci_usb), poi collega il device bluetooth (il modulo viene caricato), poi scollegalo e ammira il kernel panic.

Bye!

----------

## Benve

Anchio voglio vedere la scritta kernel panik. Sul mio portatile non è mai venuta fuori

----------

## motaboy

Ho fatto alcuni esperimenti coi moduli e hotplug e ho messo alcune osservazioni che mi piacerebbe condividere in questo thread:

https://forums.gentoo.org/viewtopic.php?t=132823

Per la verità ho fatto altri esperimenti ma sono cosi strani che mi vergogno un pò a raccontarli. Spero che qualcuno possa confermare quello che ho verificato.

Bye!

----------

## shev

 *Benve wrote:*   

> Sono curioso di sapere Darwin come sta messo. E' veramente a microkernel? Ho letto da qualche parte che in realtà ha molte parti in kernelmode. Chi usa Mac OSX conferma?

 

Puoi fartene un'idea da solo, darwin sarebbe opensource  :Very Happy: 

Cmq sul kernel modulare o monolitico è una guerra di religione più che una faq. Come sempre ogni scelta ha i suoi pregi e i suoi difetti. Uno degli aspetti che non ho visto citare finora è quello della sicurezza contro attacchi esterni: un kernel modulare da questo punto di visto si presta a tipi di attacco che un kernel monolitico per sua natura non permette.

Cmq ripeto, non consiglio ne l'una ne l'altra soluzione perchè si tratta di gusti e di priorità personali, come per le cflgas. 

Se proprio volete aumentare i casi per la vostra statistica, personalmente adotto una soluzione simile a quella di OKreZ.

My 2 cents

----------

## randomaze

 *motaboy wrote:*   

> Per la verità ho fatto altri esperimenti ma sono cosi strani che mi vergogno un pò a raccontarli.

 

racconta, racconta   :Smile: 

----------

## Benve

 *Shev wrote:*   

> 
> 
> Puoi fartene un'idea da solo, darwin sarebbe opensource 
> 
> 

 

Si lo so, è che sto messo male con l'inglese e non volevo leggermi il codice sorgente.

 *Shev wrote:*   

> 
> 
> Uno degli aspetti che non ho visto citare finora è quello della sicurezza contro attacchi esterni: un kernel modulare da questo punto di visto si presta a tipi di attacco che un kernel monolitico per sua natura non permette.
> 
> 

 

Si ma togliere del tutto il supporto per i moduli, in un desktop è impossibile.

 *Shev wrote:*   

> 
> 
> Cmq ripeto, non consiglio ne l'una ne l'altra soluzione perchè si tratta di gusti e di priorità personali, come per le cflgas. 
> 
> Se proprio volete aumentare i casi per la vostra statistica, personalmente adotto una soluzione simile a quella di OKreZ.
> ...

 

Condivido - anchio

----------

## BlueRaven

 *Shev wrote:*   

> Uno degli aspetti che non ho visto citare finora è quello della sicurezza contro attacchi esterni: un kernel modulare da questo punto di visto si presta a tipi di attacco che un kernel monolitico per sua natura non permette.

 

E' sicuramente più difficile, ma esistono tecniche di attacco anche contro i kernel non modulari.

Vedi ad esempio qui.

----------

## shev

 *BlueRaven wrote:*   

> E' sicuramente più difficile, ma esistono tecniche di attacco anche contro i kernel non modulari.
> 
> Vedi ad esempio qui.

 

Sicuramente, ma il discorso era che oltre ad attacchi come quelli da te citati i kernel modulari si prestano ad ulteriori tipi d'attacco, spesso più alla portata dei normali script kiddie di altre tecniche. Poi che non esista la sicurezza definitiva non ci piove, la storia recente (e non solo) insegna.

----------

## cerri

La sicurezza definitiva esiste eccome.

Staccate il cavo di rete.   :Cool: 

----------

## stefanonafets

 *Quote:*   

> La sicurezza definitiva esiste eccome. 
> 
> Staccate il cavo di rete. 

 

Non esiste, ammenochè non stacchi l'alimentatore della mobo...  :Shocked: 

Esempio, un tuo amico viene a casa tua e ti becca la password di root provandone un paio a caso...  :Very Happy: 

----------

## fedeliallalinea

 *stefanonafets wrote:*   

> Esempio, un tuo amico viene a casa tua e ti becca la password di root provandone un paio a caso... 

 

Piu' semplicemente mette un livecd (se non c'e' pass nel bios ed e' abilitato con primary boot cd) e monta le partizioni  :Very Happy:  .

----------

## silian87

 *Quote:*   

> un tuo amico

 

Beh... se fa questo non e' certo amico mio...   :Smile: 

----------

## cerri

 *stefanonafets wrote:*   

>  *Quote:*   La sicurezza definitiva esiste eccome. 
> 
> Staccate il cavo di rete.  
> 
> Non esiste, ammenochè non stacchi l'alimentatore della mobo... 
> ...

 

Sai che?

1) i miei amici sanno che la tastiera E' SACRA e come tale è un oggetto di culto che deve essere conquistato con atti di sottomissione;

2) al mio login root non è ammesso, quindi prima devono anche sgamare il mio username...  :Wink: 

3) torturo e uccido per molto meno (d'oh, chissà perchè ho il server pop3 che accetta connessioni SSL...).

----------

## ilreds

Ragazzi,

se io compilo il kernel su un desktop a cui non sarà cambiato alcun componente, è giustificata una compilazione monolitica?

Ho visto ad esempio che la guida di alsa tratta il caso in cui alsa sia modulare....

A me piaceva un kernel monolitico ma ci sono casi (vedi alsa) in cui è consigliabile utilizzare i moduli?

Se volete posto la mia configurazione hw.

----------

## randomaze

 *ilreds wrote:*   

> Ragazzi,
> 
> se io compilo il kernel su un desktop a cui non sarà cambiato alcun componente, è giustificata una compilazione monolitica?
> 
> 

 

Come é stato detto più volte in generale é questione di gusti.

Come é stato detto altre volte può capitare che un dato componente funzioni meglio come modulo.

Secondo me potresti provare la compilazione monolitica (dato che mi sembra di capire é quello che vuoi), se poi noti dei malfunzionamenti con il sonoro o altro riprovi mettendo come modulo il pezzo critico  :Wink: 

----------

## iDarbert

Io sono per il kernel monolitico (beh... più o meno)

L'unico modulo che ho è usb-storage perchè come builtin funziona male   :Confused: 

----------

## hardskinone

 *cerri wrote:*   

> La sicurezza definitiva esiste eccome.
> 
> Staccate il cavo di rete.  

 

E come proteggi fisicamente il computer?  :Twisted Evil: 

Io tendo a compilare il più possibile come moduli. Non so dire esattamente il perchè... ma mi trovo meglio così che sapere di avere un mattone in memoria.

----------

## richard77

Io tendo a prediligere i moduli, perche' se qualcosa non va e' piu' facile fare le prove (togli/metti  i moduli al volo vs. ricompila il kernel e riavvia).

Tralaltro a me il sonoro non andava nel kernel, ma come modulo si'.

PS: a chi chiedeva di genkernel: ricompila il kernel secondo il .config che trova (o che generi se segli l'opzione --menuconfig")

Ciao, r.

----------

## X-Drum

beh sulla mia macchina "sego" tutto quello che non potro mai utilizzare/avere o semplicemente non mi interessa creando un kernel il piu' possibile modulare

un esempio:

 agpgart lo compilo come modulo poiche' voglio avere la possibilità di switchare   

 tra il supporto AGP di Nvidia (+performante ma - stabile ) e il supporto

 (+affidabile ma - perfomante) del kernel

per installazioni multiple (specie con hardware eterogeneo) come già detto da altri se si vuole risparmiare tempo si va sul modulare, che è anche quello che ho fatto in università, cambia solo la CPU

----------

## xlyz

 *cerri wrote:*   

> La sicurezza definitiva esiste eccome.
> 
> Staccate il cavo di rete.  

 

... elettrica   :Razz: 

----------

## shanghai

 *Quote:*   

> La sicurezza definitiva esiste eccome.

 

Mai provato a chiudere tutto con una chiave hardware e ad appenderla al collo di Freddy Krueger?

 :Laughing:   :Laughing:   :Laughing: 

Mah, seriamente: già una volta cambiato l'utente root con un altro come fa Cerri, ma come cavolo fai?  :Smile: 

Senza contare il fatto che violare un sistema unix-based è di suo più complicato visti i miliardi di personalizzazioni possibili nella configurazione... spostare e rinominare i files di sistema...ricompilare con opzioni particolari, patchare il kernel a modo proprio... 

Per quanto riguarda il kernel, io modularizzo il meno possibile (i.e. solo i device che solitamente attacco e stacco tipo... beh, solo la fotocamera).

Poi ci sono i moduli obbligati (vedi scheda video NVidia...), e l'unica eccezione (scheda audio).

----------

## xlyz

 *shanghai wrote:*   

> 
> 
> Mah, seriamente: già una volta cambiato l'utente root con un altro come fa Cerri, ma come cavolo fai? 

 

apri cd

inserisci knoppix

reboot

da knoppix apri console

su

chroot

passwd quellochevuoi

a quel punto fai quello che vuoi ...

----------

## shanghai

Beh, certo, mi riferivo alla sicurezza in rete  :Smile: 

Non sono un grande esperto in merito, ma se chicchessia vuole un accesso root mi pare evidente che, o fa girare tutto da utente normale (?) o deve proprio tirare a indovinare user e pass...  :Smile: 

----------

## silian87

 *Quote:*   

> 
> 
> apri cd
> 
> inserisci knoppix
> ...

 

Se setti come primo dispositivo di boot l'hard disk, poi metti la password nel bios e in LILO o GRUB hai gia' risolto questi problemini.

Certo che la maggior parte della gente non lo fa!

----------

