Kernel é componente central de um sistema operativo que gere operações de computador e hardware. Basicamente gere as operações de memória e tempo de CPU. É a componente central de um sistema operativo. O Kernel actua como ponte entre as aplicações e o processamento de dados efectuado a nível de hardware, utilizando a comunicação inter-processo e as chamadas ao sistema.
Kernel carrega primeiro na memória quando um sistema operativo é carregado e permanece na memória até que o sistema operativo seja novamente desligado. É responsável por várias tarefas tais como gestão de disco, gestão de tarefas e gestão de memória.
Decide que processo deve ser atribuído ao processador para executar e que processo deve ser mantido na memória principal para executar. Funciona basicamente como uma interface entre as aplicações do utilizador e o hardware. O principal objectivo do kernel é gerir a comunicação entre software, ou seja, aplicações ao nível do utilizador e hardware, ou seja CPU e memória de disco.
Objectivos do Kernel :
- Estabelecer comunicação entre a aplicação a nível de utilizador e o hardware.
- Decidir o estado dos processos de entrada.
- Para controlar a gestão de discos.
- Para controlar a gestão da memória.
- Para controlar a gestão de tarefas.
Tipos de Kernel :
1. Kernel Monolítico –
É um dos tipos de kernel onde todos os serviços do sistema operativo operam no espaço do kernel. Tem dependências entre os componentes do sistema. Tem enormes linhas de código que é complexo.
Exemplo :
Unix, Linux, Open VMS, XTS-400 etc.
- Vantagem :
Tem bom desempenho. - Desvantagem :
Tem dependências entre componente do sistema e linhas de código em milhões.
2. Micro Kernel –
É um tipo de kernel que tem uma abordagem minimalista. Tem memória virtual e agendamento de linhas. É mais estável com menos serviços no espaço do kernel. Coloca o repouso no espaço do utilizador.
Exemplo :
Mach, L4, AmigaOS, Minix, K42 etc.
- Vantagem :
É mais estável. - Desvantagem :
Há muitas chamadas de sistema e comutadores de contexto.
3. Kernel Híbrido –
É a combinação de kernel monolítico e mircrokernel. Tem velocidade e desenho de núcleo monolítico e modularidade e estabilidade do micro núcleo.
Exemplo :
Windows NT, Netware, BeOS etc.
- Vantagem :
Combina tanto o núcleo monolítico como o micro-núcleo. - Desvantagem :
Continua a ser semelhante ao núcleo monolítico.
4. Exo-Núcleo –
É o tipo de núcleo que segue o princípio de ponta a ponta. Tem o menor número possível de abstracções de hardware. Aloca recursos físicos a aplicações.
Exemplo :
Nemesis, ExOS etc.
- >li> Vantagem :
- Desvantagem :
Há mais trabalho para os criadores de aplicações.
Tem o menor número de abstracções de hardware.
5. Nano Kernel ->br>É o tipo de kernel que oferece abstracção de hardware mas sem serviços de sistema. O Micro Kernel também não tem serviços de sistema, portanto o Micro Kernel e o Nano Kernel tornaram-se análogos.
Exemplo :
EROS etc.
- Vantagem :
Oferece abstracções de hardware sem serviços de sistema. - Desvantagem :
É bastante semelhante ao Micro Kernel, por isso é menos utilizado.