ESCOLA TÉCNICA ESTADUAL DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA SECETEC RODRIGO SANTANA EDSON DE OLIVEIRA Sistema Operacional BeOS Cidade: Lucas do Rio Verde Data: 11 de Fevereiro de 2012 Sumário Lista de Figuras .................................................................................................................................................. 3 Sistema Operacional BeOS ................................................................................................................................ 4 Resumo .............................................................................................................................................................. 4 1. Introdução ...................................................................................................................................................... 4 História............................................................................................................................................................... 5 Principais características do BeOS .................................................................................................................... 6 Multitarefa Preemptiva ...................................................................................................................................... 6 Projetado para mídias em tempo-real ................................................................................................................ 6 Sistema de arquivo jornalado ............................................................................................................................. 6 Multithread Generalizado .................................................................................................................................. 6 Acesso direto ...................................................................................................................................................... 6 Carga dinâmica de drivers ................................................................................................................................. 7 Memória protegida ............................................................................................................................................. 7 2. Estrutura do Sistema Operacional .................................................................................................................. 7 2.1. Sistema Operacional Orientado a Objetos .................................................................................................. 7 2.2. Gerência de Processos: SMP ...................................................................................................................... 8 2.2. 1. Multitarefa Primitiva ............................................................................................................................... 8 2.2. 2. Multi Threading ...................................................................................................................................... 8 2.3. Gerência de Memória .................................................................................................................................. 8 2.4. Sistemas de I/O ........................................................................................................................................... 8 2.5. Sistema de Arquivos ................................................................................................................................... 9 3. Finalidade do BeOS ....................................................................................................................................... 9 4. Referências ................................................................................................................................................... 10 Lista de Figuras Figura 1. Interface do BeOS .............................................................................................................................. 5 Figura 2. BeOS rodando com oito processadores. ............................................................................................. 6 Figura 3. Arquitetura em camadas no BeOS ..................................................................................................... 7 3 Sistema Operacional BeOS ESCOLA TÉCNICA ESTADUAL DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA SECITEC Resumo O artigo abaixo descreve as características do sistema operacional BeOS, quanto a seus aspectos estruturais, arquitetura e tecnologias implementadas. Citando entre elas, a multitarefa preemptiva, o suporte a multiprocessamento simétrico, suporte a multi-threading, recursos de I/O, sistema de arquivos de 64 bits com journaling, gerência de memória, e o fato do sistema operacional ser orientado a objetos, e ser voltado para aplicações multimídia. 1. Introdução O BeOS é um Sistema Operacional moderno em sua essência. Ao contrário dos S.O´s mais antigos, o sistema foi desenvolvido desde o principio com o objetivo de maximizar o desempenho e com tecnologias realmente inovadoras. O BeOS consegue extrair excelentes performances de computadores comuns como os PCs e Power PCs (Mac), permitindo uma grande economia no investimento em equipamentos. Essa diferença começa a ser notada desde o boot do sistema, já que todo o processo demora algo em torno de 12 segundos. Surgiu em 1990 nos EUA, no estado da Califórnia, nas proximidades da cidade de São Francisco. Desenvolvido pela Be Inc. O seu idealizador e proprietário chama- se Jean- Louis Gassée ex – vice presidente da Apple. Quando o BeOS surgiu, a finalidade era trazer o multi- processamento para o Computador Pessoal (PC). A idéia era juntar 5 processadores simples e muito baratos que fariam a mesma função de um 486. Acontece que, para fazer tudo isto, era necessário ter um Sistema Operacional que suportasse mais de um processador. Foi criado então o BeOS. O BeOS usa símbolos e idéias familiares de outros sistemas operacionais (arquivos, pastas, desktops, etc.) O BeOS GUI é conhecido como Tracker, e a chave ao Tracker é o TrackBar , que pode ser movido e configurado segundo as preferências do usuário. 4 Figura 1. Interface do BeOS História O BeOS foi um projeto de Jean-Louis Gassée um ex-executivo da Apple que decidiu investir num sistema operacional próprio. Em 1996, a Apple precisava de um novo sistema operacional para sua linha Macintosh e dois sistemas concorreram: o BeOS e o NEXTSTEP de Steve Jobs. A Apple ficou com o NeXT e Gassée decidiu seguir com o sistema fundando sua propria companhia a Be Incorporated. O BeOS foi concebido em meados de 1990 para rodar em computadores proprietários, os chamados BeBox. Posteriormente, foi portado para computadores PowerPC da Apple: o objetivo era oferecer uma alternativa ainda melhor que o próprio sistema proprietário da Apple e logo depois portado para PCs x86. Em 1998 a Apple fechou a plataforma Mac impossibilitando a instalação do BeOS em seus computadores, e no PC e em PowerPCs antigos que o BeOS tentou sobreviver. Nos anos 90, o BeOS foi visto como uma alternativa às caras estações da Silicon Graphics, mas por volta de 1999 passou a ser utilizado mesmo por usuários que buscavam alternativas ao Windows e ao Linux, ou seja, que fosse completo e executasse as operações normais de um sistema. Em 2000 passou a ser oferecido numa versão compacta e livre para cópias na Internet. Em meados de 2001, a Be foi comprada pela Palm e o sistema descontinuado. A comunidade de usuários de BeOS não se intimidou e começou um novo projeto de sistema operacional livre chamado de OpenBeOS ou Haiku. A versão gratuita do BeOS que foi lançada pela Be em 2000, chamada de BeOS 5 Personal Edition, ainda pode ser usada segundo seus termos de licença e continua sendo atualizada por fãs que adicionam drivers e uma variedade de programas também gratuitos. Essa versão possui uma característica muito importante: não necessita de particionamento do disco rígido para ser instalada. A instalação pode ser feita dentro da partição do Windows ou do Linux, sendo que o BeOS será iniciado a partir dela. Em 2004 a yellowTAB conseguiu o código-fonte da versão 4.51 e continuou o desenvolvimento do BeOS renomeando o sistema para Zeta. Em Julho de 2005 a versão 1.0 do Zeta foi lançada ao preço de 99 euros. Em 2007 ele foi descontinuado. 5 O Haiku é atualmente o projeto de manter o BeOS vivo e totalmente em software livre. Principais características do BeOS Multitarefa Preemptiva - O BeOS é um sistema operacional que foi projetado para dividir a aplicação em vários threads mesmo que o programador não tenha projetado assim. Isso aumenta a eficiência e a performance das aplicações. Na multitarefa preemptiva, o compartilhamento da CPU é gerenciado por um componente do sistema operacional chamado scheduler , que atribui tempo de CPU para as várias tarefas baseadas em um conjunto de heurísticas. Desse modo, nem o programador nem o usuário necessitam conhecer os detalhes. Projetado para mídias em tempo-real - A arquitetura do BeOS é otimizada para trabalhar com tempo-real, áudio e vídeo. O tempo de resposta do kernel é de cerca de 1 microssegundo e de 5 microssegundos para a mídia. Sistema de arquivo jornalado - Para evitar sobrecarga no sistema, sistemas operacionais não atualizam pequenas transações para o disco imediatamente. Ao invés disso, mudanças são armazenadas em memória por um tempo, sendo enviadas para o HD usualmente quando o sistema está livre. BeOS usa uma sistema de jornal para manter todas as transações registradas. Uma vez que o jornal é atualizado em tempo real, se o sistema for desligado incorretamente ou travar, todos os dados são recuperados do jornal, resultando em um boot tão; rápido quanto um boot normal. Ao contrário da FAT32, o sistema de arquivo usado no Windows 98, que não pode armazenar arquivos maiores que 4 Gb, O BeOS usa um esquema de endereçamento de 64-bit no Be Filesystem (BFS) , assim o tamanho máximo de um arquivo atinge aproximadamente 18.000 petabytes. Multithread Generalizado - No BeOS o processador não se torna mais rápido que em outros sistemas operacionais, mas as aplicações ficam mais sensíveis, uma vez que elas recebem mais atenção do processador todo o tempo. O conjunto de instruções não é executado seqüencialmente como outros sistemas fazem, e sim em paralelo. Figura 2. BeOS rodando com oito processadores. Acesso direto - O BeOS, ao contrário de outros sistemas, envia informações de vídeo diretamente para a placa gráfica e então para o monitor. Assim deixa de existir sobrecarga no sistema e a taxa de 6 quadros aumenta usando o mesmo hardware. O processo de enviar dados diretamente para o coração da placa de vídeo é chamado DMA, Direct Memory Access. Carga dinâmica de drivers - Em muitos sistemas ainda é necessário reiniciar a máquina toda vez que você faz uma alteração na configuração atual. Isso pode ser confirmado no Windows sempre que você fizer uma alteração na configuração de rede. Já no BeOS isso não acontece, pois o sistema pode ler novos drives em tempo de execução sem necessidade de reboot. Memória protegida - Um dos aspectos mais críticos para a estabilidade de um sistema operacional é a proteção de memória. Esse recurso controla o espaço de memória evitando as colisões. Como resultado, aplicações podem travar que o sistema e as outras aplicações continuam rodando perfeitamente. 2. Estrutura do Sistema Operacional A arquitetura do BeOS é composta basicamente de três camadas: - Microkernel e Drivers de dispositivo; - Servidor e s Do BeOS; - Kits De software do BeOS; Figura 3. Arquitetura em camadas no BeOS O MicroKernel trabalha diretamente com o hardware. Ele toma conta das tarefas de baixo nível e de controle crítico além de controlar o acesso à memória. O kernel também fornece outras coisas que os programas utilizam como ferramentas para o sistema de arquivos, escalonamento de threads e primitivas de chave amento da memória. Os Servidores estão na camada acima do kernel. Esta camada é composta por um número de processos de servidores que são executados em background e cuidam das tarefas para as aplicações que estão executando. A arqui t e tu r a cliente- servidor, no BeOS faz uso de protocolos de comunicação simples do tipo Requisição/ resposta. A fim de obter um serviço, um processo cliente envia uma requisição ao servidor. Este, por sua vez, executa as operações associadas ao serviço e envia uma resposta ao cliente, contendo dados ou um código de erro caso o serviço não possa ser executado. A camada acima dos servidores é composta pelos kits de software. Um Kit consiste em um número de classes de objetos orientados que o programador utiliza para desenvolver aplicações para o BeOS. Coletivamente, estas classes juntas compõem a API do BeOS. 2.1. Sistema Operacional Orientado a Objetos O BeOS foi desenvolvido com base nesse paradigma da Engenharia de Software. Até mesmo o kernel do BeOS é Orientado a Objeto. 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 programa s destinados a customização (principalmente no que diz respeito à Interface). Para o programador, isso significa que é fácil 7 reaproveitar e melhorar o que o S.O fornece, sem ter que reescrever partes inteiras do mesmo (conceito de reusabilidade.) 2.2. Gerência de Processos: SMP SMP significa Simetrical Multi Processor – Multiprocessamento Simétrico. Neste conceito, um grupo de processadores trabalha conjuntamente. As aplicações são divididas em correntes que podem rodar Concorrentemente em qualquer processador que esteja disponível. O SMP melhor a o desempenho da própria aplicação, como também o processamento total do sistema. O sistema SMP requer em alguma forma de memória compartilhada e cachês de instrução locais, e o mais importante: sistema de SMP requer em aplicações que podem tirar proveito do paralelismo. Como o BeOS, desde o princípio, foi criado para ser multiprocessador. Assim, quando surgiu o SMP bastou a Be Inc incorporá-lo ao seu sistema operacional, sendo que todo o seu funcionamento já era voltado para mais de um processador. 2.2. 1. Multitarefa Primitiva O BeOS é um sistema operacional que foi projetado para dividira aplicação em vários threads mesmo que o programador não tenha projetado assim. Isso aumenta a eficiência e a performance das aplicações. Na multitarefa pré emptiva, o compartilhamento da CPU é gerenciado por um componente do sistema operacional chamado escalonador (scheduler), que atribui tempo de CPU para as várias tarefas base adas em um conjunto de heurísticas. O escalonamento é feito por Prioridade. Desse modo, nem o programador nem o usuário necessitam conhecer os detalhes. No BeOS o recurso de multitarefa e levada a um patamar acima, através do recurso de Multithreading. Uma Thread é um pedaço (geralmente uma função) de um programa que roda simultaneamente com outras thread s no espaço alocado pelo S.O para a aplicação. No caso do BeOS, o Multithreading é pervasivo, ou seja, existem muitas threads mesmo ao nível mais baixo do SO (O Kernel, por exemplo, é composto por 4 threads). 2.2. 2. Multi Threading No BeOS o processador não se torna mais rápido que em outros sistemas operacionais, mas as aplicações ficam mais sensíveis, uma vez que elas recebem mais atenção do processador todo o tempo. O conjunto de instruções não é executado seqüencialmente como outros sistemas fazem, e sim em paralelo. Ser multithread não tem nada a ver com multi- processamento, mas para que um sistema tenha suporte a multiprocessamento ele tem que ter tarefas bem divididas s, para poder aloca- lãs a cada processador. É mais fácil alocar tarefas bem pequenas. Sistema s como Windows NT não são "fortemente multi- thread" Pois eles trabalham com threads, mas ainda assim são pesadas e poucas. No BeOS, cada tarefa de uma aplicação é dividida em muito mais pedaços, sendo que muitos deles são do próprio sistema operacional. 2.3. Gerência de Memória O Microkernel do SO controla diretamente o acesso a memória. Devido ao multiprocessamento, o barramento de memória é o eixo de simetria entre os processadores. Assim, nenhum deles poderá acessar diretamente a uma memória ou a um dispositivo de entrada/saída. Além disso, a memória e partilhada nativamente, ao contrário dos clusters , que o emulam ao nível aplicacional. Os drivers no BeOS são carregados em tempo real, indo para a memória apenas quando o dispositivo for utilizado, assim é economizado tempo e espaço em memória. O Sistema Operacional também conta com um eficaz sistema De memória protegida. Um dos aspectos mais críticos para a estabilidade de um sistema operacional é a proteção de memória. Esse recurso controla o espaço de memória evitando as colisões. Como resultado, se alguma aplicação travar, o sistema e as outras aplicações continuam rodando perfeitamente. 2.4. Sistemas de I/O Os drivers de I/O no BeOS são multithreaded, levando em conta a distribuição de tarefa s de Entrada e saída através de processadores múltiplos, e resposta mais rápida em sistemas de processador únicos. Os drivers 8 são carregados dinamicamente como necessitado, sem requerer a reinicialização de sistema. Vamos supor que o usuário tinha uma placa de rede, mas que não funcionava no BeOS. Conseguiu o driver, ou o fabricante disponibilizou- o. O driver de rede será copiado para um diretório específico, é reiniciando este módulo do sistema operacional, é o suficiente para que este passe a funcionar. O BeOS envia informações e vídeo diretamente para a placa gráfica e então para o monitor. Assim deixa de existir sobre carga no Sistema e a taxa de quadros aumenta usando o mesmo hardware. O processo de enviar dados diretamente para o coração da placa de vídeo é chama do DMA, Direct Memory Access. Os Kits de software fazem a comunicação entre os dispositivos de I/O e os servidor e s (Camada Intermediária do SO). Por exemplo: Para uma entrada de teclado, o Input Kit fará a interface entre o programa e o servidor Input Server. 2.5. Sistema de Arquivos O File System do Sistema Operacional foi desenvolvido par a suportar altas taxas de transferência de dados. Isto inclui os drivers de acesso aos discos e um sistema de arquivos de 64 bits que suporta volumes muito grandes. O tamanho máximo do sistema de arquivos do BeOS é de 18.000 Petas bytes. Isto é o mesmo que gerenciar 3 bilhões de HD De 6 Giga Bytes. O BeOS ainda traz um Gerenciador de Boot, e o seu carregador além de ser muito rápido é pequeno o suficiente para caber em um disco. Vamos dizer que o Windows foi instalado depois de instalar o BeOS; você não poderia mais iniciar o computador no BeOS porquê o Windows remove o gerenciador de Boot do Sistema. Mas o disquete de boot do Sistema e capaz de encontrar seu volume BeFS e carrega o Sistema Operacional, direto de seu HD. O sistema de arquivos no BeOS funciona de maneira semelhante a um Banco de Dados, permitindo que os arquivos possuam um número infinito de atributos e que os mesmos sejam de qualquer tamanho, de forma que fique fácil fazer pesquisas complexa s através do localizador (find) do sistema. Também é similar o fato de existirem índices no sistema de arquivos, o que aumenta ainda mais seu desempenho na busca de arquivos. Para evitar sobre carga no sistema. A maioria dos Sistemas Operacionais, não atualiza pequenas transações para o disco imediatamente. Ao invés disso, mudanças são armazenadas em memória por um tempo, sendo enviada s para o HD quando o sistema está livre. BeOS usa um sistema de jornal (Journaling) para manter todas as transações registradas. Uma vez que o jornal é atualizado em tempo real, se o sistema for desligado incorretamente ou travar, todos os dados são recupera dos do jornal, resultando em um re boot tão rápido quanto um boot normal. O seu Sistema de Arquivos reconhece e dá acesso a outras Partições de outros sistemas como Fat16/32 (Windows), ISO966 0, HFS (Mac OS), NFS entre outros. 3. Finalidade do BeOS Quando foi projetado, o BeOS teve sua utilização voltada para a multimídia. Assim, muitos cuidados foram tomados para que o sistema realmente suportasse aplicativos que trabalhasse com som, imagem e vídeo. Um sistema para trabalhar com Multimídia deveria ser um sistema operacional de tempo real. Para garantir um processamento em tempo real, o BeOs trabalha com multithreads em um sistema microkernel. Permitindo que os drivers sejam carregados na memória apenas quando for necessário. Diversos outros fatores foram analisados para o desenvolvimento deste SO. Porém, a característica que mais vale ressaltar é o fato dele ser novo e criado a partir do zero. Há 30 anos atrás, nunca se imaginou que um computador iria precisar de Giga bytes de dispositivos de armazenamento secundário e de memória. O problema atual é que a maioria dos sistemas existentes no mercado atual foram desenvolvidos a mais de 10 anos ou funcionam em cima de sistema s antigos. Assim, a proposta do BeOS era ser um sistema novo para a realidade atual. Apesar disso, a Be teve sua parte intelectual compra da pela Palmem agosto/2001, patrocinada pela Microsoft e pela Apple, e finalizou suas atividades em dez/2001. Devido a questões de mercado, a Palm decidiu não continuar seu desenvolvimento. Atualmente, existem dois novos esforços para evitar a morte do BeOS: OpenBeOS e BlueEyedOS, sendo que o primeiro tenta reproduzir o BeOS com código aberto e o segundo quer usar o kernel do Linux e implementar compatibilidade com os programas do BeOS. 9 4. Referências Dados Técnicos sobre o BeOS: www.beatjapan.org/mirror/ www.be.com/products/beos/beos_datasheet.html BeOS Specifications: WWW.beatjapan.org/mirror/ www.be.com/products/beos/beos_specifications.html BeDepot.com – Your on line superstore for BeOS products: www.bedepot.com Be Bits – Welcome: www.bebits.com Grupo Brasileiro de Usuários de BeOS: www.bug-br.org.b r Sistemas operacionais Alternativos: www.thebox.org.b r Site sobre Hardware no BeOS: www.frizbe.net Tanenba um, Andrew S. (1992) “Sistemas Operacionais modernos”, LTC, Livros Técnicos e Científicos Editora S.A., 1992 Tanenba um, Andrew S. (1988) Organização Estruturada de 10