Sistema Operacional Haiku
Adão Rafael Xavier1, Alexandre Amador1, Alexandre Peter1, Fausto Levandoski1
1
Universidade do Vale do Rios dos Sinos (UNISINOS)
Curso Tecnólogo em Segurança da Informação
Av. Unisinos, 950 – 93.022-000 – São Leopoldo– RS – Brasil
{rafaxavier, alexandre.amador, alexpeterpan, farole}@gmail.com
Abstract.This article aims to show a little brief overview of Open Source
Operation System Haiku and one aspect the security of information that
show it.
Resumo. Este artigo tem por objetivo apresentar uma visão geral do sistema
operacional Open Source Haiku e um aspecto de segurança da informação
que apresenta.
Palavras-chave: BeOs, Haiku, segurança, sistemas operacionais.
1. Introdução
Neste artigo apresentaremos um estudo sobre o sistema operacional Haiku, com uma
breve história e suas principais características, bem como seu maior objetivo ligado as
questões de segurança de um sistema operacional no que tange seu sistema de arquivo
e chamada de sistemas. Este estudo irá abranger práticas sobre o Haiku em um estudo
de caso.
Em seu desenvolvimento, serão abordados alguns itens como: visão geral que
dará uma abrangência rápida sobre a história e o futuro deste SO (Haiku),
características e as funcionalidades, aspectos de segurança, sistema de arquivos,
chamada de sistemas e um estudo de caso que contará com uma parte prática que
mostrará as funcionalidades e vulnerabilidades deste sistema.
A apresentação prática será ilustrada neste artigo em forma de fotos.
2. Visão Geral
Ao contrário do que muitos pensam o BeOS não foi baseado em Unix, mas sim foi
escrito do zero. Ele visava ser um sistema operacional extremamente rápido, e
econômico, pois através do uso de vários processadores baratos iria se alcançar o
desempenho de um mais caro, por isso ele foi desenvolvido para ser Multi Threading,
e realmente conseguiu. Enquanto o Sistemas Windows mais atuais conseguem um
desempenho de processamento 70% melhor usando 2 processadores, o BeOS
conseguia 99%. O desenvolvimento do BeOS foi descontinuado em 2001, ano em que
a Be Incorporated foi adquirida pela Palm Incorporated.
Com a descontinuidade do BeOS surgiu a necessidade de se desenvolver um
sistema operacional capaz de suportar as aplicações existentes e de dar apoio a
comunidade de usuários. Nasce então o OpenBeOS que por questões de propriedade
intelectual o foi alterado para Haiku.
O nome "Haiku" que significa mensagens poéticas japonesas que tenha 5, 7 e
5 sílabas respectivamente, comentando sobre a natureza ou as estações, já para o
sistemas operacional "Haiku" surgiu para as mensagens de erros pelo navegador e
outros programas, associando ao nome do sistema operacional.
O Haiku é desenvolvido pela Haiku Incorporated, empresa de sem fins lucrativos,
fundada em 2003. O sistema operacional recebe apoio para desenvolvimento além de
sua equipe do projeto do GSoC (Google Summer of Code).
A base do sistema operacional Haiku foi desenvolvida em C++ e tem uma API
(Application Programming Interface ou Interface de Programação de Aplicações)
orientada a objetos. Atualmente Haiku se encontra na versão Alpha 2.
Figura 1: Ambiente do desktop do Haiku
Fonte: haiku-sistemas-operacionais – ricardoz
3. Característica e Funcionalidades
O Haiku foi e continua sendo projetado para ser um ambiente de trabalho de fácil
utilização, eficaz e leve, no qual suas especificações técnicas, mínimas exigidas,
confirmam isso.
O Haiku exige um computador Pentium III com 256MB de memória RAM e
HD com 2 GB de espaço de armazenamento, ou seja, não chega nem no mínimo
utilizado hoje no mercado. Contudo, ele funciona apenas em sistemas x86-32 bits da
Intel, AMD ou compatíveis.
Apesar da modesta configuração mínima exigida pelo sistema, o mesmo foi
desenvolvido para gerenciar processadores multitarefa de forma muito eficaz. O
sistema possui diversos aplicativos e jogos instalados em seu sistema, além de possuir
o navegador Bom Echo, desenvolvido pela Mozila, que apresenta a mesma estrutura
do Firefox e complementa com diversos recursos multimídias que usamos
diariamente.
A quantidade de ferramentas para edição de áudio e vídeo enriquece as
características do sistema, pois somando a quantidade que hoje possuem o Windows e
o Linux não chega o que está disponível para Haiku.
Como o Haiku foi desenvolvido em base do BeOS e para adequar ao seu
projeto Haiku literalmente teve uma reestrutura quase que total, onde hoje seu kernel
é híbrido sendo assim parte de seu kernel é microkernel e a outra parte é monolítica.
Na construção do Microkernel Mr. Joche Liedtke (cientista alemão) explicava
que o microkernel minimiza a parte obrigatória do Sistema Operacional, fornecendo
um micronúcleo de mecanismos que aumentam a flexibilidade da aplicação, ou seja,
se for parado o servidor de comunicação de rede o sistema operacional não para como
um todo, somente este serviço. Por sua vez a parte do kernel do Haiku que é
monolítica, ela se comporta de um único bloco de kernel, onde houver a parada desse
bloco o sistema para como um todo.
Segue abaixo as características apontadas:

Multitarefa com "multi-threading" pervasivo - Haiku suporta múltiplas
CPUs e múltiplas cores.

Baixa latência para serviços de kernel e de mídia. O Haiku é o que
podemos chamar de um SO "soft-realtime" (um sistema assim garante
tempos médios muito baixos para as tarefas de baixo nível. Um "hardrealtime" garante um tempo máximo - que pode ser alto ou não - para
tarefas de baixo nível);

Sistema de arquivos de 64 bits, "multi-threaded", orientado a objetos e
com recursos similares a uma base de dados;

Interface com usuário simples e intuitiva;

"Orientado ao usuário". Basicamente a resposta ao usuário é mais
importante que qualquer outra coisa no SO. Por exemplo: não existe o
conceito da ampulheta e similares no Haiku. O sistema nunca está
ocupado demais pra responder ao usuário.
3.1 Aspectos de Segurança
Analisar aspectos de segurança no sistema Haiku é algo delicado ainda, pois a
implementação de segurança ainda se faz necessária em praticamente todos os pontos
do sistema olhando sob o ponto de vista de rede. Mas sendo um sistema operacional
de usuário único com estrutura UNIX-like, o Haiku ainda não é um risco de segurança.
Sua principal utilização é mesmo nos desktops, e praticamente não existem servidores
fazendo uso dele.
A pequena base de usuários e a compatibilidade com o POSIX implicam na
inexistência de vírus para ele. A única coisa que pode chegar perto de ser um malware
no Haiku seria um script mal intencionado do BASH, ou uma bomba lógica. Não há
tela de login protegendo o usuário antes de o desktop abrir, e isso pode ser
considerado um risco. Nada que a biblioteca Real Multi User não resolva, ou o
software Lock Workstation desenvolvido por terceiros.
Primeiro escolhemos realizar testes com a organização de grupos e permissões
dos arquivos no sistema de arquivos BFS (ou BeFS no Linux), assim como criação de
outros grupos e outros usuários no sistema.
Alguns podem estranhar o fato de um sistema operacional UNIX-like não ter
acesso multiusuário. Esse é mais um detalhe que separa o Haiku do OS X, do Solaris
e do Linux. A estrutura de pastas até pode lembrar o Linux e o OS X, o prompt do
BASH pode estar lá, mas no fundo o Haiku é um sistema operacional para um único
usuário. O dono dos arquivos sempre será "Usuário", e o grupo será "root". As coisas
funcionam assim porque os desenvolvedores queriam usar a estrutura UNIX-like, mas
não viam a necessidade de incluir acesso multiusuário nos tempos do BeOS.
3.2 Sistema de arquivos Haiku
O sistema de arquivos nativo do Haiku é o BFS (Be File System), que conta com
journaling e são totalmente 64 bits. Assim como o EXT3 e o XFS, ele diferencia
maiúsculas e minúsculas e pode ser usado em dispositivos de armazenamento de
mídia. E o que é mais importante, o BFS tem suporte a atributos estendidos de arquivo
(metadados), além de capacidades de indexação e consulta. Sob muitos aspectos, o
BFS age como um banco de dados relacional. O BFS consegue lidar com arquivos de
até dois exabytes. Há suporte ao BFS no kernel do Linux, com o nome BeFS (para
evitar a confusão com o UnixWare Boot File System, que tem a mesma abreviação).
Outras características sobre o sistema de arquivos BFS:

Tamanho Máximo de arquivo 260 GB

Número máximo de arquivos Ilimitado

Tamanho máximo do nome de arquivo 255 bytes

