
Hace poco, muchos sitios especializados hicieron eco de la noticia sobre el desarrollo de un nuevo sistema X para Linux llamado Wayland, y como ya había sucedido en otras ocasiones, se escucharon muchas voces acerca de lo innecesariamente grande y complejo del sistema existente (X.org). La noticia era bienvenida, pero no había mucha información acerca de qué se trataba exactamente.
X Window System (o simplemente X) es el componente del sistema que se encarga fundamentalmente de dos tareas : desplegar las aplicaciones en pantalla y recibir los eventos del usuario (teclado, mouse, etc). X no es una aplicación en particular, sino que es una específicación que puede tener múltiples implementaciones, su origen data de mediados de los años 80 y se creó inicialmente con la idea de tener una interfaz gráfica para los sistemas Unix, sin embargo su diseño es independiente de la plataforma y gracias a eso es que hoy tenemos implementaciones de X para Windows, Linux, OSX, Unix’es, etc.
Cuando se diseñó X, el hardware era bastante diferente a lo que usamos hoy en día. En esos años los chips de aceleración de video no era algo que estaba al alcance de cualquier mortal y el uso de servidores compartidos era algo común, la computación personal era un sueño de pocos. Para usar los sistemas Unix se acostumbraba a conectar a muchos usuarios mediante terminales de texto y X agregaba capacidades gráficas a esta interacción. Una de las características naturales de X es poder desplegar en un sistema las aplicaciones que se están ejecutando en otro, actuando en forma remota.
Hoy en día no es necesario compartir los computadores y cada usuario puede tener uno completamente dedicado a él, tanto las aplicaciones como el servidor X corren en la misma máquina en forma local, el uso remoto es opcional. Por otra parte el hardware de video ya no sólo despliega un conjunto de pixeles, sino que cuenta con procesadores dedicados a generar imágenes en espacios 2D y 3D.
En el caso de Linux la implementación de X más utilizada es X.org, ésta surgió cuando un grupo de desarrolladores de XFree86 se separó del proyecto porque consideraban que existían muchas restricciones para hacer fuertes cambios en X. Esto ocurió en el año 2004 cuando un cambio a un licenciamiento más restrictivo fue la gota que rebalsó el vaso.
Los cambios que se han realizado en X han sido considerables. Por muchos años se puede decir que los cambios se limitaban a agregar drivers, pero el resto de las ideas originales se mantenían a pesar de los avances en el hardware gráfico, especialmente a finales de los 90. Cuando surgió X.org, héroes como Keith Packard y Jim Gettys pudieron llevar adelante los cambios que se necesitaban para convertir a X en un sistema moderno.
Uno de los cambios fuertes fue cambiar algunos aspectos del despliegue para que los pudiera realizar la aplicación y no el servidor X, es el caso del sistema de fonts. Con eso lograron crear interfaces WYSIWYG, suavizado de fuentes, mejoras sustanciales en el rendimiento y capacidad de usar la aceleracón por hardware a la hora de desplegar texto. La base de este cambio (xrender) también permitió mejorar la forma en que se manejan los dibujos vectoriales, dando capacidad de usar alpha blending, antialias y todo acelerado por hardware.
Otro de los cambios fuertes es el modelo de composición. En pocas palabras se trata de una nueva forma de desplegar las ventanas para que no exista el redibujado y una aplicacion independiente se encarga de presentar todas las ventanas en la pantalla, se conoce como Composite Manager y su implementación más conocida es Compiz (+derivados). Gracias al nuevo modelo de composición se pueden aprovechar las capacidades 3D de los procesadores modernos, que son increiblemente poderosos para las necesidades de un sistema de escritorio.
Recientemente se agregaron un par de cambios que permitieron mejorar dos aspectos que siempre fueron criticados en X. Uno de ellos es que ahora X ya no se encarga de configurar el modo de video, sino que lo hace en el kernel, esta funcionalidad se le llamó ingeniosamente Kernel Mode Setting (KMS). Los beneficios directos de este cambio son al menos dos : ya no es necesario que X se ejecute con privilegios de root, lo que siempre es un riesgo de seguridad, y el otro es que otras aplicaciones pueden solicitar un cambio en el modo de video, esto significa por ejemplo que si hay dos X server corriendo al mismo tiempo antes se tenia que “apagar y encender” el X server para cambiar de uno a otro, en cambio ahora el kernel podría simplemente cambiar el contexto entre uno y otro, sin reiniciar el video ni causar esos molestos pestañazos. Otra ventaja es que otras aplicaciones de despliegue podrian pedir al kernel el control del video sin pasar por X, por ejemplo un screensaver o una aplicación dedicada a la reproducción de videos en pantalla completa.
El otro cambio es relativo al manejo de memoria de las aplicaciones que usan el servidor X. Se implementó un sistema centralizado en donde las aplicaciones pueden incluso compartir objetos gráficos. Este sistema se conoce como Grapics Excecution Manager (GEM). ¿En donde interesa? justamente un Composite Manager es uno de los que necesita este tipo de funcionalidad. En pruebas realizadas con hardware antiguo (i915) se produjo un incremento de más de un 50% en el performance al probar aplicaciones 3D.
Con todos estos cambios, X.org se ha convertido en un sistema que cada dia se aleja más de lo que se diseño originalmente en los 80. El problema es que por motivos de compatibilidad, y para poder ser un X con todas las de la ley, tiene que mantener una gran cantidad de funcionalidad que ya no es relevante. Se sabe que se han eliminado algunas características obsoletas y según dicen, nadie se ha quejado, pero no se puede hacer una limpieza total porque se desconoce cuantos usuarios podrían salir afectados.
Kristian Høgsberg, un empleado de RedHat, ha comenzado a trabajar en un proyecto por su cuenta para crear un nuevo sistema gráfico llamado Wayland. Kristian ha desarrollado tanto en X.org como en el kernel así que conoce bien lo bueno y lo malo de cada uno de ellos.
Lo primero que se debe decir de Wayland es que no se trata de un X server como erróneamente lo titularon varios sitios. Wayland busca aprovechar todas las características que ya no son parte de X para crear un nuevo sistema de despliegue con un diseño actual, este aspecto es bastante importante porque una de las limitaciones que existían hasta hace poco era que para hacer un nuevo sistema de despliegue (X u otro) se necesitaba implementar una gran cantidad de funcionalidad.
Wayland en vez de partir de cero, tiene como base todo lo que se eliminó de X para integrarse al kernel y bibliotecas externas. No es una duplicación de trabajo, es una comienzo limpio sobre una base sólida.
Como Wayland no es un X, las aplicaciones existentes no pueden funcionar directamente en él, pero es algo que se puede solucionar ya que al usar toolkits como QT y GTK que son independientes de X, en teoría sería cosa de que hicieran los ports respectivos a Wayland. Otra alternativa es que se ejecute un servidor X rootless sobre Wayland, y así las aplicaciones no se darían cuenta que es otro quien dibuja sobre la pantalla, es el mismo sistema que utiliza OSX en la actualidad para desplegar apicaciones que usen X.
En diciembre del 2008, Kristian ya tenía andando X.org sobre Wayland.
Wayland propone que el Composite Manager sea independiente del sistema de despliegue como es en X, pero que sea parte del mismo proceso. Si se mezcla esta idea con la anterior de usar un X sobre Wayland, sería posible hacer transiciones de usuarios como las que hace OSX mediente este Composite Manager integrado.
Hasta ahora Wayland es un prototipo experimental muy pequeño, no tiene fines muy ambiciosos y no hay seguridad sobre su futuro, pero sin embargo puede ser un cambio radical en el área de interfaz gráfica. Linux en un comienzo estaba en las mismas condiciones y ya sabemos lo que pasó.
Los valientes que quieran contarle a sus nietos que probaron este sistema cuando comenzó, pueden descargar, compilar y probarlo desde su repositorio oficial.
Links:
- Grupo de discusión sobre Wayland (groups.google.com)
- Preguntas frecuentes sobre Wayland (groups.google.com)
- Blog de Kristian Høgsberg (hoegsberg.blogspot.com)
- New Wayland X server looks to how a modern desktop works (Heise Online)
Publicado por Franco Catrin el 10 de February 2009 en la categoría Destacados, Software con los tags Compiz++, Linux, wayland, x, x11, xorg. Tiene 72 comentarios.
72 Comentarios
Wayland: ¿Un posible sucesor de X en Linux?
Ver Comentario... machin dijo el 10-2-2009 a las 16:36 ...

