5
1. INTRODUÇÃO E OBJETIVOS
Um Sistema Operacional tem como principais finalidades o controle
harmônico do hardware, o gerenciamento de arquivos e a execução de aplicações, o
BeOS não é diferente
quando falamos dessa maneira generalista, quem não o
conhece e nunca viu em funcionamento pode não conhecer o mundo de sofisticação
que ele pode proporcionar.
Sistema jovem de apenas 15 anos de vida que tem como principal finalidade
ser multimídia, por isso disponibiliza ao usuário vantagens como: ser baseado em
UNIX, ser um Sistema Multitarefa, possuir um excelente Sistema de Arquivos, ser
um Sistema Multiprocessador, ser totalmente Orientada a Objeto por ter base na
linguagem C++.
Mostraremos com este trabalho as principais características do BeOS de
forma que o entendimento do mesmo, seja claro e envolvente.
6
2. HISTÓRICO BeOS
Em 1990 no estado da Califórnia nasceu o BeOS, criado pela empresa Be
Inc. tendo como seu principal idealizador Jean-Louis Gassée (então ex-vice
presidente da Apple), no projeto do Sistema as principais idéias de funcionamento
do BeOS foram para a multimídia e o multiprocessamento, falar hoje sobre essas
duas funções e totalmente normal, todos conseguem ver vídeos, ouvir música,entrar
na Internet ou processar suas tarefas com total tranqüilidade de funcionamento, más
a 15 anos atras não era tão simples assim.
Quadro 1: Logo BeOS
Foi idealizado para comportar vários processadores de baixo porte tornandose assim mais o mais barato possível, na época um PowerPC (Macintosh) era muito
caro e com processadores mais baratos podia-se conseguir uma máquina com
menos que a metade do preço.
7
O BeOS usa um tipo de processamento chamado de Symmetric MultiProcessor (SMP) ou seja, Multi Processamento Simétrico, de forma que se um dos
processadores em funcionamento para o outro continua com seu funcionamento
inalterado.
Quadro 2: Área de Trabalho BeOS.
8
3. MICRO KERNEL
Kernel é um programa que se distingue pelo fato de que seu código é
executado com completo privilegio de acesso a qualquer recurso físico do
computador.
Existem duas formas principais de desenvolvimento de Kernel: monolítico e
mricrokenel. Estes se diferenciam primeiramente nas decisões como Kernel permite
que os processos façam no computador.
Um Kernel como o do sistema operacional UNIX é chamado de monolítico,
ele é massivo, executa todas as operações e funções básicas dos sistemas e
costuma ocupar um megabyte de código.
Ter um SO com o conceito de microkernel quer dizer que ele tem uma
estrutura segmentada com relação às Chamadas de Sistemas, um aplicativo solicita
ao Servidor de Entrada (Input Server) um serviço, ele julga se tal serviço será
realizado por ele próprio ou diretamente pelo kernel, esse por sua vez solicita ao
microkernel e por fim ele realiza ou não a solicitação, isso quer dizer que o
microkernel só trata de tarefas mais básicas tais como gerência do processador,
alocação e liberação de memória física e instalação de novos utilitários (driver de
dispositivo), deixando para o kernel serviços como sistemas de arquivos , memória
virtual e protocolos de comunicação.
O sistema BeOS utiliza o chamado microkernel. Isto significa que o Kernel é
feito de forma que seja a abstração mais básica de um sistema operacional,
ocupando apenas algumas dezenas de kilobytes (KB). Os principais processos, a
comunicação entre memória e entre processos e todos os outros sistemas de
serviço que são fornecidos pelos servidores são alocados dinamicamente quando
forem utilizados. Estes sistemas de serviço são acessados através de um
9
mecanismo baseado em troca de mensagens. A maior vantagem de um sistema
microkernel é a sua modularidade. Assim, cada parte do sistema operacional tem
uma função bem definida e bem especifica, gerando códigos pequenos e mais
reutilizáveis. O sistema é dividido em partes, sendo cada uma. Responsável por um
determinado serviço do computador. Para instalar um drive novo para determinado
dispositivo, não é preciso reiniciar o sistema. Para efetuar tal tarefa, basta copiar o
arquivo do drive para a pasta do BeOS que o dispositivo já poderá funcionar, ou será
no Maximo reiniciar a parte do sistema.
10
4. KIT´s DE SOFTWARES
Um Kit nada mais é que um conjunto de classes orientadas a objeto que o
desenvolvedor utiliza quando no desenvolvimento do BeOS. A união das classes
formam a API (Application Programming Interface) que é um conjunto de rotinas e
padrões estabelecidos pelo Sistema para a utilização de suas funcionalidades. De
uma forma bem explicativa um Kit serve para fazer o intermédio entre o programa e
o Input Server.
Por exemplo, um plugin para o Internet Explorer utiliza uma API padrão
disponível pelo Windows, possibilitando que haja uma interação entre programa e
plugin, melhorando e complementando a aplicação.
O BeOS possui vários Kits Softwares, basicamente temos:
Application Kit: Este Kit pequeno é essencial para o desenvolvimento de
praticamente qualquer programa para o BeOS. Este Kit define o sistema de
mensagens que faz a comunicação entre programas, entre processos ou entre
objetos.
Interface Kit: Este Kit provê todas as funções gráficas para o
desenvolvimento de uma interface de programa.
Storage Kit: Este Kit é basicamente responsável pela escrita e leitura em
discos.
Support Kit: Este é o Kit que dá apoio aos outros Kits.. Ele define
praticamente todos os elementos básicos do BeOS.
Media Kit: Este Kit é responsável por manipular dados de tempo real. Em
11
particular ele define as classes utilizadas para processar áudio e vídeo.
Midi Kit: Usado por aplicações que processam dados do tipo MIDI (Music
Instrument Digital Interface).
Kernel Kit: Utilizado por aplicações que necessitam de acesso de baixonível. Permite ao programador, por exemplo, criar e manipular threads.
Device Kit: Utilizado por programadores que desenvolvem Drivers. Permite
acesso aos conectores de hardware como porta serial.
Network Kit: Serviço de aplicações TCP/IP.
OpenGL
Kit:
Permite
aos
programadores
utilizar
programas
com
capacidade de recurso gráfico 3D. Cria e manipula objetos tridimensionais.
Translation Kit: Cuida da conversão de um tipo de dados para torná-lo
compatível com uma aplicação, como converter JPG em GIF, por exemplo.
Mail Kit: Complementa o Network Kit com a manipulação do protocolo
SMTP (Simple Mail Transfer Protocol).
Game Kit: Criada apenas para desenvolver jogos, ou seja, acesso direto a
placa de vídeo e som.
A partir das classes de objetos que estes Kits fornecem, a criação de
aplicações para o BeOS se torna apenas a manipulação destes objetos e a troca de
mensagem entre eles. Como a linguagem destes objetos e do compilador é C++,
resta ao desenvolvedor aprender a manipular objetos nesta linguagem e conhecer
os objetos específicos de cada Kit.
12
5. MULTITAREFA PREEMPTIVA
Um SO multitarefa é um sistema que tem a capacidade de executar mais de
uma aplicação de forma que as mesmas dêem a impressão de estar executando
simultaneamente, através de recursos de alocação de tempo e mudança de
contexto, ou seja, é a capacidade que o sistema operacional tem de rodar diversos
programas ao mesmo tempo.
Existem dois tipos básicos de multitarefa: Cooperativa (A aplicação decide
quando não precisa de CPU - utilizado no Windows 3.1 e no MacOS) e a Preemptiva
(O SO determina quando a aplicação perde ou ganha a CPU - utilizado no Windows
NT e no BeOS).
O BeOS, assim como o Windows NT, é um sistema operacional multitarefa
que é executado de forma preemptiva. Porém, o BeOS leva a sua multitarefa a um
patamar acima através do recurso de Multithreading.
13
6. MULTITHREADING
Mais que é uma thread?
Uma thread é uma abstração de atividade do sistema operacional, um fluxo
de execução que roda dentro de um processo ou aplicação.
Quado temos muitos programas rodando ao mesmo tempo, o usuário
precisa dividir as tarefas de cada um deles em etapas, para que todos possam ser
beneficiados. Isto ocorre em prioridades , e estas etapas podem ser chamadas de
threads. Um progama pode ter mais de um thread, e BeOS quanto mais melhor.
Tornando o serviço do processador melhor distribuido e o paralelismo é melhor
simulado.
Sistemas como o Windows NT não são "fortemente multithread" porque eles
trabalham com threads mais pesadas e são grandes e poucas.
Para o BeOS, ser "fortemente multithread" é dividir cada tarefa de uma
aplicação em muitos pedaços, sendo que muitos deles são do próprio SO por se
tratar de uma arquitetura Cliente/Servidor com diversos servidores de processos.
14
7. MULTIPROCESSAMENTO SIMÉTRICO (SMP)
SMP é a sigla para Symmetric Multi-Processor que significa Multi
processamento simétrico que é um tipo de processamento paralelo em que múltiplos
processadores trabalham em conjunto, com a possibilidade de um programa
executar uma parte dele em qualquer um destes processadores.
Este tipo de processamento enxerga todos os processadores de forma
idêntica, isto quer dizer que qualquer um deles pode executar qualquer aplicação,
sendo que as aplicações são divididas em concorrentes. O BeOS utiliza este tipo de
processamento principalmente por ter suas características voltadas para multimídia.
Sendo o BeOS um multithreads, ele aloca as threads de acordo com o processo
mais livre e isto ocasiona uma alta performance do SO pois, as aplicações podem ou
não ter suporte para multi-processamento que o BeOS as executa multiprocessadas.
Isto fica evidente quando comparamos o BeOS com o Windows 98 ou o MacOS que
mesmo tendo vários processadores, conseguem apenas utilizar um processador
ignorando os demais.
15
Para ilustrar melhor o conceito, podemos exemplificar um computador com o
BeOS instalado e que possua 3 processadores Pentium III 350MHz, sua perfomance
final seria equivalente a um processador Pentium III 950MHz ou próximo a isto pois,
o BeOS tem aproveitamento de aproximadamente 99%, enquanto por exemplo o
Windows NT chega a no máximo 70% de forma nativa. Outra curiosidade a ser
observada é que na plataforma Intel, por um limite imposto pela arquitetura, pode-se
rodar até no máximo 8 processadores simultaneamente, conforme Quadro 3.
Quadro 3: BeOS rodando com 8 processadores (Pentium III 350 MHz)
16
8. SISTEMA DE ARQUIVOS (FYLE SYSTEM – 64 BITS)
Sistema de Arquivos é a forma como o SO organiza as informações no HD
ou nos disquetes, é um conjunto de estruturas lógicas e de rotinas que permitem ao
SO controlar o acesso ao disco rígido.
O BeOS utiliza o Fyle Sistem de 64 Bits também identificado como BFS, este
sistema de arquivos e extremamente rápido, suporta altas taxas de transferência de
dados. O volume de informações máximo que é suportado por ele é de 18.000
Pentabytes, isto é equivalente a 3 bilhões de HD´s de 6GB (como comparativo,
podemos citar o fyle system de 32 bits que tem capacidade de “apenas” 2.048
Gigabytes). Além disto o BeOS possue um Gerenciador de Boot e seu carregador
(Loader) pode ser carregado em um disco além de ser muito rápido.
Outra característica do BeOS é o fato de até a sua versão DR8 (versão
experimental – beta), o sistema de arquivos não tinha uma estrutura de arquivos e
diretórios como a maioria dos SO, o mesmo possuía uma estrutura de Banco de
Dados com os arquivos sendo tratados como elementos armazenados em tabelas,
porém, este modelo de sistema de dados implicava numa redução considerável em
sua performance portanto, a Be optou por mudar para o BFS.
17
O Quadro 5 exemplifica um computador com o BeOs 5 rodando mais de 23
aplicativos sendo que destes vários são aplicações gráficas que requerem uma alta
taxa de processamento para não ocorrer overhead no SO.
Quadro 4: BeOS R5 rodando múltiplos aplicativos.
18
9. MODELO DE SISTEMA OPERACIONAL ORIENTADO A OBJETOS
Para se ter bom aproveitamento das funções globais que um computador
oferece ao usuário é de suma importância se ter uma arquitetura do SO baseada em
objetos. Com esse intuito cada objeto tem um propósito único dentro do sistema, ou
seja, cada objeto tem seus comandos e atributos associados que permitem uma
especialização da tarefa do sistema a que ele esta destinada. A importância de uma
maquina arquitetura de um sistema operacional orientado ao objeto se dá no
proporcionamento de um ambiente comum e conhecido no tratamento dessas
informações. O tratamento das execuções das instruções de interface de maquina
pode ser feito de forma bastante consistente com a orientação a objetos.
Usando esta orientação a objetos, as instruções de interface de maquina
podem tratar tudo de uma forma consistente. Cada objeto é reconhecido pelo
sistema por seu tipo, que determina como ele pode ser usado. Componentes
complexos do sistema combinam diversos tipos de objetos primários para criar
objetos compostos.
Alguns objetos são embarcados com o sistema ou criados pelo usuário.
Estes incluem objetos como a descrição do subsistema para trabalho interativo e
comunicações, e descrições de dispositivos criadas pelo sistema durante a
configuração automática dos dispositivos detectados. O sistema usa os objetos para
acompanhar operações e gerenciar o trabalho submetido diretamente pelo usuário
ou por aplicações. O operador do sistema ou usuário pode gerenciar estes objetos
através de programas.
Os usuários também podem criar objetos para auxiliar no gerenciamento de
seu trabalho no sistema. Estes incluem bibliotecas papar arquivos, programas para
19
manipular estes arquivos, ou qualquer outro tipo de objeto necessário. As funções
de gerenciamento de objetos proporcionadas pelo sistema ajudam o usuário a
gerenciar estes objetos.
Para um usuário, a coisa mais visível é o fato de ser possível customizar o
SO a níveis inimagináveis sem muito esforço, o que faz com que surjam muitos
programas destinados a customização, principalmente no que diz respeito à
interface. Para o programador, isso significa que é fácil reaproveitar e melhorar o
que o SO fornece, sem ter que reescrever partes inteiras do mesmo (reusabilidade).
20
10. ARQUITETURA CLIENTE/SERVIDOR
O termo “cliente/servidor” pode ser definido de varias formas dependendo do
contexto. Em uma rede local você pode encontrar um computador que armazena
todos os arquivos que podem ser compartilhados, que executa o sistema de e-mail e
que matem os arquivos de log atualizados. Este computador é chamado de servidor.
Cada funcionário possui um computador conectado na rede, enviando e recebendo
informações. Esses computadores são chamados de clientes. Quando aplicamos
esse termo no contexto de sorftware, estamos nos referindo a um programa
“servidor” que disponibiliza um serviço usado por vários programas “clientes”. Como
o BeOS usa esse sistema, programas clientes não ocupam ciclos da CPU e
memória com trabalhos redundantes
Normalmente o cliente é dedicado à sessão do usuário, começando e
terminando com sessão. Um cliente pode interagir com um ou mais servidores, mas
pelo menos um processo servidor é necessário.
Servidores são programas que respondem as solicitações por serviços
compartilhados. Ele é um processo relativo, disparado pela chegada de pedidos de
seus clientes. Geralmente, o processo servidor roda o tempo todo, oferecendo
serviços a muitos processos clientes distintos.
Em geral, um servidor processa a informação sem interagir com outros
servidores. Os clientes que interagem com mais de um servidor têm a
responsabilidade de ativá-los quando necessário.
Um servidor BeOS , por exemplo, é o Input Server, que se encarrega de
tratar todas as mensagens que chegam através dos dispositivos de entrada do
21
sistema, como interrupções de teclado, mouse, joysticks ou qualquer outro
dispositivo de entrada.
22
11. APLICATIVOS BeOS.
11.1. A Utilização do BeOS em Computação Gráfica.
Quando foi projetado, o BeOS teve sua utilização voltada para multimídia,
assim muitos cuidados foram tomados, um dos primeiros foi com o sistema de
arquivos, o sistema de arquivos deveria suportar sem tamanho limitado devido aos
grandes arquivos gerados pela digitalização de vídeos ou sons.Outro ponto
fundamental que foi analisado foi a velocidade de acesso a estes arquivos, que
deveria ser em tempo real para que os vídeos ou sons fossem reproduzidos sem
nenhuma interrupção, a solução encontrada pelos desenvolvedores foi a criação de
arquivo de 64 bits jornalado que funciona como um banco de dados, BFS – sistema
de arquivos do BeOS; consegue um rendimento até 80% maior que outros sistemas
de arquivo utilizando o mesmo HD.
Quadro 5: Quake I e II, VoidRunner, Axia, RollemUp, Abuse, Hexen, Descent, Doom, Heretic. Todos
os jogos ao mesmo tempo, em um dual 533 Celeron
23
Normalmente existem filtros que convertem um gráfico JPG em um GIF e
vice-versa, o que o BeOS é ter um sistema de imagem próprio para trabalhar
internamente, dessa maneira se um programa vai utilizar uma figura JPG, o S.O irá
transforma-la no seu formato próprio para o programa trabalhar.Outro ponto crucial é
a velocidade de carga de uma figura, aos arquivos gráficos são pesados e difíceis de
serem carregados, o que BeOS faz é criar um acesso direto do HD na placa de
vídeo, o problema da velocidade de processamento dessas imagens foi solucionado
com a implantação do SMP (Symmetric Multi-Processor), que permite ao usuário
que seja utilizado uma placa com mais de um processador para garantir um
acréscimo de velocidade.
Para garantir um processamento em tempo real, o BeOS trabalha com
mutitrheads em um sistema microkernel, isto possibilita que os drivers sejam
carregados em tempo real, indo para a memória apenas quando o dispositivo for
utilizado, ganhado assim tempo e espaço em memória.
O BeOS, por ser um SO novo no mercado, não possui os grandes
programas gráficos utilizados em outras plataformas, porém como o BeOS é
desenvolvido para a multimídia, foram desenvolvidos programas de pequeno porte,
dentre os mais importantes são:





