No processo de aprender a fazer certas coisas na programação da GUI (por exemplo, reservando espaço na tela para um aplicativo), tenho que aprender mais sobre o Window Manager, geralmente o X11 no Linux (não tenho certeza se existem distros). , que usam qualquer coisa além de X11, embora eu tenha ouvido falar sobre Wayland , que ainda não foi implementado em nenhum.)
Eu sou bastante novo em programação e impaciente; então estou mergulhando nisso. Agora estou lendo o ICCCM, com a esperança de aprender mais. Este documento, no entanto, visa um público que sabe mais do que eu. Então, me deparei com algumas informações e gostaria de obter alguns esclarecimentos.
A seção 2 das citações do ICCCM:
Observe que todos os dados transferidos entre um proprietário e um solicitante geralmente devem passar por meio do servidor em um ambiente X Versão 11. Um cliente não pode assumir que outro cliente possa abrir os mesmos arquivos ou até mesmo se comunicar diretamente. O outro cliente pode estar conversando com o servidor por meio de um mecanismo de rede completamente diferente (por exemplo, um cliente pode ser DECnet e o outro TCP / IP). Portanto, a passagem de referências indiretas aos dados (como nomes de arquivos, nomes de hosts e números de portas etc.) é permitida somente se os dois clientes concordarem especificamente.
Tanto quanto eu entendo, o X Window Manager é construído no Top of X Server (obrigado Wikipedia). Na citação acima: diz que o cliente pode se comunicar com o servidor usando DECnet ou TCP / IP. Até agora, pensei que "servidor" fosse uma figura de linguagem, agora estou duvidando: o servidor X é um servidor como em um "servidor web"? Como devo entender sua função / definição?
Em seguida, geralmente existem referências ao X11, Xorg, X Server e / ou X Window Manager. Fica confuso: o X11 é um pacote que inclui o Xorg e o X Window Manager? Em caso afirmativo, há mais alguma coisa neste pacote X11?
O X também precisa de mouse ou teclado ou qualquer outro tipo de entrada: isso também faz parte das funções do X Server? O X Window Manager está cuidando estritamente apenas da exibição?
Finalmente, a citação aqui acima também menciona que o cliente está se comunicando ou não: isso me lembrou o D-Bus, que usei um pouco para fins de aprendizado. Com o D-Bus, você também pode acionar eventos da janela. Isso me deixa um pouco confuso sobre como os programas devem se comunicar: * que diferença há entre os programas que interagem usando o X Server ou o D-Bus? *
É uma pena que essas informações permaneçam obscuras, dificulta o aprendizado, mas espero que você possa esclarecer isso :) Obrigado.