Introdução ao Wayland, a nova geração de servidor gráfico – Elias Praciano
Categories
Tutoriais

Introdução ao Wayland, a nova geração de servidor gráfico

De que forma o Wayland chega para substituir o X11 ou Xorg?
Quais são os conceitos que tornam esta proposta tão inovadora e como funciona o compositor Weston?

O Wayland é um projeto com a pretensão de substituir o X, como servidor ou protocolo gráfico.
De acordo com os desenvolvedores, trata-se de um protocolo criado para permitir que um compositor converse com seus clientes.
Um compositor pode ser um servidor gráfico isolado e rodando sobre um kernel Linux, pode ser uma aplicação X ou um cliente Wayland.
Por clientes, entenda-se, uma aplicação tradicional qualquer, servidores X ou outros.
wayland logo 640px
Parte do que se fala sobre o Wayland project se refere ao Weston — um compositor mínimo e rápido, adequado a uso em dispositivos móveis e embutidos. Vamos falar mais dele, ali na frente.
O X11 tem sido, até o momento o padrão da indústria, para a (quase) totalidade dos sistemas Unix-like, desde seu lançamento, em 1986.
Após estes 30 anos de bons serviços prestados, o X11 está começando a encontrar limitações que pedem alterações mais profundas em seu código — ou a criação de uma nova plataforma, do zero.
A comunidade de desenvolvedores acredita que é mais fácil introduzir uma nova plataforma, mais moderna e voltada para as atuais e futuras tendências de interfaces gráficas ao usuário.
Sem radicalismos desnecessários, os desenvolvedores também estão reaproveitando código do X11, aonde faz sentido.
Os ambientes de desktop gráfico GNOME e KDE estão migrando na direção da adoção do Wayland.
A iniciativa tem o apoio de empresas como a Intel, Red Hat, Collabora etc.
screenshot of gnome 3 on Wayland

Como o Wayland funciona

O Wayland não é um fork do X11 e não é um servidor X, tampouco.
É o sucessor do X11, mas com outra abordagem.
É um protocolo de comunicação entre um compositor e seus clientes.

O método antigo deixava para os aplicativos a responsabilidade de manipular a renderização de suas próprias janelas, diretamente, dentro da memória compartilhada, o que não traz resultados particularmente eficientes ou estáveis.
O estilo antigo, é chamado stacked window managers (ou gerenciadores de janela em pilha).
Um gerenciador de janelas de composiçao, atual, toma para si o controle sobre o espaço que cada aplicação irá ocupar no buffer de memória. A partir daí, ele faz a composição dos buffers numa imagem da memória do display.
Esta abordagem é mais estável do que a do stacking window manager, que pode congelar em virtude do mau comportamento de um única aplicação.
Um ambiente de composição continuará de pé, mesmo que alguma aplicação caia e ainda traça os gráficos mais suaves e sem flickering.

Por que a gente precisa do Wayland?

O Wayland é uma iniciativa open source, com apoio de grandes empresas e da própria comunidade Xorg.
O objetivo é produzir uma base para que as aplicações possam oferecer interfaces fluidas e modernas.
Chega para substituir o X11, integrando o OpenGL ES e o EGL em displays 3D.
Também estão incluídos o suporte a media frameworks, como o GStreamer, OpenMAX e VA-API para reprodução de vídeo, entre muitos outros.

screenshot of gnome 3 on Wayland
O princípio que sustenta a plataforma Wayland é bem simples: cada frame (quadro) tem que ser perfeito.
Isto quer dizer que o usuário final não deve ver, jamais, resultados incompletos ou em trânsito — o que, por sua vez, significa que visualizar uma janela, aparecer primeiro como um retângulo cinza e, em seguida, metade dos elementos da UI (interface do usuário) e ver o resto sendo preenchido depois, não é bom o suficiente, quando se fala de padrões atuais.
Usuários não aceitam mais animações malfeitas, congelamentos da interface ou qualquer coisa menos do que gráficos perfeitos.
No X11, os desenvolvedores precisavam lutar para conseguir os melhores resultados, muitas vezes tendo que recorrer a “gambiarras” — que também não eram portáveis.
Outro objetivo do Wayland é melhorar significativamente a história dos drivers de suporte, em relação ao X11.
O modelo de drivers do X11 é extremamente complexo e frágil — mas não vamos usar isto como desculpa para as empresas de hardware gráfico (AMD, NVIDIA, Intel etc.) não cumprirem bem seus papéis.
O fato é que o modelo do X11 requer muita integração (ou participação) dos fabricantes de hardware, para conseguir obter funcionalidade básicas.
As atualizações dos drivers das placas de vídeo para X11, são um pesadelo à parte.
No caso do Wayland, há uma área muito menor a ser coberta, neste sentido.
Ele requer apenas suporte a APIs de display básicas do kernel, bem como uma extensão EGL, para aceleração 3D.
Com isto, espera-se redução no custo e no tempo de desenvolvimento de soluções e de suporte.
screenshot of gnome 3 on Wayland

O que é Weston?

O projeto Wayland é composto pelo seguinte:

  • O núcleo do Wayland display protocol, que define como os compositores (ou display servers) interagem com os clientes (o que inclui outros servidores, tal como o próprio X.Org), bem como a interação dos dispositivos de entrada e saída.
  • Uma biblioteca de referẽncia, que implementa o protocolo Wayland, oferecendo uma API nativa em C e que dá suporte a comunicação com outras linguagens.
  • O Weston, uma implementação, que serve de referência como um compositor completo.

A Collabora trabalha intimamente com todo o ecossistema Wayland, desde o núcleo do protocolo – cujas mudanças afetam como todo o conteúdo será disposto na tela – aos novos recursos, incluídos na UI (Interface de Usuário) do Weston.
Weston running over Wayland on Gnome 3 on Debian 9 Stretch Testing.
O Weston é uma implementação de compositor, cujo objetivo é servir de modelo para ambientes móveis e desktop.
Ele provê 3 grandes componentes:

  1. O manuseio do núcleo do protocolo Wayland.
  2. Uma abstração da camada de hardware, que permite que rode sobre uma variedade grande de plataformas de hardwares e interfaces de controle gráfico.
  3. Um UI framework que permite o desenvolvimento rápido de novas interfaces.

O Weston suporta hardware de composição dedicada, com muita classe. Ele permite animações fluidas, transições suaves e decodificação de vídeo em alta qualidade.
— tudo isto, mantendo o consumo de energia e o uso dos recursos da CPU, no mínimo absoluto.

Referências

https://wayland.freedesktop.org/.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

3 replies on “Introdução ao Wayland, a nova geração de servidor gráfico”

Pelo menos até agora, testei o gnome com wayland no meu velho amd64 e achei pesado demais, isso pra produzir uma UI do tipo de celular, porque convenhamos, as UI’s pra celular são bem fraquinhas.
Enquanto que tem-se uma ótima interface em DE como LXDE, TDE e KDE.
É interessante essa migração das UI’s de dispositivos móveis pra sistemas operacionais, as novas versões de UBUNTU tem uma DE q é praticamente uma interface de cel, é tudo flat, dá pra perceber uma certa vontade desses novos ambientes em migrar para o modo mono tasking, vc tem uma janela em foco por vez, como em celulares.
Agora, se for pra ser pesado pra renderização tosca de uma UI de smart, então estamos em pleno retrocesso mesmo.

Muito bom, me ajudou a conhecer e entender um pouco do que é o Wayland. Obrigado!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.