Qual è la differenza tra Microkernel e Monolithic Kernel

Il differenza principale tra microkernel e kernel monolitico è che il i sistemi basati su microkernel dispongono di servizi OS e kernel in spazi di indirizzi separati mentre i sistemi monolitici basati su kernel dispongono di servizi OS e kernel nello stesso spazio indirizzo.

Microkernel e kernel monolitico sono due tipi di kernel. Il nocciolo è il cuore del sistema operativo. Pertanto, vi è un'area di memoria speciale per memorizzare il codice critico del kernel. Il kernel è un componente importante in quanto mantiene il corretto funzionamento dell'intero sistema. Esegue l'hardware e la gestione dei processi, la gestione dei file e molte altre attività.

Aree chiave coperte

1. Cos'è Microkernel
     - Definizione, Funzionalità
2. Cos'è il kernel monolitico
     - Definizione, Funzionalità
3. Qual è la differenza tra Microkernel e Monolithic Kernel
     - Confronto tra le principali differenze

Parole chiave

Kernel, Microkernel, Kernel monolitico, Sistema operativo

Cos'è Microkernel

Microkernel è un tipo di kernel che consente la personalizzazione del sistema operativo. Funziona in modalità privilegiata e offre gestione dello spazio degli indirizzi a basso livello e Inter Process Communication (IPC). Inoltre, i servizi OS come il file system, il gestore della memoria virtuale e lo scheduler della CPU sono in cima al microkernel. Ogni servizio ha il proprio spazio di indirizzi per renderli sicuri. Inoltre, le applicazioni hanno anche i loro spazi di indirizzamento. Pertanto, esiste una protezione tra le applicazioni, i servizi del sistema operativo e il kernel.

Figura 1: Microkernel Architecture

Quando l'applicazione richiede i servizi del sistema operativo per un servizio, i servizi del sistema operativo comunicano tra loro per fornire il servizio richiesto all'applicazione. Qui, l'Inter Process Communication (IPC) aiuta a stabilire questa comunicazione. Nel complesso, il SO basato su microkernel offre un ottimo livello di estensibilità. È inoltre possibile personalizzare i servizi del sistema operativo in base ai requisiti dell'applicazione.

Cos'è il kernel monolitico

Nei sistemi monolitici basati su kernel, ogni applicazione ha il proprio spazio di indirizzamento. Pertanto, ogni applicazione è sicura. Inoltre, il kernel contiene tutti i servizi del sistema operativo. Pertanto, le applicazioni possono richiedere servizi dal kernel. Alcuni servizi OS sono file system, CPU Scheduler, accesso alla rete, gestione della memoria ecc. Tuttavia, il sistema operativo si trova in uno spazio indirizzo separato. Pertanto, è sicuro dalle normali applicazioni e dalle applicazioni malfunzionanti.

Figura 2: Architettura basata su kernel monolitico

Se un'applicazione richiede un servizio, lo spazio indirizzo hardware dell'applicazione passa allo spazio di indirizzo hardware del sistema operativo per eseguirlo.

Differenza tra microkernel e kernel monolitico

Definizione

Un microkernel è un tipo di kernel che fornisce meccanismi come la gestione dello spazio degli indirizzi di basso livello, la gestione dei thread e la comunicazione tra processi per implementare un sistema operativo. Al contrario, un kernel monolitico è un tipo di kernel nei sistemi operativi in ​​cui l'intero sistema operativo funziona nello spazio del kernel. Queste definizioni spiegano la principale differenza tra microkernel e kernel monolitico.

Servizi del sistema operativo

Una differenza notevole tra microkernel e kernel monolitico è che, in un sistema basato su microkernel, i servizi OS e il kernel sono separati. Ma, in un sistema monolitico del kernel, il kernel contiene i servizi del sistema operativo.

Velocità

La velocità è anche una grande differenza tra microkernel e kernel monolitico. Un sistema microkernel è lento mentre il sistema monolitico del kernel è veloce.

fallimenti

In un sistema basato su microkernel, l'errore in un componente non influenzerà gli altri componenti. Tuttavia, in un sistema monolitico basato sul kernel, l'errore in un componente interesserà l'intero sistema. Quindi, questa è anche un'importante differenza tra microkernel e kernel monolitico.

Personalizzazione

Un'altra differenza tra microkernel e kernel monolitico è che è più facile aggiungere nuove funzionalità al microkernel; quindi, è più personalizzabile. Tuttavia, è difficile aggiungere nuove funzionalità al kernel monolitico; quindi, non è personalizzabile.  

Grandezza

Inoltre, il microkernel ha dimensioni più ridotte, mentre il kernel monolitico ha dimensioni maggiori.

Conclusione

Microkernel e kernel monolitico sono due tipi di kernel. La differenza tra microkernel e kernel monolitico è che i sistemi basati su microkernel hanno servizi OS e kernel in spazi di indirizzi separati mentre il sistema monolitico basato su kernel ha servizi OS e kernel nello stesso spazio di indirizzamento.

Riferimento:

1. Struttura monolitica - Georgia Tech - Advanced Operating Systems, Udacity, 23 febbraio 2015, disponibile qui.
2. Struttura del SO basata su microkernel - Georgia Tech - Advanced Operating Systems, Udacity, 23 febbraio 2015, disponibile qui.