back

Principali Tipologie di Kernel

Introduzione

Se si volesse prendere in analisi esclusivamente il Kernel di un Sistema Operativo si noterebbe una distinzione piuttosto netta fra le varie categorie attualmente impiegate. Infatti, rimanendo esclusivamente nell'ambito dei Kernel, ciò che differenzia una tipologia dall'altra è semplicemente il grado di astrazione che essi operano sulla macchina.
Un Kernel monolitico, come si evince dal nome stesso, tenderà a includere l'intera gestione dell'hardware al suo interno, mentre un Microkernel si limiterà a contenere i servizi minimali utili al funzionamento di un Sistema Operativo.

È importante comprendere come l'impiego di un determinato Kernel all'interno di un progetto influenzi radicalmente le scelte successive. Le differenze più sensibili sono concentrate nello sviluppo dei servizi sovrastanti il Kernel e non nello stesso.

Andiamo quindi ad analizzare le diverse classi di Kernel sotto questo aspetto, valutando soprattutto le conseguenze che comporta la scelta di una soluzione rispetto ad un altra.

Kernel Monolitici

Come già accennato l'approccio "Monolitico" alla progettazione di un Kernel prevede l'inclusione della totalità dei moduli all'interno dello stesso. Si fa riferimento in particolare, oltre ai meccanismi spiegati in precedenza, alla gestione di:

  • Filesystem;
  • Device driver di ogni categoria: dalla scheda video alla stampante USB;
  • Networking: praticamente l'intera pila protocollare ISO/OSI;
  • sicurezza dei dati e crittografia;
  • servizi opzionali quali emulatori e supporto alla virtualizzazione.

Il risultato è un file binario (ovvero un file eseguibile) di elevate proporzioni che viene interamente caricato in memoria all'avvio della macchina. Lo spazio di memoria dedicato è uno solo, compatto e accessibile solamente dal Kernel stesso. Le risorse interne sono completamente condivise, qualsiasi procedura può avere accesso all'intero segmento di memoria dedicato al Kernel; per esempio il modulo relativo alla gestione del filesystem può accedere direttamente alle risorse contenute nel modulo di gestione degli Hard Disk, senza dover far uso di procedure che lo mettano in comunicazione con esso.

back