# [RISOLTO] dimensione kernel da ridurre

## AlterX

Ehm...

sto cercando di ridurre drasticamente il kernel-2.6.11-hardened-r1

Non volendo troppo toccare la sezione IDE per paura di blocco del kernel  :Wink:  ,

ho cercato di snellirlo molto, fino ad arrivare alla dimensione di 1.115Kb

Quello che vorrei sapere è: ma tutte quelle impostazioni obbligatorie sul kernel, sono necessarie??

Intendo quelle che riporta la guida ufficiale di gentoo (es: il debug dei driver incompleti, i settaggi obsoleti)...

Chiedo questo perchè su mandrake ho creato un kernel tipo server (senza audio, porta parallela, ecc...) di appena 820Kb e lasciando anche molte cose incluse, sempre per paura di blocchi vari.

Perche non riesco a ridurre ancor di più la dimensione del kernel gentoo???  :Mad: Last edited by AlterX on Sun Apr 03, 2005 10:15 am; edited 1 time in total

----------

## gutter

 *AlterX wrote:*   

> 
> 
> Perche non riesco a ridurre ancor di più la dimensione del kernel gentoo??? 

 

Non capisco O_o

Ti fai una lista dell'hw che hai prendi il kernel e togli tutto quello che non compare in quella lista. Penso otterrai un kernel veramente minimale.

----------

## AlterX

 *gutter wrote:*   

>  *AlterX wrote:*   
> 
> Perche non riesco a ridurre ancor di più la dimensione del kernel gentoo???  
> 
> Non capisco O_o
> ...

 

Penso di averlo già quasi fatto...

c'è solo quasi il minimo indispensabile; il problema della dim è dovuto anche a quelle opzioni necessarie per gentoo, che su altre distro non sono obbligatorie (ecco spiegata la diff tra kernel mdk e gentoo)

----------

## lavish

ma ti riferisci ad un kernel modulare o statico???

----------

## gutter

Non credo ce ne siano molte a parte i patchset  :Very Happy: 

Prova a scaricare un vanilla e partire da quello per ridurre le dimensioni.

----------

## AlterX

 *lavish wrote:*   

> ma ti riferisci ad un kernel modulare o statico???

 

ma in verità misto. 

Anche perchè in alcune parti non sono afferrato e quindi devo modulare  :Laughing: 

Diciamo che la tendenza è quello di crearlo solo statico (al 70/80% al momento è così)

ad esempio, ho disattivato il DMA, perchè con hdparm ho visto che non era attivo, ma

al riavvio si è impallato il kernel  :Crying or Very sad: 

Situazione attuale dei moduli: :Laughing: 

mail linux # make modules_install

  INSTALL drivers/base/firmware_class.ko

  INSTALL fs/nls/nls_cp850.ko

  INSTALL fs/nls/nls_iso8859-15.ko

  INSTALL lib/libcrc32c.ko

  INSTALL net/ipv4/netfilter/ipt_LOG.ko

  INSTALL net/ipv4/netfilter/ipt_TCPMSS.ko

  INSTALL net/ipv4/netfilter/ipt_ULOG.ko

  INSTALL net/ipv4/netfilter/ipt_ah.ko

  INSTALL net/ipv4/netfilter/ipt_dscp.ko

  INSTALL net/ipv4/netfilter/ipt_ecn.ko

  INSTALL net/ipv4/netfilter/ipt_esp.ko

  INSTALL net/ipv4/netfilter/ipt_tcpmss.ko

  INSTALL net/ipv4/netfilter/iptable_raw.ko

if [ -r System.map ]; then /sbin/depmod -ae -F System.map  2.6.11-hardened-r1; fi

----------

## gutter

 *AlterX wrote:*   

> 
> 
> ad esempio, ho disattivato il DMA, perchè con hdparm ho visto che non era attivo, ma
> 
> al riavvio si è impallato il kernel 

 

Non mi sembra una buona idea  :Wink: 

Togli tutti i driver che non servono, ad esempio USB, Firewire, i driver delle schede di rete ecc...

----------

## AlterX

 *gutter wrote:*   

