Mostrando postagens com marcador artigo. Mostrar todas as postagens
Mostrando postagens com marcador artigo. Mostrar todas as postagens

terça-feira, 20 de agosto de 2013

Haiku: Gerenciador de Pacote – Fazendo as Coisas Certas

Na esteira do assunto do momento, que é o gerenciador de pacotes do Haiku, traduzimos o artigo do Phillipe Saint-Pierre para o Unixmen que trata sobre o assunto. Uma pequena introdução para que nos preparemos para o que vem por aí.

Haiku: Gerenciador de Pacote – Fazendo as Coisas Certas
Escrito por Phillipe Saint-Pierre em 11 de junho de 2013

A comunidade Haiku está vivendo um momento muito peculiar estes dias. Eles estão testemunhando a criação do seu Gerenciador de Pacote. Considerado geralmente como a última peça faltante antes do Beta, a Haiku, Inc. atribuiu recentemente dois contratos que permitem trabalho em tempo integral neste subprojeto.
Enquanto isso, aqui está uma apresentação de como se espera que funcione:
Primeiramente, para responder a uma potencial pergunta frequente (PFAQ?), não, não é reutilizar outro formato de pacote do mundo do código aberto. Seguindo a filosofia do Haiku (e do BeOS), eles fomentam fazer as coisas certas. «Teria sido mais rápido» não é um argumento válido aqui. Realmente, várias decisões teriam sido tomadas diferentemente se fosse apenas considerado o tempo. Ao invés disso, uma solução baseada em sistema de arquivos foi criada, sendo tanto elegante como simples.
Então, como o Gerenciador de Pacote trabalha? É bastante simples. Como muitos sistemas, o Haiku permite processos para observar o conteúdo de certos diretórios. Assim, o Gerenciador de Pacote observa o conteúdo de muitos diretórios predeterminados e recebe eventos quando arquivos são adicionados ou removidos deles. Você colocaria o arquivo do pacote dentro de /boot/common/packages para uma instalação para o sistema inteiro ou /boot/home/config/packages para uma instalação para usuário único (a propósito, este último pode não fazer muito sentido uma vez que o Haiku é ainda um SO monousuário, mas é uma evidência futura).
Então, quando um pacote é movido para dentro de um daqueles diretórios, o Gerenciador de Pacote toma nota. Ele olha se existem quaisquer dependências faltantes e o conteúdo é então virtualmente extraído dos diretórios adequados. Virtualmente sim, porque /boot/common é um ponto de montagem de um sistema de arquivos chamado packagefs e seu conteúdo é realmente a união do todos os arquivos de pacotes em seu subdiretório de pacote. Em outras palavras, em /boot/common você verá os arquivos contidos em todos os arquivos HPKG situados em /boot/common/packages, e o mesmo pode ser dito para /boot/home/config.
Este processo de instalação pode ainda ser feito manualmente ao colocar aqueles arquivos utilizando o explorador de arquivos (copiar-colar, baixar diretamente para aquela localização) ou com a ajuda de uma ferramenta. Ou seja, o “mecanismo atrás dos bastidores” é igual.
Também, como você pode adivinhar, para remover um pacote, pode-se simplesmente remover arquivo do pacote de seu diretório de “pacotes” (seja ao eliminar o arquivo ou movê-lo para outra pasta). O daemon do gerenciador de pacote gerenciará casos onde dependências que foram instaladas com o pacote removido já não são requeridas e oferecer para limpar seu sistema.
Se você está interessado em aprender mais sobre este novo Gerenciador de Pacote, a principal fonte de informação sobre a matéria é o Wiki. Lá, você encontrará links para o repositório onde o código está sendo trabalhado, as especificações do formato de arquivo e políticas sobre como construir um pacote. Ele já é testável e a lista de pacotes disponíveis está crescendo. Ele deve ajudar desenvolvedores externos a tentar portar seus softwares e empacotá-los para o Haiku.

Fonte: Unixmen

sexta-feira, 18 de janeiro de 2013

Uma introdução, pelo ponto de vista do programador, do Haiku OS

O desenvolvedor Andrew Hudson publicou no site OS News, em julho do ano retrasado, um artigo analisando o Haiku OS pelo ponto de vista dos programadores. Trata-se de material importante para todos aqueles que possuem um conhecimento básico de sistemas operacionais e de programação, especialmente em C/C++, bem como para todos aqueles que desejam contribuir com código, conhecer as entranhas do sistema, conhecer os seus diferenciais em relação a outros SOs ou apenas tem curiosidade sobre o assunto. Em inglês.

quinta-feira, 17 de janeiro de 2013

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.

 

O Sistema Operacional mais intrigante de 1998, 15 anos depois: na prática com Haiku alpha 4

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. 
 

Instalação
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
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.

Fonte (em inglês):
http://arstechnica.com/gadgets/2013/01/not-quite-poetry-in-motion-ars-reviews-the-haiku-alpha-4-os/

domingo, 7 de outubro de 2012

Instalando Haiku Alpha3 no VirtualBox para o OS X


Instalando Haiku Alpha3 no VirtualBox para o OS X
http://betips.net/2009/09/25/installing-haiku-alpha1-in-virtualbox-under-os-x/
(tradução nossa)

VirtualBox é um controlador de maquinas virtuais. Isso significa que ele é um programa que finge ser um computador separado, no qual você pode carregar diferentes sistemas operacionais. Ao contrário de outros programas como Parallels ou VMWare, ele é Livre. Usando o VirtualBox permite que você experimente o Haiku sem a necessidade de comprar uma nova máquina ou particionar um disco.

