Meu primeiro dia com Haiku: ela é surpreendentemente boa

Meu primeiro dia com Haiku: ela é surpreendentemente boa

TL:DR; Um novato experimentou o Haiku pela primeira vez e decidiu que era incrível. Especialmente em comparação aos ambientes de trabalho disponíveis no Linux.

Já compartilhei minhas ideias (assim como minhas decepções) sobre #LinuxUsability (parte 1, parte 2, parte 3, parte 4, parte 5, parte 6). Nesta análise, descreverei as primeiras impressões sobre Haiku, um sistema operacional de código aberto para computadores pessoais. Às vezes, as primeiras impressões podem ser úteis, mas como se tem apenas uma primeira impressão — eu registrei as minhas aqui.

Meu primeiro dia com Haiku: ela é surpreendentemente boa
O sistema no qual estou escrevendo esta análise

Talvez sejam úteis para os desenvolvedores do Haiku e/ou outras partes interessadas.
Posso estar errado em alguns pontos, já que estou apenas descrevendo minha experiência pessoal (leia-se: com olhos ingênuos). Além disso, pessoas amigáveis no canal #haiku da rede irc.freenode.net me ajudaram com dicas — estas também serão publicadas. Obrigado, desenvolvedores do Haiku!

O que queria dizer: o Haiku ainda não é 100% perfeito, mas já possui um ambiente de trabalho bem estruturado.

Instalação

O projeto Haiku fornece imagens para download em CD ou DVD, geradas diariamente. Eu utilizei um pen drive USB-3. Me disseram que o boot a partir do USB-3 poderia não funcionar, mas em meus dois sistemas de teste baseados em Intel tudo funcionou perfeitamente.

Comecei o processo de instalação baixando a imagem para 64 bits, que depois gravei no pen drive utilizando o programa Etcher. O boot funciona tanto com EFI, quanto sem ele — meus aplausos pela disponibilização de tal imagem.

Haiku utiliza seu próprio sistema de arquivos BeFS para a partição de boot, embora a princípio tenha suporte declarado para FAT32 e NTFS. No geral, o sistema requer 600 MB, mas para aplicativos adicionais é necessário mais espaço.

Por padrão, é criada uma partição de 600 MB com BeFS e uma partição FAT32 de 3 GB. Na FAT32, existe um arquivo /EFI/BOOT/BOOTx64.EFI, que implica na possibilidade de boot em sistemas compatíveis com EFI. Infelizmente, não encontrei programas para aumentar o tamanho do BeFS, e espero que, no futuro, seja implementado um novo esquema de particionamento, pois o tamanho da imagem da partição é fixo e pode não ser suficiente para espaço livre para software adicional. Seria bom se pacotes adicionais de software fossem salvos na segunda partição FAT32.

Essa solução seria uma vantagem para aqueles que desejam acessar arquivos diretamente de outros sistemas. O Linux já oferece suporte para leitura de BeFS, e existem implementações de leitura e gravação de BeFS para FUSE.

Meu primeiro dia com Haiku: ela é surpreendentemente boa
Instalador Haiku

Recebi o conselho: se você quer usar uma partição maior, instale o Haiku em outro pen drive.
Para mim, essa etapa é desnecessária, pois o instalador Haiku não consegue particionar discos, apenas inicia o programa DriveSetup, onde é necessário particionar manualmente o disco, adicionar a partição que depois será formatada em BeFS, após o que o controle retorna ao instalador. Também será necessário instalar manualmente o gerenciador de inicialização, usando um programa separado. Infelizmente, não consegui inicializar com EFI após essa particionamento, pois não há uma partição FAT32 com os arquivos de inicialização para EFI. Um instalador que pudesse fazer a partição automaticamente, incluindo as especificidades do EFI, seria útil.

Meu primeiro dia com Haiku: ela é surpreendentemente boa
BootManager instala o gerenciador de inicialização no disco

O processo de instalação leva um pouco menos de três minutos, o que é bastante rápido. Nesse tempo, todo o sistema, que consiste em "apenas" 4751 arquivos, é copiado. Isso acontece porque a maioria dos softwares está empacotada em arquivos hpkg (semelhantes aos pacotes Snap em sistemas Linux), que nunca são instalados, mas apenas montados. Curiosamente, há muitos arquivos "livres", como png. Por que eles não estão empacotados?