>  *AlterX wrote:*   
> 
> ad esempio, ho disattivato il DMA, perchè con hdparm ho visto che non era attivo, ma
> 
> al riavvio si è impallato il kernel  
> ...

 

e già...non è stata una buona idea!!  :Rolling Eyes: 

già fatto...usb ecc... tutti eliminati  :Twisted Evil: 

----------

## lavish

 *AlterX wrote:*   

>  *lavish wrote:*   ma ti riferisci ad un kernel modulare o statico??? 
> 
> ma in verità misto. 

 

Allora è modulare  :Very Happy:  Io di solito tolgo proprio (a parte "certi desktop" con scheda nvidia) il supporto ai moduli nel kernel... ma mettendo tutto statico la dimensione aumenta considerevolmente! 

Comunque ovvio che il kernel di gentoo è più pesante rispetto all'altra distro... GENTOO NON È MICA MANDRAKE!  :Laughing:   :Laughing:   :Laughing:   :Laughing: 

----------

## AlterX

 *AlterX wrote:*   

>  *lavish wrote:*   ma ti riferisci ad un kernel modulare o statico??? 
> 
> ma in verità misto. 
> 
> Anche perchè in alcune parti non sono afferrato e quindi devo modulare 
> ...

 

Situazione attuale dei moduli: :Laughing: 

  INSTALL drivers/base/firmware_class.ko

  INSTALL lib/libcrc32c.ko

Ragazzi ho veramente ridotto all'osso il kernel...ve lo giuro!

Ora occupa 1.086Kb rispetto a prima 1.115Kb

Adesso ci sono solo i necessari e tutti built-in!!!

Rimangono sempre le opzioni fastidiose che impone la gentoo per funzionare: 

 [*] MSDOS support

 [*] Prompt for development and/or incomplete code/drivers                        

 [*] Select only drivers expected to compile cleanly  

  [*] /proc file system support                                          

  [*]     /proc/kcore support              

  [*] /dev file system support (OBSOLETE)                                              

  [*]     Automatically mount at boot            

  [*] Virtual memory file system support (former shm fs)              

Se potessi eliminarli...secondo me  :Wink: 

----------

## ErniBrown

L'unica cosa che posso dirti è che il supporto MS-DOS io non ce l'ho e non mi fa storie... E un dubbio: ma se usi devfs secondo me sprechi più spazio nel kernel, con udev dovresti lasciarne di più...forse...prova! Ovviamente poi udev ti prende un po' più di spazio su disco

----------

## lavish

Per curiosità... a che ti serve avere un kernel liofilizzato?

----------

## AlterX

 *ErniBrown wrote:*   

> L'unica cosa che posso dirti è che il supporto MS-DOS io non ce l'ho e non mi fa storie... E un dubbio: ma se usi devfs secondo me sprechi più spazio nel kernel, con udev dovresti lasciarne di più...forse...prova! Ovviamente poi udev ti prende un po' più di spazio su disco

 

L'ultima volta che ho tolto il supporto MS-DOS (su un amd64) non mi partiva al boot grub.

Come faccio a sapere se uso devfs piuttosto che udev???

----------

## AlterX

 *lavish wrote:*   

> Per curiosità... a che ti serve avere un kernel liofilizzato?

 

Beh mi serve perchè deve girare su un server...

lo voglio veloce (supporti built-in) e stabile (evitare che supporti non strettamente necessari possano interferire e bloccare il sistema)

tutto questo unito alla versione hardened...beh  :Laughing: 

----------

## Thrain

Puoi fare benissimo a meno di devfs, anzi penso che udev sia la scelta migliore, nonché più sicura

----------

## lotti

 *AlterX wrote:*   

> 
> 
> Beh mi serve perchè deve girare su un server...
> 
> 

 

scommetto che il server ha 300 MB di hard disk XD

Edit gutter: Per favore quotiamo meglio

----------

## AlterX

 *lotti wrote:*   

> 
> 
> scommetto che il server ha 300 MB di hard disk XD

 

beh 300Mb proprio no, però... :Laughing: 

e un'pò vecchiotto...

Edit gutter: Per favore quotiamo meglio.

----------

## dappiu

