Wayland (protocolo)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Wayland
Wayland Logo.svg
Wayland demo 2.png
Demostración de Wayland
Desarrollador
Kristian Høgsberg
wayland.freedesktop.org
Información general
Diseñador Kristian Høgsberg
Lanzamiento inicial 2008
Última versión estable 1.4.0
24 de enero de 2014; hace 2 meses (2014-01-24)
Género Servidor gráfico
Programado en C
Sistema operativo Linux
Licencia Licencia MIT[1]
Estado actual En desarrollo
En español No No

Wayland es un protocolo de servidor gráfico y una biblioteca para Linux que implementa este protocolo.[2]

Wayland proporciona un método para que los gestores de composición de ventanas se comuniquen directamente con las aplicaciones y el hardware de vídeo. Se espera que también sea posible la comunicación con hardware de entrada usando otras bibliotecas. Las aplicaciones renderizan los gráficos en sus propios buffers y el gestor de ventanas se convierte en el servidor gráfico, haciendo una composición con esos buffers para formar la visualización en pantalla de las ventanas de las aplicaciones. Este es un enfoque más simple y más eficiente que usar un gestor de composición de ventanas con el X Window System.[3]

Los gestores de composición de ventanas existentes, como KWin y Mutter, se espera que implementen soporte para Wayland de forma directa, para convertirse en compositores Wayland/servidores gráficos.

Historia[editar]

Linux Graphics Stack 2013.svg
Free and open-source-software display servers and UI toolkits.svg

Kristian Høgsberg (krh), un ingeniero de software que trabaja en la pila de gráficos de Linux, comenzó Wayland en su tiempo libre en 2008 mientras trabajaba para Red Hat,[4] en este momento trabaja para Intel.[5] Anteriormente había trabajado en AIGLX,[6] que permitía la aceleración por hardware en los gestores de composición de ventanas, y en DRI2.[7] [8] [9]

Su principal objetivo era un sistema en el que "cada frame es perfecto, me refiero a que las aplicaciones serán capaces de controlar el renderizado lo suficiente como para que nunca veamos tearing, lag, redrawing o parpadeo".

Wayland es software libre. Las bibliotecas libwayland-server y libwayland-client fueron liberadas bajo la licencia MIT y el compositor de demostración originalmente bajo los términos de la LGPLv2. Se planificó cambiar todo el proyecto a la licencia LGPLv2, pero esto no ocurrió y actualmente todo el proyecto utiliza licencia MIT.[10] [11]

En noviembre de 2010, Wayland solo funciona con controladores libres y de código abierto para Intel, AMD (anteriormente conocido como ATI) y Nvidia (controlador nouveau).[12] En noviembre de 2010, Nvidia declaró que no tiene planes de dar soporte a Wayland en sus controladores propietarios.[13]

Los desarrolladores de Wayland son, en su gran mayoría, desarrolladores de X.Org Server.

El nombre "Wayland" viene del pueblo de Wayland, Massachusetts. Høgsberg estaba conduciendo a través de este pueblo cuando los conceptos detrás de Wayland "cristalizaron".[14]

Planes de adopción[editar]

Ubuntu
Mark Shuttleworth anunció que tenía planes de reemplazar X con Wayland como el principal servidor gráfico de Ubuntu con el entorno de escritorio Unity.[15] En febrero de 2013, Jono Bacon anunció que los plantes de migrar Ubuntu a Wayland estaban siendo revisados, aunque no se había tomado una decisión firme al respecto.[16] En marzo de 2013, Canonical anunció de forma oficial que se habían cancelado los planes de adoptar Wayland y que tenían planes de construir su propio servidor gráfico, Mir.[17]
Fedora
Adam Jackson (ajax), quien también es desarrollador de X.Org, dijo que Fedora es probable que eventualmente utilice Wayland por defecto, "... porque es una victoria importante en un montón de cosas, y las desventajas son bastante insignificantes a pesar del temor del gallinero".[18]
KDE
KWin, el gestor de ventanas de KDE, añadió soporte para la salida OpenGL ES en la versión 4.7.[19] [20] Hasta el momento KWin ha empezado a ser portado a Wayland.[21] En enero de 2013, el principal desarrollador de KWin, Martin Gräßlin, empezará a trabajar para Blue Systems y uno de sus objetivos será completar la migración Wayland.[22]

Toolkits[editar]

A marzo de 2013:

  • Clutter tiene soporte completo para Wayland.[23]
  • EFL tiene soporte completo, menos la selección.[24]
  • GTK+ tiene soporte completo, incluidos los decorados del lado cliente y formará parte de la versión 3.10 prevista para septiembre de 2013.[25] Aunque todavía quedan cosas por mejorar.[26] [27]
  • Qt 5 tiene soporte completo para Wayland, incluidos los decorados del lado cliente.
  • El soporte de Wayland para SDL está en desarrollo.[28]

Diseño[editar]

El protocolo servidor gráfico Wayland

