¿Por qué es mejor Wayland?

177

Como anunció recientemente Mark Shuttleworth, Ubuntu se moverá hacia el uso de Wayland como su administrador de pantalla.

¿Cuáles son las mayores diferencias entre X11 y Wayland? ¿Por qué Wayland mejorará Ubuntu?

Hillar
fuente
55
En diciembre de 2013 se parece a Ubuntu basada Unidad utilizará el servidor Mir pantalla en lugar de un compositor basado Wayland partir de Ubuntu 14.10: enlace de enlace Otras variantes de Ubuntu, probablemente se moverán a Wayland: enlace
Diego
44
Aquí hay un gran video que explica X y por qué la gente quiere reemplazarlo: youtube.com/watch?v=cQoQE_HDG8g
Jason
Ubuntu 18 (Bionic) ahora usará xorg por defecto, pero wayland sigue siendo una opción en la pantalla de inicio de sesión: blog.ubuntu.com/2018/01/26/…
Kris
Yo diría que X es mejor. No entraría en cosas técnicas. Pero solo diré que tengo cuadros sueltos en YouTube con Wayland si cambio el tamaño de la ventana o salgo / salgo de pantalla completa. Con X, no hay problemas. A pesar de que la velocidad es la misma. También en el cursor del mouse Wayland se siente más flojo que en X. X sigue siendo mi no1
Luka

Respuestas:

136

Puede ver la página de arquitectura de Wayland para ver cómo difiere en diseño. Se supone que simplifica toda la pila de gráficos al forzar todo a través de una pila GEM / DRM estándar directamente en el núcleo y administrar la composición en sí.

Compare eso con la pila X donde tiene bits y bobs por todas partes. Parte del desastre X ha sido a través de un diseño flexible, algunos han sido dolores de crecimiento. Todos los compositores (Compiz / Metacity / Mutter / KWin / etc) se han agregado como una ocurrencia tardía. En esencia, son piratas informáticos para hacer lo que X probablemente debería estar haciendo por sí mismo. Si las cosas continúan expandiéndose hacia afuera como lo han sido, llegaremos a un punto en el que el proyecto se volverá insostenible.

En general, cuando el soporte de hardware está allí, debería hacer que toda la pila sea más eficiente y menos dolorosa de usar en configuraciones estándar.

Sin embargo, hay un par de problemas para los que no he visto remedios hasta ahora:

  • X es bastante consciente de la red. Puede enviar ventanas a otras computadoras, puede tener múltiples pantallas con inicios de sesión remotos y todo tipo de cosas funky como esa. Esto puede parecer bastante especializado, pero es una tecnología ampliamente utilizada. Wayland parece bastante local y estático en comparación.

  • También hay soporte para controladores. Los controladores de código cerrado aún no son compatibles con las tecnologías KMS / shared-GEM / shared-DRM en las que Wayland prospera. Un purista podría estar de acuerdo con Nouveau, pero alguien que paga £ 100-400 en una tarjeta gráfica 3D de alto rendimiento no estará contento con el escaso rendimiento 3D pobre que obtendrían con el controlador abierto actual.

    Actualización: Nvidia está trabajando para admitir Wayland y Mir .


Actualización 2018 . 17.10 usó Wayland como el servidor de visualización predeterminado (a menos que tuviera un controlador cerrado, o un controlador que no lo admitiera, o necesitara X). 18.04 y 18.10 usan X como valor predeterminado global (aunque puede instalar Wayland).

No estoy a cargo de nada, pero desde esta posición, parece que todavía estamos a una Nvidia métrica lejos de obtener una tracción real . Hasta ese momento, no creo que veamos suficiente participación mental y poder de desarrollo detrás de Wayland. El mercado de juegos / rendimiento está utilizando X. El mercado de MCE está utilizando X (y framebuffers directos). No estoy seguro de que Wayland alguna vez tenga una oportunidad real.

Oli
fuente
21
La cuestión de la transparencia de la red es exagerada por varias razones. 1. El reenvío de Pure X solo es lo suficientemente rápido en una LAN. En Internet, la X sin procesar es inutilizable debido a la latencia. Para obtener un rendimiento decente, debe utilizar protocolos de terceros como NX o VNC. 2. Tanto NX como VNC son difíciles de configurar debido a la arquitectura de X. Debería ser más fácil con Wayland. 3. Pocos kits de herramientas modernos usan el código de dibujo de X. Simplemente se dibujan en un mapa de bits y lo envían a X. Esto es exactamente lo mismo que Wayland y tendrá las mismas características de red.
Timmmm
44
Estoy de acuerdo con el punto 1, pero a través de una buena LAN, reenvío de X intocable por calidad o rendimiento. Mucho mejor que cualquiera de las alternativas en mi experiencia.
Oli
1
A partir de 2013, la situación es más clara con respecto a la transparencia de la red: askubuntu.com/a/359870/203271
Diego
2
@poolie: Parece que cambiaron de opinión. ;-)
Peque
2
De BionicBeaver / ReleaseNotes : "X es el servidor de visualización predeterminado. Wayland se proporciona como una Vista previa técnica y se espera que sea el servidor de visualización predeterminado en 20.04 LTS . Para probarlo, simplemente elija Ubuntu en Wayland desde el engranaje en el inicio de sesión pantalla. Los registros de X.org ahora se pueden encontrar en ~ / .local / share / xorg "[énfasis mío]
Dennis Williamson
56

Hay muchas diferencias entre X y Wayland. Probablemente el más grande desde el punto de vista gráfico es que Wayland no hace ningún dibujo .

X tiene dos API de dibujo. Uno de estos es parte del protocolo central X11, que es antiguo, inútil y que nadie usa. La otra es la extensión XRender que proporciona operaciones compuestas modernas, entre otras cosas, como los gradientes. Esto es lo que el Cairo, por ejemplo, usa. X también tiene API de dibujo de fuentes.

Wayland no tiene API de dibujo. Un cliente de Wayland obtiene un controlador de búfer DRM, que es básicamente un puntero a alguna memoria gráfica; Wayland no sabe ni le importa cómo el cliente se acerca a ese búfer. En términos X, esto significa que todas las aplicaciones obtienen representación directa : las solicitudes de dibujo no necesitan pasar por el servidor.

La única representación que Wayland hace es copiar los buffers del cliente en la pantalla.

En términos de beneficios, Wayland es mucho menos complejo que X lo que debería hacer más fácil mantener - aunque algunos de esta simplicidad viene de empujar la complejidad (por ejemplo: cómo realmente dibujar en ese búfer, la transparencia de red) a otras capas de la apilar. Al hacer que los clientes sean responsables de todas sus representaciones, los clientes pueden ser más inteligentes sobre cosas como el doble búfer.

Hay otros beneficios fuera de los gráficos. Es mucho más fácil usar aplicaciones de sandbox, por ejemplo.

RAOF
fuente
2
Suena como DirectX de Microsoft como cosas?
Anwar
3
Utilizo la API de dibujo del protocolo X11 principal, porque es más rápido que XRender.
étale-cohomology
3
También recibo wibes de Microsoft de Wayland y systemd. Y no, eso no es algo bueno. Rompen las reglas básicas de desarrollo de software. En systemd solo porque es más fácil para los desarrolladores de systemd. En wayland porque quieren juegos más rápidos (?) Y renderizado, y arroja muchas cosas buenas con eso.
Anders
18

La principal diferencia en mis ojos es que Wayland está más cerca del núcleo que X-Server. Con el movimiento de los controladores de gráficos de X al kernel (conocido como configuración del modo de kernel, KMS), Wayland planea usar esta nueva funcionalidad para reemplazar X. Puede esperar ver lo siguiente ...