Anche se non penso che diminuendo la dimensione del kernel tu possa vedere chissà quanta velocità in più, hai pensato a compilarlo utilizzando -Os e togliendo altre ottimizzazioni che potrebbero aumentarne la dimensione?

----------

## randomaze

 *dappiu wrote:*   

> Anche se non penso che diminuendo la dimensione del kernel tu possa vedere chissà quanta velocità in più, hai pensato a compilarlo utilizzando -Os e togliendo altre ottimizzazioni che potrebbero aumentarne la dimensione?

 

Io non mi metterei a giocare con le CFLAGS del kernel...  :Rolling Eyes: 

----------

## AlterX

 *randomaze wrote:*   

>  *dappiu wrote:*   Anche se non penso che diminuendo la dimensione del kernel tu possa vedere chissà quanta velocità in più, hai pensato a compilarlo utilizzando -Os e togliendo altre ottimizzazioni che potrebbero aumentarne la dimensione? 
> 
> Io non mi metterei a giocare con le CFLAGS del kernel... 

 

Quoto alla grande  :Rolling Eyes: 

----------

## gutter

 *AlterX wrote:*   

> 
> 
> Quoto alla grande 

 

Idem è ALTAMENTE sconsigliato.

----------

## .:chrome:.

 *AlterX wrote:*   

>  *lavish wrote:*   ma ti riferisci ad un kernel modulare o statico??? 
> 
> ma in verità misto. 
> 
> Anche perchè in alcune parti non sono afferrato e quindi devo modulare 
> ...

 

un kernel non è misto. o è monolitico o è modulare.

per quanto riguarda il tuo dubbio, quando configuri il kernel c'è un pulsante HELP che ti dice, punto per punto cosa stai attivando. basta che disattivi quello che non ti interessa e che non ti serve e il kernel si riduce eccome.

----------

## .:chrome:.

 *AlterX wrote:*   

>  *lavish wrote:*   Per curiosità... a che ti serve avere un kernel liofilizzato? 
> 
> Beh mi serve perchè deve girare su un server...
> 
> lo voglio veloce (supporti built-in) e stabile (evitare che supporti non strettamente necessari possano interferire e bloccare il sistema)
> ...

 

ma... hai idea di come funzioni un kernel?

non è vero che un kernel più piccolo è più stabile e veloce.

queste sono convinzioni assolutamente immotivate che derivano dall'ascoltare le voci che si sentono in giro perla rete.

io non mi preoccuperei delle dimensioni del kernel, ma del fatto che funzioni bene

per la cronaca, ho visto kernel di quasi 4 MB, e non direi proprio che erano lenti o instabili

----------

## lavish

 *k.gothmog wrote:*   

> un kernel non è misto. o è monolitico o è modulare.[CUT]

 

Gliel'avevo già detto  :Razz: 

----------

## lavish

 *k.gothmog wrote:*   

> non è vero che un kernel più piccolo è più stabile e veloce.
> 
> queste sono convinzioni assolutamente immotivate che derivano dall'ascoltare le voci che si sentono in giro perla rete.
> 
> io non mi preoccuperei delle dimensioni del kernel, ma del fatto che funzioni bene

 

Sì ok, ma dipende che ci devi fare però! Se stai facendo un kernel per un sistema embedded le dimensioni contano eccome  :Wink: 

----------

## .:chrome:.

 *lavish wrote:*   

>  *k.gothmog wrote:*   non è vero che un kernel più piccolo è più stabile e veloce.
> 
> queste sono convinzioni assolutamente immotivate che derivano dall'ascoltare le voci che si sentono in giro perla rete.
> 
> io non mi preoccuperei delle dimensioni del kernel, ma del fatto che funzioni bene 
> ...

 

ma qui si parlava di un server  :Wink: 

----------

## AlterX

 *lavish wrote:*   

>  *k.gothmog wrote:*   un kernel non è misto. o è monolitico o è modulare.[CUT] 
> 
> Gliel'avevo già detto 

 

Scusa perchè non dovrebbe essere misto?!?!  :Rolling Eyes: 

Se decido di linkare staticamente dei driver nel kernel per velocità e altri li decido di usare come moduli, perchè sono utilizzati più raramente...non è un kernel misto??? :Rolling Eyes: 

