Enquanto praticamente toda a comunidade Linux concentra seus esforços no Wayland, um projeto resolveu seguir exatamente na direção oposta. Em vez de criar mais um compositor moderno, o desenvolvedor Geir Isene decidiu escrever um servidor X11 completamente do zero usando apenas Assembly.

Batizado de Frame, o projeto não pretende competir diretamente com o X.Org ou desacelerar a adoção do Wayland. Sua proposta é muito mais experimental: provar que um servidor gráfico funcional pode ser extremamente enxuto, sem depender de bibliotecas externas e oferecendo controle total sobre cada camada do software.

Um servidor X11 do zero

Ao contrário do X.Org, que acumula décadas de desenvolvimento e milhões de linhas de código, o Frame foi criado inteiramente do zero. Segundo Isene, o projeto possui atualmente cerca de 20 mil linhas de código Assembly x86-64, utilizando apenas chamadas diretas ao kernel Linux.

Isso significa que o Frame dispensa componentes tradicionais da pilha gráfica, como:

  • libc;
  • Mesa;
  • Xlib;
  • FreeType;
  • Bibliotecas compartilhadas em tempo de execução.

Em vez disso, o servidor conversa diretamente com o kernel utilizando o DRM/KMS para controlar a saída de vídeo, evdev para dispositivos de entrada e implementa diretamente o protocolo de comunicação do X11. Tudo isso resumido em um único executável estático, sem dependências externas.

Menos camadas, mais controle

A filosofia do projeto acompanha uma tendência que Geir Isene vem explorando há algum tempo: reduzir ao máximo a quantidade de software entre o usuário e o hardware.

Segundo o desenvolvedor, o objetivo é criar programas que permaneçam completamente inativos quando não há trabalho a ser feito. Essa abordagem também motivou a criação do CHasm, um conjunto de ferramentas Linux igualmente escritas em Assembly.

Em vez de utilizar GNOME, KDE ou outro ambiente tradicional, Isene desenvolveu praticamente toda sua sessão gráfica.

O conjunto inclui:

  • Tile, um gerenciador de janelas tiling;
  • Glass, um emulador de terminal;
  • Bare, um shell próprio;
  • Strip, uma barra de status;
  • Bolt, responsável pela tela de bloqueio e login.

Somando todos esses componentes, o ecossistema possui cerca de 100 mil linhas de código, número muito inferior ao de uma pilha gráfica tradicional.

Frame: um novo servidor X11 escrito inteiramente em Assembly 1
Imagem: CHasm

Firefox e GIMP já funcionam

Apesar do caráter experimental, o projeto já alcançou um estágio tal que o próprio desenvolvedor utiliza o Frame como ambiente principal de trabalho. Segundo ele, aplicações conhecidas como Firefox e GIMP já funcionam normalmente sobre o novo servidor.

O Frame implementa uma parte significativa do protocolo X11, incluindo a criação de janelas, propriedades, entrada de teclado e mouse, pixmaps, seleções e composição de janelas por software.

Além disso, diversas extensões importantes já estão presentes, como:

  • RANDR;
  • SHAPE;
  • XInput2;
  • MIT-SHM.

Naturalmente, ainda há partes do protocolo que permanecem em desenvolvimento.

Uma experiência voltada para eficiência

Outro ponto destacado pelo autor foi o consumo de recursos. Em testes realizados por ele próprio, tanto o Frame quanto o X.Org apresentaram consumo elétrico semelhante quando o computador permanecia ocioso.

Isso acontece porque boa parte da energia utilizada vem do próprio painel da tela, do Wi-Fi e de outros componentes do notebook. 

A diferença apareceu no tempo de CPU. Segundo Isene, o X.Org consumiu quase três vezes mais tempo de processamento do que o Frame durante períodos sem atividade. Ele também afirma que componentes como o gerenciador de janelas e o terminal permaneceram completamente inativos durante vários minutos de medição.

É importante destacar que esses números foram produzidos pelo próprio desenvolvedor e não constituem benchmarks independentes.

Um projeto de inspiração

Embora seja impressionante do ponto de vista técnico, o próprio autor deixa claro que o objetivo do CHasm não é convencer as pessoas a abandonarem seus ambientes atuais. Na documentação oficial, ele afirma que os projetos foram publicados em domínio público principalmente como fonte de inspiração.

A ideia é incentivar outros desenvolvedores a estudar o código, modificar as ferramentas e adaptá-las às próprias necessidades, em vez de simplesmente utilizá-las como estão. Essa filosofia também aparece na forma como o software é distribuído.

Não existem pacotes oficiais para distribuições populares, sessões prontas para GNOME Display Manager ou integração com ambientes gráficos conhecidos. Tudo é construído manualmente a partir do código-fonte, usando apenas NASM e o linker padrão do Linux.

Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!