quarta-feira, 13 de fevereiro de 2008

Haiku: O retorno do BeOS

Quem lembra do BeOS, aquele sistema operacional da década de 90 que vinha instalado nos computadores da Be Inc., os chamados BeBox, e eram - de longe - muito melhores que os outros sistemas operacionais da época, como o da Apple ou o da Microsoft.

O BeOS realmente estava a frente dos seus concorrentes, tanto em termos de performance, quanto de inovação. Basta dizer que ele já tinha multi-processamento simétrico (SMP), multi-tarefa preemptiva, tinha arquitetura de microkernel, multithreading penetrante, sistema de arquivos de 64-bit com journaling e capacidade de indexação e busca como banco de dados.

Só pra dar aquela refrescada pra você que não se lembra mais daquela aula de Sistemas Operacionais... multi-processamento simétrico é basicamente dividir o processamento em partes iguais para mais de um processador executar a tarefa, em paralelo, ao mesmo tempo; com arquitetura de microkernel, os serviços como sistema de arquivos, rede, drivers, etc. não fazem parte do kernel, deixando o mesmo apenas com o funcionamento básico que permite implementar estes serviços, como gerenciamento de espaço de endereçamento, gerenciamento de execução de processos e comunicação inter-processos; multithreading penetrante é delegar para o sistema operacional a decisão de processar um programa dividindo seu processamento em partes que serão executadas em paralelo (algo como SMP para 1 processador) mas por ser penetrante faz com que o desenvolvedor da aplicação seja responsável por decidir como será essa separação ao escrever o programa, causando uma dor de cabeça extra no desenvolvimento...; o journaling do sistema de arquivos nada mais é de que um log da abertura dos arquivos para posteriormente agilizar a verificação do status dos arquivos e então corrigí-los.

Para se ter a idéia da inovação disso tudo, basta lembrar que o recente Windows Vista era pra sair com o WinFS, um sistema de arquivos baseado em banco de dados, mas não conseguiu. E o BeOS já tinha isso (claro que um pouco diferente) naquela época...

Só que um bom produto não é nada sem um bom marketing (consultores, sorriam...). E as grandes empresas sempre foram melhor nisso. A MS investiu pesado no Windows 95 e todos os seus "novos" conceitos, mesmo escondendo o DOS por baixo da sua nova cara. Claro que também foi adicionado multi-tarefa preemptiva, um sistema de arquivos decente e umas janelinhas bonitinhas. Aliás, não era a cara do... do... do BeOS mesmo !

Mesmo sendo portado pra PCs em 97, o BeOS não vingou. A Be Inc. também perdeu terreno depois que a Apple fechou a plataforma do Mac, em 98, impedindo assim que o BeOS fosse instalado.

O BeOS acabou morrendo. Em 2000 passou a ser oferecido de graça, pela Internet. Em 2001 a Palm comprou a Be Inc. e descontinuou o sistema operacional.

Mas como tem louco pra tudo nesse mundo, resolveram "ressucitar" o finado. Com a descontinuidade do BeOS pela Palm, a comunidade open-source resolveu recriar o BeOS como um sistema operacional livre. Batizado de OpenBeOS, o projeto planejou uma quase completa reconstrução do sistema, mantendo compatibilidade de programas e código-fonte, permitindo assim que os programas existentes para BeOS possam ser executados no novo sistema sem a necessidade de recompilação. Para evitar problemas com o nome (uso indevido de marca registrada), resolveram rebatizar o SO de Haiku. Uma empresa sem fins lucrativos, a Haiku Inc., passou a controlar o projeto.

E antes que você pergunte: não, ele não é feito utilizando o código do kernel do Linux, tampouco os kits de interface gráfica disponíveis no mundo Linux, como GTK, QT, etc. Diferentemente do Linux, o foco do Haiku é o desktop. E ao invés dele ser mais um entre as dezenas de sabores disponíveis e seguir a mesma estrutura, o Haiku foi projetado com um único sistema de interface gráfica, otimizado e pensado exclusivamente para a sua arquitetura, o que o diferencia dos outros ambientes.

Pra quem gosta de história, vale a pena conhecer.

haikuos3__20p

Para quem é desenvolvedor, também vale a pena dar uma olhada em seu código fonte em C++ e analisar sua API toda orientada a objetos.

Nenhum comentário: