Sistema operativo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 79.7.176.164 (discussione), riportata alla versione precedente di FeltriaUrbsPicta
Etichetta: Rollback
Hopius (discussione | contributi)
Riga 45:
=== Kernel ===
{{vedi anche|Kernel}}
Un kernel è un gruppo di funzioni fondamentali, strettamente interconnesse fra loro e con l'[[hardware]], che vengono eseguite con il privilegio massimo disponibile sulla macchina. La [[modalità kernel]] designa proprio questo tipo di interazione. Un kernel non è altro che un [[software]] che ha il compito di fornire ai moduli che compongono il sistema operativo e ai programmi in esecuzione sul computer le funzioni fondamentali ed un accesso controllato all'[[hardware]], sollevandoli dai dettagli della sua gestione. Il kernel fornisce dunque le funzionalità di base per tutte le altre componenti del sistema operativo, che assolvono le loro funzioni servendosi dei servizi che esso offre ed è dunque il motore di un sistema operativo. [[File:Kernel-microkernel.svg|center|thumb|upright=1.4|Schema di Microkernel]]. A seconda del tipo di sistema operativo il kernel può inglobare altre parti (kernel ''classico'', [[kernel monolitico|monolitico]] o [[kernel modulare|modulare]]) o fornire solo funzioni base delegando più funzioni possibile a oggetti/gestori esterni ([[microkernel]]). Un kernel tradizionale, ovvero '''[[kernel monolitico|monolitico]]''' e altri, integra invece dentro di sé la gestione della memoria virtuale, lo scheduler e i gestori di file system, nonché i [[driver]] necessari per il controllo di tutte le periferiche collegate.
 
Quali funzioni sia opportuno che il kernel debba fornire e quali possano essere demandate a moduli esterni è oggetto di opinioni divergenti: se il kernel di un sistema operativo implementa soltanto un numero molto ristretto di funzioni, delegando il resto ad altre parti esterne dette ''server'' o ''moduli'' in comunicazione con il kernel stesso, si parla di '''[[microkernel]]'''. Il vantaggio di un siffatto sistema operativo è la maggiore semplicità del suo kernel, del suo sviluppo, la possibilità di cambiare facilmente i moduli ed una certa [[fault tolerance|tolleranza ai guasti]] in quanto se un modulo "crolla" (''crash''), solo la funzionalità del modulo s'interrompe, ed il sistema rimane funzionale e gestibile dall'amministratore (che può ad esempio ripristinare la funzionalità del modulo stesso); lo svantaggio è invece l'interazione più complessa e costosa fra kernel e le altre componenti del SO stesso, che spesso rallenta il sistema e/o lo rende meno stabile.