Em computação, o que é um kernel?
Na maioria dos sistemas operacionais de computadores, o kernel é o componente central. É a ponte entre o usuário e os aplicativos e o hardware do computador. Também é o mecanismo que permite ao computador manipular vários usuários e várias tarefas simultaneamente. Os tipos de kernels são o kernel monolítico, o microkernel, o kernel híbrido, o nanokernel e o exokernel.
O kernel gerencia todos os recursos do sistema do computador. Isso inclui armazenamento de longo prazo, a unidade central de processamento (CPU), memória de curto prazo e os dispositivos de entrada e saída. Quando um aplicativo precisa de um desses recursos, o kernel disponibiliza o recurso e conclui a solicitação.
Essa manipulação de recursos permite que os sistemas operacionais sejam multiusuário e multitarefa. Na verdade, o sistema operacional não executa mais de uma tarefa por vez. Em vez disso, o kernel alterna tarefas a uma velocidade tão alta que o computador parece estar executando várias tarefas. O kernel também é responsável por garantir que os recursos usados por um usuário ou processo não violem a solicitação de outro usuário ou processo.
Existem dois tipos principais de kernels: o kernel monolítico e o microkernel. Os kernels monolíticos empregam um método supervisório de gerenciamento de recursos, no qual todos os serviços do sistema operacional são executados no mesmo espaço de endereço, chamado espaço do kernel. Alguns kernels monolíticos podem carregar e descarregar módulos executáveis. Isso amplia os recursos do sistema operacional, mantendo uma quantidade mínima de código em execução no espaço do kernel a qualquer momento.
Os microkernels executam apenas a quantidade mínima de serviços do sistema operacional, como gerenciamento de memória, gerenciamento de threads e comunicação entre processos no espaço do kernel. Todos os outros serviços, como drivers de dispositivo, interfaces com o usuário e gerenciamento de arquivos, são executados no espaço do usuário. O microkernel minimiza severamente a quantidade de código em execução no modo kernel.
Um núcleo híbrido é uma combinação dos micro e núcleos monolíticos. A maioria dos serviços de sistema do sistema operacional é executada no espaço do kernel, como um kernel monolítico. Existem outros serviços, como o sistema de arquivos e o sistema de janelas, que são executados no espaço do usuário.
Os outros tipos de kernel são o nanokernel e o exokernel. O nanokernel usa drivers de dispositivo para lidar com quase todos os serviços. O exokernel usa programas para alocar recursos físicos.