En los últimos años, los gráficos de escritorio en Linux han pasado de tener "una pila de interfaces de renderizado... todos hablando con el servidor X, el cual es el centro del universo" a poner el núcleo de Linux "en el centro", con "sistemas de ventanas como X y Wayland...en un rincón". Esto será "un sistema de gráficos muy simplificado que ofrece mas flexibilidad y mejor rendimiento".[29]

Høgsberg podía haber añadido una extensión a X como han hecho otros proyectos recientes, pero prefirió "empujar a X fuera del camino entre los clientes y el hardware" por las razones explicadas en las preguntas frecuentes del proyecto:[30]

Lo que es diferente ahora es que mucha de la infraestructura se ha movido desde el servidor X al núcleo (gestión de memoria, planificación de órdenes, ajuste de los modos) o bibliotecas (cairo, pixman, freetype, fontconfig, pango, etc), y es muy poco lo que tiene que llevarse a cabo en un proceso servidor central. ... [Un servidor X tiene] una enorme cantidad de funcionalidades que tienes que soportar para poder afirmar que hablas el protocolo X, sin embargo, nadie las va a utlizar. ... Esto incluye tablas de códigos, rasterización glifo y almacenamiento en caché, XLFDs (en serio, XLFDs!), y todo el núcleo de la API de renderizado que permite dibujar líneas punteadas, polígonos, arcos amplios y muchas más primitivas gráficas del estilo de la década de 1980. Hemos sido capaces de mantener el servidor X.org moderno mediante extensiones, como XRandR, XRender y COMPOSITE ... Con Wayland podemos mover el servidor X y toda su tecnología heredada a un código opcional. Llegar a un punto en el que el servidor X es una opción de compatibilidad en lugar del centro de renderizado del sistema tardará un tiempo, pero no vamos a llegar nunca si [nosotros] no lo planeamos.

Wayland consiste en un protocolo (en gran parte completo) y una implementación de referencia llamada Weston. Para el renderizado, Weston puede usar OpenGL ES o software (la biblioteca pixman).[31] En la actualidad, los clientes se limitan a OpenGL ES en lugar de OpenGL completo porque "libGL utiliza GLX y todas las dependencias de X".[32] El proyecto también está desarrollando versiones de GTK+ y Qt que renderizan hacia Wayland en vez de a X. Se espera la mayoría de las aplicaciones obtengan soporte para Wayland a través de una de estas bibliotecas sin modificar la aplicación.

Wayland actualmente no proporciona transparencia en red, pero es posible que lo haga en el futuro.[33] Se intentó como un proyecto de Google Summer of Code en 2011, pero no tuvo éxito.[34] La lista de tareas por hacer de Wayland 1.0 incluye "tal vez tratar de hacer que Wayland remoto tenga lugar, a ver si hay algo en el protocolo/arquitectura que lo haga más difícil de lo que debería ser".[35] Adam Jackson ha previsto proporcionar acceso remoto a una aplicación Wayland a través de cualquier 'pixel-scraping" (como VNC) o enviando un "flujo de comandos de renderizado" a través de la red (como en RDP, SPICE o X11).[36] A principios de 2013, Høgsberg está experimentando con la transparencia de red utilizando un servidor proxy Wayland que envía imágenes comprimidas al compositor real.[37]

Weston, el compositor Wayland de referencia, solo trabaja con el núcleo Linux debido a su dependencia de las características específicas de Linux como udev.[38]

Compatibilidad con X[editar]

Una captura de pantalla de xwayland.

xwayland[39] fue escrito para permitir ejecutar aplicaciones X11 a través de un servidor X, opcionalmente sin privilegios de root, corriendo como un cliente Wayland.[40] Esto es similar a la forma en la que las aplicaciones X se ejecutan en el entorno gráfico nativo de Mac OS X.

Las aplicaciones escritas con la biblioteca Qt pueden cambiar entre X y Wayland en tiempo de carga con la opción -platform en la línea de comandos.[41] En enero de 2011, el soporte de Wayland fue movido a la rama Lighthouse del repositorio Qt.[42] Qt Lighthouse se incluye en la versión 4.8 de Qt.[43]

En diciembre de 2010, GTK+ añadió soporte preliminar para cambiar el backend en tiempo de ejecución, diciendo "X11+Wayland o Quartz+X11 son combinaciones interesantes".[44] [45] En enero de 2011, el backend Wayland de GTK+ fue actualizado para soportar la característica de multiples-backends y fue movido a la rama gdk-wayland-backend del repositorio Git de GTK+.[46] En abril de 2011, la rama gdk-wayland-backend fue juntada con la rama principal de GTK+.

Véase también[editar]

