Por que Wayland é melhor?

177

Como anunciado recentemente por Mark Shuttleworth, o Ubuntu passará a usar Wayland como seu gerenciador de exibição.

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

Hillar
fonte
5
A partir de dezembro de 2013, parece que o Ubuntu baseado no Unity utilizará o servidor de exibição Mir em vez de um compositor baseado em Wayland a partir do Ubuntu 14.10: link link Outras variantes do Ubuntu provavelmente se mudarão para Wayland: link
Diego
4
Aqui é um grande 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
Eu diria que X é melhor. Eu não iria entrar em coisas técnicas. Mas vou apenas dizer que tenho que soltar quadros no youtube com o Wayland se redimensionar a janela ou sair / sair em tela cheia. Com X, sem problemas. Mesmo que a velocidade seja a mesma. Também no cursor do mouse Wayland se sente mais solto do que X. X é ainda o meu no1
Luka

Respostas:

136

Você pode ver a página de arquitetura Wayland para ver como ela difere no design. Supõe-se que simplifique 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 passou por um design flexível, outras têm crescido. 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 sozinho. Se as coisas continuarem se expandindo para fora como foram, chegaremos a um ponto em que o projeto se tornará insustentável.

Em suma, quando o suporte de hardware existe, deve tornar toda a pilha mais eficiente e menos dolorosa para uso em configurações padrão.

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

  • O X reconhece bastante a rede. Você pode enviar janelas para outros computadores, ter várias telas com logins remotos e todo tipo de coisas estranhas como essa. Isso pode parecer bastante especializado, mas é uma tecnologia amplamente usada. Wayland parece bastante local e estático em comparação.

  • Também há suporte ao driver. Os drivers de código fechado ainda não oferecem suporte às tecnologias KMS / shared-GEM / shared-DRM que Wayland aproveita. Um purista pode concordar com o Nouveau, mas alguém que paga entre 100 e 400 libras em uma placa de vídeo 3D de alto desempenho não ficará satisfeito com o fraco desempenho 3D que eles obteriam com o atual driver aberto.

    Atualização: A Nvidia está trabalhando para apoiar Wayland e Mir .


Atualização de 2018 . 17.10 usou o Wayland como o servidor de exibição padrão (a menos que você tivesse um driver fechado, ou um driver que não o suportasse, ou precisasse do X). 18.04 e 18.10 usam o X como padrão global (embora você possa instalar o Wayland).

Não sou responsável por nada, exceto por essa posição, parece que ainda estamos a uma Nvidia métrica longe de conseguir tração real . Até esse ponto, acho que não veremos o suficiente compartilhar mente e desenvolver o poder atrás de Wayland. O mercado de jogos / desempenho está usando X. O mercado MCE está usando X (e framebuffers diretos). Não tenho certeza se Wayland terá uma chance real.

Oli
fonte
21
A questão da transparência da rede é exagerada por vários motivos. 1. O encaminhamento X puro é rápido o suficiente em uma LAN. Na Internet, o X bruto não pode ser usado devido à latência. Para obter um desempenho decente, é necessário usar protocolos de terceiros como NX ou VNC. 2. O NX e o VNC são uma grande dor de cabeça devido à arquitetura do X. Deve ser mais fácil com Wayland. 3. Poucos kits de ferramentas modernos usam o código de desenho de X. Eles apenas se desenham em um bitmap e o enviam para o X. É exatamente o mesmo que Wayland e terá as mesmas características de rede.
Timmmm
4
Concordo com o ponto 1, mas em uma boa LAN, o encaminhamento X é intocável por qualidade ou desempenho. Muito melhor do que qualquer alternativa na minha experiência.
Oli
1
A partir de 2013, a situação é mais clara em relação à transparência da rede: askubuntu.com/a/359870/203271
Diego
2
poolpool: Parece que eles mudaram de idéia. ;-)
Peque
2
Do BionicBeaver / ReleaseNotes : "X é o servidor de exibição padrão. Wayland é fornecido como uma Visualização técnica e espera-se que seja o servidor de exibição padrão no 20.04 LTS . Para experimentá-lo, basta escolher o Ubuntu no Wayland na roda dentada no logon Os logs do X.org agora podem ser encontrados em ~ / .local / share / xorg "[ênfase minha]
Dennis Williamson
56

Existem muitas 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 faz parte do protocolo X11 principal, que é antigo, inútil e que ninguém usa. A outra é a extensão XRender, que fornece operações compostas modernas, entre outras coisas, como gradientes. É isso que o Cairo, por exemplo, usa. X também possui APIs de desenho de fontes.

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 nem se importa como o cliente atrai esse buffer. Em termos X, isso significa que todos os aplicativos recebem renderização direta - os pedidos de desenho não precisam passar pelo servidor.

