Differenza tra microkernel e kernel monolitico

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 10 Maggio 2024
Anonim
Monolithic Kernel v/s Micro kernel
Video: Monolithic Kernel v/s Micro kernel

Contenuto


Il kernel è la parte principale di un sistema operativo; gestisce le risorse di sistema. Il kernel è come un ponte tra l'applicazione e l'hardware del computer. Il Kernel può essere ulteriormente classificato in due categorie, Microkernel e Monolithic Kernel. Il microkernel è quello in cui i servizi utente e i servizi kernel sono mantenuti in uno spazio di indirizzi separato. Tuttavia, nel kernel monolitico i servizi utente e i servizi kernel sono entrambi mantenuti nello stesso spazio degli indirizzi. Discutiamo alcune altre differenze tra Microkernel e kernel monolitico con l'aiuto della tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontomicrokernelKernel monolitico
Di baseNei servizi utente e kernel del microkernel, i servizi sono mantenuti in uno spazio di indirizzi separato.Nel kernel monolitico, sia i servizi utente che i servizi kernel sono mantenuti nello stesso spazio degli indirizzi.
TagliaLe dimensioni del microkernel sono inferiori.Il kernel monolitico è più grande del microkernel.
EsecuzioneEsecuzione lenta.Esecuzione veloce.
allungabileIl microkernel è facilmente estensibile.Il kernel monolitico è difficile da estendere.
SicurezzaSe un servizio si arresta in modo anomalo, ha effetto sul funzionamento del microkernel.Se un servizio si arresta in modo anomalo, l'intero sistema si arresta in modo anomalo nel kernel monolitico.
CodicePer scrivere un microkernel, è necessario più codice.Per scrivere un kernel monolitico, è richiesto meno codice.
EsempioQNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Integrity, PikeOS, HURD, Minix e Coyotos. Linux, BSD (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95,98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 ecc.


Definizione di Microkernel

Il microkernel essendo un kernel gestisce tutte le risorse di sistema. Ma in un microkernel, il servizi per l'utente e il servizi del kernel sono implementati in diversi spazi indirizzo. I servizi utente sono mantenuti spazio indirizzo utentee i servizi del kernel sono mantenuti sotto spazio degli indirizzi del kernel. Questo riduce la dimensione del kernel e riduce ulteriormente la dimensione del sistema operativo.

Oltre alla comunicazione tra applicazione e hardware del sistema, il microkernel fornisce servizi minimi di gestione dei processi e della memoria. La comunicazione tra il programma client / l'applicazione e i servizi in esecuzione nello spazio degli indirizzi dell'utente viene stabilita attraverso il passaggio. Non interagiscono mai direttamente. Ciò riduce la velocità di esecuzione del microkernel.


In un microkernel, i servizi utente sono isolati dai servizi kernel, quindi se un servizio utente fallisce non influisce sul servizio kernel e quindi sul sistema operativo rimanere inalterato. Questo è uno dei vantaggi del microkernel. Il microkernel è facilmente estensibile. Se i nuovi servizi devono essere aggiunti, vengono aggiunti allo spazio degli indirizzi dell'utente e, quindi, lo spazio del kernel non richiede alcuna modifica. Il microkernel è anche facilmente trasportabile, sicuro e affidabile.

Definizione di kernel monolitico

Il kernel monolitico gestisce le risorse di sistema tra l'applicazione e l'hardware del sistema. A differenza del microkernel, i servizi utente e i servizi kernel sono implementati nello stesso spazio di indirizzi. Ciò aumenta le dimensioni del kernel e aumenta ulteriormente le dimensioni del sistema operativo.

Il kernel monolitico fornisce la programmazione della CPU, la gestione della memoria, la gestione dei file e altre funzioni del sistema operativo tramite chiamate di sistema. Poiché i servizi utente e i servizi kernel si trovano entrambi nello stesso spazio di indirizzi, questo si traduce in un sistema operativo a rapida esecuzione.

Uno degli svantaggi del kernel monolitico è che se un servizio fallisce l'intero sistema viene bloccato. Se un nuovo servizio deve essere aggiunto nel kernel monolitico, l'intero sistema operativo deve essere modificato.

Differenze chiave tra microkernel e kernel monolitico

  1. Il punto fondamentale su cui si distingue microkernel e kernel monolitico è quello microkernel implementare servizi utente e servizi kernel in spazi di indirizzo diversi e kernel monolitico implementare sia i servizi utente che i servizi kernel sotto stesso indirizzo.
  2. La dimensione del microkernel è piccolo poiché solo i servizi del kernel risiedono nello spazio degli indirizzi del kernel. Tuttavia, la dimensione del kernel monolitico è comparativamente più grandi del microkernel perché sia ​​i servizi del kernel che i servizi utente risiedono nello stesso spazio degli indirizzi.
  3. L'esecuzione del kernel monolitico è Più veloce poiché la comunicazione tra applicazione e hardware viene stabilita utilizzando chiamata di sistema. D'altra parte, l'esecuzione del microkernel è lento man mano che viene stabilita la comunicazione tra l'applicazione e l'hardware del sistema passaggio.
  4. È facile estendere il microkernel perché è necessario aggiungere un nuovo servizio nello spazio degli indirizzi utente isolato dallo spazio del kernel, quindi non è necessario modificare il kernel. Di fronte è il caso del kernel monolitico se si deve aggiungere un nuovo servizio nel kernel monolitico, è necessario modificare l'intero kernel.
  5. Il microkernel è di più sicuro del kernel monolitico come se un servizio fallisse nel microkernel, il sistema operativo rimane inalterato. D'altra parte, se un servizio fallisce nel kernel monolitico, l'intero sistema fallisce.
  6. È richiesta la progettazione del kernel monolitico meno codice, che porta ulteriormente a un minor numero di bug. D'altra parte, la progettazione di microkernel ha bisogno di più codice, il che porta a ulteriori bug.

Conclusione:

Il microkernel è più lento ma più sicuro e affidabile del kernel monolitico. Il kernel monolitico è veloce ma meno sicuro in quanto qualsiasi errore di servizio può portare al crash del sistema.