Grupo de Usuários Haiku - Brasil: O Sistema Operacional mais intrigante de 1998, 15 anos depois: na prática com Haiku alpha 4
O Sistema Operacional mais intrigante de 1998, 15 anos depois: na prática com Haiku alpha 4
A Ars Technica publicou recentemente um artigo avaliando o Haiku R1 Alpha 4.1. Como de costume, estamos publicando esta tradução para apreciação de todos os Haikusiastas.
A nostalgia corre solta, mas o reinício do BeOS é mais do que uma diversão interessante?
por Jeremy Reimer - Jan 8 2013, 11:00am HB
Um SO do passado
Revivido e libertado pelo código aberto
Esperando para ser usado
Haiku não é apenas um curto poema japonês com uma estrutura definida – é também o nome de uma recriação em código aberto do BeOS, um sistema operacional alternativo originalmente desenvolvido em meados dos anos 1990. Foi a invenção de Jean-Louis Gassée, um excêntrico e entusiasmado gerente e cabeça da Apple França. Ele galgou seu caminho de executivo para tornar-se a cabeça de "desenvolvimento avançado de produtos e marketing mundial" antes de ser forçado a sair da companhia pelo então CEO John Sculley em 1990.
Intimorato, Gassée decidiu que criaria uma plataforma de computação completamente nova do zero, incluindo tanto hardware personalizado como um sistema operacional novo. Gassée estava seguindo as pegadas de Steve Jobs, que havia tentado a mesma coisa com o NeXT em 1985 quando ele foi afastado da Apple.
O BeBox foi lançado em outubro de 1995. Era uma fera curiosa, portando dois processadores PowerPC 603e 66MHz, uma "GeekPort" para anexar dispositivos eletrônicos personalizados, e "Blinkenlights" verticais, tiras de LED que exibiam a utilização da CPU. Apenas 1,8 mil BeBoxes foram vendidas no total antes da Be, Inc descontinuar a fabricação de todo o hardware e concentrar-se nas vendas do sistema operacional em si, inicialmente para Macintoshes PowerPC.
Em 1996, a Apple estava procurando por um novo sistema operacional para substituir seu fracassado projeto "Copland" e por enquanto o BeOS estava no topo da lista (esta lista incluía Windows NT e Solaris, nenhum dos quais especialmente apetitoso para os fãs da Apple). Enquanto negociava o preço de venda, Gassée, exibindo sua típica confiança bombástica, disse a um repórter que "nós temos a Apple pelas bolas e iremos apertar até machucar". Alguém da Apple "pegou ar" com isso e ligou para um cara, que ligou para outro cara... que ligou para Steve Jobs na NeXT. O resto é história. "C'est la vie" (é a vida), disse Gassée, e mudou o foco do BeOS para os Pcs com base x86.
O BeOS alcançou seu auge de sucesso em 2000 quando a versão R5 foi lançada como um download grátis. Contudo, poucas pessoas atualizaram para a versão "Profissional" de US$ 99 e uma última tentativa para Be, Inc vendeu todos os seus ativos à Palm, Inc em novembro de 2001 por US$ 11 milhões.
A partir daí, uma companhia alemã, yellowTAB, lançou uma "nova" versão do BeOS chamada Zeta em 2005 (a qual eu analisei). Contudo, a companhia nunca confirmou se tinha ou não acesso ao código fonte do BeOS. A companhia descontinuou o Zeta em 2007, afirmando que as vendas falharam em cumprir as expectativas.
Com o status legal do código fonte do BeOS no limbo, sucedeu a um grupo de hackers de código aberto tentar recentemente manter o sonho do BeOS vivo. Seu projeto fi originalmente nomeado OpenBeOS, mas questões de marca registrada forçaram a uma mudança de nome. Haiku foi escolhido como uma evocação às antigas mensagens de erro do navegador Web embutido no BeOS, as quais eram apresentadas (apropriadamente) em forma de haicai. Hoje, o grupo Haiku tem em vista não apenas reconstruir aquele sistema operacional, mas também executar binários de aplicativos originalmente desenhados para o BeOS. Com a equipe recentemente lançando a versão R1/Alpha 4.1, a Ars decidiu pegar o SO para um test-drive.
O Haiku está disponível para download em um empacotamento de código fonte: um arquivo .iso que pode ser usado para queimar um DVD de inicialização live e instalação, e um arquivo binário .image que pode ser gravado diretamente em um dispositivo USB. O último é o método preferido para avaliar o Haiku. Ele pode rodar diretamente do dispositivo flash sem necessidade de instalá-lo no disco rígido do computador.
Copiar o arquivo .image para um pendrive pode ser feito com o comando 'dd' do Unix no Linux e no OS X, ou utilizando o programa gratuito ImageWriter em sistemas Windows. Uma vez que a imagem tenha sido copiada para o dispositivo USB, o computador imediatamente reclama que não pode ler o dispositivo. No caso do Windows, ele sempre oferece para formatá-lo. A razão que ele não lê o dispositivo é que ele é formatado com o sistema de arquivos BFS, nativo do BeOS. Que é algo que apenas o BeOS (e agora, o Haiku) sabe como ler.
Para iniciar o sistema operacional, simplesmente insira o pendrive numa porta USB e reinicie. Os computadores mais modernos podem ser configurados para inicializar a partir do USB pressionando a tecla 'Del' durante o processo de inicialização e então selecionando o pendrive manualmente no menu de ordem de inicialização.
O arquivo .image cria uma partição de aproximadamente 600MB para o Haiku, deixando o resto do dispositivo USB sem particionamento e vazio (o meu tinha capacidade de 2GB). Para futuros lançamentos, a equipe do Haiku deveria considerar seriamente aumentar o tamanho da partição, como a distribuição padrão preenche aqueles 600MB quase completamente, deixa poucos megabytes livres. O aplicativo gerenciador de partições embutido no Haiku permite que você particione, formate e monte o resto do espaço como outro dispositivo virtual, mas ele não pode redimensionar dinamicamente as partições. Isto se torna um problema quando em teste.
Hardware testado
Primeiro testei o pendrive Haiku em um computador mais antigo, um Core 2 Duo com 1.8 GHz e 2GB de RAM. Infelizmente, por qualquer razão, o computador entrou num loop de inicialização sem fim assim que começou a acessar o pendrive.
Em seguida, tentei inicializar de meu confiável MacBook (um velho modelo de 2008, o primeiro a vir com o corpo único de alumínio, com 4 GB de RAM). Tristemente, o dispositivo USB recusou-se a inicializar de todo jeito naquele hardware. Tentei inicializar a partir do Live DVD, alternativamente. Obtive até uma tela de boot, mas então o computador travou e recusou-se a seguir em frente.
O último computador em que tentei foi uma placa-mãe ASUS P5K-VM com um CPU Core 2 Quad Q6600 rodando a 2.4GHz e 8GB de RAM. Este é meu PC Media Center, conectado diretamente à minha televisão. Afortunadamente, o Haiku inicializou neste hardware sem qualquer problema. A inicialização foi muito rápida e tomou menos que 15 segundo para obter uma área de trabalho totalmente funcional. Por padrão, o sistema inicializou numa resolução de 1024x768. Infelizmente, não existe opção para alternar para uma resolução widescreen. Procurando nos foruns, encontrei que o sistema estava usando um driver padrão VESA e não estava ciente de minha placa gráfica. Tentei instalar um driver unificado NVIDIA para BeOS (muito) antiga. Ele pareceu instalar corretamente, mas o driver não foi carregado na reinicialização. De acordo com os foruns do Haiku, o sistema operacional irá suportar automaticamente quaisquer placas gráficas NVIDIA até a GeForce 7950, mas placas mais novas que esta (minha placa gráfica é uma delas), ao invés disso, são predefinidas para o driver VESA. O Haiku realiza toda a renderização 3D em modo software e não suporta aceleração 3D, então a falta de um driver não mudaria a funcionalidade completa do sistema operacional neste ponto.
O resto do hardware foi bem suportado: minha placa de rede, sistema de som e vários mouses USB e teclados sem fio, todos funcionaram automaticamente.
Em torno do SO
O sistema operacional Haiku é rápido e responsivo, como um BeOS trazido aos dias de hoje. O kernel é baseado no código aberto do NewOS, o qual é um kernel modular de 32 bits, preemptivo e multitarefa, escrito pelo ex-engenheiro do BeOS, Travis Geiselbrecht. A interface de usuário é um clone direto do BeOS. De fato, ele usa o gerenciador de arquivos e lançador de aplicativos OpenTracker, que a Be, Inc lançou como open source antes da dissolução da companhia. Com o coração e o rosto do sistema operacional rodando código originado no BeOS, o Haiku pode verdadeiramente ser chamado sucessor daquele sistema operacional.
O gerenciador de arquivos Rastreador não tem sido atualizado desde a época do BeOS. Ele abre uma nova janela para cada pasta e cada janela pode ser vista tanto em formato de ícone ou lista. Diferente do Zeta, esta habilidade ainda existe para deslocar a guia amarela de título para trás e para frente no topo da janela utilizando a tecla Shift, permitindo uma espécie de navegação de diretórios múltiplos por guias, localmente. Como acontece com o MacOS clássico, o Haiku lembra o tamanho, posição e estado de cada janela mesmo após uma reinicialização.
O sistema de arquivos, como mencionado anteriormente, é o BFS, que significa Be File System. É um sistema de arquivos moderno, de 64 bits, com journaling e suporte para metadados extensíveis construídos diretamente na interface de usuário do Rastreador. Isto permite ao usuário, por exemplo, adicionar dados em arquivos de música tais como artista e álbum e ordenar por esses termos sem utilizar um aplicativo de terceiros como o iTunes.
Aplicativos e Preferências são acessados ao clicar o ícone da grande pena azul no topo do Rastreador, o qual também ser como uma barra de tarefas vertical. Clicar na guia de qualquer aplicativo traz em evidência uma lista de janelas associadas com aquele aplicativo.
O Haiku vem com uma quantidade de aplicativos e demonstrações pré-instalados. Existem os acessórios usuais como calculadoras, um editor de ícones, editores de texto, um gravador de som, um gerenciador de contatos chamado Pessoas, um programa de correio eletrônico chamado Correio, vários tocadores de mídia e um visualizador de PDF chamado BePDF. Existe também um aplicativo chamado TV que supostamente é para ser um visualizador para TV análoga, um estilo de televisão que já não existe mais. Ele simplesmente exibe um padrão de teste.
A maioria destes aplicativos estão no mesmo nível do Bloco de Notas e da Calculadora encontrados no Windows - pequenos utilitários que são úteis para começar, mas que você não gostaria de usar no dia a dia. Acredita-se que o Haiku suporte aplicativos BeOS nativos compilados na plataforma x86 diretamente, então eu fui ao BeBits.com, onde antigamente a maioria dos autores BeOS listavam seus aplicativos.
Infelizmente, a maioria dos links de download no BeBits direcionam para as páginas pessoais dos autores e a maioria delas não mais existem. Eu resolvi procurar um aplicativo que ainda existe, um programa de planilha chamado Sum-It. Fui capaz de baixar, instalar e rodá-lo sem problemas.
Mas ainda que você consiga baixá-los, nem todos os aplicativos BeOS funcionam sem problemas. Eu encontrei um porte do AbiWord que não carregou de modo algum. E a principal estrela dos aplicativos BeOS, uma suíte office chamada GoBe Productive, falhou no meio da instalação. De acordo com os foruns do Haiku, se você copiar sobre os arquivos instalados a partir de uma velha cópia do Zeta, ele irá funcionar. Mas eu não tenho mais uma cópia do Zeta por perto, e eu a analisei! Como o GoBe Productive era (e é) um aplicativo de código fechado, não é sempre tão fácil corrigir essas coisas.
O cenário de aplicativos para BeOS, afinal, nunca foi bem povoado, e os aplicativos daquela época tem um indefectível gosto anos 90. Por um curto momento na história o BeOS encontrou algum sucesso no nicho de software para música e aplicativos MIDI, então entusiastas de áudio devem ter algum interesse em rodar estes aplicativos. Mas para muitos aplicativos de produtividade de uso geral, o mundo se moveu para um ambiente de hospedagem baseado na Web. Por conseguinte, qualquer sistema operacional de nicho hoje precisa vir com um bom navegador Web.
Navegando a Web
Quando eu analisei o Zeta em 2005, ele veio com navegador Web embutido do BeOS, o NetPositive. Na época, era horrivelmente desatualizado e basicamente inútil para navegação Web (ele não entendia uma simples linha de CSS, de tão ruim que era!). Felizmente, existia um porte do Firefox 2 chamado BeZilla que funcionou razoavelmente com a Web naquele momento.
Após sete anos, as posições curiosamente reverteram: BeZilla ainda é um porte do Firefox 2 e muitos sítios web (incluindo o Ars Technica) se apresentam terríveis e defeituosos quando renderizados neste navegador. Contudo, a equipe do Haiku incluiu um navegador chamado WebPositive que parece ter um build recente do WebKit como seu core. Ele lida com a navegação até em sítios web avançados com facilidade.
Embora o WebPositive não ganhe nenhuma prova de velocidade, ele funcionou muito bem com todos os sítios web que coloquei nele. A página principal do Ars Technica montou corretamente e funcionou bem, mas uns poucos sítios tiveram alguns problemas menores. Quando acessei a interface baseada em Web do Dropbox, alguns dos botões (tais como o botão "Browse" ao enviar arquivos) estavam sem texto. Apareceram também curiosos retângulos negros se esgueirando ao redor das miniaturas de imagens. Ainda assim, fui capaz de usar o sítio sem quaisquer problemas.
Eu testei o Google Docs e, para minha surpresa, o sítio funcionou perfeitamente, ainda que um pouco mais lentamente do que estou acostumado. Iniciei uma nova planilha e fui capaz de editar, adicionar fórmulas e alterar fontes sem problemas. Dada a extrema antiguidade dos aplicativos de produtividade nativos como GoBe Productive, usar o Google Docs pode ser realmente uma escolha melhor em termos de funcionalidades.
Uma grande falha na navegação Web no Haiku é a ausência do Flash. Quando fui a um sítio com conteúdo de vídeo em Flash, o WebPositive mostrou apenas um retângulo preto. O navegador em si não suporta plugins, e ele não pode entender vídeo nem áudio em HTML5. Isto cria uma grande lacuna (tentativa de trocadilho) na experiência de navegação Web.
Aparentemente existe um porte de um tocador Flash isolado chamado Gnash, mais minhas tentativas de instalá-lo foram sem sucesso, já que as bibliotecas requeridas não cabiam no espaço livre disponível na partição de 600 MB da instalação do Haiku. O tocador não funciona como um plugin nem no WebPositive nem no BeZilla, então ele apenas funcionaria se eu localizasse e baixasse o apropriado arquivo .swf. O que não é exatamente possível na maioria dos sítios de vídeo.
"To BeOS or not to BeOS?"
Antes de tecer as conclusões sobre o Haiku e para quê seu sistema operacional em código aberto pode ser útil, vamos dar um passo atrás e falar sobre que problemas o BeOS originalmente pretendia resolver.
De alguma forma, o BeOS estava à frente do seu tempo. Os arquitetos do hardware e do sistema operacional previram o futuro (aquele que vivemos hoje) onde um simples processador não mais poderia ser construído para rodar mais rápido por si mesmo. Ao invés disso, processadores múltiplos teriam que rodar em paralelo de maneira a agregar performance.
Os softwares de computadores pessoais tem sido tradicionalmente single-threaded por razões muito boas: dividir a execução da tarefa em múltiplos threads é muito mais difícil e inclinado a erros. Para algumas tarefas, como renderização em 3D, é uma coisa fácil e natural dividir a computação (e de fato placas de vídeo modernas funcionam numa natureza massivamente paralela para gerar mais e mais triângulos texturizados na tela em maior velocidade). Mas por muitos problemas, isto não é fácil. E se uma parte do cálculo depende de uma parte anterior sendo completada, mas dois processadores estão rodando ambas as partes ao mesmo tempo? E se um processador muda um bit de memória para zero ao mesmo tempo que outro processado está alterando-o para um? Estas questões, que possuem nomes como deadlocks e race conditions, podem enloquecer os programadores quando tentam debugar seus softwares.
O BeOS tenta resolver este problema forçando todos os softwares a serem multithread por padrão. A interface de programação de aplicativos (API) do BeOS utilizou algo chamado "multithreading pervasivo". Toda interação que o programador tem com a GUI - tal como gerar uma nova janela - abre uma nova thread, e threads seriam distribuídas igualmente para todos os processadores. Esta decisão foi simultaneamente louvada por fazer a interface de usuário do BeOS parecer mais responsivo e vívido que os sistemas operacionais concorrentes, mas ele era também escarnecido por deixar reduzir a estabilidade como aplicativos poderiam frequentemente ficarem confusos e travar.
Mais recentemente, companhias como a Apple tem tentado resolver alguns dos mais espinhosos problemas com multithreading criando bibliotecas como o Grand Central Dispatch, o qual gerencia multiplas threads e automaticamente calcula o número ótimo de threads a criar para qualquer tarefa que possa ser paralelizada. Companhias de jogos como a Valve também criaram bibliotecas de desenvolvimento multicore que torna mais fácil para desenvolvedores pouco experientes utilizar multiplas threads. Estas soluções são provavelmente uma melhor maneira de lidar com programação multithread do que a abordagem do BeOS, mas eles tinham o benefício de muito mais anos de trabalho de desenvolvedores neste problema difícil.
Além da questão do multithreading pervasivo, as outras motivações iniciais para criar o BeOS foram entregar um sistema operacional leve e livre de legado que rodaria utilizando recursos mínimos. Este tipo de coisa tem sido tentada muitas vezes ao longo dos anos. Como qualquer programador dirá a você, é sempre mais divertido começar do zero do que trabalhar numa base de código legado. O BeOS era sempre muito menor e muito rápido, mas ganhou esta habilidade sacrificando funcionalidades. Começar do zero significa que a base do seu aplicativo também começa do zero e a biblioteca de terceiros do BeOS nunca vai ao ponto onde deveria preencher as necessidades computacionais da maioria das pessoas.
Hoje, 11 anos após a Be, Inc fechar as portas, alguém poderia perguntar: qual é o ponto do Haiku? O colapso da Be e mais tarde da yellowTAB mostrou que o sistema operacional nunca iria ganhar dinheiro suficiente para sustentar uma empresa, mas software de código aberto não sofre de tais limitações. Os desenvolvedores podem trabalhar nele como um hobby pelo tempo que desejarem, sem se preocupar sobre se será ou não um sucesso comercial. Isto muda a resposta significativamente. O propósito do Haiku é que bastante gente gosta do BeOS para querer continuar usando-o em hardware moderno. O fato pelo qual o Haiku existe hoje em uma razoavemente útil forma alfa é prova disso.
A parte da satisfação de um pequeno grupo de teimosos do BeOS, contudo, quem mais poderia achar o Haiku útil? Esta questão é um pouco mais difícil de responder. O sistema operacional é rápido, sim, mas hardware moderno é tão ridiculamente poderoso que isto não é mais uma vantagem como já foi. Uma área que pode ser vantajosa é na nova geração de computadores em uma placa extremamente baratos como o Raspberry Pi. Atualmente, não existe um porte ARM do Haiku para rodar estes dispositivos, mas alguns desenvolvedores estão trabalhando nisso.
Afinal, o Haiku pode não ser muito mais do que uma diversão interessante, algo para brincar numa peça guardada de hardware em uma tarde chuvosa apenas para um pouco de diversão. Mas, mesmo que não passe disso, ainda vale a pena conferir o Haiku.