Icefusion's Blog - Linux (Sistemas Operacionais & Redes)

Sistemas Operacionais: O Kernel e o Kernel do Linux

Posted on 27/11/2008 at 02:44 PM in Sistemas Operacionais
O Kernel e o Kernel do 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

by icefusion.

Sistemas Operacionais: Sistemas Operacionais

Posted on 26/11/2008 at 11:51 PM in Sistemas Operacionais

Sistemas Operacionais


Um computador sem seu software nada mais é que um pedaço de metal inútil. Com estas palavras eu abro um pequeno artigo com estas palavras. Isto foi dito por Bill Gates para persuadir a IBM e também por Andrew S. Tanenbaum em seu livro Sistemas Operacionais Modernos. Hoje para termos um computador funcional, precisamos de aplicativos para realizarmos tarefas. Aplicativos de Correio Eletrônico, de editores de texto etc.

Demonstrativo Simples da Função do S.O.

Porém, o mais importante se chama Sistema Operacional ou Operating System(SO ou OS respectivamente). Ele é responsável por gerenciar os recursos dos computadores, e fornecer a base sobre a qual os aplicativos são escritos.

Os sistemas operacionais são a interface - interface seria o meio comunicador entre o usuário e a máquina, aquele que faz a ponte entre essas duas entidades - pela qual o usuário se comunica com o computador através de entradas e saídas. Entradas podem ser feitas usando mouses e teclados, e as saídas por meio dos monitores e de impressoras, sendo esses os exemplos mais básicos.

O sistemas operacionais também como dito acima podem ser os gerentes de recursos do computador. O sistema operacional aloca memória para a aplicação, gerencia o processo dando prioridade aqueles mais importantes, gerenciam os hardwares do computador alocando-os para os vários processos que estão concorrendo pelo uso deste hardware.

Os sistemas operacionais na nossa atualidade podem ser divididos por funções. As empresas de Sistemas dividem seus Sistemas Operacionais por suas funções. Uns estão voltados mais para funções do cotidiano, para os usuários que dizemos serem comuns. Outros ja tem ferramentas e arquitetura melhor planejada para servidores, para serem os computadores mestres em uma rede de computadore. Alguns sistemas tentam unir as duas coisas. Mais para frente falaremos dos sistemas operacionais montados em cima do Kernel Linux. 

Demonstrativo de Funções de um S.O. - Visão Linux

Com essas informações podemos dizer que o sistema operacional é aquele que recebe a sua requisição e a transmite à aqueles que são responsáveis para computar e fornecer uma resposta legível ao ser humano.

Detalhes de Sistemas Operacionais e seus fabricantes ja foram citados nos posts anteriores juntamente com seus fabricantes. Segue Abaixo alguns dos principais sistemas existentes:


  • Gnu/Linux Slackware
  • Gnu/Linux Debian
  • Gnu/Linux Red Hat
  • Gnu/Linux Ubuntu
  • Gnu/Linux Mandriva
  • Gnu/Linux Kurumin
  • Gnu/Linux Gentoo
  • Gnu/Linux Suse
  • Solaris
  • Open Solaris
  • Windows 95
  • Windows 98
  • Windows Millenium
  • Windows 2000
  • Windows NT
  • Windows XP
  • Windows Vista
  • Apple 2
  • Apple Machintosh
  • FreeBSD
  • Pc-BSD
  • OpenBSD
  • NetBSD
  • DragonFly

by icefusion.

Sistemas Operacionais: História dos Sistemas Operacionais

Posted on 18/10/2008 at 08:56 AM in Sistemas Operacionais
1. Introdução

   Os Sistemas Operacionais(S.O.) estão relacionados intimamente com a arquitetura do computador cujo eles rodam. Portanto para melhor esclarecer, nada mais lógico que mostrar a evolução das arquiteturas e dos S. O. que as acompanhavam [GERSI]. Assim podemos entender certas características, o porque de cada uma delas.

    Primeiramente, devemos esclarecer o que é um sistema operacional. Segundo [TANENBAUM1999], o Sistema Operacional, do ponto de vista do programador, é um programa que adiciona um conjunto de novas instruções e de funcionalidades, além daquelas suportado a nível ISA. Em geral o Sistema Operacional é implementado por software, mas não há motivo que impeça de ele ser implementado em hardware exatamente como os microprogramas(Veremos o que é microprogramas mais para frente).
  
   Segundo [WIKIPÉDIA2008], Sistemas operacionais ou Sistemas operativos, é um programa ou um conjunto de programas que servem de interface entre um computador e um usuário. Pela perspectiva top-down, usuário ou programador, é uma abstração do hardware fazendo o intermédio entre  o aplicativo  o hardware. Numa visão bottom-up, é um gerenciador de recursos, interface de entrada, controla quais processos podem ser executados, e quais recursos terão acesso. 

   Os Sistemas Operacionais e a arquitetura de computadores se influenciaram mutuamente. O Sistema Operacional surgiu da necessidade de aproveitamento do hardware, contudo o hardware sofreu algumas alterações para facilitar o projeto de determinados sistemas. Essas facilidades tornaram os S.O.s muito mais poderosos e eficientes[WANDERSON].

   A evolução dos S.O.s está relacionada ao desenvolvimento de hardwares mais velozes, compactos e de baixo custo e às necessidades de controlar esses recursos[WANDERSON]. A evolução dos S.O.s e das arquiteturas foram divididas em fases, cujos os quais estão listadas logo abaixo:


