Após um ano e meio de desenvolvimento, a quinta versão beta do sistema operacional Haiku R1 foi lançada. O projeto foi inicialmente criado como uma resposta ao fechamento do BeOS e evoluiu sob o nome OpenBeOS, mas foi renomeado em 2004 devido a questões relacionadas ao uso da marca BeOS. Vários Live ISOs (x86, x86-64 1,4 GB) foram preparados para avaliar o desempenho do novo lançamento. A maior parte do código-fonte do Haiku é distribuída sob a licença MIT, exceto algumas bibliotecas, codecs de mídia e componentes emprestados de outros projetos.
O Haiku é direcionado a computadores pessoais, utiliza seu próprio núcleo, construído sobre uma arquitetura modular, otimizada para alta responsividade às ações do usuário e execução eficiente de aplicativos multithread. Para desenvolvedores, é apresentado uma API orientada a objetos. O sistema baseia-se diretamente nas tecnologias do BeOS 5 e visa a compatibilidade binária com aplicativos para esse sistema operacional. Requisitos mínimos de hardware: CPU Pentium II ou AMD Athlon e 384 MB de RAM (recomendado: Intel Core i3 ou AMD Phenom II e 2 GB de RAM).
O sistema de arquivos utilizado é o OpenBFS, que suporta atributos estendidos de arquivos, registro, ponteiros de 64 bits, suporte ao armazenamento de meta-tags (para cada arquivo, é possível armazenar atributos na forma chave=valor, o que torna o sistema de arquivos semelhante a um banco de dados) e índices especiais para acelerar a seleção. Para organizar a estrutura de diretórios, são utilizados árvores "B+ tree". O gerenciador de arquivos Tracker e a barra Deskbar, derivados do código do BeOS, foram incluídos no Haiku, e seus códigos fontes foram liberados após a saída do BeOS do mercado.
Principais novidades:
- As configurações de aparência simplificaram a interface de seleção de cores. Em vez de 30 parâmetros por padrão, agora aparecem três (cor do fundo da barra, cor da barra de status e cor das abas), e os demais são calculados automaticamente em relação aos três valores escolhidos. Ao escolher a cor automaticamente, considera-se se o tema escuro ou claro está ativo (por exemplo, com o tema escuro ativo, são escolhidas cores claras para o texto). Para retornar à exibição do conjunto completo de parâmetros para edição manual, há uma opção separada.

- Foi realizada uma grande quantidade de correções visando melhorar o suporte ao trabalho com a seleção do tema escuro.

- No editor de ícones Icon-O-Matic, foi adicionada a supporte para conversão de perspectiva e exibição de uma imagem de referência como fundo (para replicar contornos no ícone). As funções de copiar e colar foram significativamente aprimoradas.

- Na primeira execução, se a presença de baterias for detectada no sistema, a instalação automática é garantida no painel do applet PowerStatus, mostrando o estado da carga e os parâmetros da bateria. A precisão das informações sobre o nível da carga foi aumentada. Para informar o usuário sobre o baixo nível de carga, foram adicionados um sinal sonoro e uma notificação.

- No gerenciador de arquivos Tracker, foi melhorado o funcionamento com diretórios e partições de disco disponíveis em modo somente leitura, que agora são destacados com um fundo mais escuro (esse fundo anteriormente era usado para diretórios virtuais). Para elementos do sistema de arquivos que estão disponíveis apenas para leitura, também são desativados os itens de menu que exigem acesso de gravação.

- O desenvolvimento de portas para aplicativos de terceiros foi continuado. Desde a última versão, novos programas KDE foram portados, o número de programas GTK suportados foi ampliado, uma porta com o depurador GDB 15 foi adicionada (anteriormente era fornecido o GDB 6) e uma porta experimental da plataforma .NET Core 9 foi implementada.

- A camada de compatibilidade com X11/Xlib foi aprimorada. Foi possibilitado o uso da toolkit gráfica FLTK (com limitações, a ausência de suporte a funções relacionadas ao OpenGL foi observada).

- O suporte a dispositivos de áudio com interface USB foi adicionado (a troca automática de saída de áudio ao conectar um dispositivo USB ainda não funciona, por isso a troca requer a reinicialização dos serviços multimídia do sistema).
- Um driver para interfaces de rede TUN/TAP foi adicionado, que pode ser usado para criar túneis de rede e organizar o trabalho. VPN.
- O stack TCP foi otimizado, aumentando significativamente a largura de banda (o desempenho das conexões TCP aumentou de 8 a 10 vezes, e a largura de banda da interface loopback (localhost) aumentou várias ordens de grandeza). A contagem para acumulação de estatísticas foi melhorada. O número de operações de cópia de buffers foi reduzido. Foi adicionada a possibilidade de mover operações de cálculo de somas de verificação de pacotes para o lado das placas de rede.
- As capacidades do emulador de terminal foram expandidas, com suporte adicionado para colagem com escape do buffer de transferência, caso quebre linhas e use caracteres especiais em texto portátil. Nas configurações, foi adicionada a possibilidade de alterar o esquema de cores.
- Foi realizada a refatoração da camada TTY/PTY, unificado o código TTY e PTY, e adicionada suporte para extensões TTY, como TIOCOUTQ.
- Foi feita a otimização de desempenho do núcleo e dos drivers, adicionada a capacidade de execução em lote de operações de entrada/saída, otimizada a utilização de bloqueios durante a execução de programas, aumentada a eficiência do mapeamento de arquivos na memória, reduzida a concorrência entre bloqueios durante o mapeamento de páginas de memória, aumentada a produtividade na alocação de buffers temporários, e adicionadas otimizações ao sistema de entrada/saída, além da adição de suporte a DT_GNU_HASH no carregador de arquivos executáveis no formato ELF.
- A arquitetura do mecanismo de bloqueio user_mutex, semelhante em funcionalidades ao sistema futex no Linux, foi reestruturada e utilizada para implementar as chamadas pthread_mutex e pthread_rwlock. A nova arquitetura resolveu problemas de condições de corrida e aumentou o desempenho (por exemplo, a velocidade de compilação aumentou em 25%).
- O driver para o sistema de arquivos FAT foi substituído por uma nova versão, portado do FreeBSD. A substituição do driver resolveu problemas de compatibilidade com outras implementações do FAT.
- Adicionado o driver para o sistema de arquivos UFS2 (Unix File System 2), utilizado no FreeBSD. O driver atualmente funciona apenas em modo de leitura.
- Implementada parte da API de multiplexação de entrada/saída kqueue.
- Expandidas as capacidades de rastreamento e perfilagem de processos com as ferramentas strace e profile.
- Melhorada a compatibilidade com as especificações POSIX. Implementadas as funções getentropy, arc4random, pthread_sigqueue, preadv e pwritev, além da adição de suporte para sockets Unix (AF_UNIX) SOCK_DGRAM.
- Foi realizado um trabalho significativo para aumentar a estabilidade de todo o sistema. Muitos problemas que causavam falhas e quedas no funcionamento do núcleo e dos drivers foram resolvidos.
Fonte: opennet.ru







