Wayland, um servidor gráfico não-X muito interessante

Publicado por Vinícius dos Santos Oliveira em 08/11/2009

[ Hits: 19.880 ]

Blog: https://vinipsmaker.github.io/

 


Wayland, um servidor gráfico não-X muito interessante



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:
Linux: Wayland, um servidor gráfico não-X muito interessante
Linux: Wayland, um servidor gráfico não-X muito interessante


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:
Outras dicas deste autor

Nomes científicos dos sistemas operacionais

Rodando Linux no Nintendo DS com o port dslinux

Leitura recomendada

Configurando a placa wireless RT3090 no fedora 15

Curso de Linux

Linux em família

Backup do Outlook de uma estação com Windows XP

Fazendo rotate do Squid automaticamente

  

Comentários
[1] Comentário enviado por yurick em 08/11/2009 - 22:46h

realmente promete!

[2] Comentário enviado por SamL em 09/11/2009 - 00:06h

Ótima dica.
valeu!

[3] Comentário enviado por vinipsmaker em 10/11/2009 - 07:54h

O Wayland não é um projeto da RedHat, é um projeto do Kristian Hogsberg e se ninguém ajudar ele acho que o projeto eventualmente se tornará algo como o enlightenment (que apesar de ter qualidade provavelmente nunca será usado pela maioria).

Alguém precisa ajudar o cara, ele só trabalha no tempo livre dele e o está ocupado, além de no momento ser o único desenvolvedor do wayland.

No grupo do wayland no google groups estavam discutindo sobre fazer um livecd com o wayland, para quem quisesse testar.

[4] Comentário enviado por ulisses_c em 13/11/2009 - 23:26h

Nossa vinicius muito Bom o Post eu mesmo sempre achei que uma otima forma de rodar jogos no linux seria substituindo o x por um servidor mas eficiente e pelas caracteristicas vc passa no post o wayland parece ter essas caracteristicas e ai o que vc me fala sobre rodar jogos ("de verdade") no wayland ?

desde ja parabens e boa sorte nos proximos posts

[5] Comentário enviado por vinipsmaker em 14/11/2009 - 16:58h

O X.Org não gerencia mais os drivers, quem gerencia é o DRI2 + KMS + etc e tudo fica do lado do kernel e eles gerencia bem os recursos.
Mas o X.Org é um servidor que utiliza um protocolo ultrapassado e o Wayland corrigiria, inclusive para jogos.

Para jogos é essencial mudar o X.Org, pois gamers querem o máximo de desempenho e o X.Org é ruim até para janelas e botões ...

[6] Comentário enviado por vinipsmaker em 14/11/2009 - 17:33h

Novidade:
kristian faz conferência e nela fala sobre o Wayland:
http://video.linuxfoundation.org/video/1571

Infelizmente não pude assistir o vídeo, poi não gosto de flash.
Se alguém colocar no youtube me avise, que pelo menos de lá eu posso converter.

[7] Comentário enviado por gokernel em 21/11/2009 - 18:51h

Meus parabens vinips.

Gostei muito desta excelente dica, pois eu ainda não tinha ouvido falar nada sobre.

gokernel
gokernel@hotmail.com

[8] Comentário enviado por vinipsmaker em 23/11/2009 - 10:30h

Pois é gokernel. Tem muita coisa legal no linux que eu acho que não conheço. É tanta coisa legal que fica difícil encontrar todas. Mesmo o Xorg, que é ultrapassado tem umas coisas legais.

[9] Comentário enviado por fujii em 26/12/2009 - 21:45h

Ao contrário do informado no artigo, o Maemo usa sim X.Org.

Melhor verificar as informações antes de escrever.

Além disso, eu acredito que você deveria evitar colocar opiniões como "GTK+ é obsoleto" no texto como se fosse um consenso, já que o GTK+ continua sendo usado em vários novos projetos, e continua inclusive no GNOME, colocado como um de seus "gerenciadores de janela" favoritos. Só pra esclarecer, GNOME é um projeto e ambiente desktop. O gerenciador de janelas padrão dele é o metacity.

[10] Comentário enviado por vinipsmaker em 31/12/2009 - 14:34h

@fujii:
Valeu pelo comentário, corrigiu um erro meu.
Mas sobre o GTK+: realmente está obsoleto, por isso espero pela versão 3.0. Nada pode ser removido para manter compatibilidade com a versão 2.x. Para desenvolver em GTK+ decentemente (dependendo do que você for fazer) será necessário entrar na selva de bibliotecas de desenvolvimento GNOME. A versão 3 vai corrigir isso. Acho que não deveria haver _muitas_ mais além da GLib, GTK+, Cairo e Pango.

E, sei que você não defendeu o X, pelo menos eu acho, mas ...
não há porque defender o X, devemos usar um protocolo mais moderno, o kernel extendeu o padrão posix várias vezes, por exemplo



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts