Por favor ajude a esclarecer para mim o papel e a arquitetura do Xorg (servidor X) e a interação com outro software

3

Desculpe, essa vai ser uma pergunta de várias pontas, então, por favor, tenha paciência comigo:

Sou usuário de Linux há anos, mas ainda me esforço para entender como o X se compara ao software usado para exibição em sistemas Windows e Mac.

Eu sei que é um software baseado em cliente / servidor, mas o que é particularmente intrigante para mim é como ele funciona com toolkits de widgets para fornecer uma exibição e como eles interagem uns com os outros.

Quero dizer, pegue o framework Cocoa do Mac: Você tem o GnuStep, que é uma implementação de código aberto desse framework, mas (pelo que eu posso imaginar), ele roda no X, certo? No entanto, suponho que o Mac não use X.

Existe alguma alternativa ao Xorg no Linux? Posso rodar o GnuStep, por exemplo, com outra coisa?

Os gerenciadores de janela e ambientes de área de trabalho são escritos especificamente para trabalhar com o X ou podem trabalhar com outro software de exibição?

    
por mydoghasworms 30.01.2013 / 19:15

2 respostas

5

Primeiro verifique Noções básicas sobre o ambiente de trabalho do linux

I have been a Linux user for years now, but I still struggle to understand how X compares with the software used for display on Windows and Mac systems.

I know it is a client/server based software, but what is particularly puzzling for me is how it works with widget toolkits to provide a display and how these interact with each other.

I mean, take the Cocoa framework of Mac: You have GnuStep, which is an open source implementation of that framework, but (from what I can guess), it runs on X, right? Yet I suppose that Mac does not use X.

Os toolkits (GTK, Qt ...) geralmente não interagem entre si - são apenas bibliotecas e, como tal (na maior parte), separados por processo. Eles naturalmente interagem com o servidor X - enviando comandos de desenho e lendo entradas. No entanto, alguns deles não estão limitados a um único back-end (X11) - por exemplo, o GTK, o Qt e o GNUstep também possuem sabores do MS Windows.

Os toolkits agem como uma camada API unificada acima da interface de desenho nativa - no caso do X11 eles traduzem requisição para desenhar um botão em uma série de objetos simples (retângulos, sombreados etc .; por exemplo em versões recentes do GTK. alcançado através de outra camada de abstração fornecida pelo Cairo ). No Windows ou Mac, eles têm a possibilidade de usar a API nativa para que, por exemplo, O "botão GTK" pode ser traduzido para "Botão do Windows" e, por exemplo, em um dispositivo framebuffer, ele seria traduzido diretamente para os pixels simples (provavelmente novamente por meio de um mecanismo de varredura como o Cairo). Por exemplo, o Qt tem cerca de 15 vários backends .

Se você está falando sobre os ambientes de área de trabalho se comunicando com aplicativos usando diferentes kits de ferramentas, essa é uma história totalmente diferente. Atualmente, o D-Bus é normalmente usado em uma sessão X, o que permite que não apenas aplicativos GUI enviem e recebam mensagens para / de outros aplicativos.

Are there any alternative options to Xorg on Linux? Can I run GnuStep, for example, with something else?

Uma alternativa (além daqueles mencionados por John Siu em sua resposta) pode ser Wayland . No entanto, não há muitos aplicativos que possam usá-lo nativamente .

Are window managers and desktop environments written specifically to work with X or can they work with other display software?

Na maioria das vezes, os gerenciadores de janelas só entendem o protocolo X e devem ser executados sob (ou acima, dependendo do lado que se olhe) o servidor X. Praticamente porque não há nada melhor (mesmo que existam coisas no X11 e suas implementações, isso poderia ser melhor).

    
por 31.01.2013 / 03:09
1

Se você está procurando uma alternativa para o X11 no Linux, há algumas bases em esta postagem . No entanto, verificando seus links wiki, alguns deles não parecem mais estar em desenvolvimento. A seguir estão 2 que parece ativo

  1. DirectFB

  2. KDrive / TinyX

Pessoalmente eu uso / try directfb antes. Eu estava usando o Gentoo durante esse tempo e posso especificar a compilação do aplicativo de janela com a biblioteca DirectFB em vez do X11 (ou ambos? Eu esqueço).

    
por 30.01.2013 / 22:42

Tags