terça-feira, 18 de março de 2008

O que é um Sistema Operacional?


Para usar os primeiros computadores era preciso conhecer profundamente o seu funcionamento, pois a programação era feita em painéis, através de fios. Com a evolução da informática tornou-se óbvio que o antigo sistema era muito pouco eficiente e causava muitos erros. Os primeiros sistemas operacionais surgiram justamente para tentar automatizar o uso dos computadores. A partir daí, os SOs (sistemas operacionais) evoluíram rapidamente até chegar ao que são hoje.

Um sistema operacional é um programa como todos os outros. O sistema operacional toma conta do computador e facilita a vida do usuário, deixando que ele se preocupe com coisas mais úteis e produtivas que endereços de memória, segmentos e interrupções.


Quantos sistemas operacionais existem?
Provavelmente centenas. A grande maioria dos computadores tem pelo menos um SO escrito especialmente para ele. Para o PC (chips Intel): DOS e Windows (ambos da Microsoft), o BeOS (da Be), o Linux (este é totalmente grátis e está ligado à GNU), o FreeDOS (uma versão grátis do DOS, não é da Microsoft). Para o Machintosh: o System 7.x (também chamado de MacOS, da Apple) e o BeOS (da Be).

Os SO citados não são os únicos: tem milhares de pessoas em todo o mundo desenvolvendo todo tipo de sistema operacional para todo tipo de computador.

Como é feito um Sistema operacional?
Criar um SO a partir do zero é extremamente complicado e trabalhoso. O planejamento do S.O. é muito importante. Linguagens visuais (como Visual Basic ou Delphi) ou pouco poderosas (ex: Basic ou Clipper) não servem para fazer sistemas operacionais porque elas não têm o controle do computador que um SO precisa. Assembler e C são linguagens muito usadas para esse tipo de coisa.

O que um sistema operacional tem que fazer?
Um SO tem fazer com que o computador (e os periféricos) possa ser usado sem problemas por alguém que não conheça os detalhes do sistema. Ele tem que possibilitar que o usuário crie e acesse arquivos, use programas, acesse a Internet, jogue e todas as coisas que podem ser feitas com computadores. Além disso, o SO tem que executar os programas e ajudá-los a acessar os recursos do sistema de uma forma simples e organizada.

Sistemas Operacionais

Quando você liga o micro, entra em ação um programa conhecido como sistema operacional. Sabemos que o Sistema Operacional é o programa que administra o funcionamento de todos os componentes de hardware (equipamentos) e gerencia o trabalho dos softwares (programas), sem um sistema operacional, o computador não passa de um conjunto de peças com função alguma.

Quando você utiliza um programa qualquer, é o sistema operacional que verifica se o equipamento está disponível, caso esteja, o sistema envia informações para ele. Isso ocorre, por exemplo, na impressão de um documento que se acaba de digitar. Acionado o comando para imprimir, o sistema operacional verifica se a impressora está ligada, se tem papel, se está ocupada imprimindo outro documento, etc. Somente após essas verificações no equipamento, ele envia os dados do documento para a impressora.

Existem vários sistemas operacionais, produzidos por diferentes empresas; os mais famosos são: MS-DOS, Unix, Linux, Windows (3.11, NT, 2000, 3.11, 95, 98, Me, XP), MacOS, BeOS, etc.

O sistema operacional mais popular, atualmente, é o Windows, por ser um dos primeiros sistemas com interface gráfica. Isto é, que utiliza telas com botões, barras e menus acionados facilmente por meio de um mouse, evitando a digitação dos comandos, necessária nos sistemas operacionais que não possuem essa interface.

Existem versões de Windows para diferentes utilizações. O Windows 98 é o sistema operacional preferido para uso doméstico e de pequenas empresas. Já o Windows 2000 é o sistema operacional utilizado pelas médias e grandes empresas, devido à sua maior segurança e capacidade para trabalhar em grandes redes (rede é a conexão entre vários computadores). O Windows XP possui duas versões: Home para o usuário doméstico e Professional voltada para o usuário corporativo.

Atualmente, o Linux é o sistema operacional que mais cresce em números de usuários, por ser um sistema operacional mais estável e gratuito. Entretanto, sua interface ainda não é muito amigável, o que desagrada a alguns usuários.

Como dito anteriormente um sistema operacional é uma camada de software que controla os aspectos técnicos da operação de um computador. Ele livra o usuário da máquina dos detalhes técnicos de baixo nível da operação de uma máquina e freqüentemente oferece facilidades.

Não existe nenhuma definição universal do que seja um sistema operacional, podemos defini-lo como sendo um software que está instalado na máquina antes de adicionarmos qualquer outra coisa.

Normalmente, o sistema operacional possui alguns elementos chaves:

· Uma camada de software para controla o hardware do micro, como drives de disco, teclado e monitor.
· Um sistema de arquivos que fornece um meio organizar os arquivos logicamente.
· Uma linguagem de comando simples que habilita os usuários a rodar seus próprios programas e manipular seus arquivos de maneira simples.

Os sistemas operacionais podem ser classificados pelo número de tarefas que eles podem realizar simultaneamente e por quantos usuários podem usá-los simultaneamente, ou seja, monousuários ou multiusuários e monotarefas ou multitarefas. Na tabela abaixo, temos alguns sistemas operacionais classificados segundo esse critério.

