O que é o Kernel de um sistema operacional
Kernel é uma palavra inglesa usada na computação para designar o núcleo do sistema operacional, que é a parte principal de um computador.
Uma simples alteração da versão do Kernel para uma mais antiga ou mais atual pode ser suficiente para resolver problemas de hardware e também de compatibilidade no computador.
Com um controle total de tudo relacionado ao sistema, o Kernel é um dos primeiros programas a ser carregado durante a inicialização. Assim que começa a ser executado, o Kernel inicia um processo que detecta todo o hardware necessário para que ocorra um bom funcionamento do computador.
Além disso, um Kernel opera solicitações de entrada e de saída de software, e gere, por exemplo, memória e aparelhos periféricos utilizados.
Função do Kernel
O Kernel, núcleo do sistema, é responsável por conectar o software ao hardware. Desta forma, ele estabelece uma comunicação eficaz entre os recursos do sistema operacional e administra suas funções.
Veja abaixo as principais funções de um sistema operacional, administradas pelo Kernel.
Gerenciamento de processos
Em um sistema operacional, o processo é um programa em execução. O gerenciamento de processos realizado pelo Kernel decide quais processos serão executados.
Cada um dos processos em execução pode entrar e sair várias vezes do processador em um mesmo segundo, dando lugar a outro processo. O Kernel é responsável por decidir que processos serão alocados no processador.
Como a alternância entre processos ocorre de forma muito rápida, um programa pode continuar sendo executado mesmo não estando no processador.
Modos de acesso
A execução de um processo pode ser realizada por meio de dois modos diferentes.
- Modo de usuário: é composto por vários subsistemas. Um deles, inclusive, o subsistema ambiental, executa aplicações concebidas para diversos tipos de sistemas operacionais. O modo de usuário é considerado um modo não privilegiado. Todos os softwares desse modo devem fazer requisições ao Kernel para poder executar instruções privilegiadas como, por exemplo, a criação de processos.
- Modo Kernel: é considerado privilegiado pois tem acesso a todo o computador. Quando a CPU está em modo Kernel, isso indica que ela está executando um software confiável e que está apta a executar quaisquer instruções.
Veja também o significado de CPU.
Gerenciamento de memória
No gerenciador de tarefas, uma parte da memória RAM (memória total) fica atribuída ao Kernel.
Durante o gerenciamento de processos, o Kernel envia os programas para um espaço de endereçamento. A parte da memória total atribuída ao Kernel garante que haja sempre memória disponível para que os processos principais sejam remetidos para esse espaço.
O Kernel também tem como função definir a porção de memória que cada processo pode acessar durante seu funcionamento.
Gerenciamento de dispositivos
O Kernel controla os periféricos conectados ao computador.
Sempre que um usuário conecta um dispositivo (por exemplo, pen drive, impressora, fones, teclado, mouse, etc.), o Kernel gere a memória desse dispositivo e a comunicação dele com os programas e com o hardware do computador.
Cada dispositivo possui um drive que foi feito para funcionar em determinado sistema operacional. Sendo assim, um driver concebido para Windows não funciona, por exemplo, em um MAC.
O driver de cada dispositivo tem como função realizar uma espécie de tradução de comandos executados entre determinado dispositivo eletrônico e o sistema operacional do computador.
Os serviços de um sistema operacional são acessados através de uma interface de usuário designada de shell, que em inglês significa “casca”. O nome deve-se ao fato de o shell ser a camada mais exterior, ao redor do núcleo.
Veja o significado de interface.
Chamadas do sistema
As chamadas de sistema são funções específicas das quais os programas de computador utilizados em modo de usuário dispõem. Elas são usadas para invocar o núcleo do sistema operacional de um computador de forma que ele execute determinada ação.
Essas funções geralmente são complexas e utilizam recursos que o usuário comum não tem acesso.
Veja abaixo alguns exemplos de chamadas de sistema do Windows e a respectiva correspondente do Kernel do Linux.
Windows | Linux | Descrição |
---|---|---|
CloseHandle |
close |
Fechar arquivo |
CreateFile | open | Criar arquivo |
DeleteFile | unlink | Apagar arquivo |
ExitProcess | exit | Terminar um processo e todos os seus segmentos |
GetLocalTime | time | Recuperar local, data e tempo atuais |
Saiba mais sobre Windows.
Tipos de Kernel
No que diz respeito a sua arquitetura, o núcleo de um sistema operacional pode ser monolítico, híbrido ou ser um micronúcleo.
Monolítico
Os controladores de dispositivos e as extensões de núcleo são executadas no espaço de núcleo, com acesso completo ao hardware.
Como todos os módulos são executados em um mesmo espaço de endereçamento, se houver ocorrência de erro em um desses espaços, todo o sistema pode ser afetado.
Exemplos de monolíticos: Linux, BSD, MS-DOS e Solaris.
O Linux é um dos Kernels monolíticos mais conhecidos. Como software livre e portável que é, o Linux tem a vantagem de funcionar em dezenas de plataformas, desde computadores IBM a dispositivos móveis, smartphones ou iPods.
Saiba mais sobre software e hardware.
Micronúcleo ou microkernel
O micronúcleo, conforme seu nome já indica, é um núcleo de tamanho bastante reduzido e, por esse motivo, ele executa o mínimo de processos possível no espaço do Kernel. Alguns desses processos são executados no espaço do usuário.
Com o Kernel de tipo micronúcleo, se ocorrer um erro, basta reiniciar o serviço que apresentou o problema. Com isso, evita-se que todo o sistema seja derrubado (como ocorre com o Kernel monolítico).
Exemplos de micronúcleos: AIX, BeOS, L4, Mach, Minix, MorphOS, QNX, RADIOS, VSTa e GNU Hurd.
Híbrido
Os sistemas híbridos são considerados sistemas que funcionam com um meio-termo, se comparados aos monolíticos e de micronúcleos. O híbrido combina a estabilidade e a segurança do microkernel com o desempenho do monolítico.
O Kernel híbrido é semelhante a um micronúcleo, mas tem um código ("não essencial") no espaço do núcleo para que as operações executadas sejam mais rápidas.
Exemplos de híbridos: AmigaOS, Android, Chrome, Macintosh, webOS, Windows, OSX e Xinu.
O Kernel do Android é construído a partir do Linux. No entanto, nem todos classificam o Android como Linux pois consideram que ele seja apenas baseado no Linux, mas não um Linux propriamente dito.
Saiba mais sobre Android.