X11到底是什么?


14

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

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

但后来它说:

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

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

还指出:

X不要求用户界面;各个客户端程序可以处理此问题。程序可能会在没有用户界面的情况下使用X的图形功能。

这是什么意思?


4
我认为您可能应该转到Wikipedia中与该页面相对应的对话页面,并开始对话,以使作者能够澄清他们的文章。
RealSkeptic

Answers:


18

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

严格来说,“ X11”是一种通信协议。在句子“ X主要定义协议和图形原语……”和“ X并不强制用户界面……”这句话中,X就是指。X是一个协议家族,X11是第11个版本,并且是过去25年左右使用的唯一协议。

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

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

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


2

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


2
此外,此帮助还可以对其进行说明,并提供了一些了解为何要构建Wayland和其他X替代产品的信息:art.net/~hopkins/Don/unix-haters/x-windows/disaster.html
crajun

那是一声咆哮。
Stefan Skoglund

而且它也以另一种方式解释了肯·奥尔森(Ken Olsen)将UNIX描述为蛇油小贩的产品的特征,但这就是资本主义!声称是为MOTIF设计的,并且可以在任何地方运行,如今,它更像是为MS Windows设计的,并且可以在任何地方运行(这是垄断,而不是市场。)Ken Olsen非常清楚,针对MOTIF的设计和随心所欲的设计并不存在生产者的兴趣-因此,这不会真正发生。
Stefan Skoglund

1

一些概念:
- X Windows系统 Windowsing系统。(有可能使显示设备上移动窗口,并用鼠标和键盘交互)
- X.Org服务器由X.Org基金会的开放源代码实现X Windows系统的。
- 用于X Windows系统的xterm终端模拟器。
- X客户端:X服务器上的应用程序运行。X Windows系统要求客户端和服务器分别运行。QT,GTK和其他X客户端等应用程序需要X服务器的配合才能成功工作。

以前,我在这个问题上也感到非常困惑。最初,我在Windows旁边安装了linux系统,很多次我都遇到了Xorg错误的问题。
最近,我xclip在远程服务器上使用。该软件需要设置一个环境变量DISPLAY,而在我的远程服务器中则不是这种情况。没有监视器,鼠标或键盘,并且变量由X服务器管理。


1

X11窗户系统为许多相当复杂的结构/设计提供了支持(有制造商的特别支持)。

NeWS(Sun / Sony)中DisplayPostscript的使用意味着服务器内置了完整且相当不错的(Display)Postscript支持。该支持被应用程序远程采用,例如,运行在cray x-mp上的程序可以相同的约束/界面/功能在计算机上显示地震图,就像在高端激光打印机/复印机上打印出相同的图一样。

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.