48Leo Jiménez dijo el 10-2-2009 a las 16:36:
¡Gracias Franco por tan exhaustiva explicación!
Me alegra ver iniciativas que mantengan ese gran avance que se viene dando en sistemas GNU/Linux

21chronnoz dijo el 10-2-2009 a las 16:37:
podrian explicar en forma bien simple, que ganaria un usuario normal con el cambio? menor uso de cpu? mejor rendimiento en todo lo que es video?

-10jci dijo el 10-2-2009 a las 16:38:
First! (siempre quise decir eso)
Franco, unos detallitos (mas que nada son minimas inclusiones):
- Cuando existio RHAD (RedHat Advanced Labs) habia un tipo que incorporo la mayoria de las mejoras en Xfree86 (rasterman, el que hizo Enlightenment despues).
- X en un principio estaba pensado en un modelo independiente de la plataforma, pero tambien independiente de lo que puedas comunicarlo. Por ejemplo, un modelo en red, asi te ahorras el hecho que haya un xserver como tal corriendo en un cliente y solo necesita hablar el protocolo X11.
- No solo xrender se implemento como mejora. Tambien xrandr (ahora ya no hay que tocar el xorg.conf, whooohoo!)
- y recordar que Compiz derivo de una prueba de concepto, Luminocity. Hizo furor como para no incluirlo

