Kernel: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Corretti wikilink
Etichette: Modifica da mobile Modifica da web per mobile
 
(Una versione intermedia di un altro utente non mostrate)
Riga 31:
Anche se ogni modulo che serve queste operazioni è separato dal resto, l'integrazione del codice è molto stretta e difficile da fare in maniera corretta e, siccome tutti i moduli operano nello stesso spazio, un bug in uno di essi può bloccare l'intero sistema. Tuttavia, quando l'implementazione è completa e sicura, la stretta integrazione interna dei componenti rende un buon kernel monolitico estremamente efficiente. <!-- Proponents of the monolithic kernel approach make the case that if code is not correct, it does not belong in a kernel, and if it is, there is little advantage in the microkernel approach. -->
 
Il più considerevole svantaggio dei kernel monolitici è tuttavia che non è possibile aggiungere un nuovo dispositivo hardware senza aggiungere il relativo modulo al kernel, operazione che richiede la [[Compilatore|ricompilazione del kernel]]. In alternativa è possibile compilare un kernel con tutti i moduli di supporto all'hardware, al costo di aumentarne molto la dimensione. Tuttavia i kernel monolitici più moderni come il [[Linux (kernel)|kernel Linux]] e [[FreeBSD]] possono caricare moduli in fase di esecuzione, se sono previsti in fase di configurazione (la fase di configurazione è la fase che precede quella di compilazione, durante la quale si può scegliere quali feature o driver debbano far parte del nuovo kernel), permettendo così l'estensione del kernel quando richiesto, mantenendo al contempo le dimensioni del codice nello spazio del kernel al minimo indispensabile.
 
Esempi di kernel monolitici:
Riga 39:
 
=== Microkernel ===
{{vedi anche|microkernel}}
[[File:Kernel-microkernel.svg|thumb|Rappresentazione grafica di un microkernel]]
[[File:IBM AIX logo (2021).svg|thumb|Logo [[AIX (sistema operativo)|AIX]], sistema operativo, basato su microkernel]]