OpenBeOS
Saiba como uma comunidade engajada pode salvar um sistema operacional da extinção
Imagine a situação: Você está acostumado a utilizar um software proprietário desenvolvido por uma determinada empresa e, de repente, esta empresa fecha as portas e pára com o desenvolvimento do software. A partir de então, você não terá mais correções de falhas de seguranças que venham a ser descobertas nem atualizações para novas tecnologias que possam surgir no mercado.
Isto foi o que aconteceu com o BeOS, o sistema operacional desenvolvido pela Be Incorporated, empresa fundada por Jean-Louis Gassé (vice-presidente da Apple). Mas desta vez, os usuários do sistema resolveram dar um final diferente à história.
O BeOS foi criado pela Be Inc., em 1990, para ser um sistema voltado a aplicações multimídia. Isto significa que ele está otimizado para trabalhar com áudio e vídeo digital, bem como animações e gráficos em 3D. Ao contrário do que muitos pensam, o BeOS foi escrito a partir do zero, e não baseado no Unix. Alguns usuários têm esta impressão devido ao uso do velho e conhecido Bash como shell do terminal sistema.
Além destas características, o BeOS é um sistema operacional monousuário com ótimo suporte a máquinas multiprocessadas. Ele também utiliza um sistema de arquivos de 64 bits com suporte a journaling chamado BFS. Uma característica interessante é que o BeOS, em vez de utilizar uma base de dados, conta com a baixa latência do sistema para manipular o journaling e pesquisar os atributos de arquivos em tempo real. O sistema também é compatível com o padrão POSIX e não possui um modo texto, que é substituído por uma interface gráfica multithreaded.
Inicialmente feito para ser executado apenas na BeBox, computador fabricado pela Be que utilizava o BeOS, o sistema acabou sendo portado para ser executado em qualquer máquina com processadores PowerPC ou Intel. Em 2001, a Be vendeu a propriedade intelectual do sistema para a Palm e o BeOS R5 foi a última versão do sistema a ser lançada pela Be.
Poucos dias após o BeOS ter sido comprado pela Palm, um grupo de desenvolvedores começou o projeto OpenBeOS, com a proposta de recriar e expandir o sistema, mantendo-o vivo. Além disto, o projeto se preocupa em manter o código fonte do sistema aberto, o que acabará impedindo que mais uma vez o sistema acabe abandonado por uma empresa.
Uma das principais metas para a versão R1 do OpenBeOS é ser totalmente compatível, em fontes e binários, com o BeOS R5, o que possibilitará que aplicações do BeOS sejam executadas com perfeição no OpenBeOS.
O kernel do OpenBeOS será baseado no NewOS, um microkernel escrito por Travis Geiselbrecht, um dos engenheiros da Be Incorporated, que pode ser executado em processadores Intel, AMD e até mesmo no console de videogame Sega Dreamcast, que possui um processador Hitachi SH-4. Um dos principais fatores para a escolha do NewOS como base para o kernel foi o fato de ele ter sido desenvolvido de uma maneira bastante similar ao BeOS, o que não vai causar um grande esforço para adaptá-lo ao projeto. Além disso, Travis também apóia o projeto do OpenBeOS e sempre acaba fazendo sugestões ao time de desenvolvedores do kernel.
Com o objetivo de manter uma maior compatibilidade com o BeOS R5, o OpenBeOS utilizará como sistema de arquivos o OpenBFS, uma versão aberta do Be File System, que já conta com algumas versões beta lançadas. Entretanto, o OpenBeOS também será capaz de ler e gravar em partições com outros sistemas de arquivos, como o ext2, FAT, HFS e outras.
Como sistema para renderização de fontes, será utilizado o Freetype2, um mecanismo pequeno, eficiente e altamente personalizável, que pode ser utilizada em bibliotecas gráficas, servidores gráficos e outros. O mecanismo é lançado em duas licenças Open Source: FreeType License (freetype.sourceforge.net/freetype2/FTL.txt) e GPL.
E você usuário do BeOS, que acabou ficando órfão com a falência da Be Inc., não gostaria de colaborar com o projeto? Como se pode ver no website do OpenBeOS, se você é programador, entre em contato com o pessoal do projeto e fale sobre suas habilidades técnicas e a área em que gostaria de trabalhar. Sinta-se também à vontade para escrever patches e enviar para o autor original dos programas.
Quem não sabe programar também pode ajudar de diversas outras maneiras, como por exemplo, com a elaboração de documentação para usuários e técnicos, divulgação do sistema e do projeto OpenBeOS, criação ou colaboração com websites sobre o BeOS e outras atividades. Enfim, colabore como puder. Afinal, é assim que funciona uma comunidade.
Entrevista
Conversamos com Bruno G. Albuquerque, presidente do BUG-BR e também um dos principais colaboradores do projeto OpenBeOS. Confira o que ele tem a dizer sobre o projeto.
Revista do Linux - Como anda o desenvolvimento do OpenBeOS?
Bruno Albuquerque - Está progredindo muito bem. Em especial se for considerado o número reduzido de desenvolvedores contribuindo ativamente para o projeto (creio que o total não passa de 10). Tem havido progresso em todas as áreas, e alguns kits já se encontram em estágio alfa ou beta.
RdL - Você é o líder do time de desenvolvimento do OpenBFS. Poderia explicar aos nossos leitores quais são os objetivos do OpenBFS, como está o seu desenvolvimento e quais são as diferenças, se é que há alguma, em relação ao sistema de arquivos utilizado no BeOS?
BA - O objetivo é basicamente clonar o sistema de arquivos BFS (Be File System), que foi originalmente desenvolvido pela Be e que é responsável, em grande parte, pela experiência que o usuário tem ao utilizar o BeOS. O BFS (e, conseqüentemente, o OpenBFS) é um sistema de arquivos de 64 bits, jornalado, multithreaded e com recursos que o tornam muito semelhante a um banco de dados convencional.
O OpenBFS se encontra atualmente na versão Beta 5, o que significa que está basicamente pronto. Agora estamos fazendo testes e corrigindo problemas.
A principal diferença entre o BFS e o OpenBFS gira em torno de como foram escritos. O BFS foi escrito em C, e o seu criador, Dominic Giampaolo, teve que deixar de fora um monte de coisas que ele queria implementar para cumprir prazos. O OpenBFS é escrito em C++, e nós temos todo o tempo do mundo para fazer o que quisermos com ele. Já temos algumas vantagens sobre o BFS original:
~U O OpenBFS tem metade do tamanho do BFS.
~U O OpenBFS suporta queries em atributos não indexados.
~U O OpenBFS permite que se faça checagem de integridade do disco sem a necessidade de convertê-lo em read-only.
Mais informações podem ser obtidas em www.bug-br.org.br/openbfs
RdL - Além do OpenBFS, com que outras áreas do OpenBeOS você está envolvido?
BA - Faço parte do Kernel Team e do Network Team. Além disso, sou um dos autores do MDR (Mail Daemon Replacement - http://www.bebits.com/app/2289), que é um substituto para o Mail Kit do BeOS.
RdL - Quais são os maiores problemas que estão sendo enfrentados pelos desenvolvedores do projeto?
BA - Falta de desenvolvedores de verdade. Infelizmente, existe muita gente que acaba entrando no projeto devido ao ~SCool Factor~T e acaba por não fazer absolutamente nada. Em certo ponto chegamos a ter mais de 200 desenvolvedores cadastrados no projeto. Hoje, cortamos para menos de noventa (dos quais, como eu já disse, dez estão trabalhando ativamente. Felizmente, esses dez costumam produzir uma quantidade insana de código).
RdL - Quais são as dicas para os entusiastas do BeOS que querem começar a contribuir com o projeto? Por onde começar?
BA - O processo deve ser o seguinte: Se você acha que pode contribuir com o projeto, obtenha o código fonte via CVS do SourceForge, escolha uma área onde queira trabalhar, faça as mudanças no código que julgar necessárias (quer sejam correções de erro ou implementação de alguma coisa) e envie-as ao líder do respectivo componente. Se suas alterações forem aceitas, provavelmente você será bem-vindo ao time.
O site do projeto possui tem uma seção de referência que pode ajudar desenvolvedores que estão agora se interessando pelo OpenBeOS.
RdL - Além do Travis Geiselbrecht, há outros ex-funcionários da Be Inc. colaborando de alguma forma com o projeto?
BA - Sim, mas muito mais com conselhos e dicas do que com qualquer outra coisa. Se estivessem envolvidos diretamente no projeto, a Palm, dona do código fonte do BeOS, poderia não gostar muito disso.
RdL - Você também é presidente do BUG-BR (www.bug-br.org.br), um grupo de usuários brasileiros de BeOS. Como a comunidade de usuários do BeOS está vendo o OpenBeOS e outros projetos similares como o BlueEyedOS e o Zeta?
BA - Com esperança. O Zeta deve ser o primeiro a dar frutos (no inicio do ano que vem), e o OpenBeOS deve ter algo usável até o fim de 2003. Não tenho acompanhado o progresso do BlueEyedOS. Há pelo menos dois outros projetos não anunciados que têm o mesmo objetivo desses todos que mencionamos. Creio que deverão surgir boas surpresas logo, logo.
Felipe Arruda - felipe@RevistaDoLinux.com.br