首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >终端用户进程、桌面环境和windows管理器如何相互通信?

终端用户进程、桌面环境和windows管理器如何相互通信?
EN

Unix & Linux用户
提问于 2015-09-25 13:04:01
回答 1查看 382关注 0票数 3

在Linux中,每个进程通过内核相互通信。据我所知,X11是一个服务器,这意味着它是一个进程。我在某个地方(不记得源,稍后会提供)看到本地进程使用Unix域套接字与X11通信,而非本地进程则使用TCP套接字。与X11服务器的通信协议是X11协议。

现在,我从堆栈过流上读到,我们使用的最终用户进程实际上并不是直接与X11通信,而是通过桌面环境和windows管理器进行通信。

所以现在,我不知道用户端进程、桌面环境和windows管理器是如何相互通信的。(我不确定桌面环境和windows管理器是否是进程。)

EN

回答 1

Unix & Linux用户

发布于 2015-09-25 15:42:08

X11是一个进程,其职责是监听输入设备并将其写入屏幕。(它如何处理这一问题是另一个问题,要复杂得多。)进程通过Unix或TCP与X11对话,这取决于配置(如果是Unix,则套接字文件通常位于/tmp/.X11-unix下)。任何处理X的进程都是通过其中一个套接字与X11对话;通信本身没有中介(除非您使用的是非标准设置,如SSH转发或xpra)。

窗口管理器是一个单独的程序,它还使用套接字上的X协议与X11对话。它使用一个单独的APIs提供的一组API,允许它在特定的X11实例上向其他应用程序发出指令;它还可以自己发出绘图和输入请求,例如绘制窗口装饰(例如通常的最大化/最小化/关闭按钮和标题栏),或者响应全局快捷方式(在现代系统中,通常在这里处理Ctrl)。请注意,窗口管理器实际上只向其他X程序发出指令,而不是直接命令;如果程序采取一些特殊步骤,则可以忽略它们。(与组合窗口管理器相比,情况要复杂一些,因为这还可以作为应用程序的中介处理对X服务器的实际图形呈现。)这里发生的所有通信都是在套接字上使用X协议进行的。

桌面环境是一套做各种事情的程序。通常包括窗口管理器;它还可能包括一些图形配置器和实用程序、与桌面集成的文件管理器、显示杂项状态更新的系统托盘等。大多数这并不是特别神秘,只是更多的X程序呈现给X服务器。在必须相互通信的地方,他们使用自己的协议,通常使用某种类型的套接字作为后端。最近,这一趋势已经从编写自己的协议的应用程序转向使用高级元协议(如dbus )。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/232026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档