PDA

View Full Version : Sondaggio: kernel monolitico o modulare?


marcello81
15-04-2003, 23:08
Ciao a tutti! Visto che nel topic sulla modalità grafica della redhat si è arrivati a questo argomento, vorrei conoscere le "opinioni della piazza" riguardo al tema: Kernel monolitico o modulare? (o una via di mezzo?) Mi interesserebbe sapere qualcosa da qualcuno che ha provato entrambe le soluzioni.
Io mi schiero subito: per il mio PC di casa ho scelto un piccolo kernel monolitico, con su quei quattro componenti di cui ho bisogno: il mio computer (k6-2@450MHz,192MB di RAM) va una scheggia e si avvia in poco più di 20 secondi (un lampo se confrontati con una Mandrake) in runlevel 3. Ora vado a dormire: spero di trovare una bella icona 'hot' domani mattina. Scrivete!

AnonimoVeneziano
15-04-2003, 23:10
Omonimo , l mia idea già la Ognosci :D

Ciao

marcello81
15-04-2003, 23:13
Grazie comunque della risposta, Anonimo Veneziano, buona notte!

DaRkBoDoM
16-04-2003, 07:37
Io uso il monolito sul Pentium 133 che mi fa da server, mentre uso il modulare su questa macchina, dove cambio spesso harware, sperimento opzioni nuove, ecc...

#!/bin/sh
16-04-2003, 08:07
modulare su cinque macchine diverse. modulare tutta la vita!

marcello81
16-04-2003, 09:13
Originally posted by "#!/bin/sh"

modulare su cinque macchine diverse. modulare tutta la vita!
Perché? Ha senso se l'hardware che usi è sempre lo stesso? :confused:

#!/bin/sh
16-04-2003, 09:16
secondo me si. a meno di utilizzi paricolari preferisco sempre il kernel modulare. e poi io cambio spessissimo hardware.

Tassadar
16-04-2003, 09:41
Perchè non date un'occhiata quì (http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenbaum.html) :sofico:

lovaz
16-04-2003, 09:58
Originally posted by "Tassadar"

Perchè non date un'occhiata quì (http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenbaum.html) :sofico:

La diatriba microkernel / monolithic e' una questione un po' diversa.
Per microkernel si intende un'"astrazione" del kernel per favorire la portabilita'
(detto mooolto terra-terra :D )

marcello81
16-04-2003, 10:02
Grazie a Tassadar per il link. Purtroppo è un po' pesante mettersi a leggere tutta quella pagina in inglese, e comunque penso che ormai quella pagina abbia solo un - grande - valore storico. Alla fine anche linux si è adattato alla possibilità di avere un kernel modulare, e la questione è: in cosa (abitudini a parte) un kernel monolitico è migliore/peggiore di uno modulare? Io sono sincero: provando a caricare moduli mi è capitato spesso di
Non sapere come si chiamavano i moduli che dovevo caricare (anche se so che c'è qualche riferimento da qualche parte del filesystem. Dove?)
Avere un sacco di messaggi di unresolved symbol
Alla fine ho deciso per il kernel monolitico, e se le prestazioni non calano tanto, poco male, mi toglie di mezzo un sacco di fastidi. ;)

marcello81
16-04-2003, 10:04
Originally posted by "lovaz"



La diatriba microkernel / monolithic e' una questione un po' diversa.
Per microkernel si intende un'"astrazione" del kernel per favorire la portabilita'
(detto mooolto terra-terra :D )
lovaz, non ho capito niente di quello che hai detto. Puoi darmi qualche delucidazione o un link? Comunque mi sembra che tu sia + o - d'accordo con me, no?

Ikitt_Claw
16-04-2003, 10:18
Originally posted by "marcello81"

vorrei conoscere le "opinioni della piazza" riguardo al tema: Kernel monolitico o modulare? (o una via di mezzo?) Mi interesserebbe sapere qualcosa da qualcuno che ha provato entrambe le soluzioni.

Tendenzialmente modulare nel 99% dei casi.
Nella bzImage metto solo quanto e` indispensabile per il boot, il resto come modulo.

Non vedo motivi di rinunciare alla modularita`: maggiore flessibilita` a costo quasi nullo...

Non condivido il discorso sulla maggiore velocita` di boot: quello dipende da quale hardware supporti, non da come lo supporti: il caricamento di un modulo occupa qualcosa come una manciati di millisecondi gia` su un P200...

Il problema sono le scansioni di bus USB/SCSI/altro... che costano...

lovaz
16-04-2003, 10:34
Originally posted by "marcello81"


lovaz, non ho capito niente di quello che hai detto. Puoi darmi qualche delucidazione o un link? Comunque mi sembra che tu sia + o - d'accordo con me, no?

Be', per capire servirebbero conoscenze che ti puo' dare un corso si sistemi operativi, io l'ho fatto proprio col libro di Tanenbaum. Praticamente in un microkernel varie funzioni del so, anche a bassissimo livello come la gestione della memoria, del multitasking, ecc., vengono implementate seguendo una 'architettura teorica' che 'astrae' dall'hardware. Questo porta a vari problemi, come puoi leggere nelle opinioni di Linus nel documento citato sopra. Attenzione, comunque: microkernel != modulare. Linux, anche se ha i moduli, non e' un microkernel.
Se vuoi un link in italiano prova qui (l'ho trovato adesso con google :) ):
http://linux.html.it/guida/guida_linux24.htm

Per quanto riguarda il sondaggio, per sapere qual e' l'approccio piu' veloce devi provare entrambi, e metterti a cronometrare quanto impiegano a bootare.
Credo comunque che le differenze di velocita' siano trascurabili e che la scelta sia da fare basandosi su diverse considerazioni, tipo le tue: se il kernel modulare ti da' problemi, usa quello monolitico.

marcello81
16-04-2003, 11:09
Originally posted by "lovaz"




http://linux.html.it/guida/guida_linux24.htm



L'hai trovato adesso? Hai anche provato ad entrarci? A me carica,carica,carica... e poi mi dice che è scaduto il timeout. Ho controllato il sito www.html.it e sembra proprio che sia nel pallone. Vabbè, riproverò più tardi! :o

lovaz
16-04-2003, 11:21
Da me adesso va... Forse e' incompatibile con il tuo browser ? :confused:
Comunque se vuoi provare un microkernel c'e' osso.sf.net
Non ci puoi fare niente, ma puoi spulciare i sorgenti per vedere come e' fatto ;)

marcello81
16-04-2003, 12:46
E' andata! :eek: :)

kingv
16-04-2003, 13:41
se non ho un buon motivo per fare altrimenti generalmente compilo staticamente solo quello che mi serve. a compilare tutti i moduli ci vuole una vita, a compilare solo quelli che mi servono non vedo il vantaggio...

AnonimoVeneziano
16-04-2003, 14:34
Originally posted by "Tassadar"

Perchè non date un'occhiata quì (http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenbaum.html) :sofico:

Che c'entra ?? :D :sofico:

Qua si parla di Kernel Linux (che è monolitico ) e se è meglio modularizzare il kernel o tenerlo tutto in un unico file ben diverso.

La differensza principale tra Monolitico e Microkernel è che nel monolitico il kernel è tutto caricato in una memoria chiamata KERNEL SPACE , moduli compresi.

Mentre nel Microkernel il Kernel stesso è caricato nella KERNEL SPACE , ma tutte le altre funzioni (gestione memoria , dischi.... insomma tutti i vari drivers) sono caricati nella USER SPACE (la zona di memoria dei programmi ) .

Questo è spiegato proprio terra a terra , da questa diversità derviano tutte le altre cose.

Per esempio Linux è monolitico Windows XP è MicroKernel anke HURD è MicroKernel (e anke MINIX , infatti Tannenbaum... ;) )

CIao

VICIUS
16-04-2003, 17:55
io tengo il supporto per il controller raid su cui ho l'hd, e il reiserfs nel kernel in modo statico poi tutto il resto come modulo se possibile.

ciao ;)

#!/bin/sh
16-04-2003, 19:48
In base ai miei ricordi dell'uni quello monolitico è un modello secondo cui il kernel include oltre ai dati che descrivono i processi e i meccaninsmi che regolano la concorrenza tra i processi, anche i dati e le procedure per la gestione delle risorse. I processi accedono alle risorse attraverso queste procedure che hanno un insieme di parametri ben definiti. Questo insieme di primitive vengono dette chiamate di sistema. in pratica dentro al kernel c'e' tutto: per questo viene detto monolitico. Nel modello a microkernel il nucleo è molto semplificato, per garantire una maggiore portabilità tra diverse architetture e contiene praticamente solo i meccanismi e i dati che permettono lo scambio di informazioni tra i processi. Per il resto tutto è implementato come se fosse un task: gestione dell'I/0, gestione della memoria... Quindi si capisce molto bene la differenza che c'e' tra il concetto di modulare e microkernel. Sostanzialmente il modello monolitico ha avuto un po' + successo xchè è + blindato e + facilmente implementabile.