back
Kernel Ibridi

Una volta comprese le architetture Monolitiche e a Microkernel è piuttosto facile immaginare in cosa consistano i Kernel ibridi. Storicamente sono molti i sistemi che, nati in un ottica di impiego di un Microkernel, dopo essersi trovati di fronte a difficoltà di progetto che superavano le risorse a disposizione, hanno preferito optare per una via di mezzo, evitando così di scartare del tutto il lavoro già portato a termine.

Un Kernel ibrido solitamente parte da un'architettura a Microkernel, andando però a includere un numero sempre maggiore di server all'interno del Kernel stesso. Le motivazioni sono dovute principalmente al bisogno di semplificare il progetto: spesso gli sviluppatori si ritrovano con sistemi troppo poco efficienti e, poichè l'ottimizzazione della struttura è una delle soluzioni più costose in termini di risorse e di tempo, preferiscono includere alcuni servizi nello spazio delle istruzioni privilegiate andando ad aumentare semplicità ed efficienza del Sistema Operativo, senza influire eccessivamente sui costi.

Il risultato è una via di mezzo fra un sistema basato su Kernel Monolitico e uno basato su Microkernel, un buon compromesso per ridurre loverhead introdotto dall'elevato scambio di comunicazioni interprocesso e, nel contempo, per scorporare alcuni elementi dal Kernel ritenuti non necessari.

L'immagine sottostante (gentilmente concessa da Wikipedia) è utile a ricapitolare le strutture dei tre Kernel presi in esame.

1000px-OS-structure2

Notare come nelle immagini relative a Microkernel e Kernel ibrido sia presente un server denominato "Unix Server", l'architettura a Microkernel presenta diverse similitudini con gli Hypervisor delle macchine virtuali, questo permette in via teorica di eseguire l'intero Kernel Unix all'interno di un server appositamente strutturato; per esempio il Microkernel Fiasco [1] derivato dalla famiglia "L4" è in grado di eseguire il Kernel di Linux in uno spazio di memoria dedicato.

back