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.