Neste artigo vamos abordar as estruturas do Kernel no Linux, e aprender como funciona todo seu processo de gerenciamento.

Ele é responsável pelas funções de baixo nível, como gerenciamento de memória, gerenciamento de processos, subsistemas de arquivos, rede, suporte aos dispositivos e periféricos conectados ao computador. Os núcleos dos sistemas operacionais podem ser implementados de duas formas básicas: Kernel monolítico e o microkernel.

O Kernel monolítico é estruturado em um único arquivo binário, um único processo que executa inteiramente em modo protegido. Ele possui desempenho superior na passagem de mensagens, mas apresenta inúmeras desvantagens como a dificuldade de alterações no núcleo e o desperdício de recursos, pois os drivers de dispositivos permanecem constantemente em memória, mesmo quando os dispositivos não estão sendo utilizados.

Estrutura do Kernel Monolítico:


No microkernel apenas uma pequena parte do núcleo executa em modo protegido para acessar diretamente o hardware, como também é responsável pela comunicação entre processos e gerência de memória.

O restante do sistema roda em modo usuário, uma vez que executa tarefas que não necessitam acessar diretamente o hardware, e seus serviços clássicos são assegurados por processos servidores.

Microkernel:


Os recursos do sistema são acessados através de um protocolo cliente/servidor, e para incluir um novo serviço basta acrescentar um novo servidor. O microkernel possui um desempenho inferior ao modelo monolítico, mas podem-se alterar suas partes sem a necessidade de reiniciar a máquina permitindo a expansão para um sistema distribuído de forma mais fácil.

Pode-se entender o microkernel paralelo como um conjunto de microkernels locais cooperativos, um em cada nó da máquina paralela. O ponto crucial é a comunicação entre processos sobre um mesmo processador ou em processadores diferentes, de acordo com um protocolo cliente/servidor. O módulo responsável pela comunicação possui as funções básicas para receber mensagens originárias de outros proces­sadores, receber resultados de operações executadas remotamente e enviar mensagens destinadas a outros processadores.

Sua organização é baseada no modelo cliente/servidor, onde os serviços do sistema são implementados por servidores especializados. Os Clientes, que são programas de aplicação, solicitam os serviços ao sistema operacional que os encaminham aos processos servidores. Estes recebem a solicitação e a executam, enviando o resultado de volta ao microkernel e então à aplicação.

Maiores detalhes sobre o funcionamento dos processos do Kernel, podemos encontrar no site oficial.