Referencias[editar]

  1. Wayland FAQ
  2. «Wayland». «Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.».
  3. «Wayland Architecture». Wayland project (5 de noviembre de 2010). Consultado el 10 de agosto de 2011.
  4. Kristian Høgsberg. «Wayland - A New Display Server for Linux». Linux Plumbers Conference, 2009. (Video available here)
  5. Kristian Høgsberg. «EGL and GLES1/2 on Linux». Linux Plumbers Conference, 2010.
  6. «Interview: Kristian Høgsberg». FOSDEM 2007 (6 de febrero de 2007).
  7. Kristian Høgsberg (8 de septiembre de 2008). «DRI2 Protocol Spec Draft».
  8. Kristian Høgsberg (31 de marzo de 2008). «DRI2 Direct Rendering».
  9. «An Experimental GNOME Shell Running On Wayland». Consultado el 6 de abril de 2012. «"Founder Kristian Høgsberg responsible for key X improvement of the past few years: DRI2...."».
  10. Larabel, Michael (22 de noviembre de 2010). «Wayland License Changing To LGPLv2». Phoronix. Consultado el 21 de septiembre de 2011.
  11. Larabel, Michael (20 de septiembre de 2011). «Wayland Reference Code Being Re-Licensed». Phoronix. Consultado el 21 de septiembre de 2011.
  12. Michael Larabel (8 November 2010). «NVIDIA Says It Has No Plans To Support Wayland». Phoronix. 
  13. Aaron Plattner, nvidia's primary Linux developer (7 November 2010). «nvidia and the wayland display server». «We have no plans to support Wayland.» 
  14. Evan Jenkins (marzo de 2011). «The Linux graphics stack from X to Wayland». Ars Technica.
  15. Mark Shuttleworth (4 de noviembre de 2010). «Unity on Wayland». «The next major transition for Unity will be to deliver it on Wayland....».
  16. Jono Bacon via Joey-Elijah Sneddon (4 de febrero de 2013). «Is Canonical Working on New, Custom Display Server for Unity?». «Adding that 'the simple reality is that X doesn’t meet those needs, Wayland doesn’t meet those needs.’».
  17. Oliver Ries (4 de marzo de 2013). «Taking Unity to the next level». «After thorough research, looking at existing options and weighing in costs & benefits we have decided to roll our own Display Server, Mir».
  18. Adam Jackson (ajax) (9 de noviembre de 2010). «[Re:] Ubuntu moving towards Wayland».
  19. Martin Gräßlin (28 de noviembre de 2010). «KWin runs on OpenGL ES». «It does not only help, it is a must have to start working for Wayland. So to say it’s the first part of the KWin port to Wayland».
  20. On the Road to Modern OpenGL (ES)
  21. Martin Gräßlin (11 de junio de 2011). «KWin goes Wayland». «Initial Implementation of a Wayland Server in KWin».
  22. http://blog.martin-graesslin.com/blog/2012/10/kwin-hacking/
  23. «Clutter on Wayland». Consultado el 28 de marzo de 2012.
  24. «Wayland – Enlightenment». Consultado el 6 de marzo de 2013.
  25. «GTK+ Support Merged For Wayland CSD». Consultado el 17 de marzo de 2013.
  26. Michael Larabel (26 de marzo de 2013). «GTK+ Is Becoming Very Usable With Wayland».
  27. «Full Wayland support in GTK+» (26 de marzo de 2013).
  28. «Toolkits on Wayland». Consultado el 28 de marzo de 2012.
  29. Jonathan Corbet (5 de noviembre de 2010). «Linux Plumbers Conference: Life after X (reporting a talk by Keith Packard)». LWN.net.
  30. «Wayland FAQ». Consultado el 17 de febrero de 2011.
  31. Stone, Daniel (1 February 2013). The real story behind Wayland and X. 38:46 minutes in.  Presentation at linux.conf.au 2013.
    "It doesn't require GL. Nothing in Wayland requires GL."
  32. Kristian Høgsberg (9 de diciembre de 2010). «Blender3D & cursor clamping.».
  33. Kristian Høgsberg (9 de noviembre de 2010). «Network transparency argument».
  34. Michael Larabel (18 de agosto de 2011). «Remote Wayland Server Project: Does It Work Yet?».
  35. Kristian Høgsberg (17 de febrero de 2012). «Towards 1.0».
  36. Adam Jackson (ajax) (9 de noviembre de 2010). «[Re:] Ubuntu moving towards Wayland».
  37. Stone, Daniel (1 February 2013). The real story behind Wayland and X. 42:00 minutes in.  Presentation at linux.conf.au 2013.
    "[W]e think it's going to better at remoting than X."
  38. README file from the Wayland source code repository
  39. Corentin Chary (21 de junio de 2011). «Introducing xwayland and xf86-video-wlshm». «This driver really make things easy to test, since you don't need any specific hardware....».
  40. Darxus (27 de noviembre de 2010). «"hosted" patch for nouveau - X under Wayland». «It's possible to run X.org as a client of Wayland, rootless or not, if you have an Intel video card».
  41. «Getting started with Lighthouse». Consultado el 17 de diciembre de 2010.
  42. Kristian Høgsberg (25 de enero de 2011). «Add wayland lighthouse plugin».
  43. Nokia (15 de diciembre de 2011). «Qt Lighthouse git-repository».
  44. Michael Larabel (22 de diciembre de 2010). «GTK+3 Now Uses X Input 2 By Default, New Back-End Caps».
  45. Matthias Clasen (21 de diciembre de 2010). «GTK+ 2.91.7 released».
  46. Kristian Høgsberg (3 de enero de 2011). «Multiple backends for GTK+».

Enlaces externos[editar]