Sistemas Operacionais, Kernel e Shell

O artigo discorre um pouco sobre o que são sistemas operacionais, o que é kernel do sistema e o shell do sistema.

[ Hits: 101.950 ]

Por: Willians em 11/05/2009 | Blog: http://www.williansribeiro.com.br


Kernel e Kernel Linux



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 alguns autores, o kernel é o seu coração, sua mente e seu sistema nervoso. Ele é responsável exclusivamente pelo transporte das informações de mais baixo nível que tornam todas as outras tarefas possível. Fazendo malabarismos com diversos processos que ocorrem simultaneamente, 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.

Funções de um Kernel

O kernel (monolítico) é responsável por abstrair a interface de hardware, fazendo com que os processos utilizem os recursos de forma segura e organizada.

Algumas funções são atribuídas ao Kernel como:
  • Gerência dos Processos (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 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. Essa API faz a chamada das funções do kernel através de interrupção, memória compartilhada ou IPC (Inter-Process Communication).

Arquitetura do Kernel

Segundo Tanenbaum, 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.
Linux: Sistemas Operacionais, Kernel e Shell.
Dentro dessa estrutura existem dois tipos de chamadas:
  • o modo Kernel, onde é permitida a execução de todas as instruções básicas da máquina e;
  • o 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 inferior. O primeiro sistema construído dessa forma foi o THE, projetado no Technische Hogeschool Eindhoven na Holanda por E.W.Dijkstra (1968).

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 á 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 operacional 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.

Os serviços prestados pelo microkernel são os seguintes:
  • Um mecanismo 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

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.

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ções do sistema operacional. O aplicativo pode acessar diretamente os recursos do sistema, ou utilizar as bibliotecas. O Programador tem mais liberdade para optar pela abstração de hardware que desejar.

O Kernel Linux

Criado como um hobby por um estudante chamado Linus Torvalds, que tinha como objetivo criar seu próprio 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.
Linux: Sistemas Operacionais, Kernel e Shell.
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 anteriormente em Kernel Monolítico).

Diferente do padrão do kernel monolítico, os drivers de dispositivos são configurados como módulos e são carregados enquanto o sistema está rodando. Ainda, os drivers de dispositivos podem ser pré-inseridos sob algumas condições. Isso foi feito para a correção de acesso a interrupções de hardware e melhora do multi-processamento simétrico.

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 sistemas operacionais, no Linux.

Página anterior     Próxima página

Páginas do artigo
   1. Sistemas Operacionais
   2. Kernel e Kernel Linux
   3. O Shell
   4. Finalizando
Outros artigos deste autor

Funcionamento do Processador

Redes, Modelos de Referência, suas Camadas e seus Protocolos

Memórias

Leitura recomendada

Instalando o Slackware em 15 minutos

Instalar o Ubuntu Server

openSUSE 11.3 (parte 2)

Analisando processos em seu GNU/Linux

Um Pouco de Crux Linux

  
Comentários
[1] Comentário enviado por everton3x em 11/05/2009 - 21:20h

Parabéns pelo artigo. Interessante do ponto de vista dos iniciantes...

[2] Comentário enviado por mcl085 em 11/05/2009 - 21:31h

Concordo com o amigo acima. Parebéns pelo artigo.

[3] Comentário enviado por albertguedes em 12/05/2009 - 01:30h

Ai Willians, tentando angariar mais pupilos pra engenharia da computação ? hehehe

Bom artigo cara, simples e acessível, bom ver algo de fundamento de computação de vez quando.


[4] Comentário enviado por daemonio em 12/05/2009 - 07:31h

Muito bacana o artigo! Parabéns.

[5] Comentário enviado por pogo em 12/05/2009 - 09:38h

Parabéns pelo belo artigo, me ensinou várias coisas que ainda não conhecia!

[]s

Pedro
www.pedropereira.net

[6] Comentário enviado por icefusion em 12/05/2009 - 17:15h

Opa..obrigado gente pelos elogios..fico feliz em contribuir com o vivaolinux o qual me ajudou tanto e com a comunidade :D....

[7] Comentário enviado por nicolo em 13/05/2009 - 12:43h

Assunto original. Poderia ter explicado mais cada tópico, muito interessante.
Faço votos que continue desenvolvendo esses assuntos mais detalhadamente.
Parabéns!

[8] Comentário enviado por _d4rks1d3_ em 07/06/2009 - 23:51h

Um artigo bem interessante !!
valeu por compartilhar estas informações!!

[9] Comentário enviado por orionnunes em 18/06/2009 - 08:51h

Muito obrigado, me auxíliou a sanar pequenas dúvidas que eu tinha que encomodando já fazia algum tempo.



[10] Comentário enviado por ianwerlang em 12/08/2009 - 18:56h

cara, gostei mto desse artigo...ele me ajudou mto a preparar uma de minhas aulas...

[11] Comentário enviado por walkerjosh em 03/03/2010 - 10:51h

Simples e Objetivo! Muito bom para iniciantes e para servir de menu para buscar outras Distros.

[12] Comentário enviado por andrezc em 04/07/2010 - 20:13h

Realmente muito bom, gostei da didática do texto.

Nota 10 p/ você.

André Junior,
Security Professional and Pentester
[]'s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts