在学习在GUI编程中做某些事情的过程中(例如,为应用程序在屏幕上保留空间),我必须了解有关Window Manager(通常是Linux上的X11)的更多信息(我不确定是否还有发行版的,虽然我听说过Wayland,但它还没有实现。
我对编程很陌生,并且没有耐心。所以我只是潜入其中。现在,我正在阅读ICCCM,希望能学到更多。但是,本文档针对的是比我更了解(方式)的公众。因此,我遇到了一些信息,我希望得到一些澄清。
ICCCM 第2节引用:
请注意,在所有者和请求者之间传输的所有数据通常必须在X版本11环境中通过服务器传输。一个客户端不能假定另一个客户端可以打开相同的文件,甚至不能直接通信。另一个客户端可能正在通过完全不同的联网机制与服务器通信(例如,一个客户端可能是DECnet,另一个是TCP / IP)。因此,只有在两个客户明确同意的情况下,才允许传递对数据的间接引用(例如文件名,主机名和端口号等)。
据我了解,X Window Manager是建立在X Server之上的(感谢维基百科)。在上面的引用中:它表示客户端可以使用DECnet或TCP / IP与服务器进行通信。到目前为止,我还以为“服务器”只是一个比喻,现在我怀疑:X服务器是否像“ Web服务器”中那样是服务器?我应该如何理解其功能/定义?
然后,通常会引用X11,Xorg,X Server和/或X Window Manager。令人困惑:X11是否包含Xorg和X Window Manager?如果是这样,那么此X11捆绑包中还有其他东西吗?
X还需要鼠标或键盘或任何其他类型的输入:这也是X Server功能的一部分吗?X Window Manager是否严格只照顾显示?
最后,上面的引用还提到了客户端之间是否进行通信:这让我想起了D-Bus,我已经将其用于学习目的。使用D-Bus,您还可以触发窗口事件。这让我对程序之间如何通信感到困惑:* 使用X Server或D-Bus进行交互的程序之间有什么区别?*
可惜的是,这些信息仍然以某种方式仍然晦涩难懂,因此很难学习,但希望您能对此有所启发:)谢谢。