TAResizer- este programa converte imagens de formatos diferentes,
suporta praticamente todos os principais formatos existentes no
mercado alem de um editor de efeitos e screenshot, preço :Free.
Becasso- desenvolve gráficos em camadas, suporta alpha channel,
ferramentas ortoganais e cores RGB e HSV,preço :U$ 39,00.
e-Picture- este é o único software que é totalmente integrado para o
desenvolvimento gráfico e animação, permitindo a criação e animação
de objetos de uma forma livre,preço:U$179,00.
3D Starchart- este é um programa de astronomia em 3D, permite ao
usuário ver o sistema e as estrelas de outros pontos de referência que
não a Terra, por ser 3D, preço:Free
Moho- este é um programa de criação de desenhos animados 2D
completo para o BeOS, permite que você crie objetos e desenhos e
manipule-os na forma de animação, preço:U$99,00.
24
CURIOSIDADES
O BeOS tem uma versão gratuita(BeOS R5 PE-Personal Edition)que pode
ser obtido pelo site (www.bebits.com/app/2680), essa versão funcionara com um
numero reduzido de softwares em relação ao pacote estendido, que é
comercializado normalmente, o BeOS é um S.O comercial, e pode ser comprado por
pouco mais de 40 dólares nos EUA e por cerca de 20 euros na Europa.
O BeOS pode ser comprado pela internet no site da Gobe (www.gobe.com/),
distribuidora oficial nos EUA, na Europa o revendedor oficial é a Apacabar
(www.apacabar.fr/beos), sites como o eBay (www.ebay.com/) vendem mais barato
por serem mais usados, e o que nos interessa o distribuidor no Brasil é a Livraria
Tempo Real (www.temporeal.com.br), onde você encontrara o BeOS ProEdition e
livros para o BeOS.
O BeOS não precisa de exclusividade, a versão Pro instala um menu de
boot que permite a escolha do sistema operacional a inicializar, já com a versão PE
é necessário bootar antes no windows ou linux, é possível instalar um menu usando
esta dica (www.betips.net/chunga.php?ID=495) do site BeTips (www.betips.net).
25
CONCLUSÃO
Chegamos a um consenso de que o BeOS é um sistema operacional
poderoso e de fácil manipulação, basicamente ele foi criado para desenvolver
tarefas multimídia, e para além de tudo baratear o custo dos processadores, a
finalidade do BeOS é trazer valor ao PC comum, a ponto de fazer muitas coisas que
sistemas operacionais como o DOS, Windows e Linux não fazem: explorar ao
maximo os recursos da máquina, em 2001 a BeInc, foi comprada pela
PalmComputing que não deu seqüência ao desenvolvimento de novas versões do
BeOS, a versão mais atualizada é BeR 5.0.3, diante disso programadores
independentes resolveram criar seu próprio BeOS com código fonte aberto e todos
benefícios de um software não comercial, os mais promissores e conhecidos são o
OpenBeOS (www.open-beos.sourceforge.net/faq.php) (OBOS) e o BlueEyedOs
(www.blueeyedos.com/).
26
REFERÊNCIAS BIBLIOGRÁFICAS
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. São Paulo: LTC
Livros Técnicos e Cientifícos, 2002.
Grupo Brasileiro de Usuários do BeOS.
Disponível em: <http://www.bug-br.org.br/>.Acesso em: 31 out. 2005.