A única maneira de renderizar Wayland é copiar os buffers do cliente na tela.

Em termos de benefícios, o Wayland é muito menos complexo que o X, o que deve facilitar a manutenção - embora parte dessa simplicidade venha de aumentar a complexidade (por exemplo: como realmente atrair esse buffer, transparência da rede) para outras camadas do pilha. Ao tornar os clientes responsáveis ​​por toda a sua renderização, os clientes podem ser mais inteligentes quanto a coisas como buffer duplo.

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

RAOF
fonte
2
Parece o DirectX da Microsoft, como coisas?
Anwar #
3
Eu uso a principal API de desenho de protocolo X11, porque é mais rápida que o XRender.
Étale-cohomology 02/02
3
Também recebo wibes da Microsoft por Wayland e systemd. E não, isso não é uma coisa boa. Eles quebram regras básicas de desenvolvimento de software. No systemd apenas porque é mais fácil para os desenvolvedores do systemd. No wayland, porque eles querem jogos mais rápidos (?) E renderizações, e jogam muitas coisas boas nisso.
Anders
18

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

Menos área ocupada que X - porque o monitor é tratado pelo kernel Wayland não precisará implementar tanto para se tornar utilizável. Isso ocorre nos dois sentidos, pois suspeito que o encaminhamento do X (veja uma tela em outro PC) possa desaparecer com o X.

Recursos do KMS: poder alterar a resolução da tela sem reiniciar o servidor X (embora eu acredite que isso foi corrigido no X há algum tempo, pelo menos para a nvidia), console de depuração no pânico do kernel para chipsets intel (movendo-se para o nouveau) se você estiver interessado esse tipo de coisas.

Alguém pode me corrigir sobre isso, se eu estiver errado?

TGM
fonte
4
O KMS & GEM não move os drivers gráficos para o kernel, apenas algumas partes pequenas são movidas para o kernel (os bits que falam diretamente com o hardware e precisam estar no kernel, de modo que diferentes drivers possam coexistir, por exemplo, gravação em portas de E / S e gerenciamento de memória). O KMS e o GEM já são usados ​​pelo X hoje, pelo menos para os drivers de código aberto modernos (intel, radeon, nouveau). BTW: Eu duvido seriamente que mover o driver gráfico inteiro para o kernel seja aceito por Linus ...;)
JanC
4
Ah, e o KMS nunca foi necessário para alterar a resolução da tela (isso é possível desde que eu usei o X há mais de 10 anos), mas permite drivers diferentes (por exemplo, o driver de buffer de estrutura do console, os drivers X e agora os drivers Wayland) para 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 soluções alternativas de adivinhação ou dependentes de driver foram usadas.
JanC
1
Não é inteiramente verdade que o encaminhamento do X desaparecerá, pois o X ainda pode ser usado como um cliente no Wayland. wayland.freedesktop.org tem um exemplo disso. Mas X é uma maneira bastante horrível de fazer esse tipo de coisa de qualquer maneira. Já era hora de ser substituído. Em muitos casos, parece que coisas como GTK com Broadway seriam uma abordagem melhor.
Jo-Erlend Schinstad
3
A extensão RandR permite alterar a resolução da tela sem reiniciar o servidor X.
Anónimo
14

Todas as outras postagens destacam os benefícios do Wayland, mas nem tudo é bom. A maior vantagem do X sobre o Wayland é que o X trabalha na rede. X é transparente à rede, você pode exibir a janela ou, com o XDMCP, uma sessão completa, em um terminal enquanto o programa real estiver sendo executado em outra máquina, geralmente mais poderosa. Com algo como Wayland, a idéia de transparência da rede se foi. Talvez não seja tão exigido hoje em dia com redes rápidas e outros protocolos como VNC e RDP, apenas pensei em mencioná-lo por completo.

Christian Hujer
fonte
Isso é exatamente o que eu considero também a maior vantagem do X sobre o Wayland proposto.
Kris Jace #
7

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

eu faço
fonte
3

Duas pequenas coisas que alguém notará rapidamente no trabalho do dia a dia:

  • Wayland acaba com os cortes 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 um menu está aberto ou a tela de bloqueio está ligada.
  • Wayland é melhor em dispositivos de entrada. Por um lado, há muito mais opções para configurar os touchpads, incluindo uma configuração persistente de toque para clicar.
Nico Schlömer
fonte
1
Wayland é pior se um programa estiver bloqueado por um motivo. Ter ui diferente é uma coisa boa. Eu uso a rede X11 regularmente (todos os dias). Alguns programa parou de funcionar em Wayland (I utiliza Ubuntu 18.04)
Anders