2. Primeira Fase (1945-1955)

   Os primeiros computadores eram formados por milhares de válvulas com um péssimo desempenho em termos de velocidade e pouca confiabilidade em seus resultados. Os mesmos ocupavam enormes espaços físicos (pelo seu tamanho, eram salas, prédios) e foram usados na Segunda Guerra Mundial. Um famoso computador desta época é o Eniac, que foi o primeiro computador de propósito geral[ELTON].
   Uma curiosidade, o termo BUG que é utilizado quando temos problemas no computador foi criado nesta época, já que o funcionamento se dava via válvulas, muitas mariposas pousavam nas válvulas e as queimavam, forçando os funcionários trocarem as válvulas para restabelecer o trabalho[ELTON].

Eniac


3. Segunda Fase(1956-1965)

   Com a criação dos transistores e das memórias magnéticas houve um avanço enorme no mundo da informática. Os transistores permitiram o aumento da velocidade de processamento além de aumentar a confiabilidade dos cálculos. Após surgimento de linguagens de programação como Assembly e Fortran, os programas deixaram de ser feitos diretamente no hardware, facilitando o desenvolvimento de sistemas[ELTON].

Os Sistemas Operacionais foram criados para realizar tarefas até então feitas manualmente. Ainda nesta fase foram criadas as máquinas de leitura de cartão perfurado que aceleravam a entrada de dados. Os programadores escreviam seus programas e passavam-os para cartão perfurados, para depois serem executados[ELTON].


4. Terceira Fase (1966-1980)

   Com a criação dos Cis(Circuitos Integrados) e depois dos microprocessadores  foi possível viabilizar o uso dos computadores no mundo empresarial. Um fato importante se dá pelo fato de 1964, a IBM lançar uma série de computadores chamado 360, cujo qual seu objetivo era atingir o mercado empresarial, Para esta série foi desenvolvido o Sistema Operacional OS/360 que introduziu técnicas que são utilizadas até hoje[ELTON].
   Outro avanço desta fase foi a introdução de multiprogramação, o que faz com que vários jobs sejam executados de uma vez, deixando o processador chavear um job de sua escolha.


5. Quarta Fase (1981-1990)

   A integração em larga escala e grande larga escala permitiu que os computadores tivessem seu custo reduzido e finalmente atingir a população. Os micros e supermicros se firmaram no mercado e ganharam  grande impulso. Neste quadro houve o surgimento do IBM PC de 16bits contendo o S.O. Microsoft MS-Dos criando a filosofia de computadores pessoais, ainda nesta fase os minis e superminis ganharam impulso os sistemas multiusuários destacando-se sistemas compatíveis com o Unix[ELTON].


6. Quinta Fase (1991-Atualmente)

   Todo esse avanço tecnológico é resultado da grande evolução das aplicações. Sistemas Especialistas, multimídia, banco de dados são apenas alguns exemplos das necessidade de equipamentos mais eficientes[ELTON].
   Nesta fase podemos destacar:
      - Processamento distribuído explorado nos Sistemas Operacionais, espalhando funções por vários processadores (redes);
        - Consolidação dos SOs baseados em interfaces gráficas. Novas interfaces homem-máquina serão utilizadas, como linguagem natural, sons e imagens.
      - Conceitos e implementações só vistos em sistemas considerados de grande porte estão sendo introduzidos na maioria dos sistemas desktop (Windows, Unix, Linux, Mac OSX Etc.)
         -Durante o ano de 1991, as primeiras versões (releases) do Sistema Operacional Linux começaram a ser desenvolvidas por Linus Torvalds, com ajuda de outros desenvolvedores. Desenvolvido para os clones AT 386, 486, o Linux era um sistema tipo Unix (Unix-type) para computadores pessoais e tinha como grande atrativo, além do fato de ser parecido com o Unix, o fato de ser um Sistema Operacional gratuito. Estima-se hoje (ano de 2005) que existam 28 milhões de usuários no mundo usando Linux.


7. Conclusão

   A balança entre o hardware e o software é o que move não só as finanças de seus investidores como também a evolução da tecnológia. É criado um hardware veloz, porém se cria um software(não só SO.) que exigem mais de seu equipamento. Por isso a evolução e queda do equipamento no mercado ocorre. Os Sistemas Operacionais evoluíram muito, passando de modo texto para modo gráfico rapidamente tornando o computador realmente necessário em sua casa ou em seu trabalho. Sendo uma ferramenta indispensável, pudemos ver que a cada 10 anos surgia um fato importante para a evolução do computador, tornando assim possível que o computador que era usado em guerras e grandes universidades pudesse ser disposto para as pessoas comuns para realizar suas tarefas comuns. O computador hoje evolui muito mais rápido, chega a ser um pouco frustante pois você não consegue manter um computador atualizado em sua casa por muito tempo. Porém é gratificante ver que temos pessoas trabalhando para oferecer o melhor para nós. Os Sistemas Operacionais evoluiram de uma forma que sem conhecimento algum, com algum tempo você consegue lidar básicamente com um computador, se você tiver um guia isto ser torna mais rápido ainda.


Referência Bibliográfica

- [ELTON] http://www.angelfire.com/co/eltonsanders/socap1.html
- [GERSI] www.elsinformatica.com.br/GERSISOPERACIONAIS.pdf
- [WANDERSON]http://travou.com.br/site/?p=99
- [TANENBAUM1999] Tanenbaum, Andrew S., Organização Estruturada de Computadores - Quarta     Edição, Ed. LTC 1999.
- [WIKIPÉDIA2008] http://pt.wikipedia.org/wiki/Sistemas_operacionais

by icefusion

Criar um Blog-BR - Meu Blog-BR - Denuncie - Visitar outro Blog