Logo Hardware.com.br
icefusion
icefusion Tô em todas Registrado
2.2K Mensagens 41 Curtidas

Artigo:Kernel e Kernel do Linux

#1 Por icefusion 27/10/2007 - 20:00
Esse artigo foi escrito por mim e está no meu site. http://www.icefusion.com.br ..

O Kernel e o Kernel Linux

1 - O que é um Kernel?

O kernel de um sistema operacional é visto como se fosse o núcleo do mesmo. Ele representa a camada de software mais próxima ao hardware. Segundo MAXWELL2000 o kernel é o seu coração, sua mente e seu sistema nervoso.Ele é responsável exclusivamente pelo transporte das de mais baixo nível que tornam todas as outras tarefas possível. fazendo malabarismos com diversos processos que ocorrem simultâneamente, gerenciando sua memória de forma que não interfiram uns nos outros , satisfazendo suas solicitações de acesso a um disco e muito mais [MAXWELL2000].

2 - Funções de um Kernel.

O Kernel é responsável ( Kernel Monolítico) por abstrair a interface de hardware, fazendo com que os processos utilizem os recursos de forma segura e organizada[TANENBAUM1999].
Algumas funções são atribuídas ao kernel como:
  • Gerência dos Processso (Criação, Agendamento, Finalização);
  • Gerência de Alocação e Liberação de Memória;
  • Controle do Sistema de Arquivos;
  • Operações de Entrada e Saída;
Para que se possa ter essa estrutura funcional, e possa realizar algum trabalho, uma aplicação tem que ter acesso aos serviços disponibilizados pelo kernel, desta forma uma API(Interface de Programação de Aplicação) é disponibilizada à aplicação. Esta API faz a chamada das funções do kernel através de interrupção, memória compartilhada ou IPC(Inter-Process Communication)[TANENBAUM1999].

3 - Arquitetura do Kernel

Segundo TANENBAUM1999, o kernel pode ser monolítico, em camadas, ou microkernel (também conhecido como modelo cliente-servidor).

Sistemas Monolíticos

Estrutura mais utilizada, poderia ser chamada de " a grande fusão". Não existe uma estruturação visível na organização monolítica. O Sistema operacional é escrito como um conjunto de procedimentos, sendo que um pode chamar qualquer um dos outros quando necessário. Quando utilizada essa estrutura, cada procedimento deve ter uma interface muito bem definida em termos de parâmetros e resultados [TANENBAUM1999]]
Dentro dessa estrutura existe 2 tipos de chamadas. O modo kernel, onde é permitida a execução de todas as instruções básicas da máquina. No modo usuário, para os programas de usuário, onde certas instruções, como aquelas que controlam entrada / saída, não podem ser executadas

Sistemas em Camadas

Estrutura em que o sistema operacional foi organizado como uma hierarquia de níveis, cada um construído sobre o nível imediatamente abaixo. O primeiro sistema construído desta forma foi o THE projetado no Technische Hogeschool Eindhoven na Holanda por E.W.Dijkstra(1968) [TANENBAUM2000].

Microkernel

Sendo mais flexível que o kernel monolítico, o microkernel não fornece o sistema de arquivos, sistema de diretórios, gerência completa de processos e a manipulação da maioria das chamadas de sistema. Todos os serviços prestados pelo microkernel estão lá por serem difíceis de executar em outro local ou inviável financeiramente se oferecidos fora do kernel. O objetivo principal é mantê-lo o menor possível.Todos os outros serviços do sistema operacionais estão disponibilizados em forma de servidores ao nível de usuário. Para se realizar alguma operação, o usuário deve enviar uma mensagem ao servidor apropriado[TANENBAUM1999].
Os serviços prestados pelo microkernel são os seguintes:
  • Um mecânismo de comunicação entre processos
  • Um mínimo de funções para gerência de memória
  • Um mínimo de funções de gerência de processos e de escalonamento
  • Funções de entrada / Saída de baixo nível [TANENBAUM1999]
Kernel Híbrido

Baseado em microkernel, ele executa operações em modo protegido (modo kernel), através de servidores externos, para a melhoria de desempenho evitando também troca de contextos.

NanoKernel

Extremamente simples, ele é a camada mais próxima do hardware. Gerenciando virtualmente os serviços, o nano-kernel faz com que a memória que é utilizada por ele seja menor que a do micro-kernel [WIKIPÉDIA].

Exokernel

Nessa estrutura existe apenas um Kernel Simples onde o mesmo faz o controle de recursos do sistema e de um conjunto de bibliotecas que implementam as abstração do sistema operacional. O aplicativo pode acessar direto os recursos do sistema, ou utilizam as bibliotecas. O Programador tem mais liberdade para optar pela abstração de hardware que desejar [WIKIPÉDIA].

O Kernel Linux

Criado por hobby, por um estudante chamado Linus Torvalds, que tinha como objetivo criar seu próprio S.O.(Sistema Operacional) Unix-like(Baseado na Estrutura Unix) que rodasse em processadores de arquitetura Intel 80386. Linus estudou o Sistema Minix, de Andrew Tanenbaum e não satisfeito com a arquitetura resolveu criar o seu próprio sistema. O Projeto Linux foi lançado publicamente em 1991.[INFOWESTER]
Kernel monolítico, drivers e extensões do kernel rodam com acesso total ao hardware embora alguns rodem em espaço usuário(modo usuário citado em kernel monolítico). Diferente do padrão de kernels monolíticos, os drivers de dispositivos são configurados como módulos, e carregados e descarregas enquanto o sistema está rodando.Ainda , os drivers de dispositivos podem ser pré-inseridos sob algumas condições.Isto foi feita para a correção de acesso a interrupções de hardware e melhora o multi-processamento simétrico.[INFOWESTER]
O objetivo do Torvalds não era tornar o sistema portável, embora hoje ele seja um dos mais portáveis dentre os existentes. A portabilidade do sistema era dirigida para a parte de inclusão de sistemas, que rodavam em outros S.Os , no linux.[INFOWESTER]


4 - Outras informações
Para maiores informações sobre kernel, indico acessar este link Como Explicar o que é um kernel para leigos que tem como intenção explicar o que é um kernel para as pessoas que estão iniciando em informática.


Referências Bibliográficas:

[SILVESTRI] SILVESTRI, Eduardo "www.eduardosilvestri.com.br"
[TANENBAUM1999] TANENBAUM, Andrew S."Sistemas Operacionais Modernos". LTC, 1999.
[MAXWELL2000] MAXWELL, Scott "Kernel do Linux". Makron Books, 2000
[WIKIPÉDIA] http://pt.wikipedia.org/wiki/Kernel
http://pt.wikipedia.org/wiki/N%C3%BAcleo_do_Linux
[INFOWESTER] http://www.infowester.com/linuxkernel.php
Chino Ventura
Chino Ventur... Geek Registrado
2.7K Mensagens 78 Curtidas
#4 Por Chino Ventur...
28/10/2007 - 03:28
De qualquer forma, ótimo artigo, até aconselho torná-lo fixo.. que tals?

Ps.: posso indicar no meu blog???
______________________________________________
"Simple' is defined from a technical standpoint, not a usability standpoint. It is better to be technically elegant with a higher learning curve, than to be easy to use, and technically crap." by Aaron Griffin
Linux User: # 432048
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal