Microkernel no sistema operacional: Architecnologia, vantagens

Antes de aprendermos o MicroKernel, vamos entender:

O que é Kernel?

Um kernel é uma parte importante de um sistema operacional que gerencia os recursos do sistema. Ele também atua como uma ponte entre o software e o hardware do computador. É um dos primeiros programas carregados na inicialização após o bootloader. O Kernel também é responsável por oferecer acesso seguro ao hardware da máquina para diversos programas. Ele também decide quando e por quanto tempo um determinado aplicativo usa hardware específico.

O que é Micronúcleo?

micro kernel é um software ou código que contém a quantidade mínima necessária de funções, dados e recursos para implementar um sistema operacional. Ele fornece um número mínimo de mecanismos, o que é bom o suficiente para executar as funções mais básicas de um sistema operacional. Permite a implementação de outras partes do sistema operacional, pois não impõe muitas políticas.

Microkernels e seus ambientes de usuário são geralmente implementados em C++ ou linguagens de programação C com um pouco de montagem. No entanto, outras linguagens de implementação são possíveis com alguma codificação de alto nível.

O que é um kernel monolítico?

O Kernel Monolítico executa todos os serviços básicos do sistema, como gerenciamento de processos, Gerenciamento de memória, comunicação de E/S e tratamento de interrupções, sistema de arquivos, etc. no espaço do kernel.

Neste tipo de abordagem Kernel, todo o sistema operacional é executado como um único programa no modo kernel. O sistema operacional é escrito como uma coleção de procedimentos vinculados em um grande programa binário executável.

micro kernel Archiarquitetura

Um Microkernel é a parte mais importante para a implementação correta de um sistema operacional. Você pode ver no diagrama abaixo que o Microkernel realiza operações básicas como memória, mecanismos de agendamento de processos e comunicação entre processos.

micro kernel Archiarquitetura
Sistema operacional baseado em microkernel

Microkernel é o único software executado em nível privilegiado. As outras funcionalidades importantes do sistema operacional são removidas do modo kernel e executadas no modo de usuário. Essas funcionalidades podem ser drivers de dispositivos, aplicativos, servidores de arquivos, comunicação entre processos, etc.

Componentes do Microkernel

Um microkernel compreende apenas as funcionalidades principais do sistema. Um componente é incluído no Microkernel somente se colocá-lo fora interromperia a funcionalidade do sistema. Todos os outros componentes não essenciais devem ser colocados no modo de usuário.

As funcionalidades mínimas exigidas no Microkernel são:

  • Gerenciamento de memória mecanismos como espaços de endereço devem ser incluídos no Microkernel. Ele também contém recursos de proteção de memória.
  • Os mecanismos de escalonamento do processador devem conter escalonadores de processos e threads.
  • A comunicação entre processos gerencia os servidores que executam seus próprios espaços de endereço.

Diferença entre microkernel e kernel monolítico

parâmetros Kernel monolítico MicroKernelName
Basico É um grande processo executado em um único espaço de endereço Ele pode ser dividido em processos separados chamados servidores.
Code Para escrever um kernel monolítico, é necessário menos código. Para escrever um microkernel, é necessário mais código
Segurança Se um serviço travar, todo o sistema entrará em colapso em um kernel monolítico. Se um serviço travar, isso nunca afetará o funcionamento de um microkernel.
Comunicação É um único arquivo binário estático Os servidores se comunicam através do IPC.
Exemplo Linux, BSD, Microsoft Windows (95,98, Me), Solaris, OS-9, AIX, DOS, XTS-400, etc. L4Linux, QNX, SymbianK42, Mac OS X, Integridade, etc.

Vantagens do Microkernel

Aqui estão os prós/benefícios de usar Microkernel

  • micro kernel archiA arquitetura é pequena e isolada, portanto pode funcionar melhor.
  • Microkernels são seguros porque apenas são incluídos os componentes que interrompem a funcionalidade do sistema, outroswise.
  • A expansão do sistema é mais acessível, podendo ser adicionada à aplicação do sistema sem atrapalhar o Kernel.
  • Os microkernels são modulares e os diferentes módulos podem ser substituídos, recarregados, modificados sem sequer tocar no Kernel.
  • Menos falhas de sistema quando comparado com sistemas monolíticos.
  • A interface Microkernel ajuda você a impor uma estrutura de sistema mais modular.
  • Sem recompilar, adicione novos recursos
  • O mau funcionamento do servidor também é isolado como mau funcionamento de qualquer outro programa do usuário.
  • O sistema Microkernel é flexível, portanto diferentes estratégias e APIs, implementadas por diferentes servidores, podem coexistir no sistema.
  • Maior segurança e estabilidade resultarão em uma menor quantidade de código executado no modo kernel

Desvantagem do Microkernel

Aqui estão as desvantagens/contras do uso do Microkernel:

  • Fornecer serviços em um sistema de microkernel é caro em comparação com o sistema monolítico normal.
  • Troca de contexto ou uma chamada de função necessária quando os drivers são implementados como procedimentos ou processos, respectivamente.
  • O desempenho de um sistema microkernel pode ser indiferente e pode levar a alguns problemas.

Resumo

  • Um kernel é uma parte importante de um sistema operacional que gerencia os recursos do sistema.
  • Um microkernel é um software ou código que contém a quantidade mínima necessária de funções, dados e recursos para implementar um sistema operacional.
  • Na abordagem Monolithic Kernel, todo o sistema operacional é executado como um único programa no modo kernel
  • Um Microkernel é a parte mais importante para a implementação correta de um sistema operacional.
  • Um microkernel compreende apenas as funcionalidades principais do sistema.
  • Um kernel monolítico é um grande processo executado em um único espaço de endereço, enquanto o Microkernel pode ser dividido em processos separados chamados servidores.
  • micro kernel archiA arquitetura é pequena e isolada, portanto pode funcionar melhor
  • Fornecer serviços em um sistema microkernel é caro em comparação com o sistema monolítico normal