Xorg 和 Gnome/KDE/Xfce 的区别

Lie*_*mai 33 gnome kde xorg desktop-environment x11

我想了解更多关于 UNIX 系统的信息,我想我有一个非常直接的问题。我想我知道 X 的用途:它为应用程序提供了一个标准来呈现它们的 UI(除其他外)。

但是为什么需要 Gnome/KDE 以及它们与 X 的关系?我认为他们使用 X 作为应用程序和 GUI 之间的某种接口,因此 GUI 是可定制的,而界面在应用程序之间保持不变。

这是真的还是 Gnome/KDE 独立于 X?

smw*_*dia 41

(我正在研究 GNOME 和 X 的关系。我想分享一些我的理解。我将尽可能以合乎逻辑的方式呈现。)

1. GUI 是由什么组成的?

下面是 GUI 基本组件的图示。

在此处输入图片说明

关键组件是显示服务器。有多种显示服务器可用。如:

  • X11(主要用于*nix)
  • Wayland(主要用于*nix)
  • Mir(主要用于 *nix)
  • SurfaceFlinger(适用于 Google Android。)
  • Quartz Compositor(这是 Apple MacOS 使用的。)
  • 桌面窗口管理器(这是 Microsoft Windows 使用的。)

2. X 是什么?

X、X11 和 X Window System 是同义词。它们都代表窗口系统窗口系统是一种图形用户界面(GUI,正如我上面提到的),它为用户界面实现了 WIMP(窗口、图标、菜单、指针)范例。

以下是 Linux 和 Windows 系统的主要窗口系统列表。

任何窗口系统的主要组件通常称为显示服务器(这并不奇怪,因为窗口系统是一种 GUI,而显示服务器是任何 GUI 的关键部分),尽管也使用了其他名称,如窗口服务器合成器。

任何应用程序运行,并提供其GUI是一个客户端的的显示服务器。显示服务器与其客户端通过通信协议相互通信,该协议通常称为显示服务器协议,显示服务器是客户端和用户之间的中介。显示服务器从内核接收所有输入,内核从所有连接的输入设备(例如键盘、指针设备或触摸屏)接收这些输入并将其传输到正确的客户端。显示服务器还负责将客户端输出到计算机显示器。甲显示服务器协议可以是网络能力的,甚至是网络透明的。(所以你可以看到,它本质上只是关于数据流和路由,可视化数据仍然是数据。)

根据这里

X Server 是为其他程序提供显示和用户输入服务的程序。相比之下,文件服务器为其他程序提供了对文件存储设备的访问。文件服务器通常位于远程位置,您可以从您所在的机器上使用文件服务器的服务。相比之下,X 服务器通常运行在您所在的机器上;在您的机器上运行的程序以及在远程机器上运行的程序可能会请求显示和用户输入服务。

所以X由以下组成:

  • 显示服务器
  • 显示服务器协议
  • 一些用于开发的库
  • 和其他东西

在此处输入图片说明

根据这里

X 为 GUI 环境提供了基本框架:在显示设备上绘制和移动窗口以及与鼠标和键盘进行交互。X 不强制要求用户界面——这是由单个程序处理的。因此,基于 X 的环境的视觉样式差异很大;不同的程序可能呈现完全不同的界面。

换句话说,X 只让程序能够做一些基本的事情,比如绘制/移动窗口输入交互。X 不强制执行视觉样式。所以你所说的“ ......它为应用程序提供了一个标准来呈现他们的用户界面...... ”是不正确的。

3. 什么是 GNOME/KDE

GNOME 和 KDE 都是 Linux桌面环境。桌面环境是运行在操作系统之上的一组程序,它们共享一个公共 GUI

但是就像我上面提到的,X11作为一个显示服务器,通过一些像Xlib或XCB这样的库来提供基本的绘图能力。通过此类库直接连接 X11 的应用程序可以具有完全不同的视觉风格

那么如何创建一个通用的GUI呢?小部件工具包来了。比如GTK+Qt。它们在 Wayland 和 X11窗口系统中很流行。

GNOME 使用 GTK+。

KDE 使用 Qt。

这里是X Window系统桌面环境的比较。

总结...

我画了一个粗略的概念图。操作系统上方的 3 个部分是非常可定制的。这就是为什么会出现如此多的灵活性(混乱)的原因。

在此处输入图片说明

添加 1 - 1:26 PM 2018/9/21

这里是关于QT和GTK一些讨论(也许offtopic此主题虽然...)


Ell*_*sch 5

Xorg(以及更早的 Xfree 和更早的 X10)是一个更完整的称为X Window System协议的服务器;它允许应用程序在“屏幕”上绘图。可以使用 X 远程。Gnome/KDE/Xfce 和其他窗口管理器/桌面环境是在 X 中运行的特殊应用程序,可以绘制边框和图标之类的东西,并最小化和最大化应用程序本身没有的东西。

而且,由于 Gnome 和 KDE 都可以(或确实)在 MS Windows(以及不同程度的 Wayland)上运行,是的,它们是(或可以)独立于 X。