Browse By

O que é um Kernel?

Kernel

Na computação, o kernel é o componente central da maioria dos sistemas operacionais de computador. As suas responsabilidades incluem a gestão de recursos do sistema (a comunicação entre os componentes de hardware e software). Tal como um componente básico de um sistema operativo, um kernel fornece o mais baixo nível de abstração para a camada de recursos (principalmente memória, processadores e dispositivos I/O) que o aplicativo deve controlar a desempenhar a sua função. Ele normalmente faz com que essas instalações se tornem disponíveis para a aplicação através de processos e mecanismos de comunicação de chamadas de sistema.
Estas tarefas são feitas de forma diferente por diferentes partes, em função da sua conceção e implementação. Embora o Kernel monolítico tente atingir estes objetivos, executando todo o código no mesmo espaço de endereçamento para aumentar o desempenho do sistema, microkernels executam a maior parte dos seus serviços no espaço usuário, com o objetivo de melhorar a durabilidade e modularidade do código. Um monte de possibilidades existe entre estes dois extremos.
Sobre a definição de ‘kernel’ Jochen Liedtke disse que a palavra é “tradicionalmente utilizada para designar a parte do sistema operativo que é obrigatório e comum a todos os outros softwares.”

A maioria dos sistemas operacionais dependem do kernel. A existência de um kernel é uma consequência natural de ter um sistema operacional de computador como uma série de camadas de abstração, baseando-se em cada uma das funções das camadas próprias. O kernel, a partir deste ponto de vista, é simplesmente o nome dado ao mais baixo nível de abstração que é implementada no software. Embora seja chamado hoje principalmente o kernel, inicialmente a mesma parte do sistema operacional também foi chamado de núcleo ou centro, e foi originalmente desenvolvido como contendo apenas funcionalidades indispensáveis do sistema operacional.

Na maioria dos casos, o gestor de arranque começa a execução do kernel em modo supervisor, O kernel inicializa em si e, em seguida, começa o primeiro processo. Após isto, o kernel normalmente não se executa diretamente, apenas em resposta a eventos externos (por exemplo, através de chamadas de sistema utilizado por aplicações para solicitar serviços do kernel, ou através de interrupções utilizadas pelo hardware para notificar o kernel de eventos). Além disso, o kernel normalmente fornece um loop que é executado sempre que não estão disponíveis processos a correr, que é muitas vezes chamado de processo ocioso .

O Desenvolvimento do kernel é considerado uma das mais complexas e difíceis tarefas de programação. A sua posição central em um sistema operacional implica a necessidade de bom desempenho, que define o kernel como um pedaço de software e faz a sua correta concepção e execução difícil .Por diversas razões, um kernel pode até não ser capaz de utilizar os mecanismos de abstração que fornece ao outro software. Essas razões incluem gestão de memória e falta de reentrancy, tornando assim o seu desenvolvimento ainda mais difícil para os engenheiros de software.
Um kernel normalmente irá fornecer recursos para baixo nível de programação, de processos , inter-processo de comunicação, processo de sincronização, manipulação de controle e blocos de processos, interromper movimentação, processo de criação e destruição, e do processo de suspensão.

Tipos de Kernel:

  • Monolithic kernels
  • Microkernels
  • Kernel Híbrido
  • NanoKernels
  • ExoKernels

Sair da versão mobile