Essa não é necessariamente a única maneira de instalar o Haiku no VirtualBox. É uma forma que funcionou comigo, depois de mexer muito. Sinta-se livre para adaptar estas instruções para as suas próprias necessidades.
  • VirtualBox version: 4.1.23 r80870
  • Host OS: Mac Os X 10.8.2
  • Guest OS: Haiku Alpha3  Nightly Images hrevr1alpha4-44624
  1. Instalar o VirtualBox no Mac OSX.
  2. Baixe o arquivo. Imagem ISO do Haiku. Grave em CD (Isso é opcional. Você pode inicializar diretamente a partir da ISO.)
  3. Inicie o VirtualBox e criar uma nova VM. Em “Novo”, definir o sistema operacional como “Outro” e em versão “para outros / desconhecido”. Nomeie-o como Haiku.
  4. 512 MB de memória deve ser suficiente para Haiku.
  5. Criar um "disco rígido" novo. Deixe o "boot do disco rígido" como caixa assinalada. Você pode usar um disco dinâmico(o disco vai crescendo, aos poucos em vez de ocupar o espaço total). Faça-o de 4 GB ou mais, se você pode poupar o espaço em disco.
  6. Agora clique em configurações e use o seguinte:
    1. Geral | Avançado: Desative a Área de transferência Partilhada. (não irá funcionar de qualquer maneira). Lembre-se de verificar as mudanças de tempo de execução
    2. Sistema | Placa mãe: Verifique se o CD/DVD está marcada na ordem de boot. Desmarque o disquete
    3. Sistema | Processador: Se você tem um processador Core2Duo, você pode especificar duas CPU. Se você tem um 8-core Mac Pro, saiba que eu te odeio. Não especificar mais CPU do que você realmente tem. Habilitar PAE/NX
    4. Sistema | Aceleração: Habilitar tudo
    5. Vídeo | Gráfica: Vá lá, seja ousado, coloque 32MB para jogar. Habilitar “Activar Aceleração 3D”
    6. Vídeo | Vídeo Remoto: Desative 
    7. Rede | Adaptador 1: O padrão PCNET-Fast não funciona. Há três Intel PRO/1000 adaptadores disponíveis e todos eles parecem funcionar. Você possui 4 adaptadores, pode tentar verificar todos os três adaptadores e comparar as velocidades no Haiku.
    8. Pasta Compartilhadas: Não adianta tentar utilizar. Isso requer a instalação do pacote de convidados, que ainda o Haiku não suporta.
  7. Insira o CD que você fez no passo 2, ou adicionou a ISO. Agora feche a tela de configurações e clique no ícone “Inicio”. Sua VM irá iniciar a partir do CD ou ISO e irá iniciar o procedimento de instalação. Você vai precisar inicializar o disco rígido virtual. Não se incomode com um esquema de partição, basta colocar BeFs. Continue a instalação, ao terminar, retire o CD e reinicialize. Bem-vindo ao Haiku!

sexta-feira, 5 de outubro de 2012

A Alvorada do Haiku OS

Publicamos hoje outro artigo traduzido, desta vez escrito por Ryan Leavengood, tesoureiro da Haiku Inc. e um dos principais desenvolvedores deste sistema operacional. Diferentemente do artigo anterior, este apresenta um ponto de vista mais de quem conhece profundamente o sistema, inclusive dando uma aula incrível sobre threads que me lembrou os bons tempos das aulas de Arquitetura dos Sistemas Operacionais. Este é um artigo para ser lido e relido umas trocentas vezes... ;D


A alvorada do Haiku OS

Como uma equipe de voluntários trouxe de volta um sistema operacional falido 

Por Ryan Leavengood / maio de 2012
(tradução nossa)

