Wayland é um protocolo de computador que especifica a comunicação entre o servidor gráfico (chamado compositor Wayland) e os seus clientes. Ele foi inicialmente projetado por Kristian Høgsberg, líder do projeto AIGLX, como um substituto ao X Window System.
A implementação inicial, principalmente libwayland-server, libwayland-client, libwayland-EGL e a implementação de referência Weston são escritas em C e publicada sob a Licença MIT. Weston é escrito para o núcleo Linux. Um porte inicial para o FreeBSD está em processo de desenvolvimento.
Diferenças entre Wayland e Xorg
Arquitetura No Xorg, o compositor é separado do servidor gráfico, enquanto o Wayland mescla o servidor gráfico com o compositor em uma única função. O Wayland também incorpora algumas tarefas do gerenciador de janelas, o que por sua vez é um processo client-side separado.
Composição A composição é opcional no Xorg, mas é obrigatória no Wayland. O Xorg trata a composição de forma "ativa", exigindo que todos os pixels da tela sejam atualizados para gerar um quadro novo, introduzindo latência. Por outro lado, o Wayland trata esse processo de forma "passiva", permitindo que o compositor apenas receba os pixels das janelas de forma separada, diminuindo a carga de GPU e entregando menor latência.
Renderização O servidor X é capaz de lidar com a renderização, apesar de que essa instrução pode ser realizada por uma janela. Em contraste, o Wayland não expõe nenhuma API relacionada a renderização, mas ordena que o client-side faça o papel de decoração de janelas, renderização de fontes, widgets, etc. Caso o compositor tenha suporte ao xdg-decorations, as decorações de janelas podem ser desenhadas pelo próprio compositor.
Segurança O Wayland isola a entrada e saída de dados de todas as janelas, mantendo a confidencialidade do que o usuário está digitando, sendo projetado para evitar keyloggers. Essa feature não existe no Xorg.
Caso seja necessário usar atalhos globais, o compositor precisa suportar o xdg-desktop-portal
Compositores Wayland
Servidores gráficos que implementam o protocolo de servidor gráfico Wayland são também chamados de compositores Wayland, porque eles adicionalmente fazem a tarefa de um gerenciador de janelas baseado em composição.
Weston - implementação de referência de um compositor Wayland; Weston implementa decoração de janela de lado de cliente. Lipstick – framework de shell gráfico móvel que implementa compositor Wayland. É usado no Sailfish OS, Nemo Mobile e AsteroidOS. Enlightenment - Gerenciador de janelas baseado em módulos. KWin - Compositor padrão do KDE Plasma, definindo a sessão Wayland como padrão, apresentando uma das implementações mais completas dos protocolos Wayland. Mutter - Compositor padrão do Gnome, utilizando a sessão Wayland por padrão. Hyprland - Compositor de empilhamento de janelas escrito em C++. Sway - Compositor de empilhamento de janelas baseado em wlroots e escrito em C++, sendo inspirado no i3. Labwc - Compositor de empilhamento de janelas baseado em wlroots, sendo inspirado no OpenBox. Woodland - Compositor de empilhamento de janelas baseado em wlroots escrito em C, com o foco em simplicidade e estabilidade. Niri - Compositor de janela 'scrollável' escrito em Rust. Gamescope - Microcompositor desenvolvido pela Valve para executar aplicações Xwayland com as tecnologias Wayland. O mesmo é executado de forma aninhada em outros compositores.
Weston Weston é a implementação de referência de um compositor Wayland também desenvolvido pelo projeto Wayland. Está escrito em C e publicado sob a licença MIT. O Weston só tem suporte oficial para os sistemas operacionais baseados em Linux devido à dependência de determinados recursos do kernel do Linux, como a configuração de resolução gráfica em modo kernel (KMS), o Gerenciador de Execução de Gráficos (GEM) e o udev, que ainda não foram implementados em outros sistemas operacionais Unix. Quando executado no Linux, o gerenciamento do hardware de entrada depende do evdev, enquanto o tratamento de buffers depende do Gerenciamento Genérico de Buffer (GBM). No entanto, em 2013 foi anunciado um protótipo de porte do Weston para o FreeBSD.
Disponibilidade Distribuições de Linux para desktops Em geral, o suporte completo aos ambientes de desktop Wayland nas principais distribuições do Linux ainda está nos estágios iniciais. A maioria das distribuições Linux que usam a versão 3.20 ou mais recente do ambiente de trabalho do Gnome suportam a instalação manual de uma sessão do Wayland e, no caso do Gnome 3.22 ou posterior, pode usar o Wayland por padrão. Adotadores iniciais notáveis que fornecem o Wayland são:
O Fedora a partir da versão 25 usa o Wayland como sessão padrão do desktop GNOME 3.22, com o X.Org como alternativa se o driver gráfico não suportar o Wayland. A versão 34 do Fedora também usa o Wayland como padrão para sessões de desktop KDE. O Ubuntu usa o Wayland como padrão na versão 17.10 (Artful Aardvark). O Ubuntu reverteu para o X.Org na versão 18.04 LTS, pois o Wayland teve problemas com compartilhamento de tela e aplicativos de área de trabalho remota, e não se recuperava tão bem de travamentos do gerenciador de janelas. Desde o Ubuntu 21.04, o Wayland é o padrão novamente. O KDE Neon Developer Edition tem suporte ao Wayland. O Arch Linux vem com o Wayland habilitado por padrão em vários ambientes desktop. O Red Hat Enterprise Linux usa o Wayland como a sessão padrão na versão 8. O Debian usa o Wayland como a sessão padrão para o GNOME desde a versão 10.
Suporte de toolkit Toolkits que suportam o Wayland incluem os seguintes:
Clutter tem suporte completo ao Wayland. EFL tem suporte completo ao Wayland, exceto para seleção. GTK tem suporte completo ao Wayland a partir do GTK3. Qt tem suporte completo ao Wayland a partir do QT5. SDL suporta o Wayland desde a versão 2.0.2 e foi habilitado por padrão desde a versão 2.0.4. GLFW tem suporte ao Wayland a partir do GLFW 3.2. FreeGLUT tem suporte inicial ao Wayland.
Ambientes de desktop Em Novembro de 2015, o Enlightenment e20 foi anunciado com suporte completo ao Wayland. O GNOME 3.20 foi a primeira versão a ter uma sessão Wayland completa. O GNOME 3.22 incluiu um suporte muito melhorado ao Wayland no GTK, Mutter e GNOME Shell. O GNOME 3.24 incluiu o suporte para os drivers proprietários da Nvidia no Wayland.
A partir do KDE Plasma 6, a sessão Wayland é utilizada por padrão, com planos da sessão X11 ter o suporte encerrado até o lançamento do Plasma 7, em favor da sessão Wayland.
História Kristian Høgsberg, desenvolvedor de software de gráficos do Linux e do X.Org que anteriormente trabalhou no AIGLX e no Direct Rendering Infrastructure 2 (DRI2), iniciou o Wayland como um projeto de tempo livre em 2008 enquanto trabalhava para a Red Hat. Seu objetivo declarado era um sistema em que "cada quadro é perfeito, pelo que quero dizer que as aplicações serão capazes de controlar a renderização o suficiente para que nunca veremos tearing, atrasos, redesenhamento ou cintilação". Høgsberg estava dirigindo pela cidade de Wayland, Massachusetts, quando os conceitos subjacentes "cristalizaram", daí o nome.
Em outubro de 2010, Wayland tornou-se um projeto freedesktop.org. Como parte da migração, o grupo anterior do Google foi substituído pela lista de correspondência wayland-devel como o ponto central de discussão e desenvolvimento do projeto.
As bibliotecas de clientes e servidores do Wayland foram inicialmente lançadas sob a Licença MIT, enquanto o compositor de referência Weston e alguns exemplos de clientes usavam a Licença Pública Geral GNU versão 2. Posteriormente, todo o código GPL foi relicenciado sob a licença MIT "para facilitar o movimento de código entre a implementação de referência e as bibliotecas atuais". Em 2015, descobriu-se que o texto da licença utilizado pelo Wayland era uma versão ligeiramente diferente e mais antiga da licença MIT e o texto da licença foi atualizado para a versão atual usada pelo projeto X.Org (conhecida como Licença MIT Expat).
Wayland funciona com todos os drivers compatíveis com Mesa com suporte ao DRI2, além de drivers do Android através do projeto Hybris.
Os desenvolvedores do Wayland são em grande parte atuais desenvolvedores do servidor X.Org.
Ver também X Window System Mir (servidor gráfico)
Ligações externas
by Joe 'Zonker' Brockmeier, LWN, 17 November 2010 by Richard Hillesley, The H, 13 February 2012 The Wayland Situation: Facts About X vs. Wayland by Eric Griffith, Phoronix, 7 June 2013
Categoria:Freedesktop.org Categoria:Software livre programado em C