Como mencionei, até o núcleo do sistema operacional é fornecido como arquivo hpkg. (Falei dos 4751 arquivos porque iniciei o HaikuDepot antes da instalação, que baixou uma porção de coisas. Uma instalação limpa, aparentemente, não contém todos eles e pode ser mais rápida com cerca de 200 pacotes. Legal! Como me disseram, o fato de que os arquivos baixados não são ignorados durante a instalação é um bug. Uau, parece que este é o primeiro relatório de erro gerado por mim).

Primeira inicialização

O sistema é iniciado, mostrando uma tela de boas-vindas simpática, e depois para: após a inicialização, minha placa de vídeo (Radeon) mostra uma tela preta.

Me recomendaram iniciar em modo seguro com uma resolução de 1024x768 em um monitor FullHD. Em princípio, poderia ter me preocupado em trabalhar com o gerenciador de inicialização para suportar FullHD, mas em outro computador com uma placa de vídeo Intel, tudo funcionou perfeitamente.

O próprio sistema funciona responsivamente a partir de um pen drive, aparentemente porque nada é escrito no pen drive durante o uso, assim espero utilizá-lo como meu sistema principal. Você obterá um sistema real ao inicializar a partir do USB, diferente das lentas imagens 'live' do Linux.

Durante a inicialização, a tela não pisca, não há mensagens do kernel, não se tem a sensação de que o Xorg está colado ao núcleo com fita adesiva azul. Diferente das distribuições Linux típicas, o núcleo e a GUI aqui são criados e ajustados um para o outro!

Não há solicitar de login, pois o sistema foi feito para um único usuário. É simples, exatamente o que se precisa para um computador pessoal.

Precisa de suporte a múltiplos usuários — distribua pen drives a eles, cada um custando não mais do que $5.

As primeiras impressões do ambiente de trabalho

Se compararmos a primeira sensação — parece mais com um Mac do que, por exemplo, com o Linux com Gnome. A tecla 'command' funciona da mesma forma que no Mac. Muito bom!

Meu primeiro dia com Haiku: ela é surpreendentemente boa
Nada se compara ao gerenciador de arquivos espacial, é como o bom e velho Mac!

O gerenciador de arquivos padrão é espacial (como o Macintosh System 1.0), infelizmente cada janela não lembra suas configurações (por exemplo, visualização em forma de lista ou ícones). O que me disseram — é um erro, corrigir isso, eu suponho, não será difícil. (Infelizmente, escrever relatórios para 'mimokrokodil' no bugtracker para o Haiku é complicado — utiliza um sistema original, não baseado no GitLab ou GitHub, e não é possível entrar usando essas plataformas). Os arquivos recebem seus ícones, não há problemas com arquivos individuais na área de trabalho e ícones.
Muito bom! Muito melhor do que ambientes de trabalho para Linux, sente-se a simplicidade.

Desempenho

O sistema operacional funciona de forma rápida mesmo em hardware de baixo desempenho, como netbooks com Atom. Não se sente camadas de software infladas. Muito bom!

Lunduke disse que o LibreOffice, pela sensação, funciona mais rápido do que em outros sistemas operacionais, mas ainda não verifiquei isso.

Por que no hosting comum a administração do PrestaShop é lenta, e no seu não é?

Bryan Lunduke. Haiku OS Beta — revisão e impressões

Linha de comando

Há um terminal incluído. No geral, apesar das pequenas diferenças em relação ao Linux, eu me adaptei imediatamente, de fato — é um bash comum, o que me deixou bastante satisfeito.

Bem-vindo ao shell do Haiku.
Nele, você pode facilmente iniciar aplicativos que estão no $PATH:
~> Touchpad
~> echo $PATH
.: /boot/home/config/non-packaged/bin: /boot/home/config/bin: /boot/system/non-packaged/bin: /bin: /boot/system/apps: /boot/system/preferences

Uau! «.» em $PATH! Isso significa que é possível executar comandos diretamente do diretório atual (os Linuxers uma vez me disseram que o mundo explodiria se eu tentasse fazer isso). Ótimo!

Meu primeiro dia com Haiku: ela é surpreendentemente boa
bash, executado no terminal Haiku