Era verão de 2001 e o programador de computadores Michael Phipps tinha um problema: seu sistema operacional favorito, BeOS, estava para ser extinto. Ter uma ligação emocional a uma pedaço de software pode lhe parecer estranho, mas para Phipps e muitos outros (inclusive eu), o BeOS merecia. Ele rodava incrivelmente rápido no hardware de sua época; tinha uma interface de usuário limpa e intuitiva; e oferecia um rico, divertido e moderno ambiente de programação. Em resumo, nós o achávamos muito superior a todos os outros sistemas operacionais para computador disponíveis. Mas a companhia que tinha criado o BeOS não poderia mantê-lo no mercado e seus ativos, incluindo o BeOS, estavam sendo vendidos a um competidor.
Preocupado se, sob um novo proprietário, o BeOS teria uma morte lenta e insuportável, Phipps fez a única coisa lógica que pôde pensar: ele decidiu recriar o BeOS completamente do zero, mas como código aberto. Um sistema de código aberto, ele raciocinou, não pertence a nenhuma companhia ou pessoa, então ele não pode desaparecer apenas porque uma empresa vai à falência ou os desenvolvedores principais foram embora.
Agora se você já tiver programado antes, saberá que criar um sistema operacional é um trabalho enorme. E esperar que as pessoas o façam sem pagá-las é uma maluquice. Mas para as dezenas de desenvolvedores voluntários que tem trabalhado no Haiku, tem sido um trabalho de amor. Nos 11 anos desde que o projeto começou, nós lançamos três versões alfa do software e este mês esperamos lançar o quarto e último alfa. Depois disso nos moveremos para o estágio beta, do qual esperamos sair no fim do ano, seguido pelo primeiro lançamento oficial, conhecido como R1, no início de 2013.
Mesmo agora, qualquer pessoa pode instalar e rodar o sistema operacional em um computador baseado no Intel x86. Muitos daqueles que o fizeram comentam que sentiram as versões alfa do Haiku tão estáveis quanto a versão final de qualquer outro software. De fato, de todos os muitos sistemas operacionais alternativos hoje em atividade, o Haiku é provavelmente o melhor posicionado para desafiar sistemas operacionais dominantes como Microsoft Windows e Mac OS. Para usuários e desenvolvedores, a experiência de rodar o Haiku é incrivelmente consistente e, como o BeOS, ele é rápido, responsivo e eficiente. Além do mais, o Haiku, diferentemente de seus mais estabelecidos competidores, é extremamente bom em enfrentar um dos maiores desafios da computação moderna: microprocessadores de núcleo múltiplo. Vamos dar uma olhada no porque isso acontece, como o Haiku surgiu e se o sistema operacional rodando no seu computador realmente funciona tão bem como deveria.
Primeiro, uma pequena história. Em 1991, um francês chamado Jean-Louis Gasset e muitos outros ex-empregados da Apple fundaram a Be Inc. porque queriam criar um novo tipo de computador. Em particular, eles buscaram escapar da armadilha de retro-compatibilidade que testemunharam na Apple, onde cada nova versão de hardware e software tinha que levar em conta anos de sistemas legados, verrugas e tudo. O primeiro produto da companhia foi um computador de mesa chamado de BeBox. Não encontrando outro sistema operacional que fosse de encontro a suas necessidades, os engenheiros da Be escreveram o seu próprio.
Lançado em outubro de 1995, o BeBox não durou muito. O BeOS, por outro lado, rapidamente encontrou um pequeno mas leal séquito e logo estava rodando em PCs baseados no Intel x86 e clones do Macintosh PowerPC. Naquele momento a Apple já considerava o BeOS como um substituto do seu próprio sistema operacional. A companhia eventualmente lançou uma versão despojada do BeOS para aparelhos de Internet, mas isso não foi o suficiente. Em 2001, a Palm adquiriu a Be por divulgados US$ 11 milhões.
Assim que a venda da Be estava sendo finalizada, Phipps lançou o projeto Haiku, que na época era conhecido como OpenBeOS (o nome mudou poucos anos depois).
Desde o princípio, Phipps decidiu que o foco singular do projeto seria ser replicar o último lançamento oficial do BeOS, conhecido como R5. Em retrospectiva, esse foi um golpe de gênio. Esforços em código aberto, geralmente feitos por diversão no tempo livre das pessoas, pode algumas vezes fracassar ou se desviar sem mesmo lançar algo tangível. O Haiku evitou esse destino porque todos os seus desenvolvedores acreditavam no objetivo de replicar o R5.
Ainda assim, Phipps e aqueles que se juntaram a ele tiveram seu trabalho repartido entre eles. Um sistema operacional é extremamente complexo, especialmente um tão abrangente como o BeOS, do qual várias camadas e aplicativos tinham sido projetados desde o início para trabalhar juntos. Alguns dos engenheiros mais talentosos em Silicon Valley tinham desenvolvido o software ao longo de mais de dez anos. Recriar tal sistema com uma equipe formada unicamente por voluntários trabalhando no seu tempo livre era uma ideia maluca. Mas foi assim que o Linux surgiu, bem como os softwares GNU da Free Software Foundation, do GNU C Compiler ao GnuCash, um programa de contabilidade.
Bem como as camadas de um bolo, um sistema computacional consiste do hardware, um sistema operacional que gerencia o hardware e os aplicativos que rodam dentro do sistema operacional, tais como navegadores Web, editores de documentos e coisas divertidas como jogos. O sistema operacional é também o meio pelo qual os programadores dão instruções ao hardware.
Por sorte, o BeOS foi escrito de maneira modular, fazendo-o relativamente simples de desenvolver, testar e então substituir cada componente do BeOS com seu equivalente em código aberto. Umas poucas partes do BeOS já tinham sido lançadas pela Be como código aberto, tais como o Tracker e o Deskbar, os quais são equivalentes ao Explorer e a Barra de Tarefas do Windows e ao Finder e Dock do OS X. Um dos primeiros blocos de código que os voluntários abordaram foi o kit do protetor de tela, o qual tinha uma função muito simples mas também um monte de peças móveis. Dentre outras coisas, ele tinha que constantemente monitorar a atividade no teclado e no mouse, carregar as definições da proteção de tela nos momentos certos e pedir a senha quando a proteção de tela é desligada. Uma vez que todas as peças haviam sido bem fixadas, Phipps substituiu o protetor de tela do BeOS com a versão em código aberto e para surpresa e alegria de todos, ele funcionou. Mais importante, foi uma prova de conceito que mostrou aos desenvolvedores que eles podiam substituir cada módulo no BeOS e saber que seria totalmente compatível.
Em 2008 atingimos um marco. O Haiku, como qualquer peça de software, é escrito em código fonte; para convertê-lo para instruções binárias que o computador possa processar, você precisa compilá-lo. A descoberta foi que finalmente fomos capazes de compilar o código fonte do Haiku a partir do próprio sistema; os programadores referem-se a esta característica como “self-hosting”. Este passo é crítico no desenvolvimento de qualquer sistema operacional porque, sem ele, haverá sempre dependência de outros sistemas.
Mesmo com o desenvolvimento em curso, Phipps estava trabalhando para criar um lar organizacional para o Haiku, finalmente fundando a Haiku Inc. como uma organização sem fins lucrativos em 2003. Além de supervisionar o projeto e receber donativos, a Haiku Inc. detém os direitos autorais e as marcas registradas do sítio web do Haiku, da logomarca e, naturalmente, do código fonte. Todo o código fonte do Haiku é agora licenciado sob o que é chamado de Licença MIT, a qual permite o uso integral e gratuito do código por praticamente todo mundo, incluindo companhias privadas e outros projetos de código aberto.
Naturalmente, o time do Haiku também está consciente de não infringir as patentes do BeOS, as quais ainda estão vigentes. Em geral, nós mantemos uma relação amigável com a companhia japonesa de software Access, que agora detém os direitos do BeOS; por exemplo, a companhia permitiu-nos publicar a documentação do BeOS em nosso sítio web e nunca contestou quaisquer dos nossos esforços para replicar a tecnologia do BeOS. Poderia a Access ou alguma outra corporação que acredite ter o direito ao nosso código escolher processar um pequeno projeto de código aberto como o nosso? Financeiramente, não faria muito sentido e geraria também muita publicidade ruim. Mas vamos ter que esperar pra ver. Dado o atual estado frenético de litígios de propriedade intelectual nos Estados Unidos e outros países, nenhum projeto de software pode ser considerado completamente imune a problemas legais.
Em 2007, Phipps anunciou que estava deixando o projeto por motivos pessoais e um novo grupo de pessoas assumiu o comando da Haiku Inc. Assim como Phipps tinha antecipado no início, a perda de um líder não condenou o projeto. Eu sou atualmente o tesoureiro e, junto com os outros executivos da Haiku Inc., faço parte da sua diretoria. Mantivemos o ritmo e na última reunião em Dusseldorf, Alemanha, no início de abril, os desenvolvedores do Haiku trabalharam na iminente versão alfa.
Neste ponto, nós temos replicado o BeOS R5 tão precisamente que os aplicativos BeOS legados, agora com mais de 10 anos de existência, podem rodar no Haiku. Quando o projeto começou, muitos pensaram que este tipo de compatibilidade seria impossível. E em muitas áreas chave, o Haiku superou seu antecessor. Por exemplo, o Haiku suporta mais idiomas que o BeOS e é mais fácil de internacionalizar de outras maneiras também. Ele também pode manusear placas de vídeo modernas, processadores mais novos, acesso à rede sem fio e suporta mais memória do que o BeOS.
E em termos de programação, o Haiku torna muito fácil o desenho de interfaces de usuário para aplicativos, porque ele tem uma ferramenta de layout embutida que permite colocar automaticamente ícones e outros dispositivos na tela. Com o BeOS, por exemplo, os desenvolvedores tinham que especificar cada mínimo detalhe do layout e alinhar à mão botões com caixas de verificação. Estas e outras melhorias tem permitido ao Haiku permanecer relevante, apesar do ritmo ultra-rápido das inovações em hardware e software.
Mesmo assim, você pode estar se perguntando: com Windows, Mac OS X, centenas de versões do Linux e numerosos sistemas operacionais móveis, o mundo realmente precisa do Haiku?
Sim, precisa, por muitas razões. Tal como na Natureza, vírus de computador florescem em uma monocultura; e porque tantos de nós usam computadores Windows, seus vírus  encontram abundância de vítimas. Além disso, se um sistema operacional tem um monopólio, seus criadores têm poucas razões para melhorar seu software (a concorrência do navegador Mozilla Firefox é, afinal, em grande parte o que levou a Microsoft a atualizar o Internet Explorer). E a diversidade promove interoperabilidade porque obriga os desenvolvedores de software a criar código que roda bem com outros sistemas. Quando existe muito pouca concorrência, não existe incentivo para fazê-lo.
Mas o Haiku faz mais do que apenas expandir o conjunto genético dos sistemas operacionais. Uma das primeiras coisas que as pessoas percebem sobre ele é que não se parece em nada com o Windows, OS X ou Linux. Ele é único. O Linux, por exemplo, é baseado em torno de um núcleo – chamado de kernel – que foi originalmente desenhado para uso em servidores e apenas mais tarde modificado para sistemas desktop. Em consequência, o kernel, por vezes, dá pouca atenção à interface do usuário, o que os usuários Linux experienciam como atrasos irritantes quando seus computadores estão fazendo coisas especialmente pesadas, como queimar um DVD ou compilar código. O kernel do Haiku sempre foi voltado para sistemas desktop e por isso sempre dá prioridade a qualquer coisa que esteja acontecendo na sua interface gráfica de usuário.
Entre o kernel e a interface gráfica de usuário está o que é conhecido como interface de programação de aplicativos ou API. Uma API é o que os desenvolvedores de aplicativos usam para acessar outros sistemas de software e o desenho daquela API pode afetar tanto os desenvolvedores como os eventuais usuários de seus softwares. O Haiku possui apenas uma API. O Linux, em contraste, possui centenas de APIs e sobre elas muitas interfaces de usuário, então você não pode apenas trocar suavemente de uma versão do Linux para outra. A versão que você utiliza pode alterar significativamente a aparência da tela do seu computador, o modo como os programas inicializam e executam e várias outras coisas, tudo o que torna bastante difícil desenvolver software que sempre funciona  bem em todos os sistemas Linux.
Todos os componentes do Haiku são desenhados para trabalhar juntos desde o início; isso inclui seus aplicativos, como o tocador de mídia e o navegador Web. Seu código fonte até usa um estilo consistente, algo que os desenvolvedores verdadeiramente apreciam, porque lhes permite chegar rapidamente à velocidade. Um desenvolvedor escrevendo código para o Haiku pode estar seguro de que ele irá funcionar e agir da mesma maneira em todas as instalações do Haiku. Embora o Haiku seja de código aberto, sempre existirá apenas uma versão oficial. Tudo isso combina para oferecer uma experiência de usuário muito consistente.
O que realmente destaca o Haiku, entretanto, é sua eficiência e velocidade. Em meu computador de três anos de idade, o Haiku inicializa de uma partida a frio em 10 a 14 segundos e quando em execução ele utiliza cerca de 170 megabytes de RAM. Comparado com outros sistemas operacionais, é fantástico ao maximizar os recursos computacionais disponíveis. O Haiku demonstra ser rápido e responsivo mesmo quando rodando em sistemas antigos que seriam considerados obsoletos por não poderem mais lidar com a ineficiência e inchaço dos outros sistemas operacionais.
Muito da eficiência e velocidade do Haiku é um resultado direto do seu legado BeOS. O BeOS foi desenhado desde o início para fazer pleno uso de threads, o que em termos de computação representa sequências de execução de código. Assim como um pano consiste de muitos fios (threads) tecidos juntos, um sistema operacional é feito de threads e eles têm de partilhar tempo no processador. Geralmente, existe um thread para cada aplicativo e um também para a interface de usuário do sistema operacional. O problema é que a interface de usuário em particular necessita mais do que um thread. Aquelas mensagens “o aplicativo não está respondendo” no Windows e a “bola de praia da morte” (spinning pinwheel) no OS X – que a maioria de nós experimentamos com alguma regularidade e frustração – são o resultado direto de usar apenas um thread para a interface do usuário. Quando aquele thread fica muito carregada de trabalho ou tem outro problema (como uma rede lenta), a interface inteira do aplicativo fica travada.
Isso não acontecia no BeOS e não acontece no Haiku. Onde o BeOS seguiu à frente dos outros sistemas operacionais de sua época (e onde o Haiku está ainda á frente dos sistemas operacionais contemporâneos) é que cada aplicativo individual utiliza muitos threads. O núcleo do próprio aplicativo tem um thread e cada janela que o aplicativo cria tem um thread. Embora isto possa tornar o código um pouco mais complicado para escrever, o resultado é que os aplicativos quase nunca atrasam ou travam.
Este sistema altamente entremeado significa que o Haiku pode fazer maior uso de múltiplos processadores ou núcleos de CPU, que são agora onipresentes. O kernel Haiku permite a cada thread rodar em seu próprio núcleo ou processador – mesmo threads dentro do mesmo aplicativo. Adicionar mais threads para outras tarefas, como recuperar dados de uma rede, é também simples. Outros sistemas operacionais fazem uso de núcleos múltiplos apenas quando executando muitos aplicativos ao mesmo tempo ou quando um aplicativo em particular tem um código especial para multithreading adicionado a ele. Mas este código é difícil de escrever, então a maioria dos aplicativos não o possuem.
O Haiku simplifica o processo de escrever código para multithread pela ocultação da maioria das interações de threads com as quais o desenvolvedor não precisa se preocupar. Uma grande parte do que faz este trabalho é o uso extensivo de message passing. Digamos que o Thread A e o Thread B em um aplicativo querem recuperar uma parte dos dados do Thread C. Em vez de acessar diretamente aqueles dados, os Threads A e B passam cada um uma mensagem, as quais são colocadas em uma fila central de mensagens e distribuídas com uma ordem específica. Sem esse mecanismo, os dois threads iriam tentar acessar o Thread C simultaneamente, gerando um travamento fatal, no qual ambos esperariam indefinidamente. Com o Haiku, mensagens podem ser passadas dentro de um aplicativo e também de outros aplicativos. O código de message-passing do Haiku então gerencia todas as complexidades do threading sem que o desenvolvedor precise fazê-lo.
A principal razão pela qual o BeOS utilizou threads múltiplos foi porque o BeBox foi concebido como uma plataforma de mídia. Um dos motes de marketing do BeOS, de fato, era “the media OS”. Embora isso possa ter sido um pouco de exagero, o sistema era muito bom ao lidar com multimídia. Em uma demonstração típica do produto, um BeBox executava dezenas de diferentes vídeos ao mesmo tempo, sem nenhum atraso ou perda de quadro, enquanto o sistema ainda permanecia responsivo. A eficiência do sistema também permitia baixa latência em processamento de áudio. Enquanto o Haiku ainda precisa de trabalho nessas áreas, está bem à frente de muitos outros sistemas.
Outra vantagem que o Haiku tem sobre outros sistemas operacionais é que ele faz uso extenso de um sistema de arquivos semelhante a um banco de dados, o qual permite a qualquer arquivo ter vários atributos associados a ele. Estes atributos podem ser indexados e consultados exatamente como em um banco de dados contemporâneo. Por exemplo, cada mensagem de e-mail no Haiku é arquivado junto com atributos tais como o assunto, o nome do remetente e endereço, e o nome e endereço do destinatário. A partir do gerenciador de arquivos do sistema operacional, conhecido como Tracker, você pode pesquisar por quaisquer daqueles atributos. Os atributos também permitem extrair as informações da música a partir de arquivos MP3 e então organizar e pesquisar facilmente sua biblioteca musical através do Tracker. Entradas no livro de endereços do Haiku, conhecido como arquivos People, consistem quase que inteiramente de atributos.
Ter seu sistema operacional a organizar seu correio eletrônico e livro de endereços oferece uma enorme vantagem: você não mais ficará amarrado a apenas um programa para gerenciar seu correio e contatos. Qualquer pessoa que tenha tentado extrair velhos e-mails de um inchado arquivo de correio do Microsoft Outlook irá entender a beleza desta abordagem.
Em vez de ter seu correio trancado em um formato proprietário que é acessível a partir de apenas um programa, o Haiku permite a você utilizar qualquer programa que desejar – você ainda pode utilizar múltiplos programas no mesmo conjunto de correios. Similarmente, os arquivos People do Haiku podem ser editados e gerenciados por vários programas e podem ainda ser editados de dentro do Tracker. Nenhum outro sistema operacional implementou com tamanho sucesso um sistema de arquivos semelhante a banco de dados.
Por todas as suas capacidades, ao Haiku falta ainda algumas coisas importantes que os usuários vem esperando. Por exemplo, a maioria dos sistemas operacionais de hoje têm interfaces que são aceleradas por hardware. O que permite gráficos extravagantes como sombras das janelas, bordas transparentes e miniaturas de conteúdos para serem tratadas de uma forma rápida e eficiente utilizando placas de vídeo. Usuários dos sistemas operacionais dominantes também tem um largo conjunto de aplicativos à escolha. O Haiku neste momento é limitado a poucos aplicativos criados especificamente para ele ou que sobraram do BeOS.
E como outros sistemas operacionais de código aberto, o Haiku sofre da falta de drivers de hardware. Placas de vídeo modernas, impressoras e outros componentes são complicados – eles são como computadores em miniatura à sua maneira e requerem complexas peças de software, chamados drivers, para funcionar. O driver age como uma ponte entre o sistema operacional e o hardware. Mas nos dias de hoje existem tantos tipos, marcas e modelos de hardware que é difícil para os desenvolvedores de código aberto acompanharem.
Felizmente, o Haiku pode criar a partir do trabalho já feito pelos milhares de desenvolvedores que trabalham no Linux, FreeBSD e outros sistemas operacionais de código aberto. O Haiku já faz uso da rede do FreeBSD e drivers de rede sem fio através de uma interface de tradução especial. Também está em curso o trabalho de incorporar o novo sistema Gallium3D, o qual parece ser o futuro para drivers de vídeo no Linux.
Além do mais, muitos dos pontos fortes do Haiku provavelmente nunca serão acompanhados pelos principais sistemas operacionais, ou pelo menos não tão cedo. Aplicativos Linux não são projetados para usar multithread na mesma medida do Haiku e, portanto, não podem tirar máximo proveito do moderno hardware multicore. Com o lançamento do Snow Leopard do seu OS X há dois anos atrás, a Apple adicionou uma nova tecnologia, chamada Grand Central Dispatch, que torna mais fácil para os aplicativos utilizar threads múltiplas. Mas existe ainda apenas um thread para a interface de usuário da aplicação, então a “bola de praia da morte” permanece.
O último lançamento do Windows 7 é uma grande melhoria sobre seu antecessor, mas ele ainda tem muitas questões, como a inconsistência de interface generalizada e sua simples sobrecarga de informação. O painel de controle sozinho é o bastante para causar dor de cabeça ao usuário. O Windows é enorme, também: uma instalação pelada do Windows 7 Ultimate irá consumir 20 gigabytes de armazenamento. Ainda que você inclua as dezenas de aplicativos livres que vem com o Haiku, instalar o sistema operacional irá custar a você apenas cerca de 700 MB – um trigésimo do espaço requerido pelo Windows 7. E quanto a ser um sistema livre e aberto, nem Windows nem Mac OS nunca vão ser.
Finalmente, o Haiku representa uma forma diferente de ver seu computador pessoal. Se você acha que software não deveria ser cheio de bugs, incompatibilidades e ineficiências, se você odeia ser forçado a trocar seu hardware e software a cada poucos anos porque “atualizações” os tornam obsoletos, e se você acha que a ideia de usar um sistema operacional que é rápido, responsivo e simples é refrescantemente nova e atraente, então talvez, apenas talvez, o Haiku seja para você.
Este artigo apareceu originalmente impresso como “The Dawn of Haiku”.

