我发布了一个问题并注意到人们没有正确区分其中许多内容:Windows 管理器、登录管理器、显示管理器、桌面环境。有人可以澄清这一点,即告诉我们它们之间的区别以及它们之间的关系吗?
Xorg 属于什么类别? Gdm/Kdm/Xdm 怎么样?人们也谈论X。X是什么?
答案1
从下往上:
- Xorg、XFree86 和 X11 是显示服务器。这将创建图形环境。
- [gkx]dm(和其他)是显示管理器。登录管理器是一个同义词。如果系统(而不是用户)正在启动 X 并允许您登录到本地系统或网络系统,则这是系统运行的第一个 X 程序。
- A窗口管理器控制窗口的位置和装饰。也就是说,窗口边框和控件都是装饰。其中一些是独立的(WindowMaker、sawfish、fvwm 等)。有些依赖于附带的桌面环境。
- A桌面环境XFCE、KDE、GNOME 等应用程序套件旨在相互良好集成以提供一致的体验。
理论上(并且在实践中大多如此)这些组件中的任何一个都是可以互换的。您可以在 Xorg 上使用 GNOME 和 WindowMaker 来运行 kmail。
答案2
如果你尝试一下,就会很清楚:
在 中/etc/rc2.d
,您将找到一些文件,这些文件是计算机启动时应执行的操作的说明。
gdm
如果您使用 GNOME,请查找名称中包含 的文件,然后将S
(名称的第一个字母)替换为小写的s
。 (GDM 就像您可能已经猜到的 GNOME 显示管理器一样。如果您使用其他套件,当然,找出它使用的显示管理器,然后以相同的方式禁用它。)
现在,重新启动计算机,您会发现登录屏幕不再显示。结论 1:没有显示管理器,没有登录屏幕。
相反,您将登录到控制台。现在,尝试播放电影(或执行任何与图形相关的操作)。行不通!这是因为 X 没有运行。结论2:没有X,就没有图形。
第三步,启动 X:通过键入xinit
,根据您的~/.xinitrc
文件,可能会启动一组应用程序。但是,为了说明这一点,请尝试仅使用终端(例如 urxvt)运行 X。因此,输入urxvt
并.xinitrc
注释掉(使用#
)其他所有内容,然后键入xinit
。
您现在应该看到该urxvt
窗口。在这里,您可以播放电影等。但是,我们将urxvt
窗口移到其他地方。做不到。结论 3:没有窗口管理器,没有您可能习惯的常用 GUI 功能。因此,exit
输入urxvt
. (该命令将退出终端,但是,由于这是按照 中指定的唯一运行的进程.xinitrc
,X 也将终止。)
最后一步,.xinitrc
再次修改:
urxvt &
metacity
(请注意,&
因此进程将同时运行)
再次运行 X 并查看结果。谜题的最后一部分:metacity,一个窗口管理器。
要退出,请输入pkill -9 metacity
. (在此情况下,urxvt 也将终止,可能是因为,由于它在后台运行(使用&
),metacity 是 X 监视器的唯一进程。)
祝你好运。也许,您会陷入一些细节,但为了获得理解这是值得的。
答案3
@bahamat 这个问题的答案已经完成。但是,我添加了更多术语的定义,因为这个问题首先出现在相关的谷歌搜索中:
- X窗口系统(又名 X11):一种网络协议,对图形基元、图像、指针运动和按键等内容进行编码。
- X 显示服务器(例如Xorg和XFree86):X服务器实现X11并提供键盘、鼠标和显卡的接口。
- X 显示管理器(例如 SDDM、GDM 和 LightDM):图形登录管理器,可从同一台或另一台计算机在 X 服务器上启动会话
- 小部件/GUI 工具包/框架/库(例如 GTK+ 和 Qt):提供按钮、滚动条、编辑框等内容。
- 窗口管理器(例如Metacity和Compiz):装饰X窗口基元并支持各种操作,例如窗口的移动、调整大小和最大化。
- 桌面环境(例如 GNOME、KDE、XFCE 和 LXDE):提供应用程序使用和遵循的库和规范,以便与其他应用程序“和谐相处”。
参考:
答案4
用一句话来说:您的显示管理器创建了一个漂亮的图形显示,您可以在其中使用登录管理器登录到您的 X 会话,这将启动窗口管理器并可能启动桌面管理器。