Outra coisa legal no terminal é que você pode pressionar ctrl + c para copiar, assim como em outros aplicativos, diferentemente dos ambientes de trabalho no Linux, onde você precisa pressionar ctrl + shift + c no terminal.
Pequenos detalhes que mostram a integridade de todo o sistema.

Estrutura dos sistemas de arquivos

A partição de onde ocorre o boot está montada em /boot. Que fácil!
Sem bagunça /etc, /usr, /bin… Apenas /home e /system. Limpo, simples, claro. Bom! (Não exatamente: eles existem, mas estão ocultos. Por quê? Porque /bin isso /system/bin, não há necessidade de exibir isso no Tracker, mas os scripts ainda o utilizam. Acho que os desenvolvedores deveriam se livrar das coisas obsoletas feitas para compatibilidade, pois isso só torna a compreensão mais difícil.)

packagefs

Já mencionei anteriormente os arquivos hpkg, que são semelhantes a pacotes no Linux, mas não são instalados, apenas montados (semelhante aos pacotes snap). O sistema de arquivos que faz essa mágica se chama packagefs. Ele monta arquivos hpkg sobre outros, resultando na criação de todo o diretório /system.

O comando mount, infelizmente, não mostra o que está montado.

~> mount
uso: mount [-ro] [-t fstype] [-p parameter] [dispositivo] diretório
-ro monta o volume como somente leitura
-t especifica o sistema de arquivos a usar (padrão é reconhecimento automático)
-p especifica parâmetros a serem passados para o sistema de arquivos (-o também aceito)
se o dispositivo não for especificado, NULL é passado (para sistemas de arquivos na memória)

Me recomendaram experimentar mountvolume, que mostrará as partições montadas, mas, infelizmente, ela também não mostra os pontos de montagem com packagefs (apenas mostrará aqueles relacionados a partições ou imagens de disco). [Felizmente, se você executar mount ou df em algum lugar no host com docker, pode rolar pelos resultados! — Nota do tradutor] Mas é possível fazer um truque com df:

~> df -h

Tipo de Montagem Total Livre Flags Dispositivo
----------------------------------
/boot bfs 600.0 MiB 6.0 KiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system packagefs 4.0 KiB 4.0 KiB QAM-P -
/boot/home/config packagefs 4.0 KiB 4.0 KiB QAM-P -
/no name fat 2.8 MiB 2.3 MiB - M-PRW /dev/disk/usb/0/0/1

Como pode ser visto, /system e /home/config dentro /boot isso é exatamente packagefs.
Quem me conhece sabe que sou fã do suporte a arrastar e soltar em gerenciadores de arquivos: por exemplo, uso conjuntos de aplicativos no estilo NeXT, ou AppImages.
De qualquer forma, há desvantagens nesse formato de distribuição de software. Será que packagefs pode unir o melhor dos mundos?

Como pode ser visto, no meu caso (a partição do sistema está cheia, mas eu quero instalar aplicativos) seria mais elegante baixar os aplicativos em algum lugar, usando o navegador, exatamente como faço com os arquivos. .dmg para Mac ou AppImage. o packagefs vive no núcleo, então não é um sistema de arquivos para FUSE (embora saiba que FUSE também esteja presente no Haiku). Também me disseram que, possivelmente, no futuro serão criadas “zonas packagefs” adicionais, o que provavelmente significa que poderei indicar ao packagefs para armazenar pacotes, por exemplo, em partições de disco separadas. Isso me agrada — já que, se a partição estiver em um meio removível, poderei sentar em outro computador e ter lá aplicativos funcionando.

Disseram também que o método de arrastar e soltar funciona para a instalação de pacotes: basta arrastar o arquivo para /system/packages ou para /home/config/packages para instalar, e se arrastar o arquivo para fora dele — ele será removido. Se arrastar um pacote com dependências não satisfeitas — o sistema solicitará a instalação prévia delas.

