Questão Por que Wayland é melhor?


Como anunciou recentemente por Mark Shuttleworth, o Ubuntu estará se movendo no sentido de usar o Wayland como seu gerenciador de exibição.

Quais são as maiores diferenças entre o X11 e o Wayland? Por que Wayland fará o Ubuntu melhor?


150
2017-11-05 13:52


origem


Em dezembro de 2013, parece que o Ubuntu baseado em Unity utilizará o servidor de exibição Mir em vez de um compositor baseado em Wayland a partir do Ubuntu 14.10: ligação  ligação Outras variantes do Ubuntu provavelmente irão para o Wayland: ligação - Diego
Aqui está um ótimo vídeo explicando X e por que as pessoas querem substituí-lo: youtube.com/watch?v=cQoQE_HDG8g - Jason
O Ubuntu 18 (Bionic) agora usará o xorg por padrão, mas o wayland ainda é uma opção na tela de login: blog.ubuntu.com/2018/01/26/… - Kris


Respostas:


Você pode ver a página da arquitetura de Wayland para ver como isso difere no design. Ele supostamente simplifica toda a pilha de gráficos forçando tudo através de uma pilha GEM / DRM padrão diretamente para o kernel e gerenciando a própria composição.

Compare isso com a pilha X, onde você tem bits e bobs em todo o lugar. Parte da bagunça do X foi através do design flexível, alguns foram crescendo dores. Todos os compositores (Compiz / Metacity / Mutter / KWin / etc) foram adicionados como uma reflexão tardia. Eles são, em sua essência, hacks para fazer o que o X provavelmente deveria estar fazendo. Se as coisas continuarem se expandindo para fora como foram, chegaremos a um ponto em que o projeto se tornará inatingível.

Tudo somado, quando o suporte de hardware está lá, ele deve tornar toda a pilha mais eficiente e menos dolorosa de usar em configurações padrão.

No entanto, existem alguns problemas que não vi remédios até agora:

  • X é bastante ciente da rede. Você pode enviar janelas para outros computadores, você pode ter várias telas com logins remotos e todos os tipos de coisas divertidas como essa. Isso pode parecer bastante especializado, mas é uma tecnologia amplamente usada. Wayland parece razoavelmente local e estático em comparação.

  • Há também suporte de driver. Os drivers de código fechado ainda precisam oferecer suporte às tecnologias KMS / shared-GEM / shared-DRM que a Wayland aproveita. Um purista pode estar bem com Nouveau, mas alguém que paga £ 100-400 em uma placa de vídeo 3D de alto desempenho não vai ficar feliz com o desempenho 3D ruim e escamoso que eles teriam com o atual driver aberto.

    Atualizar:  A Nvidia está trabalhando para suportar Wayland e Mir.

De qualquer forma, estamos falando de anos (provavelmente de dois a três IMO) antes que algo assim esteja pronto para testes estáveis ​​e ainda mais tempo antes de você ter que desistir de X (se Wayland fosse claramente melhor).


121
2017-11-05 14:43



+1 pela pura franqueza de que o link Nvidia. - poolie
A transparência da rede é muito exagerada por vários motivos. 1. O encaminhamento do Pure X é rápido o suficiente em uma LAN. Na Internet, o X em bruto está inutilizável devido à latência. Para obter um desempenho decente, você precisa usar protocolos de terceiros, como NX ou VNC. 2. Tanto o NX quanto o VNC são muito difíceis de configurar devido à arquitetura do X. Deveria ser mais fácil com o Wayland. 3. Poucos toolkits modernos usam o código de desenho de X. Eles simplesmente se desenham em um bitmap e enviam isso para X. Isso é exatamente o mesmo que Wayland e terá as mesmas características de rede. - Timmmm
Eu concordo com o ponto 1, mas com uma boa LAN, X-forwarding intocável por qualidade ou desempenho. Muito melhor do que qualquer alternativa na minha experiência. - Oli♦
A partir de 2013, a situação é mais clara em relação à transparência da rede: askubuntu.com/a/359870/203271 - Diego
@poolie: Parece que eles mudaram de idéia. ;-) - Peque


tem grande quantidade das diferenças entre X e Wayland. Provavelmente o maior do lado gráfico é que Wayland não faz nenhum desenho.

X tem duas APIs de desenho. Uma delas é parte do núcleo do protocolo X11, que é antigo, inútil e ninguém usa. A outra é a extensão XRender, que fornece operações compostas modernas, entre outras coisas, como gradientes. É o que o Cairo, por exemplo, usa. X também possui APIs de desenho de fonte.

Wayland não possui APIs de desenho. Um cliente Wayland obtém um identificador de buffer DRM, que é basicamente um ponteiro para alguma memória gráfica; Wayland não sabe ou se importa como o cliente atrai para esse buffer. Em termos X, isso significa que todos os aplicativos renderização direta - solicitações de desenho não precisam passar pelo servidor.

A única renderização que o Wayland faz é copiar os buffers do cliente na tela.

Em termos de benefícios, o Wayland é muito menos complexo do que o X, o que deve facilitar a manutenção - embora parte dessa simplicidade venha de empurrar a complexidade (por exemplo: como na realidade desenhar para esse buffer, transparência de rede) para outras camadas da pilha. Ao responsabilizar os clientes por todas as suas renderizações, os clientes podem ser mais inteligentes em relação a coisas como o buffer duplo.