----------

## lavish

@AlterX: no, per definizione è comunque un kernel modulare.

----------

## AlterX

 *k.gothmog wrote:*   

> 
> 
> ma... hai idea di come funzioni un kernel?
> 
> non è vero che un kernel più piccolo è più stabile e veloce.
> ...

 

Scusa se insisto...

sono un programmatore e so che inevitabilmente dei bug o codice potenzialmente scritto male (e ce ne è moltissimo) può capitare, per qualsiasi ragione che qui non trattiamo; ergo...più grande è un programma non modulare (non vale solo per il kernel) e più facile è che ci siano potenziali bugs al suo interno.

Questo ci porta a: più si riduce il programma statico al minimo, più c'è una ipotetica riduzione di bugs; che crasha un nostro modulo inserito in una DLL, non blocca l'intero programma.

Quando appariva la famosa schermata blu di window...perchè molte cose sono staticamente inserito nel kernel di win (la stessa interfaccia grafica ne è un esempio: più veloce, ma potenzialmente dannosa!!!)

Riferito al kernel: se va in crash sul mio server di posta il cd (perchè in quel momento lo sto utilizzando), se compilato staticamente, potrei rischiare di bloccare il server; invece se inserito come modulo, crasha solo il modulo ed il kernel continua a funzionare come se nulla fosse successo!

Almeno questo ho studiato nel tempo addietro su moduli e buit-in.

Scusate se ho tirato in ballo win  :Wink: 

----------

## Tiro

 *Quote:*   

> 
> 
> Come faccio a sapere se uso devfs piuttosto che udev???

 

```
emerge udev && emerge -C devfsd
```

  :Wink: 

...ma è necessario il supporto ms-dos x gentoo??????? ...ricordo di aver compilato dei kernel anche senza quel supporto ed andavano lo stesso...

----------

## AlterX

 *Tiro wrote:*   