A princípio, eu não entendia como o packagefs lida com múltiplas versões do mesmo pacote, o que acontecerá se eu quiser instalar, por exemplo, diferentes versões do gcc ou de outros programas GUI? (Um dos desenvolvedores disse, cito: “o próprio packagefs não contém nada que impeça a instalação de múltiplos pacotes com o mesmo nome, mas como se utiliza o libsolv do OpenSuse para resolver dependências, que não permite fazer isso, foi proibido também ao HaikuDepot nas configurações”. Eu posso explicar por que gosto da ideia de pacotes .app, AppDir e AppImages).

Bibliotecas Dinâmicas

Há uma tecnologia de bibliotecas dinâmicas? Sim, isso fica claro, por exemplo, se você executar um aplicativo com bibliotecas ausentes dando um clique duplo:

Meu primeiro dia com Haiku: ela é surpreendentemente boa
Você consegue imaginar algo assim no gnome, kde ou xfce?

No Linux, uma execução semelhante não mostraria nada. Vamos ver quanto tempo levará em diferentes ambientes:

E quanto às verificações?

~> ldd
bash: ldd: comando não encontrado

Você deve usar a substituição:

~> objdump -x /bin/bash | grep NEEDED
NEEDED libreadline.so.7
NEEDED libhistory.so.7
NEEDED libncurses.so.6
NEEDED libintl.so.8
NEEDED libroot.so

Em princípio, ldd seria melhor, pois ele mostra também os caminhos de onde as bibliotecas serão carregadas.
Mas de onde elas realmente são carregadas?

~> echo $LIBRARY_PATH
%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib

Assim, é possível colocar as bibliotecas ao lado do arquivo executável e ele vai "simplesmente funcionar". Que incrível! Você pode simplesmente conectar bibliotecas separadas ao aplicativo sem se preocupar com rpath ou configurar a variável LD_LIBRARY_PATH como no Linux. Ótimo!

Há uma biblioteca (horrível no Linux) /boot/system/lib/libstdc++.so.6.0.24.
E se o aplicativo exigir uma versão mais recente do que a disponível em /boot/system/lib?
O usuário comum provavelmente irá atualizar para a versão mais recente, porque neste sistema não há um usuário "Administrator" com a senha root [o autor sugere a simplicidade — Nota do tradutor].
Bem, pelo menos é assim que parece. (Na verdade, o "usuário" é um análogo ao root. Você pode definir uma senha usando o comando passwd, e então especificar PermitRootLogin=yes em sshd_config, e a partir daí será possível conectar externamente via ssh. Os desenvolvedores me disseram que, por padrão, todos os aplicativos são executados como root. No final das contas, eles podem acabar ajustando isso... Mas não estou certo se vou gostar disso.)

Devido à falta de distribuições do Haiku — os desenvolvedores de aplicativos também não têm acesso a versões mais novas do que as disponíveis para download no seu sistema. O resultado: menos frustração, as coisas "simplesmente funcionam". Uma ótima simplificação! Eu gosto.

Recursos e registrador

Como já mencionado, os aplicativos recebem um tipo e um ícone, então você não precisa se preocupar com arquivos na área de trabalho e coisas assim. Me disseram que existe um registrador de serviço especial que sabe sobre aplicativos, tipos de arquivos, ícones. Ele é sempre notificado quando um pacote é instalado ou um arquivo é marcado para execução (usando o programa chmod ou mimeset).
É um pouco semelhante ao Launch Services no Mac. E isso é algo que falta nos ambientes de trabalho no Linux.Ótimo!

Arquivos binários recebem ícones incorporados em forma de recursos, então você não precisa de um ícone separado além dos arquivos na área de trabalho. Quase como era no Macintosh System 1. Legal!

Meu primeiro dia com Haiku: ela é surpreendentemente boa
Tipos de aplicativos, tipos de documentos suportados, recursos incorporados e informações sobre a versão

O Tracker (gerenciador de arquivos) automaticamente marca arquivos binários como executáveis. Isso é algo que eu esperei dos ambientes de trabalho no Linux por mais de 10 anos.
Tudo isso é bastante agradável. Afinal, não é incrível? A vida se torna tão simples. Isso é mais refinado e se parece mais com o Mac do que XDG no Linux. Ou isso...

Meu primeiro dia com Haiku: ela é surpreendentemente boa
Aplicativo em Linux sem o bit de execução instalado