Existem outros benefícios fora dos gráficos. É muito mais fácil proteger aplicativos, por exemplo.


49
2017-11-07 05:40



Soa como o DirectX da Microsoft como coisas? - Anwar
Eu uso a API de desenho do protocolo X11, porque é mais rápido que o XRender. - étale-cohomology
Eu também recebo Microsoft wibes por Wayland e systemd. E não, isso não é uma coisa boa. Eles quebram as regras básicas de desenvolvimento de software. No systemd só porque é mais fácil para os desenvolvedores do systemd. No caminho, porque eles querem jogos mais rápidos (?) E renderização, e joga fora muitas coisas boas com isso. - Anders


A principal diferença em meus olhos é que o Wayland está mais próximo do kernel do que o X-Server. Com o movimento dos drivers de gráficos do X para o kernel (conhecido como configuração do modo kernel, KMS), o Wayland planeja usar essa nova funcionalidade para substituir o X. Você pode esperar ver o seguinte ...

Menos de uma pegada do que X - porque a exibição é manipulada pelo kernel Wayland não terá que implementar tanto para se tornar utilizável. Isso acontece nos dois sentidos, já que suspeito que o encaminhamento do X (veja uma tela em outro PC) pode acabar com o X.

Características do KMS: Ser capaz de alterar a resolução da tela sem reiniciar o servidor X (embora eu acredite que isso tenha sido corrigido em X há algum tempo, pelo menos na nvidia), console de depuração no kernel panic para chipsets intel (mudança para nouveau) esse tipo de coisas.

Alguém pode me corrigir em nada disso se eu estiver errado?


16
2017-11-05 14:36



O KMS & GEM não move os drivers gráficos para o kernel, apenas algumas pequenas partes são movidas para o kernel (os bits que falam diretamente ao hardware e precisam estar no kernel para que diferentes drivers possam coexistir, por exemplo escrevendo para portas I / O e gerenciando memória). KMS e GEM já são usados ​​pelo X hoje, pelo menos para drivers modernos de código aberto (intel, radeon, nouveau). BTW: Eu duvido seriamente que mover todo o driver gráfico para o kernel seja aceito por Linus ...;) - JanC
Ah, e o KMS nunca foi necessário para alterar a resolução da tela (isso foi possível desde que usei X há mais de 10 anos), mas permite drivers diferentes (por exemplo, o driver framebuffer do console, os drivers X e agora os drivers Wayland) cooperar mais facilmente. No passado, nem sempre era óbvio para cada um deles em que "estado" o hardware gráfico está em um determinado ponto no tempo, e muitas adivinhações ou soluções proprietárias dependentes do driver foram usadas. - JanC
Não é inteiramente verdade que o encaminhamento do X irá embora, uma vez que o X ainda pode ser usado como um cliente no Wayland. wayland.freedesktop.org tem um exemplo disso. Mas X é uma maneira horrível de fazer esse tipo de coisa de qualquer maneira. Já é hora de ser substituído. Em muitos casos, parece que coisas como o GTK com a Broadway seriam uma abordagem melhor. - Jo-Erlend Schinstad
A extensão RandR permite alterar a resolução da tela sem reiniciar o servidor X. - Anonymous


Todos os outros posts destacam os benefícios do Wayland, mas nem tudo é bom. A maior vantagem do X em relação ao Wayland é que o X funciona através da rede. X é transparente na rede, você pode exibir a janela ou, com o XDMCP, uma sessão completa, em um terminal, enquanto o programa real está sendo executado em outra máquina geralmente mais poderosa. Com algo parecido com Wayland, a ideia de transparência de rede desapareceu. Talvez não seja muito necessário nos dias de hoje com redes rápidas e outros protocolos como VNC e RDP, apenas pensei em mencioná-lo para a integralidade.


11
2017-09-02 20:16



Isto é exatamente o que eu também considero a maior vantagem do X sobre o Wayland proposto. - Kris Jace


Simplificando, a esperança é de melhores gráficos (menos bugs, mais rápidos, mais fáceis de usar). Mesmo as coisas podem ser possíveis um dia que não eram antes. Eu pessoalmente acho que isso vai apimentar as coisas, como a concorrência sempre faz.


6
2017-11-05 14:20





Duas pequenas coisas que qualquer um notará rapidamente no trabalho do dia-a-dia:

  • Wayland acaba com os papercuts que foram considerados difíceis de consertar no X11. Um exemplo famoso: usando as teclas de função (volume do alto-falante, brilho da tela, etc.) enquanto o menu está aberto ou a tela de bloqueio está ativada.
  • Wayland é melhor em dispositivos de entrada. Por um lado, existem muitas outras opções para configurar touchpads, incluindo uma configuração persistente de tocar para clicar.

3
2017-08-15 13:52



Wayland é pior se um programa é bloqueado por um motivo. Ter wm diferentes é uma coisa boa. Eu uso a rede X11 regularmente (todos os dias). Algum programa parou de funcionar em Wayland (eu uso o Ubuntu 18.04) - Anders