Saltar para o conteúdo

Núcleo (sistema operacional): diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
RibotBOT (discussão | contribs)
Linha 1: Linha 1:
{{revisar}}
{{revisar}}
{{Reciclagem|data=Fevereiro de 2008}}
{{Reciclagem|data=Fevereiro de 2008}}
O que é Kernel?
Por Fabio Eduardo Paganin Reis do Amaral
Quinta-Feira, 26 de Fevereiro de 2009
Aprenda o que é o Kernel, como ele funciona e sua importância para o Sistema Operacional.

O Kernel é um componente do Sistema Operacional, mas fica tão escondido que a maioria dos usuários domésticos sequer ouviu falar nele. Isso se deve à sua importância: ao contrário do que pode parecer, ele é tão essencial para o funcionamento de um computador que é melhor mantê-lo a salvo de pessoas bisbilhoteiras e inexperientes.

O cérebro do S.O.

Um PC divide-se, basicamente, em duas camadas: hardware e software. Até aí, nenhuma novidade. Onde entra o Kernel na história, então? Pois bem: ele é o grande responsável por fazer a interação entre essas camadas. Em outras palavras, é o Kernel que gerencia os recursos do sistema e permite que os programas façam uso deles.

Simples assim?

crbNa verdade, não. O fato é que o Kernel é complexo demais para ser explicado de forma técnica a um público leigo no assunto. Basicamente, ele começa a funcionar assim que o computador é ligado; nesse momento ele inicia a detecção de todo o hardware indispensável ao funcionamento da máquina (monitor, placa de vídeo etc.). O Sistema Operacional é carregado em seguida e, uma vez que o usuário faça seu login, o Kernel passa a administrar as principais funções dentro do S.O.: isso inclui o gerenciamento da memória, dos processos, dos arquivos e de todos os dispositivos periféricos.

Dessa forma o Kernel pode ser descrito como um grande organizador: é ele o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente – mas sem oferecer riscos à integridade da máquina.

O '''Kernel''' de um [[sistema operacional]] é entendido como o '''núcleo''' deste ou, numa tradução literal, '''cerne'''. Ele representa a camada de ''[[software]]'' mais próxima do ''[[hardware]]'', sendo responsável por gerenciar os recursos do [[sistema computacional]] como um todo.
O '''Kernel''' de um [[sistema operacional]] é entendido como o '''núcleo''' deste ou, numa tradução literal, '''cerne'''. Ele representa a camada de ''[[software]]'' mais próxima do ''[[hardware]]'', sendo responsável por gerenciar os recursos do [[sistema computacional]] como um todo.



Revisão das 12h31min de 17 de dezembro de 2009

O que é Kernel? Por Fabio Eduardo Paganin Reis do Amaral Quinta-Feira, 26 de Fevereiro de 2009 Aprenda o que é o Kernel, como ele funciona e sua importância para o Sistema Operacional.

O Kernel é um componente do Sistema Operacional, mas fica tão escondido que a maioria dos usuários domésticos sequer ouviu falar nele. Isso se deve à sua importância: ao contrário do que pode parecer, ele é tão essencial para o funcionamento de um computador que é melhor mantê-lo a salvo de pessoas bisbilhoteiras e inexperientes.

O cérebro do S.O.

Um PC divide-se, basicamente, em duas camadas: hardware e software. Até aí, nenhuma novidade. Onde entra o Kernel na história, então? Pois bem: ele é o grande responsável por fazer a interação entre essas camadas. Em outras palavras, é o Kernel que gerencia os recursos do sistema e permite que os programas façam uso deles.

Simples assim?

crbNa verdade, não. O fato é que o Kernel é complexo demais para ser explicado de forma técnica a um público leigo no assunto. Basicamente, ele começa a funcionar assim que o computador é ligado; nesse momento ele inicia a detecção de todo o hardware indispensável ao funcionamento da máquina (monitor, placa de vídeo etc.). O Sistema Operacional é carregado em seguida e, uma vez que o usuário faça seu login, o Kernel passa a administrar as principais funções dentro do S.O.: isso inclui o gerenciamento da memória, dos processos, dos arquivos e de todos os dispositivos periféricos.

Dessa forma o Kernel pode ser descrito como um grande organizador: é ele o responsável por garantir que todos os programas terão acesso aos recursos de que necessitam (memória RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente – mas sem oferecer riscos à integridade da máquina.

O Kernel de um sistema operacional é entendido como o núcleo deste ou, numa tradução literal, cerne. Ele representa a camada de software mais próxima do hardware, sendo responsável por gerenciar os recursos do sistema computacional como um todo.

Funções do Kernel

A responsabilidade do kernel consiste, tradicionalmente (particularmente no kernel monolítico), em abstrair a interface do hardware, permitindo que processos utilizem este recurso concorrentemente, de forma segura e padronizada.

As funções normalmente atribuídas ao kernel são:

  1. Criação, agendamento e finalização de processos;
  2. Alocação e liberação de memória;
  3. Controle do sistema de arquivos;
  4. Operações de entrada e saída com dispositivos periféricos (discos, interface serial -- mouse, p.ex., interface paralela -- impressoras), acesso à memória, entre outros.

Em um computador, a parte central é a UCP (unidade central de processamento), normalmente um microprocessador—no qual os processos são executados. A memória RAM é o outro recurso crucial do computador—o conjunto de chips em que os programas são carregados para execução e no qual são armazenados os seus dados.

Chamadas de sistema

Ver artigo principal: Chamadas de sistema

Para que seja possível realizar algum trabalho útil, um programa no espaço do usuário deve ter acesso a todos os serviços disponibilizados pelo kernel. Esta implementação é diferente em cada kernel, mas deve disponibilizar uma API ao programa, que por sua vez invoca as funções do kernel relacionadas, seja através do sistema de IPC, memória compartilhada ou interrupções.

Arquitetura

Segundo Tanenbaum (1999) e Silberschatz e outros (2005), o kernel pode ser monolítico, em camadas, ou microkernel (também conhecido como modelo cliente-servidor).

Kernel monolítico

Diagrama de interação de um kernel monolítico (ou monobloco).
Ver artigo principal: Kernel monolítico

Kernel monolítico ou monobloco é um kernel que implementa uma interface de alto nível para possibilitar chamadas de sistema específicas para gestão de processos, concorrência e gestão de memória por parte de módulos dedicados que são executados com privilégios especiais. Alguns exemplos de sistemas operacionais que implementam esse tipo de kernel:

Kernel híbrido

Diagrama de interacção de um kernel híbrido.
Ver artigo principal: Kernel híbrido

Kernel híbrido define um kernel baseado em microkernel no qual módulos externos a ele podem executar operações em modo kernel (protegido), a fim de evitar trocas de contexto e melhorar o desempenho geral do sistema.

Microkernel

Diagrama de interacção de um micro-kernel.
Ver artigo principal: Micro-kernel

Microkernel é um termo usado para caracterizar o sistema cujas funcionalidades saíram do kernel e foram para servidores, que se comunicam com um núcleo mínimo, usando o mínimo possível do "espaço do sistema" (nesse local o programa tem acesso a todas as instruções e a todo o hardware) e deixando o máximo de recursos rodando no "espaço do usuário" (nesse espaço, o software sofre algumas restrições, não podendo acessar alguns hardwares, não tendo acesso a todas as instruções).

Nanokernel

Ver artigo principal: Nano-kernel

O nano kernel ou pico kernel é um tipo de kernel extremamente simples, que é a camada mais próxima do hardware. Os sistemas operacionais que implementam este paradigma geralmente são utilizados como sendo "sistemas virtualizados" ou sistema de tempo real, devido à sua simplicidade. Ele delega virtualmente todos os serviços, incluíndo os mais básicos aos drivers, fazendo com que a memória utilizada por ele seja menor do que a memória utilizada pelo micro-kernel.

Exokernel

Diagrama de interacção de um Exokernel.
Ver artigo principal: Exokernel

Exokernels é um paradigma de implementação em que existe apenas um Kernel simples que faz apenas gerência de recursos do sistema e um conjunto de bibliotecas que implementam a abstração de um sistema operacional. Nesse tipo de Kernel, o aplicativo pode utilizar diretamente os recursos dos dispositivos do sistema ou pode utilizar bibliotecas de software que implementam este processo. O programador, nesse caso, está livre para escolher a abstração do hardware que desejar.

Referências

  • SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
  • TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.

Ligações externas

Predefinição:Link FA