Articoli marcati con tag ‘Linux’

Paradigmi di implementazione di un sistema operativo

sabato, 16 gennaio 2010
  • Microkernels: In questo modello di implementazione solo le funzioni base del sistema sono direttamente descritte nel cuore del sistema, il microkernel, appunto. Tutte le altre funzioni sono delegate a programmi esterni indipendenti che, comunque, comunicano con il core. Esempi di questi software possono essere quelli adibiti alla gestione dei vari filesystems, la gestione della memoria e così via. (Il codice per la gestione basilare della memoria di sistema è comunque implementato nel cuore del kernel, è ciò che serve a gestire le chiamate di sistema “syscall” a trovarsi in demoni esterni.). Questo metodo di implementazione del kernel è sicuramente quello più elegante, dà la possibilità di estendere il kernel e di disabilitare servizi all’esecuzione, è comunque oneroso dal punto di vista del calcolatore gestire le comunicazione fra i vari demoni per le comunicazioni. Questa metodologia è comunque nel bel mezzo di ricerca e sviluppo per l’ottimizzazione.
  • Kernel Monolitico: Questa è una metodologia per la progettazione di un kernel già fortemente adottata più volte, il kernel linux è un kernel monolitico. In un kernel monolitico tutto il codice fa parte del cuore “core”, driver compresi, ogni funzione ha accesso a tutte le parti del kernel indistintamente, e può dare come risultato un codice caotico se lo sviluppatore non presta la dovuta attenzione.

Poichè al momento le performances di un kernel monolitico sono maggiori rispetto a quelle di un microkernel l’adozione standard continua ad essere quella del paradigma monolitico, comunque si inizia a procedere verso un cambio di rotta, in linux, per esempio, si è introdotto già da tempo il principio di Modulo.