Sobre o autor
Ryan Leavengood é um consultor de informática em Boynton Beach, Flórida, que se especializou em desenvolvimento de sítios web com Ruby on Rails. Ele começou a se envolver no esforço open-source para criar o sistema operacional Haiku em 2003 e é agora o tesoureiro do grupo. Nenhum sistema operacional é perfeito, ele observa, mas “alguns são realmente imperfeitos. Eu percebi que qualquer sistema operacional com o qual trabalhei não podia ser pior do que aquele que eu já estava usando”. Quando Leavengood não está programando, ele e sua esposa, Francesca, cuidam de seus quatro gatos, um São Bernardo e um jardim de plantas nativas da Flórida.

quinta-feira, 4 de outubro de 2012

O Haiku poderia mudar o mundo

Traduzimos o presente artigo da OSnews que faz uma abordagem geral sobre o Haiku, inclusive do ponto de vista de um usuário Linux. Trata-se de uma ótima apresentação do sistema, que permite ao iniciante ter uma prévia do que poderá encontrar nesse excelente sistema operacional.

O Haiku poderia mudar o mundo
postado por Razvan T. Coloja em seg., 3 Jan 2011 23:30 UTC
(tradução nossa)

Para entender o que são os sistemas operacionais BeOS e Haiku, nós temos primeiro que lembrar que o BeOS foi desenvolvido tendo em mente o usuário multimídia. O BeOS desejou ser o que o OS X se tornou hoje: um sistema fácil de usar e atrativo. No entanto, o BeOS era um sistema de nicho, destinado ao usuário faminto por multimídia. A porcentagem de aplicativos de áudio e vídeo disponíveis para o Haiku é maior que aqueles no Linux, OS X ou Windows e o trabalho interno do sistema operacional foi criado de tal maneira que o mesmo apaixonado por multimídia acharia fácil trabalhar com a interface de usuário e arquivos. Cada aplicativo pode interagir com outros do mesmo tipo. Uma seleção de um arquivo WAVE pode ser arrastada de um editor de som para a área de trabalho, a fim de criar um arquivo de áudio. Aplicativos de áudio podem interagir uns com os outros através do Haiku Media Kit – o correspondente do servidor de som do Linux. Aplicativos como o Cortex são o exemplo perfeito de como o BeOS e o Haiku lidam com arquivos multimídia: você pode ter mais de uma placa de som e usar cada uma das placas independentemente ou separadamente.Você pode vincular uma placa de som ao Áudio Mixer, iniciar um aplicativo de bateria eletrônica e vinculá-lo ao mesmo Mixer. Se desejar reproduzir o que quer que tenha criado com o aplicativo de áudio, tudo o que tem que fazer é arrastar o microfone e vinculá-lo ao ícone do aplicativo no Cortex.
Tudo no Haiku está em torno da simplicidade. Você pode arrastar e soltar um arquivo dentro de uma janela de aplicativo e se o programa puder manusear o tipo de arquivo, ele irá abrí-lo instantaneamente.
Quando o BeOS falhou em tornar-se um sistema operacional comercial, o time do Haiku assumiu o desenvolvimento e criou um BeOS do zero, tornando-o um sistema operacional de código aberto. Haiku é um SO compatível com POSIX que à primeira vista parece ser um clone entre o OS X e o Linux. Enquanto a interface de usuário pode parecer não tão polida como o Aqua do OS X e a base de aplicativos pode ser menor do que a do Windows, em compensação o Haiku é o mais rápido de todos eles.
Imagine inicializar uma distribuição Fedora cheia de funcionalidades com a velocidade de uma simples distribuição Linux GeeXBox. No VirtualBox, com 512Mb de memória RAM base e um CPU de 1,83GHz, o Haiku inicializa em exatos dez segundos do menu do bootloader até abrir uma área de trabalho pronta para uso. Desligar o sistema operacional leva um total de três segundos na mesma máquina virtual. O Haiku também trabalha em máquinas antigas e o tempo de inicialização varia alguns segundos a mais com um processador de 500MHz e 256Mb de memória SDRAM. Com apenas 358 Mb de espaço em disco rígido ocupado pela instalação padrão, o Haiku não necessita de uma partição SWAP como o Linux, mas ainda assim pode usar um arquivo SWAP para memória virtual.
O sistema de arquivos nativo que o Haiku utiliza é chamado BFS (Be File System), totalmente compatível com journaling de 64-bits. Assim como EXT3 ou XFS, diferencia maiúsculas de minúsculas e pode ser usado em dispositivos de armazenamento de mídias. Mais importante, o BFS tem suporte para atributos estendidos de arquivo (metadados) e tem capacidade de indexação e consulta. De muitas maneiras, o BFS age como um banco de dados relacional. BFS pode manusear acima de dois exabytes quando vem com limite de tamnho de arquivo. Você pode encontrar suporte ao BFS no kernel do Linux sob o nome BeFS (por razões práticas, para não confundir com o UnixWare Boot File System que possui a mesma abreviação que o sistema de arquivos do Haiku).
O sistema operacional em si é desenvolvido em C++ e tem uma API orientada a objetos. O servidor individual e as APIs são conhecidas pelos usuários BeOS como “kits”. Existe um Kit de Rede que provê todas as funcionalidades necessárias para acesso à rede. Existe um Kit de MIDI que manipula o protocolo MIDI. Este último é também ligado ao Kit de Mídia que manipula todas as coisas de áudio e vídeo.
Uma das diferenças entre o Haiku e outros sistemas operacionais UNIX-like é o Kit de Tradução. Não tem nada a ver com linguagem mas, ao invés disso, é uma coleção de bibliotecas que lidam com arquivos de imagem específicos. O Kit de Tradução é composto por módulos, cada qual designado para ler, escrever, converter um certo formato de arquivo gráfico. Para ser capaz de visualizar arquivos JPG, por exemplo, você precisa baixar um dos binários do Tradutor JPEG e copiá-lo em /boot/system/add-ons/Translators. Uma vez feito isso, não é necessário reiniciar o servidor do Kit de Tradução para que as novas definições tenham efeito. Você será capaz de visualizar arquivos JPEG instantaneamente, desde que o arquivo binário esteja em seu lugar. Bibliotecas do Kit de Tradução – também chamadas “Tradutores” - são pré-instalados para os tipos mais comuns de arquivos de imagem que variam do GIF ao SGI e RAW. Tradutores podem ser baixados separadamente a partir do BeBits, o maior repositório de software do BeOS e do Haiku.
O Haiku mantém as coisas simples, com aplicativos simples e opções de configuração simples. Com um mínimo de esforço você pode instalar e aplicar algo e aquele algo deve funcionar como esperado – seja um aplicativo, definição de sistema ou consulta de pesquisa.
O sistema operacional foca menos na linha de comando já que é mais fácil ao usuário utilizar a rápida interface gráfica. Existe um porte do BASH no Haiku com um conjunto de binários UNIX comuns como diff, tar, rm, route, grep, ssh ou traceroute já disponíveis. Assim como as distribuições Linux, o BeOS também tinha um sistema de pacotes. Arquivos PKG poderiam ser instalados com a ajuda do SoftwareValet. Não haviam repositórios online disponíveis naquela época e o aplicativo instalador podia manusear arquivos apenas da perspectiva da interface gráfica. O Haiku está tentando trazer de volta os dias dos arquivos PKG com um projeto que será escrito na API do Haiku. Hoje, a maioria dos softwares disponíveis para o Haiku vem em pacotes ZIP, com muitos projetos de código aberto sendo portados do Linux e do BSD. Inclusive drivers de dispositivo e aplicativos. QEMU, ScummVM, HandBrake, os drivers da família Realtek RTL8132 são apenas alguns deles.
A estrutura de pastas do Haiku é ligeiramente diferente daqueles que costumamos ver no Linux, uma vez que o sistema operacional foi desenvolvido com o usuário único em mente.
Algumas pessoas podem achar estranho que um sistema operacional UNIX-like não tenha acesso multiusuário implementado. Isto é apenas mais uma coisa que separa o Haiku do OS X, Solaris e Linux. Sua estrutura de pastas pode assemelhar-se ao Linux e OS X, ele pode ter um prompt BASH, mas no fundo o Haiku é um sistema operacional monousuário. O proprietário dos arquivos será sempre o “baron” e o grupo em que você estará será sempre “users”. Isto porque os desenvolvedores queriam usar a estrutura UNIX-like mas não viram necessidade para acesso multiusuário nos tempos do BeOS.
Uma vez que não possui suporte a multiusuário – ele não possui pasta /root – o usuário atual será o primeiro e único administrador do sistema. A raiz do sistema guarda os nomes de volume. Como tudo é tratado como um arquivo, assim como no Linux – apenas de um ponto de vista do usuário único – os nomes de volume aparecem como um disco na raiz do sistema de arquivos. O principal volume de disco é também chamado /boot e contém a pasta /home, as pastas /preferences e /system, a pasta de aplicativos é chamada /apps e mais outras três pastas de sistema. A pasta /develop, por exemplo, guarda os arquivos de cabeçalhos e bibliotecas de sistema necessários para compilar binários, as ferramentas de compilação e documentação relativa. Por padrão, a pasta /boot/home possui a seguinte estrutura simples:
/boot/home/config
/boot/home/mail
/boot/home/queries
.bash_history
O Haiku mantém as coisas organizadas de uma maneira efetiva, não empilhando pastas no espaço de trabalho do usuário. Arquivos de sistema que o usuário não técnico não deseja ver são mantidos longe em outras partes do sistema.
/boot/home/config mantém os arquivos de configuração do usuário, os adicionais do Tracker, os arquivos do Tradutor, tudo que pertence ao usuário. No Haiku, muitos dos arquivos são vinculados simbolicamente a outros e muitas das pastas aparecem até mesmo duas ou três vezes em diferentes partes do sistema, num bem pensado mas caótico ecosistema técnico.
Existem dois componentes que definem a área de trabalho do Haiku: o Tracker e o Deskbar. Do ponto de vista de um usuário Linux, o Tracker é um cruzamento entre o Nautilus e o próprio GNOME. Ainda assim, é mais do que um gerenciador de arquivos e junto com o Deskbar ele forma o conjunto completo de componentes da área de trabalho do Haiku. O Tracker pode gerenciar operações de arquivos mas também pode decidir quais volumes na área de trabalho são visíveis. É um gerenciador de arquivos mas também uma interface para algumas das definições de sistema mais utilizadas do Haiku, como o tamanho dos ícones SVG (Simple Vector Graphics) ou acesso aos adicionais do usuário (que poderia ser comparado à função de script do Nautilus). O Deskbar por outro lado integra o Tracker e o Registrar, este manuseando os processos dos aplicativos.
Alguns aplicativos também tem a habilidade de se desvincular de suas janelas e se fixar na área de trabalho. Eles são chamados Replicantes e você pode identificá-los por uma pequena seta encontrada no canto inferior direito. Você pode arrastar essa seta e incorporar uma cópia do aplicativo na área de trabalho.
Do ponto de vista da segurança, sendo um sistema operacional monousuário construído numa estrutura UNIX-like, o Haiku ainda não apresenta riscos de segurança. Seu principal uso é para computador desktop e praticamente não existem servidores rodando o sistema operacional Haiku. Tendo uma base de usuários pequena e sendo compatível com POSIX, não existem vírus para ele. A única coisa que se aproxima de um malware seria um script BASH malicioso ou uma bomba lógica. Não existe tela de login para proteger o usuário antes de chegar à área de trabalho e isto poderia ser considerado um risco. O que poderia ser superado com a ajuda de uma biblioteca chamada Real Multi User ou com um software de terceiros como o Lock Workstation.
O Tracker pode gerenciar atributos estendidos. No modo de visualização detalhada de arquivos, o Tracker exibe etiquetas ID3 obtidas de arquivos MP3 como atributos editáveis e é uma maneira de, em poucos cliques, adicionar atributos personalizados a arquivos multimídia.
Outra coisa interessante sobre o Haiku e o sistema de arquivos BFS é que – como eu mencionei antes – ele age como um banco de dados. Toda vez que você procura por um arquivo, um arquivo de consulta é criado, o qual mantém os resultados para aquela consulta específica que foi feita. Você pode mais tarde refazer aquela pesquisa em particular simplesmente clicando no arquivo que é salvo automaticamente em /boot/home/queries. A velocidade pela qual as consultas são realizadas graças ao sistema de arquivos BFS é simplesmente incrível. Você pode comparar com o quão rápido obtém resultados de um sistema de arquivos pré-indexados Linux pelo uso do locate e updatedb. Consultas podem ser manipuladas e editadas assim que a fórmula de pesquisa inteira é exibida ao usuário, na forma de um verdadeiro banco de dados. Um antigo projeto chamado TrackerBase, desenvolvido por Scot Hacker, pode pegar aqueles resultados de consulta e transpô-los para o formato HTML usando apenas um servidor web nativo do Haiku chamado PoorMan. Você pode entender melhor as consultas como uma variação menos poderosa dos resultados de um servidor SQL.
Geralmente, os aplicativos em interface gráfica do Haiku tem um rastro de memória muito pequeno. Isto é uma reminiscência da era BeOS R5 (1998-2001) quando a maioria dos aplicativos eram simplistas e não requeriam muitos recursos para rodar. As coisas mudaram agora no Haiku com o surgimento de softwares famintos por recursos como o Firefox e consequentemente os portes para o Haiku daqueles aplicativos de código aberto. O Haiku vem empacotado com o Firefox Bon Echo (versão 2.0.0.21pre). O BeZilla utiliza 52940 KB de memória quando aberto. Isto realmente tem um impacto na performance global de um sistema operacional que tem sido usado para rodar softwares leves.
O objetivo do Haiku era manter compatibilidade retroativa com os binários do BeOS R5 de maneira que aqueles aplicativos desenvolvidos para a última versão do BeOS pudessem rodar sem problemas nele. Lamentavelmente, desde que o desenvolvimento do BeOS encerrou em 2000, aqueles aplicativos de terceiros que rodam agora no Haiku foram desenvolvidos para uma época que remonta há dez anos atrás.
O sistema operacional está atualmente em estágio Alfa, com um porte do WebKit e um protótipo de pilha WiFi em desenvolvimento. Diferentemente do Linux, onde a base de desenvolvedores está sempre crescendo, o progresso do Projeto Haiku levou tempo para alcançar seu marco, com rumores de um release candidate a ser lançado no fim do ano.
Sendo uma alternativa de código aberto do BeOS, o Haiku segue os mesmos passos como o sistema operacional da Be Inc. foi desenvolvido. Ele mantém-se afastado de outros projetos como AtheOS, Syllable, QNX RTOS ou MenuetOS por causa de sua longa história. Lamentavelmente, dado a falta de desenvolvedores e com o interesse no BeOS arrefecendo ao longo dos anos, o projeto Haiku tem tido um progresso lento. O que não significa que o progresso não foi constante.

Razvan T. Coloja é um freelancer romeno de 31 anos. Ele publicou artigos de TI na Linux.com, Linuxforums.org, na Linux Magazine, Ubuntu User Magazine, MyLINUX, MyComputer e Connect Magazine. Atualmente ele trabalha como especialista em SEO para uma empresa de webdesign.