27Marcelo dijo el 10-2-2009 a las 16:40:
El articulo mas completo que e visto en fayerwayer. gracias franco.
ahora, si se implementa wayland, ¿los requerimientos de hardware no cambiarian?

17Desenfoque dijo el 10-2-2009 a las 16:44:
Completo el artículo, pero suena más a Chilehardware que a Fayerwayer (donde las cosas son más light).
El título correcto acá sería: “Wayland hará que tu Linux se vea mejor que Snow Leopard”
Franco Catrin dijo el 10-2-2009 a las 16:46:
7@chronnoz
Ninguna de las anteriores. Esas ganancias ya existen en X.org. En muy pocas palabras, lo que se puede lograr es tener un manejo del display similar al que tiene Apple con su tecnología. Pero explicar eso necesitaría otro artículo
@Marcelo
No cambiarían.

63Thomas dijo el 10-2-2009 a las 16:53:
Perdon…puta pero asi da gusto…leer…gracias Franco por subir “el pelo” a esto…

14pock dijo el 10-2-2009 a las 16:54:
en buenas cuentas Franco el paso siguiente en linux seria este?
y es muy costoso en cuanto a lineas de código esto?
cuanto crees que tome absolverlo?
De todas mangeras felicitaciones por el post, muy bueno y completo, se agradece informarse

50Kurt Rottmann dijo el 10-2-2009 a las 17:02:
Siento que está subiendo de pelo Fayerwayer con las noticias de Franco

21funklipe dijo el 10-2-2009 a las 17:05:
iwal me va a dar nostalgia tener que pelear con el xorg.conf de vez en cuando
snif…
Ver Comentario... sebastian dijo el 10-2-2009 a las 17:05 ...

-6Overspace dijo el 10-2-2009 a las 17:17:
En palabras del mismo Kristian Wayland es …
“a new display server that implements just the tiny fraction of X features that we actually use when running a composited desktop. Which is essentially buffer management (close to what DRI2 does in X.org), input handling and hooks to allow a compositor to composite the desktop. All rendering is done client side as direct rendering (how OpenGL works today, but pixman and thus cairo, for example, could learn how to do direct rendering too), and modesetting and other hardware setup is done in the kernel. This takes a lot of complexity out of the server.”

0crispunk dijo el 10-2-2009 a las 17:21:
ok, primero alabara el articulo, que completo esta, luego pues que bien que se esta desarrollando una mejora masiva el linux world, XD

36Leo Prieto dijo el 10-2-2009 a las 17:24:
Putas que escribe bonito Franco…….Al fin articulos relacionados a Linux con sustancia.

8CKIN dijo el 10-2-2009 a las 17:24:
y yo que andaba echando de menos XFREE86, mientras se vea mejor bienvenido, esa es una de las razones que tienen algunos aun para no dejar windows