No Gnome removeram a capacidade de executar arquivos executáveis a partir do gerenciador de arquivos, mas a comunidade se manifestou — e tudo foi restaurado.
Também me contaram que os aplicativos utilizam a função find_paths() em vez de caminhos fixos /usr/bin e /usr/share (uma característica comum dos ambientes de trabalho no Linux), o que significa a possibilidade de movê-los pelo sistema de arquivos. Palmas! No Linux é como sempre "difícil".

O que me surpreendeu

  • Me incomodou que /boot este é o ponto de montagem da partição a partir da qual o sistema é carregado. Por que não "/"? Bem, ou /Haiku? (Пояснение: действительно, /boot este é sempre a partição de inicialização, ele aparece na área de trabalho como "Haiku", porque esse é seu nome. Veja "/" como uma analogia da área de trabalho no Mac System 1, a raiz da hierarquia, que realmente não existe nos discos).
  • O ponto de montagem para os pacotes instalados pelo usuário é /home/config. Por que não simplesmente /home? (Один из разработчиков пояснил мне, что они не хотят засорять домашний каталог, но мне кажется, config — название неудачное, потому что внутри есть подкаталог bin/, então não é apenas armazenamento de configurações).
  • Qual é a licença para tudo? Por exemplo, no navegador WebPositive na seção "Sobre" não há uma indicação clara. No campo "Sobre este sistema" está escrito que o código Haiku está sob a licença MIT. Ótimo! (Também me disseram que o WebPositive vem junto com o sistema operacional sob a mesma licença, no entanto, seu mecanismo WebKit é fornecido, na maior parte, sob a licença BSD de dois itens).

O que não funcionou como eu esperava

Antes de tudo, fiquei impressionado com o nível de suporte à hardware. No meu netbook baseado em Atom, tudo funcionou, incluindo WLAN. Mas há algumas peculiaridades na operação.

  • Total inoperância em hardware Macintosh, independentemente do modo EFI ou emulação de BIOS ("Windows"). O sistema simplesmente trava ao escolher o ícone no bootloader do Mac. Disseram-me que esta é uma característica conhecida e é possível iniciar usando rEFIt, mas essas configurações são muito complicadas para mim.
  • Aceleração gráfica. Parece que usar Radeon ainda não é possível (tive uma tela preta), mas mesmo no Intel as coisas não estão suaves. A aceleração de vídeo no WebPositive é apenas software, incluindo H.264. Surpreendente, visto que a orientação inicial era para vídeo. Um dos desenvolvedores esclareceu que o vídeo no WebPositive funciona usando truques de desempenho.
  • Sem som? "Os drivers para placas de som ainda estão em falta", disse o desenvolvedor. Provavelmente, alguém precisa suportar o driver HDA, assim como o USB-3. Agora, para obter som, basta um reinício a quente de outro sistema operacional, e eu acredito que isso será corrigido de alguma forma.
  • Os botões de controle de brilho e volume não funcionam. (A base já existe na forma do aplicativo Shortcuts: é possível criar um atalho de qualquer combinação de teclas com qualquer função desejada, mas até agora o Haiku não consegue trabalhar com teclas de mídia. Talvez haja voluntários?)
  • Controle de dois dedos no touchpad. Não funciona fora da caixa. Há um painel de configurações que informou que "Nenhum touchpad encontrado, as configurações não terão efeito." (Problema conhecido com ELAN Input Device, ACPI ETD050A).
  • Com o aplicativo existente para leitura de arquivos de câmeras digitais e smartphones Android, a sincronização não funcionou nos modos MTP e PTP. Seria ótimo se eles fossem montados como outras partições do sistema.
  • O fechamento da tampa do notebook, aparentemente, não é processado. (Eu sei que o Haiku ainda não funciona com ACPI: o suporte foi implementado, mas não está ativado por padrão; não há reinicialização do driver)
  • Não consegui criar uma conta no bugtracker, pois não funciona captcha no WebPositive.

Aplicativos

O objetivo principal do sistema operacional é executar aplicativos. Eu temia que não houvesse aplicativos para trabalho real no Haiku. Felizmente, estava errado, pois há esperança de melhorias - quando o Haiku for mais utilizado.
Scribus (aplicativo de layout visual) está disponível, e este é um aplicativo bastante complexo baseado em Qt. Também há QtCreator (IDE).

