Talvez seja melhor fazer um X Window System 12 do que manter compatibilidade com o X11. O
X.Org começou a melhorar porque, além do esforço dos devs, começaram a mover o gerenciamento do hardware para o kernel, mas o servidor continuará pesado e coisas como Multi-touch, são difíceis de se colocar no X.Org. Aí entra o
Wayland... (mais ou menos)
O problema com o X
O Wayland é um projeto de Kristian Høgsberg, empregado da RedHat. Kristian é responsável por parte do trabalho feito no DRI2 e no momento é o principal desenvolvedor do Wayland.
Ele disse, em novembro de 2008, que:
"At the same time, I'm trying to fix some of the problems with composite that we still have in the X server; input redirection, window resizing, syncing to vblank, throttling of animations and atomic, consistent redrawing. X specifies what the end results of a series of rendering requests must look like, but how the display looks while it's in progress is not discussed. GTK+ and Qt works around this to some extent by using double buffering, but we still see lag between window decorations and window contents while resizing etc. The wayland tag line is "every frame is perfect", by which I mean that applications will be able to control the rendering enough that we'll never see tearing, lag, redrawing or flicker."
Traduzindo:
"Por agora, eu estou tentando corrigir alguns dos problemas com composição que nós ainda temos no servidor X; redirecionamento de entrada, redimensionamento de janelas [...] O X especifica como o monitor deve se parecer ao final de uma série de pedidos de renderização, mas como o monitor deve se parecer enquanto os pedidos estão em progresso não é discutido. GTK+ e Qt trabalham em torno disso através de algumas extensões e buffer duplo, mas nós ainda vemos lag entre as decorações das janelas e seus conteúdos enquanto estamos redimensionando, etc. O atrativo do Wayland é que "cada quadro é perfeito", o que significa que aplicativos poderão controlar a renderização o suficiente para que nós nunca mais vejamos tearing, lag, redesenhamento ou flicker."
XRandR, XRender, COMPOSITE, ... Para termos um desktop moderno usamos extensões como essas, mas elas não usam exatamente o protocolo X11, então, por que continuar insistindo no X? Nós conseguimos suporte a multi-touch (
http://tinyvid.tv/show/2ld3zjvlmw41t), mas pelo que eu li, é muito difícil colocar isso no X, e não está no X, está no kernel, de alguma forma. Ao passo que o Linux só avança, e, por exemplo, foi o primeiro a suportar USB 3.0 (será que algum outra sistema finalmente incluiu suporte também?) o X.Org se torna mais e mais obsoleto.
Hoje temos um kernel incrível (o HURD, hahahaha, brincadeira, é claro que o kernel é o Linux), que economiza o dinheiro que gastamos com processadores e ao mesmo tempo permitindo-nos fazer mais do que sonhamos, mas no
GNU/Linux temos que gastar dinheiro com uma boa GPU e essa GPU deve ser suportada, então gastamos tempo procurando-a (eu estou com um Saphire AMD/ATI Radeon HD4850 1GB GDDR3 fora do gabinete só esperando por drivers open-source), etc. Enquanto que com um certo 7 o potencial das GPUs é melhor aproveitado.
O X é problemático. Vamos deixar que aconteça com o desktop glinux o mesmo que aconteceu com o GTK+ (ficou obsoleto e a solução que temos é controlada pela Nokia)? O X.Org não é usado nem em
Linux embarcado, maemo, android, etc. Outro problema, que parece estar sendo resolvido com sucesso, é a segurança, pois o X roda com privilégios de root, mas no Wayland esse problema nunca existiu.
Eu gostaria de saber se é possível rodar o X.Org usando 3D via net, pois o protocolo para rodar via net ... . O X Window System 11 é um bom protocolo de janelas 2D, mas não 3D, tanto que o X.Org está cheio de gambiarras (já veio e foi o glx, veio e talvez vá o aiglx, temos frglx, ...) para suportar o compiz.
Wayland - um servidor leve e moderno
Wayland é um servidor gráfico leve que implementa apenas uma pequena fração das características do X que usamos quando rodamos uma seção com composite. Toda a renderização é feita diretamente pelo cliente. Muitas alternativas ao X falharam. Algumas falharam porque ainda tentavam fazer um servidor X (ao passo que o problema é o X), outras falharam por causa da falta de suporte a hardware e talvez outras por causa que talvez ainda usassem um API complicada.
Kristian Høgsberg também trabalha em aperfeiçoamentos para o X.Org e para sua modularização. O DRI2, KMS (Kernel Mode-Setting) e o Graphics Execution Manager são caixas pretas que ficam do lado do kernel e podem ser usadas por vários servidores. O Wayland usa essas tecnologias, logo o Wayland não corrige o suporte a falta de drivers, mas o problema do X, ficando assim, mais rápido e mais simples que o X. Lembro mais uma vez que Kristian Høgsberg trabalha no DRI2, é empregado da Red Hat, etc, logo ele não está deixando o resto do trabalho para outros, ele realmente está ajudando a corrigir todo o problema.
"A melhor coisa que eu fiz foi colocar o Linux sob a licença GPL", e o Wayland também é... Não, fiquei um pouco decepcionado ao descobrir que o Wayland também usa a droga da licença MIT. Sem problemas.
Hoje temos servidores X em desktops e outros servidores gráficos em Linux embarcados. O Wayland pode ser o grande unificador, pois mesmo em gnu-like proprietary oses ele pode despertar o interesse dos fabricantes, já que usa a licença MIT, e é ao mesmo tempo leve e moderno. Essa idéia pode ser inevitável, pois quando ele começar a ser usado por alguma plataforma (alguma iniciativa como openmoko) as outras poderão copiar o uso do Wayland e a idéia de padronização vai surgir. "Por que usar um servidor gráfico moderno para meu celular e deixar um PC com poeira da década de 80/90 quando ele pode ser mais que uma mera interface para smartphones?".
Acho que algumas imagens (ainda não temos um vídeo do Wayland) podem ser interessantes:
Na época dessas screenshots o Wayland estava com aproximadamente 3200 linhas de código. Acho que isso foi uma boa limpeza no X.org. Como vocês devem ter percebido, ele pode ser usado como um multiplicador para o X.Org. E mesmo se vocês ainda estiverem duvidando do Wayland, lembrem-se do caso GStreamer. O GStreamer já foi visto como uma framework instável e inútil e hoje é a principal framework multimídia do Linux e de dispositivos embarcados (a Texas Instruments, só para citar, é a maior fabricante de processadores DSP e investe no GStreamer como framework multimídia).
O Kristian estava ocupado com a migração do gnome para o git e acabou ficando um pouco sem tempo, mas a migração acabou e ele ... teve um filho, então ele continua ocupado e seria bom algum mantedor pegar o projeto, pelo menos por enquanto. Algum voluntário (eu ficaria, mas preciso de mais conhecimento)?
Links
Desculpem por ter demorado tanto para escrever outro artigo, prometo que tentarei postar um artigo mensalmente aqui.
Os links usados como fontes e os que podem servir de guia para quem quiser mais informações: