Monolítico vs Micro kernel

8

Quais são as diferenças entre um kernel monolítico e um microkernel em relação à estrutura e segurança. Meu amigo me disse que os sistemas Linux têm kernel monolítico e, portanto, não são mais fáceis de invadir, mas não acho que ele esteja realmente correto.

Alguém por favor me esclareça.

Prasoon Saurav
fonte
Para um pouco de histórico, você pode ler o The Tanenbaum-Torvalds Debate de 1992.
Pausado até novo aviso.

Respostas:

6

A diferença básica é que um micro kernel (MK) é muito pequeno e fornece apenas um conjunto mínimo de serviços. A maioria do que normalmente é considerado serviço do sistema operacional é fornecida por processos separados que são executados fora do kernel e em um modo menos privilegiado. Esses processos precisam se comunicar por meio do IPC, em vez de apenas ler / escrever para qualquer estrutura de dados que eles desejem acessar.

Os MKs tendem a ser bastante fáceis de portar, pois o kernel é pequeno, o esforço de portabilidade é baixo.

Como muitos dos serviços fornecidos estão potencialmente em execução no espaço do usuário em vez do espaço do kernel, eles não podem lixeira facilmente de outros processos. Esta é uma vantagem de segurança.

Por exemplo, digamos que a parte da pilha de rede estava no espaço do usuário e foi comprometida por não ser capaz de interromper outros processos / tarefas. Enquanto que a mesma parte da pilha de rede em um kernel monolítico pode estar em execução no espaço do kernel, se comprometida, poderá lixeira para outros processos, pois seria privilegiada.

Jason Tan
fonte
1

Para ilustrar a palestra de Jason, aqui está uma ilustração para ver a diferença entre o núcleo micro-híbrido e o monolítico:

núcleo

Arquivo de fonte de imagem legível na Wikipedia .

Studer
fonte