O que é um Kernel? - ContaPraEu?
teclado
Tecnologia

O que é um Kernel?

Você deve ouvir constatemente o termo Kernel, principalmente se é usuário de uma distribuição Linux, já que este é o Kernel mais famoso do mundo, mas você sabe o que é um Kernel?

O nome Kernel, vem do inglês e significa “Núcleo” e não é a toa que seja chamado assim, o kernel é o cérebro do sistema operacional, o responsável pela comunicação entre hardware e software em sua máquina.

A partir do momento que você liga seu computador, o Kernel começa a trabalhar, ele detecta o hardware necessário para o funcionamento (Monitor, CPU, memória RAM, e assim por diante), depois que o sistema operacional está em amplo funcionamento, o Kernel passa a gerenciar os processos em execução, arquivos, memória e dispositivos periféricos que estão ou serão conectados em sua máquina.

Apesar de cada Kernel funcionar de uma forma, ter suas características e vantagens (Sim, o Windows ou o MAC OS também tem seus Kernels próprios), esse geral que colocamos acima é cabível a todos os núcleos, o problema é que um Kernel é uma parte muito complexa e teriamos um texto enorme e recheado de termos técnicos para explicarmos mais profundamente, no entanto com os paragrafos acima, já conseguimos ter uma idéia de que nos serve o Kernel.

Existem diferentes tipos de Kernels, cada um deles foi idealizado e pensado para determinados objetivos, agora que você já sabe o que é um Kernel, vamos ver quais são os tipos de Kernels.

Kernel Monolitico

A palavra “Monolotico” significa “que forma um bloco só” e essa é por si só, uma excelente explicação para esse tipo de Kernel. O Kernel monolítico tem como característica, permitir que as funções essenciais sejam executadas dentro do Kernel Space.

Dessa forma, os módulos podem não estar no mesmo código do kernel, mas são executados em seu espaço de memória, tornando o kernel único e centralizado, portanto o kernel monolitico tem todos os códigos de suporte necessários.

Esse modelo de kernel tem um melhor desempenho, quando comparado com os demais modelos de kernels, mas sua manutenção é mais demorada, já que exige que o kernel seja recompilado e substituido por completo, a cada atualização.

Se você lembrou do Linux, está correto, o kernel Linux é do tipo monolitico, assim como o UNIX e BSD. No entanto vale uma ressalva, o Linux tem algumas excessões de regras do padrão monolítico, por exemplo, os drivers de dispositivos são configurados como módulos e carregados enquanto o sistema está sendo executado, estes ainda podem ser pré-inseridos, tais modificações garantiram uma melhora no multiprocessamento simétrico.

Microkernel

Você lembra que comentamos no inicio da matéria que o kernel é o cerebro do sistema operacional e responsável pelas funcionalidades do SO? Pois bem, o microkernel é um termo usado para apontar sistemas que tiveram suas funcionalidades retiradas do kernel e foram passadas para programas, chamados de “servidores”, os quais irão comunicar-se com um núcleo mínimo.

Quase todas as funcionalidades do sistema, são executadas fora do kernel space, neste modelo, a intenção é usar o mínimo espaço possível do sistema, deixando apenas os serviços essenciais no núcleo, como o gerenciamento de memória e deixando as demais funcionalidades para plugins, dessa forma é possível adicionar ou não funcionalidades de acordo com o projeto.

O Android usa um microkernel Linux, a Google efetuou diversas modificações e fez a retirada de várias particularidades do Kernel Linux, deixando apenas o essencial, obviamente existem muitas outras mudanças no Android, que o distanciam de distribuições Linux, mas abordaremos isso em uma outra matéria. Outros exemplos de microkernel são o L4Linux, MINIX e Symbian.

Kernel Hibrido

Como o nome já sugere, este é um modelo que possui um pouco dos dois mundos, isso é, tem caracteristicas do monolitico e do microkernel, mas não pense que isso é algo bom, pelo contrário.

O kernel híbrido é construído a partir de um micro kernel, mas contempla também alguns serviços não essenciais, mas continua comunicando-se com os “servidores” para executar outras funções, como o serviço de impressão.

Na prática, se um dos “servidores” derem erro, o sistema operacional continua funcionando, já que trabalham de forma separada, no entanto a necessidade de comunição por mensagens do núcleo, faz com que o desempenho desse kernel seja inferior e tenha um maior consumo de hardware.

Os sistemas operacionais que são enquadrados dentro desse modelo de kernel, são todos os Windows da versão NT em diante, o que inclui o Vista, Seven, 8 e 10. O Windows 95, 98 e Me não se enquadram no kernel híbrido, porque utilizavam o MS-DOS que era um núcleo monolitico.