Sistema Operacional
Usuários
Tarefas
Processadores
MS/PC-DOS
Monousuário
Mono-tarefa
Mono-processado
Windows 3.x
Monousuário
Quase multitarefa
Mono-processado
Macintosh System 7
Monousuário
Quase multitarefa
Mono-processado
Windows 9x
Monousuário
Multitarefa
Mono-processado
Amiga DOS
Monousuário
Multitarefa
Mono-processado
BeOS
Monousuário
Multitarefa
Multi-processado
VMS
Multiusuário
Multitarefa
Mono-processado
Unix
Multiusuário
Multitarefa
Multi-processado
NT
Multiusuário
Multitarefa
Multi-processado
Windows 2000
Multiusuário
Multitarefa
Multi-processado
Windows XP
Multiusuário
Multitarefa
Multi-processado
Linux
Multiusuário
Multitarefa
Multi-processado

Os primeiros sistemas (MS-DOS e Windows 3.1) são monousuários, monotarefas e baseados numa biblioteca contida em uma ROM de funções básicas chamada BIOS (sistema básico de entrada e saída). São essas funções que são responsáveis pela exibição de caracteres na tela, gravações de dados no HD, etc.

Embora todos os sistemas operacionais possam fornecer interrupções e, portanto, simular a aparência de multitarefas em algumas situações, os computadores equipados com esses sistemas operacionais não podem ser pensados como um sistema multitarefa em qualquer sentido.

O Windows 95 trocou o antigo enfoque de co-rotina de quase multitarefa por um contexto verdadeiro de troca, mas somente para um único usuário, sem proteção de memória. Ou seja, se um programa travasse, poderia tornar instável todo o sistema. Dessa forma, apesar da afirmação de que alguns Windows da linha 9x (98, 98SE) são multitarefas, a probabilidade da queda de uma aplicação implicar na queda de todo o sistema é grande.

O sistema MacOS 7 pode ser considerado como monousuário e quase multitarefa, isto significa que é possível rodar várias aplicações simultaneamente – um gerenciador de janelas pode simular a aparência de vários programas rodando simultaneamente, mas cada programa obedecendo a regras especificas para se conseguir a ilusão.

No Windows NT foi adicionado um kernel próprio com proteção de memória, baseado no sistema VMS, originalmente escrito para DEC/Vax. Versões recentes do Windows NT e Windows 2000 (uma versão aperfeiçoada do NT com proteção de memória) permitem múltiplos logins (sessões de trabalho distintas) também através de um terminal servidor.

O Unix é provavelmente o mais antigo sistema operacional existente hoje. Ele está disponível em várias implementações. Originalmente projetado na AT&T (1969), o Unix desmembrou-se em dois ramos: o BSD (Berkeley Software Distribution) o System 5 (AT&T). A versão da BSD foi desenvolvida como um projeto de pesquisa na Universidade de Berkeley, Califónia. Muitos recursos de transmissão de dados via rede e facilidades para o usuário surgiram destas modificações. Para evitar que as diversas versões do Unix se tornassem incompatíveis entre si, formou-se um comitê de padronização chamado POSIX, composto pela maioria dos desenvolvedores.

Anos depois do surgimento do Unix, um estudante finlandês estava trabalhando com o Minix, um pequeno sistema operacional clone do Unix, criado por Andrew Tannenbaum para fins educacionais. Ele pretendia alterar o código fonte do Minix para criar um “Minix melhor do que o Minix”. Em 1991, após algum tempo de trabalho, Linus Torvalds, publicou, num grupo de discussão (comp.os.minix) uma mensagem informando a versão 0.02 do seu sistema: Linux.

Por ser baseado no Unix, o Linux, desde o seu surgimento apresenta diversas características do seu antepassado: multitarefa, multiusuário, multiprocessamento, grande estabilidade, robustez e eficiência. Ele foi distribuído como um sistema operacional open-source (código aberto, todos têm acesso ao código-fonte).

Na verdade, o que Linux desenvolveu foi o kernel do Linux, o conjunto de rotinas e programas que permitem o funcionamento do sistema operacional. A partir daí, diversas outras pessoas colaboraram com o projeto desenvolvendo (ou adaptando) drivers, arquivos de configuração e de ajuda e interfaces. Para que fosse mais amigável para os usuários finais, várias interfaces gráficas foram desenvolvidas para o Linux, como as interfaces WindowMaker, Gnome e KDE.

O conjunto de kernel, drivers, interfaces gráficas e arquivos de configuração e ajuda é normalmente chamado de distribuição. Enquanto o kernel do Linux é gratuito, as distribuições podem ser cobradas, desde que seja possível obtê-las gratuitamente.

Por ter código aberto, o Linux vem ganhando adeptos rapidamente e toda uma cultura vem se desenvolvendo ao seu redor. É cada vez mais comum vermos o desenho de Tux, o simpático pingüim que se tornou a sua mascote.


1. O que é código aberto?
2. Explique as diferenças entre:
a) Monotarefa e Multitarefa:
b) Monoprocessado e Multiprocessado:
c) Monousuário e Multiusuário:
3. De acordo com o que foi estudado e com sua experiência em informática, diga , qual o Sistema Operacional de sua preferência e justifique.