用户界面子系统是什么,它们的组成和职责是什么?


8

我试图了解负责用户界面的不同子系统,引用它们的术语以及它们的结构。到目前为止,我知道有:

在顶层:

台式机?(kde,gnome等)

然后我们有:

  • 显示管理器(也称为桌面管理器或桌面环境)
  • 窗口管理器
  • 还要别的吗?

我将其作为社区Wiki,我希望它成为*所有从Linux用户界面子系统(从用户角度)了解的中心。我想知道的是每个组件的组成部分,每个组件的职责是什么,即我想知道以下内容:

  • 当我打开“运行应用程序”对话框时,究竟由谁负责全局快捷键,由谁来执行,当我按一个键以显示桌面,运行终端,最大化窗口等时,谁在捕获然后将其发送到右侧窗口;
  • 负责绘制桌面,工作区等的人
  • 能为我提供有关这些组件的信息的环境变量是什么
  • “主菜单”是子系统还是子系统的组件?

汇编最流行的台式机/子系统的列表也很不错,每个台式机/子系统都在下面运行,您是否可以混合和匹配台式机/桌面环境/窗口管理器等?

最后,如何确定系统上实际正在运行哪些台式机/子系统(不同?),不同的用户是否可以拥有不同的子系统?

Answers:


5

首先,显示管理器(或DM,例如xdm,gdm,kdm)与桌面环境(或DE,例如GNOME,KDE,XFCE)不同。

显示管理器负责图形登录,并决定(或让您选择)运行哪个会话。或选择什么会话* s *(如果您选择“切换用户”菜单选项)。

桌面环境基本上是程序(显示管理器,窗口管理器,会话管理器,面板,配置工具等)和库(例如Gtk)的集合,旨在提供一致且集成的工作环境。

窗口管理器管理窗口:放置它们,移动它们,调整它们的大小,最小化/最大化它们,平铺它们等等)。它还处理执行这些操作的快捷方式。在某些情况下,窗口管理器还会绘制窗口的边框,在其他情况下,此任务会交给“窗口装饰器”。

GNOME中的“运行应用程序”对话框是的一部分gnome-panel,但在另一个DE中,它可能是环境的另一部分。

谁负责绘画窗户等取决于谁;如果使用了“合成器”(通常是窗口管理器的一部分,例如在Compiz中),则合成器会在屏幕上绘制窗口,否则(就像过去一样)是X服务器这样做。

主菜单由gnome-panel的一部分放置在屏幕上,但是使用的数据来自其中的一堆文件/usr/share/applications/(可能与您家中的同等目录合并以进行个人更改)。这些文件具有FreeDesktop.org(用于不同DE在共同基础结构上进行协作的平台)定义的结构,因此GNOME和KDE知道相同的程序(但仍然可以以不同的方式显示它们,并且在某些情况下,将“本机”程序定为优先级)超过“外国”的)。

是的,不同的用户可以使用不同的会话配置(甚至可以定义自己的会话配置)。在GDM中,尝试“会话”下拉列表以获取可用选项。

此外,可以混合和匹配多个组件,但这有时会导致协作不足,并使工作方式失去“平滑度”。Compiz是一个众所周知的例子,它可以交换事物,如果您想要精美的桌面效果,它可以代替Metacity。但是还有许多其他可能的变化。


2

桌面管理器主要管理您的硬件,而窗口管理器则管理您的软件。例如,电源管理,屏幕保护程序,系统性能,登录屏幕等由桌面管理器管理。您的主题,窗口位置,窗口小部件和图标集,字体等由窗口管理器管理。

您可以安装没有桌面管理器的窗口管理器。通常登录到虚拟终端,然后使用登录脚本执行窗口管理器以启动“桌面”。

桌面管理器是GNOME,KDE和CDE。窗口管理器包括Metacity,Openbox,Enlightenment,Awesome等。

要直接回答您的一些问题:

  • 窗口管理器主要负责桌面键盘快捷键。
  • 窗口管理器负责绘制桌面,工作区,窗口的放置等,如前所述
  • GUI没有很多环境变量。这些通常仅适用于终端后面的外壳。但是,您可以运行setenv了解设置的内容。
  • 不确定作为子系统或子系统组件的“主菜单”是什么意思。菜单是窗口管理器的一部分。

我已经提到了一些流行的桌面管理器和窗口管理器。使用Google可以找到更多内容。

根据您的操作系统,可能会有一个ASCII配置文件定义了您的首选桌面。例如,在Debian GNU / Linux上,这是在/etc/X11/default-display-manager配置中定义的。您也可以运行'ps -ef | grep user',其中“ user”是系统上某个用户的登录名,并查看列出了哪些进程以及正在运行的图形桌面。对我来说,这是“变态”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.