>  *Quote:*   
> 
> Come faccio a sapere se uso devfs piuttosto che udev??? 
> 
> ```
> ...

 

Basta solo quella istruzione per usare udev?!?! e poi non devo fare niente altro?!?!

Per il suorto MS-DOS...ora provo  :Wink: 

----------

## .:chrome:.

 *AlterX wrote:*   

> Scusa perchè non dovrebbe essere misto?!?! 
> 
> Se decido di linkare staticamente dei driver nel kernel per velocità e altri li decido di usare come moduli, perchè sono utilizzati più raramente...non è un kernel misto???

 

il kernel è modulare o monolitico. fine

"misto" è una cosa che hai inventato tu, penso.

ti consiglio una buona lettura: "Sistemi Operativi", di William Stallings

solitamente quando uno si legge (e capisce) quel libro si toglie dalla testa anche un mucchio di stupidagginiLast edited by .:chrome:. on Sat Apr 02, 2005 10:58 pm; edited 1 time in total

----------

## .:chrome:.

 *AlterX wrote:*   

> 
> 
> Riferito al kernel: se va in crash sul mio server di posta il cd (perchè in quel momento lo sto utilizzando), se compilato staticamente, potrei rischiare di bloccare il server; invece se inserito come modulo, crasha solo il modulo ed il kernel continua a funzionare come se nulla fosse successo!
> 
> Almeno questo ho studiato nel tempo addietro su moduli e buit-in.
> ...

 

cazzata. era scritto nei baci perugina?

se carico il modulo ide-cd e si schianta il modulo ide-cd, si può innescare un deadlock o una condizione di starvation globale, che riguarda tutta la struttura del kernel.

oppure più verosimilmente si verifica il kernel panic

riconsigio la lettura di "Operating Systems" di William Stallings, oppure di "Modern Operating Systems" di Andrew TannenbaumLast edited by .:chrome:. on Sat Apr 02, 2005 10:58 pm; edited 1 time in total

----------

## Dhaki

Per non sbagliare consiglio la lettura di questo eidificante problema sulla dimensione di bzImage ( :Laughing: )

----------

## AlterX

 *k.gothmog wrote:*   

>  *AlterX wrote:*   
> 
> Riferito al kernel: se va in crash sul mio server di posta il cd (perchè in quel momento lo sto utilizzando), se compilato staticamente, potrei rischiare di bloccare il server; invece se inserito come modulo, crasha solo il modulo ed il kernel continua a funzionare come se nulla fosse successo!
> 
> Almeno questo ho studiato nel tempo addietro su moduli e buit-in.
> ...

 

Kernel panic...e non è un blocco del sistema?!?!

Cmq era solo un esempio...

----------

## gutter

 *k.gothmog wrote:*   

> 
> 
> cazzata. era scritto nei baci perugina?
> 
> 

 

Cerchiamo di essere più rispettosi delle opinioni altrui. Giuste o sbagliate che siano c'è modo e modo per farlo notare. Non è la prima volta che lo dico.  :Rolling Eyes: 

----------

## .:chrome:.

 *gutter wrote:*   

> Cerchiamo di essere più rispettosi delle opinioni altrui

 

un conto è un'idea che può essere sbagliata, e non c'è nulla di male: nessuno possiede la conoscenza assoluta.

un altro conto è avere la pretesa di fossilizzarsi sulle proprie idee, infondate, nate dall'ignoranza, e per di più il non volersi informare nemmeno. come dire: io ho ragione e tutti voi siete nel torto

trovo questi atteggiamenti riprovevoli, ed estremamente irritanti

----------

## lavish

 *k.gothmog wrote:*   

> un altro conto è avere la pretesa di fossilizzarsi sulle proprie idee, infondate, nate dall'ignoranza, e per di più il non volersi informare nemmeno. come dire: io ho ragione e tutti voi siete nel torto
> 
> trovo questi atteggiamenti riprovevoli, ed estremamente irritanti

 

Non mi pare assolutamente che AlterX si sia espresso in questi termini, anzi! Dopo la tua risposta poco edificante (non in termini tecnici, ma umani) non ha replicato con toni acidi o eccessivamente scontrosi. Quindi non mi sembra il caso di attaccarlo così e mi sento di ri-quotare gutter.

----------

## AlterX

 *k.gothmog wrote:*   

>  *gutter wrote:*   Cerchiamo di essere più rispettosi delle opinioni altrui 
> 
> un conto è un'idea che può essere sbagliata, e non c'è nulla di male: nessuno possiede la conoscenza assoluta.
> 
> un altro conto è avere la pretesa di fossilizzarsi sulle proprie idee, infondate, nate dall'ignoranza, e per di più il non volersi informare nemmeno. come dire: io ho ragione e tutti voi siete nel torto
> ...

 

Scusa ma tu ti fai troppi film!!!

SE come dici tu, avevo ragione e voi tutti siete nel torto, caro mio, non si spiegherebbero gli innumerevoli post inseriti nel forum, a dimostrazione che chiedo UMILMENTE l'opinione degli

altri a testimonianza delle mie non assolute conoscenze.

Saluti  :Rolling Eyes: 

----------

## .:chrome:.

 *lavish wrote:*   

> Quindi non mi sembra il caso di attaccarlo così

 

attacco? ho solo (indirettamente) consigliato di leggere qualche libro o della documentazione prima di postare

----------

## lavish

 *k.gothmog wrote:*   

> attacco? ho solo (indirettamente) consigliato di leggere qualche libro o della documentazione prima di postare

 

Più o meno  :Laughing: 

Dai, comunque ritorniamo nei ranghi che sarebbe un peccato costringere i ninja a chiudere il topic visto che si sta rivelando molto interessante, no?

----------

## Cazzantonio

capita a tutti di esagerare di quando in quando (si sa... ci sono momenti in cui girano le balle a tutti...), basterebbe la correttezza e la civiltà di chiede scusa a volte  :Rolling Eyes: 

----------

## gutter

 *k.gothmog wrote:*   

> 
> 
> attacco? ho solo (indirettamente) consigliato di leggere qualche libro o della documentazione prima di postare

 

Come ti ho ripetuto diverse volte, il problema è il modo con cui ti rivolgi agli altri.

Io concordo spesso con le tue idee ma al contrario discordo sul tuo modo di esprimerle.

Ora per l'ultima volta, cerchiamo di assumere un tono più amichevole quando esponiamo le nostre idee.

----------

