Recados Animados
Criar um Blog-BR
Meu Blog-BR
Denunciar
Próximo Blog

Icefusion - Tecnologia da Informação - Linux / Programação / Java

O que é um Sistema Operacional?!

06:55 PM, 4/11/2007 .. Posted in Sistemas Operacionais .. 0 comments .. Link
1 - O que é um Sistema Operacional

Até hoje muitos usuário de um computador ja tiveram algum tipo de experiência com um sistema operacional. Ao meu ver o sistema operacional é o software responsável por controlar a alocação de recursos da máquina. É por meio dele que um usuário consegue fazer qualquer tipo de trabalho mecânico (hardware), ou o simples fato de fazer uma conta ou executar um programa. Os Sistemas Operacionais tem a responsabilidade de ser o meio de comunicação entre o usuário e a máquina, evitando assim que o usuário tenha que ter conhecimentos maiores de funcionamento do computador, e evitando qualquer tipo de acesso e controle dos recursos da máquina, cheguei a esse conceito baseando-me em TANENBAUM1999 e após algumas aulas na matéria Sistemas Operacionais na época de faculdade.
Segundo WIKIPÉDIA, um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário. É comum utilizar-se a abreviatura SO (em português) ou OS (do inglês Operating System).
Segundo MXSTUDIO, Um sistema operacional é formado por um conjunto de programas e rotinas computacionais que têm como objetivo criar uma camada de abstração entre o usuário e o hardware propriamente dito. Entende-se por usuário todo e qualquer objeto que precise de acesso aos recursos de um computador (seja ele um usuário "real" ou aplicativo).
Segundo TANENBAUM1999 é difícil dar uma idéia precisa do que é um sistema operacional. Um dos motivos é o fato do sistema operacional realizar duas funções que não possuem relação uma com a outra, e dependendo de que está tentando passar a idéia, o mesmo pode dar um colorido maior a uma do que a outra.
As duas funções citadas por TANENBAUM1999 seriam as seguintes:

1.1 Sistema Operacional visto como uma Máquina Estendida.

Como a arquitetura da maioria dos computadores é bastante primitiva e difícil de programar, em especial a parte de Entrada / Saída, fica claro que a grande maioria dos programadores não quer ou não podem se envolver com detalhes da programação das unidades de disco flexível ou qualquer outro tipo de equipamento. Torna-se evidente que o programador que lidar com uma abstração de alto nível, e consequentemente mais simples.
O tratamento da criação de uma aplicação se torna mais simples, pois é isolado do usuário de detalhes de operações com qualquer dispositivo de hardware, e de uma série de outras questões um tanto incômodas como interrupções, temporizadores, gerência de memória entre outras questões até de nível mais baixo.
Neste caso, a função do siustema operacional e de apresentar ao usuário uma máquina estendida ou uma máquina virtual equivalente ao hardware porém muito mais simples de programar[TANENBAUM1999].

1.2 Sistema Operacional visto como um Gerente de Recursos

O Conceito de Sistema Operacional como fornecedor de uma interface conveniente a seus usuário é uma visão top-down. Uma visão alternativa, bottom-up, mostra o sistema operacional como um gerente de recursos de hardware disponíveis na máquina.
Os computadores modernos são compostos de processadores, memórias, temporizadores, discos, terminais, dispositivos de fitas magnéticas, interfaces de redes, impressoras a laser e uma grande variedade de outros dispositivos. Na visão alternativa, a função do sistema operacional é a de fornecer um esquema de alocação destes dispositivos entre os vários processos que competem pela utilização de tais recursos.
Concluindo que a tarefa principal segundo esta visão, é a de gerenciar os usuários de cada um dos recursos da máquina, contabilizando o tempo de uso de cada um e garantindo o acesso ordenado de usuários a recursos através da mediação dos conflitos entre as requisições dos diversos processos usuários do sistema[TANENBAUM1999].

ARTIGO INCOMPLETO[by icefusion]





O Kernel e o Kernel do Linux

01:00 PM, 27/10/2007 .. Posted in Sistemas Operacionais .. 0 comments .. Link
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) [TANENBAUM1999].

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 do 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.
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.
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.

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

About Me

Home
My Profile
Archives
Friends
My Photo Album

Links

Forum GDH
Guia do Hardware (GDH)
Clube do Hardware
Linux/BSD
Viva o Linux
Debian Linux
Slackware Linux
IMasters

Categories

BSD
Linux
Redes
Sistemas Operacionais

Recent Entries

O que é um Sistema Operacional?!
O Kernel e o Kernel do Linux
A História do Gnu/Linux
Apresentação do Blog

Friends