Tamanho máximo de 2 EB
Algumas curiosidades sobre a evolução e o suporte do BFS em outros
sistemas. Além do original BFS usado BeOS em 1996, existem várias implementações
para Linux. No início de 1999, Makoto Kato desenvolveu um Be File System Driver
para Linux; porém, o driver nunca alcançou um estado de completo, de modo
estável em 2001, Will Dyson desenvolveu sua própria versão do Linux BFS driver.
Como parte da tentativa OpenBeOS (agora Haiku) para recriar o sistema
operacional BeOS em 2002, Axel Dörfler e outros poucos desenvolvedores criam e
lançam um chamado BFS reimplementado OpenBFS. Em janeiro de 2004, Robert
Szeleney anunciou que tinha desenvolvido um fork deste sistema de arquivos
OpenBFS para uso no SkyOS sistema operacional. A implementação OpenBFS regular
também foi portado para Syllable e está incluído desde a versão 0.6.5.
3.3 System Calls Haiku
Outra característica do Sistema Operacional Haiku está no número reduzido de
syscalls quando comparado a sistemas operacionais com mais características de
segurança.
Syscall é a capacidade de código do aplicativo ser executado em separado do
código crítico do núcleo do sistema. Aplicações comuns são executadas em modo
usuário o que significa que elas não podem manipular diretamente os dados de
estruturas vitais do sistema. Isso torna o sistema operacional muito mais estável
evitando que a falha em uma aplicação interfira no restante do sistema.
Como o Haiku foi desenvolvido em base do BeOS e para adequar ao seu
projeto Haiku literalmente teve uma reestrutura quase que total, onde hoje seu kernel
é híbrido sendo assim parte de seu kernel é microkernel e a outra parte é monolítica.
Kernel híbrido combina velocidade, a simplicidade de um kernel monolítico
com a modularidade e execução segura de um microkernel.
Na construção do Microkernel Mr. Joche Liedtke (cientista alemão) explicava
que o microkernel minimiza a parte obrigatória do Sistema Operacional, fornecendo
um micronúcleo de mecanismos que aumentam a flexibilidade da aplicação, ou seja,
se for parado o servidor de comunicação de rede o sistema operacional não para
como um todo, somente este serviço. Por sua vez a parte do kernel do Haiku que é
monolítica, ela se comporta de um único bloco de kernel, onde houver a parada desse
bloco o sistema para como um todo.
Nos sistemas POSIX e similares, as chamadas de sistema mais usadas são
close, execve, fork, wait, kill, open, read, write e ioctl. Os sistemas
operacionais atuais tem centenas de chamadas de sistema. Por exemplo, o Linux
tem quase 300 chamadas de sistema diferentes. O FreeBSD tem praticamente o
mesmo número, enquanto o Haiku praticamente 78 system call, o que proporciona
um kernel menor e com código ainda bem enxuto.
6. Estudo de caso
Como foi abordado no capitulo anterior, o Haiku implementa uma quantidade
inferior de syscalls quando comparado com outros sistemas operacionais com mais
features de segurança. Para a apresentação do estudo de caso utilizaremos o comando
strace. Este é um aplicativo presente em diversos sistemas operacionais. O comando é
bastante útil para se verificar quais chamadas de sistema são utilizadas.
O estudo de caso consiste em comparar o número de chamadas de sistemas
disparadas o uso do comando cat para ler um arquivo texto no Haiku e em um
Sistema Operacional Linux – Ubuntu.
Figura 2: Haiku
Figura 3: Linux
Como pode ser percebido número de chamadas de sistemas no Linux foi muito
maior quando comparado ao número no Haiku.
5. Conclusão
O sistema Operacional Haiku cumpre o que promete no quesito desempenho e
velocidade de respostas ao usuário, porém ainda precisa evoluir muito na parte de
gerencia de contas de usuários, criação de ferramentas nativas para segurança do
sistema operacional.
Existe a necessidade iminente da criação de uma versão para instalação que
independa de virtualizacão, pois somente assim poderá ser testada toda a
potencialidade e funções do sistema operacional HAIKU.
6. Referências
Jaeger, Trent. (2008) “Operating System Security”. Morgan & Claypool
Publishers. Estados Unidos.
Coloja, Razvan T. (2010) “Haiku Could Change
(http://www.razvancoloja.com/2010/haiku-could-change-the-world)
entre 1 a 28 de abril de 2011).
The World”.
(Consultado
David,
Marcio
F.
(2007)
“Haiku,
o
BeOS
Open
Source”.
(www.hardware.com.br/dicas/haiku.html) (Consultado entre 1 a 28 de abril de 2011).
Wiki
(2010)
“Haiku:
FutureHaikuFeatures”
(http://dev.haikuos.org/wiki/FutureHaikuFeatures) (Consultado entre 1 a 28 de abril de 2011).
Forum thread started by jrash (2008) “Haiku Kernel Architecture Questions”
(http://www.haiku-os.org/community/forum/haiku_kernel_architecture_questions)
(Consultado entre 1 a 28 de abril de 2011).
Haiku, Inc (2011) “Haiku” (http://www.haiku-inc.org/about.html) (Consultado
entre 1 a 28 de abril de 2011).
Free Software Foundation, Inc. (2010) “GNU Hurd/ microkernel”
(http://www.gnu.org/s/hurd/microkernel.html) (Consultado entre 1 a 28 de abril de
2011).
Yager, Tom. (1999) “Friendly BeOs targets developers”. Infoworld Magazine.
August, pp 35.
Morrey, Brad (1997) “BeOs shows promisse as an alternative to MacOs”.
Infoword Magazine. November, pp 112.
Download

Sistema Operacional Haiku