Fiquei curioso se estão desenvolvendo hoje aplicativos nativos Be para o Haiku, usando ferramentas nativas (se existirem), ou se é suficiente usar o QtCreator (o que facilitaria a portabilidade de aplicativos multiplataforma). A posição dos desenvolvedores do Haiku é a "preferência explícita" por aplicativos nativos para o Haiku. É verdade? Eu duvido que aplicativos para trabalho real não sejam multiplataforma (todos os aplicativos que uso no meu trabalho são multiplataforma).

Foi declarada a compatibilidade com aplicativos WxWindows.

A falta de suporte ao Gtk+ é decepcionante. Isso significa que não haverá Gimp no Haiku em breve (bem, eu acho), mas há uma alternativa em forma de Krita!

Além disso, acredito que é necessário um jeito simples e claro de criar aplicativos para Haiku, como este — utilizando Travis CI e GitLab CI.

Para onde estamos indo?

Haiku ficará preso na concepção do UX do BeOS? Parece-me que, para ser atraente, deve-se calibrar cuidadosamente novos esquemas de UX ao adotá-los, mantendo-se fiel às suas bases.
Por exemplo:

  • Permanecer simples, sem aquelas 100500 opções que tornam o Linux "difícil".
  • Usar um cursor em forma de seta para o mouse em vez de uma mão estranha.
  • Haverá Dock? (Estou ciente de que há algo tipo Dock chamado LaunchBox, que é ainda mais próximo do Dock LnLauncher, mas o BeOS original já tinha Dock em 1998!)
  • Menu global? (Obviamente, não, pois JLG não vê grande vantagem).
  • Troca rápida de janelas? (Dizem que pode tentar ativar "Stack&Tile", segurando a tecla Windows enquanto arrasta a janela, mas isso não é intuitivo e, além disso — não funciona para mim).
  • Animação de abrir e fechar janelas?
  • Sombras atrás das janelas?
  • Suporte a temas, como no Aqua? (Sim, é possível, há infraestrutura e ferramentas, por exemplo, HaikuThemeManager, mas alguém precisa criar os temas. Eu tentaria eu mesmo, me disseram que há documentação em https://xref.plausible.coop/source /xref/haiku/headers/os/interface/ControlLook.h, но не сейчас).

São sutilezas a considerar, mantendo que o sistema não deve perder sua individualidade única.

Conclusão

Haiku realmente me abriu os olhos, mostrando como o ambiente de trabalho "simplesmente funciona".
Mais de 10 anos atrás, fiz a transição do Mac para o Linux e desde então procurei o mesmo nível de sofisticação e beleza, e Haiku corresponde a isso em muitos aspectos.

Honestamente, há falhas, mas surpreendentemente muitas coisas, incluindo hardware, como WLAN ou impressoras, "simplesmente funcionam".

No entanto, em primeiro lugar, o sistema tem um conceito de ambiente de trabalho que está ausente em ambientes de trabalho no Linux.

A presença de um sistema coeso (e não um núcleo e vários ambientes de usuário concorrentes) torna tudo simples e consistente.

A ausência de várias compilações (distribuições) torna tudo ainda mais fácil.

O fato de ser projetado para apenas um usuário no sistema reduz ainda mais a complexidade.

O resultado: um sistema muito simples, refinado e minimalista em muitos aspectos, criado para "mortais comuns", e não para administradores de sistemas UNIX.

Há esperança de que quando este sistema se tornar mais popular (o que é inevitável), sua complexidade não aumente.

Já escrevi sobre #LinuxUsability no ciclo anterior de artigos. É bom saber que o Haiku resolve muitos dos problemas mencionados. incluindo as questões que afligem os ambientes de trabalho no Linux..

Um dia foi suficiente para eu ter certeza: quero usar este ambiente de trabalho para meu dia a dia e também estou buscando opções para contribuir para o desenvolvimento do sistema.

Experimente você mesmo! Afinal, o projeto Haiku oferece imagens para instalação via DVD ou USB. geradas diariamente. Para instalação, basta baixar a imagem e gravá-la em um pen drive usando Etcher.

Nota do tradutor: este é apenas o primeiro artigo de uma série sobre o Haiku, os demais aguardam tradução e serão publicados em breve.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster