Discussione: Kernel & MiniKernel...
View Single Post
Old 09-06-2002, 00:24   #3
alexmaz
Senior Member
 
L'Avatar di alexmaz
 
Iscritto dal: Jan 2000
Città: Milano
Messaggi: 1034
Minikernel non so, se intendi microkernel invece...

la differenza fra un microkernel e un kernel monolitico è più o meno questa:

kernel monolitico: con questo approccio tutto il kernel è scritto come un insieme di procedure e ognuna può richiamare le altre (a grandi linee). Tutto il kernel condivide lo stesso spazio di indirizzamento. Il kernel fornisce molti servizi come gestione dei processi, della memoria, I/O, filesystem e una serie di chiamate di sistema per poter accedere a questo servizi dal livello utente.

microkernel: questo approccio viene anche definito client/server, perchè le funzioni del sistema operativo vengono svolte da processi detti server e sono utilizzate da processi client. Il kernel dovrebbe occuparsi solo dello scambio di messaggi (e non chiamate di procedura) fra processo server e client, che non condividono lo stesso spazio di indirizzamento (nemmeno i vari processi server fra loro). I processi server girano in user space. Verosimilmente alcune funzioni sono impossibili da implementare a livelli utente, quindi il kernel non si limita a gestire lo scambio di messaggi, ma gestisce alche alcune funzioni base di accesso all'hardware.

La maggior parte dei sistemi operativi usa un approccio di tipo monolitico, Windows NT è nato come microkernel ma è stato poi trasformato in un kernel monolitico per motivi di prestazioni.
Le prestazioni in un sistema a microkernel sono inferiori perchè anzichè usare chiamate di procedura per svolgere le tipiche funzioni del kernel usa lo scambio di messaggi. Come pro un approccio microkernel è più gestibile a livello di sviluppo, più stabile perchè i vari processi server sono separati e facilmente utilizzabile per la creazione di sistemi distribuiti perchè lo scambio di messaggi può avvenire in modo trasparente (sempre a grandi linee) fra processi su macchine diverse.

Ciao
alexmaz è offline   Rispondi citando il messaggio o parte di esso