Menos espacio que X - porque la pantalla es manejada por el kernel Wayland no tendrá que implementarse tanto para ser utilizable. Esto ocurre en ambos sentidos, ya que sospecho que el reenvío de X (mira una pantalla en otra PC) puede desaparecer con X.

Características de KMS: Poder cambiar la resolución de pantalla sin reiniciar el servidor X (aunque creo que esto se solucionó en X hace un tiempo, al menos para nvidia), depurar la consola en kernel panic para conjuntos de chips de Intel (mudarse a nouveau) si está interesado esa clase de cosas.

¿Alguien puede corregirme sobre esto si me equivoco?

TGM
fuente
44
KMS & GEM no mueve los controladores de gráficos al kernel, solo algunas partes pequeñas se mueven al kernel (los bits que hablan directamente al hardware y se requieren para estar en el kernel de modo que los diferentes controladores puedan coexistir, p. Ej. escritura en puertos de E / S y gestión de memoria). KMS y GEM ya son utilizados por X hoy, al menos para los controladores modernos de código abierto (Intel, Radeon, Nouveau). Por cierto: dudo seriamente que Linus acepte mover todo el controlador de gráficos al kernel ...;)
JanC
44
Ah, y KMS nunca fue necesario para cambiar la resolución de la pantalla (eso ha sido posible desde que usé X hace más de 10 años), pero permite diferentes controladores (por ejemplo, el controlador de framebuffer de consola, los controladores X y ahora los controladores Wayland) para cooperar más fácilmente. En el pasado, no siempre era obvio para cada uno de ellos en qué "estado" se encontraba el hardware de gráficos en un determinado momento, y se utilizaban muchas soluciones alternativas dependientes o dependientes del controlador.
JanC
1
No es del todo cierto que el reenvío de X desaparecerá, ya que X todavía se puede usar como cliente en Wayland. wayland.freedesktop.org tiene un ejemplo de eso. Pero X es una forma bastante horrible de hacer ese tipo de cosas de todos modos. Ya es hora de que sea reemplazado. En muchos casos, parece que cosas como GTK con Broadway serían un mejor enfoque.
Jo-Erlend Schinstad
3
La extensión RandR le permite cambiar la resolución de la pantalla sin reiniciar el servidor X.
Anónimo
14

Todas las otras publicaciones destacan los beneficios de Wayland, pero no todo es bueno solamente. La mayor ventaja de X sobre Wayland es que X funciona a través de la red. X es transparente de red, puede mostrar la ventana, o con XDMCP una sesión completa, en un terminal mientras el programa real se ejecuta en otra máquina, generalmente más potente. Con algo como Wayland, la idea de la transparencia de la red se ha ido. Tal vez no sea tan necesario en estos días con redes rápidas y otros protocolos como VNC y RDP, solo pensé en mencionarlo para completarlo.

Christian Hujer
fuente
Esto es exactamente lo que también considero la mayor ventaja de la X sobre el Wayland propuesto.
Kris Jace
7

En pocas palabras, la esperanza es mejores gráficos (menos errores, más rápido, más fácil de usar). Incluso las cosas podrían ser posibles un día que no eran antes. Personalmente, creo que esto al menos animará las cosas, como siempre lo hace la competencia.

hago
fuente
3

Dos pequeñas cosas que cualquiera notará con bastante rapidez en el trabajo diario:

  • Wayland elimina los recortes de papel que se consideraron demasiado difíciles de arreglar en X11. Un ejemplo famoso: el uso de las teclas de función (volumen del altavoz, brillo de la pantalla, etc.) mientras un menú está abierto o la pantalla de bloqueo está encendida.
  • Wayland es mejor en dispositivos de entrada. Por un lado, hay muchas más opciones para configurar los paneles táctiles, incluida una configuración persistente de toque a clic.
Nico Schlömer
fuente
1
Wayland es peor si un programa está bloqueado por algún motivo. Tener diferentes wm es algo bueno. Uso la red X11 de forma regular (cada día). Algún programa dejó de funcionar en Wayland (uso Ubuntu 18.04)
Anders