19Fu-man-chu dijo el 10-2-2009 a las 17:31:
Muy buen articulo, completo e interesante, se nota la dedicación del autor. EXELENTE!!!

11Toku dijo el 10-2-2009 a las 17:41:
Excelente articulo! felicitaciones, ojala sigan saliendo mas como este, entiendo que el publico objetivo y la linea editorial de fayerwayer es mas “casual” o “light” como quieran decirlo, y no les interesa leer una “lata” tan tecnica como esta, pero tambien estan los más tuercas que disfrutamos de este tipo de articulos.
Con respecto al tema no tengo mucho q aportar ya que hace tiempo que no uso un mouse en linux.

-2Carlost dijo el 10-2-2009 a las 17:41:
Como contrapartida a los de X.org, no les saldría masa cuenta crear una especie de Xlite.org, haciendo exactamente lo mismo, pero bajo el mismo techo de X.org…. para mantener las cosas bajo un nombre conocido y probado…. etc.-

6CHAMO dijo el 10-2-2009 a las 17:43:
Al fin artículos completos en fw!!!!!, no como esa mierda de “Sin Palabras:” de Mr Shit.
Franco Catrin dijo el 10-2-2009 a las 17:46:
23Gracias por los comentarios!! Trataré de tener artículos mas light también. Estos quedan largos porque lamentablemente no hay mucha información en español sobre algunas cosas recientes, por ejemplo GEM, KMS,o cuando hay material en español está incorrecto o mal traducido. Más adelante podré referenciar estos mismos artículos que me servirán de base
@Carlost
Lo que tu dices ya existe y se llama kdrive. Pero sigue teniendo los problemas del diseño original de X

12brionescl dijo el 10-2-2009 a las 18:05:
Wena franco !!! por fin un artículo decente de linux en applewayer… que los demás aprendan a no hacer copy-paste de otros lados y redacten con sus propias palabras.
espero que no se muera el proyecto y tome mas fuerza en el desarrollo, esto promete que será un cambio radical en las funcionalidades del X

1Overspace dijo el 10-2-2009 a las 18:09:
@Franco Catrin
“material en español está incorrecto o mal traducido”
Cierto y se debe principalmente a que en la pagina principal del google groups dice “Wayland is a nano display server” y en las preguntas frecuentes “It’s not an X server and not a fork”. Si se lee sin profundizar mucho se induce a mucha confusion.
Ver Comentario... via290 dijo el 10-2-2009 a las 18:24 ...

1Nombre (obligatorio) dijo el 10-2-2009 a las 18:38:
Destacable contribución a que por fin haya buen material en español. Lamentable que no sea en el más preciso de los lugares, de repente la version light aquí y la versión extra-transitores en tu blog en tuxpan.cl . La balanza está algo desequilibrada entre los artículos más ad-populus (de todo el resto de los editores) y estos algo cargaditos al tecnicismo más duro, ni todos juntos hacen el peso.

6Fakeroot dijo el 10-2-2009 a las 18:47:
gran post Franco, lo mejor de wayland es que esta su concepto es para aprovechar las nuevas tecnologias DRI2, KMS, GEM y demases. ademas quiere eliminar los “feos” redibujados que al parecer siempre a habido problemas en su implementacion en los bufferes no visibles que al final se descordina.
Veo mucho interes en el software libre en mejorar al apartado grafico y eso es excelente y creo que cuando las empresas vean una base mas solida habrá mejores drivers y mas aplicaciones graficamente bonitas, y si a eso le sumamos que KDE4 ya estara maduro para ese entonces, todos los adelantos que se consideraron para ese escritorio iran aun mejor.
saludos y felicitaciones
PD: un post de SUSE Estudio para crear la distro on line no estaria malo (no importa que sea corto).

3TurboMAC dijo el 10-2-2009 a las 19:02:
Notable Franco. Aunque es un proyecto verde aun, no me extrañaria que terminara por reemplazar a Xorg en poco tiempo mas, asi como sucedio casi por completo con Xfree86 y Xorg.
Buenisimo el articulo, se nota que hay alguien que sabe realmente.
Ver Comentario... carlos dijo el 10-2-2009 a las 20:03 ...
Ver Todos Páginas: [1] 2 3 Próximos 30 Comentarios →
Ver Todos Páginas: [1] 2 3 Próximos 30 Comentarios →