Xorg和Gnome / KDE / Xfce之间的区别


21

我想了解有关UNIX系统的更多信息,我想我有一个很简单的问题。我想我知道X的用途:它为应用程序提供了一个标准,以表示其UI(以及其他内容)。

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

是真的,还是Gnome / KDE与X无关?

Answers:


29

(我正在研究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 Server通常在您所在的机器上运行;您的计算机上运行的程序以及远程计算机上运行的程序可能会请求显示和用户输入服务。

因此X由以下组成:

  • 显示服务器
  • 显示服务器协议
  • 一些发展的图书馆
  • 和其他东西

在此处输入图片说明

根据这里

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

换句话说,X仅使程序具有执行基本功能的能力,例如绘制/移动窗口输入交互。X不强制使用视觉样式。因此,您说的“ ...为应用程序提供了一种标准来表示其UI ... ”是不正确的。

3.什么是GNOME / KDE

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

但是就像我上面提到的,X11作为显示服务器,通过某些库(例如Xlib或XCB)提供基本的绘图功能。通过此类库直接连接X11的应用程序可能具有截然不同的视觉样式

那么如何创建通用的GUI?这是小部件工具箱。如GTK +Qt。它们在Wayland和X11 窗口系统中很流行。

GNOME使用GTK +。

KDE使用Qt。

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

总结一下...

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

在此处输入图片说明

添加2018年1月21日下午1:26

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


“习惯将“服务器”一词应用在用户面前的软件这一事实通常令习惯于其程序是远程计算机上的服务客户端的用户感到惊讶。在这里,而不是将远程数据库作为本地应用程序的资源,用户的图形显示和输入设备将成为本地X服务器提供给本地和远程托管的X客户端程序的资源,这些本地X客户端程序需要共享用户的图形和输入设备才能与用户进行通信。” (请参见wiki
yaobin

1
如果有人对句子“您所在的计算机上通常正在运行X Server”感到困惑,请参阅上面的评论。感谢@smwikipedia提供如此令人难以置信的出色答案!
yaobin

5

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

而且,由于Gnome和KDE都可以(或确实)在MS Windows(和Wayland)上运行,因此它们是(或可以)独立于X。

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.