Originariamente inviato da
Vincent Vega
Alla fine, come dice Plokko, nel Microkernel son le comunicazioni tra "Host e client" che creano del grasso.
Per quel poco che ne so, il Kernel è come composto da un Host\Core, che immagino come il cuore del MicroKernel, e vari Client o i Cd. Moduli Servers. Ogni System Call al Kernel viene reindirizzata al Modulo Server, dopo la necessaria commutazione Ring 3-to-0 (Mi pare che avvenga solo con le CPU Intel) che consente l'autenticazione all'Hardware dell'Host\Kernel stesso, che, a sua volta reindirizza la chiamata al Modulo Server che, in fine, "esegue". I Client sono come dei "Plug-In" implementati con un certo grado di astrazione rispetto al Kernel stesso, di per se, "a livello utente". Come se, appunto, ci fosse un Core da cui dipendono dei servizi base che nell'insieme costituiscono un sistema operativo.
Mi vien da pensare ad aMuled+aMulegui+aMuleWeb
.
Comunque, perché i moduli possano comunicare in modo opportuno, quindi limitando l'overhead nelle "trasmissioni", sarebbe necessario un limite di overflow (Un record di attivazione mi pare, ma non ne sono sicuro) oltre il quale il Core possa Killare il processo alla base dell'istruzione. Insomma, il Core dovrebbe integrare anche uno Scheduler (LOL, e meno male che è un Microkernel
). IMHO, solo nel caso di "Core-Servers" sviluppati per lavorare in Multitasking come Minix (Preemptive)
.