X11究竟是什么?

Hid*_*den 27 x11

我正在阅读有关 X11 的维基百科,它说:

在其标准发行版中,它是一个完整但简单的显示和界面解决方案,它提供了一个标准工具包和协议栈,用于在大多数类 Unix 操作系统上构建图形用户界面......

但后来它说:

X 主要定义协议和图形原语——它故意不包含应用程序用户界面设计的规范,例如按钮、菜单或窗口标题栏样式。

那么,X11 是否提供按钮或窗口面板/框架等小部件?什么是图形基元?X11 究竟提供了什么?

还指出:

X 不强制用户界面;单独的客户端程序处理这个。程序可以在没有用户界面的情况下使用 X 的图形功能。

这是什么意思?

Gil*_*il' 33

像许多单词一样,“X11”可以有多种含义。

“X11”严格来说是一种通讯协议。在“X 主要定义协议和图形原语……”和“X 不要求用户界面……”这句话中,这就是 X 所指的。X 是一系列协议,X11 是第 11 个版本,也是过去 25 年左右唯一使用的版本。

您问题中的第一句话是指软件分发,它是 X11 协议的参考实现。该软件发行版的全称是“X Window System”。此发行版包括在 X11 协议中充当服务器的程序、在 X11 协议中充当客户端的程序、包含使用 X11 协议的代码的代码库、相关文档、可使用的字体和键盘布局等资源具有上述程序和库等。从历史上看,该软件发行版是由 MIT 发布的;今天它由X.Org 基金会维护。

X11 协议允许应用程序创建诸如窗口之类的对象并使用基本的绘图原语(例如填充矩形、显示一些文本)。按钮、菜单等小部件由客户端库制作。X Window 系统包括一个基本库(Athena 小部件集),但大多数应用程序使用更高级的库,例如GTK+QtMotif等。

一些 X11 程序根本没有图形用户界面,例如命令行工具如xsetxselxdotool,键绑定程序如xbindkeys等。大多数 X11 程序当然有图形用户界面。


cra*_*jun 5

X11,又名 X.org Foundation Windowing 基本上被 KDE 和 GNOME 等其他桌面环境使用,以提供管理 GUI 的抽象接口。如果不依赖 X,KDE/GNOME/其他人将不得不自己编写代码来完成低级编码。相反,KDE/GNOME 与 X 来回通信(它作为“客户端”连接到的服务器进程运行)。

  • 这也有助于解释它,并提供一些关于为什么要构建 Wayland 和其他 X 替代品的见解:http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html (2认同)