# 2021-01-19 #「X Window System」- 基本概念(学习笔记)

X Window System,是用于位图显示的窗口系统,是在 UNIX 环境中经常使用的 Client-Server 显示协议。而我们常说的 X、X11 只是简写而已。

X 为图形界面环境提供基本框架:在显示设备上,绘制和移动窗口;与鼠标、键盘进行交互。但是 X 不负责用户界面,因此不同桌面环境之间的差异非常大。

该部分笔记:主要是 X Window System 的相关内容,之所以学习这些内容是为了了解它工作原理、实现某些操作。

软件架构

架构概览

X Window System/Software architecture

X Server / X Client 与我们日常理解的 Server / Client 有些相反:
1)X Server:运行在”客户端“。这个”客户端“指的是本地电脑(笔记本、台式机、Whatever...);
2)X Client:运行在”服务端“。这个”服务端“指的是远程主机;(也可以是”本地“(同一台主机),但是从网络上来看,X Client 依旧是运行在远程);

之所以会出现这个情况是因为:X 是从应用的角度来看,即 X Server 为 X Client 提供显示和 I/O 设备服务。

详细说明

X 采用 Client-Server 架构。特殊的地方在于,Server 运行在本地(用户)主机中,而 Client 运行在远程主机中。

Client 是应用程序,比如 Firefox XTerm XClock 等等。负责与 Server 交流,发出请求,并接收 Server 信息。

Server 是服务端实现,比如 Xorg Server、XFree86 等等。

Server 比较特殊,Server 独占显示控制权,并服务来自 Client 的请求,并负责与用户交互(鼠标、键盘)。因此 Client(应用程序)无需关心显示细节,只需要向 Server 发送指令,比如“绘制从这里到那里的直线”、“渲染字符串”。

这样带来的好处就是 Client 与 Server 可以运行在不同的主机上,我们在本地运行 Server,但是通过 TCP/IP 网络,我们可以运行 Host A 主机上的 Firefox 程序,运行 Host B 上的 Chrome 程序,运行 Host C 上的 Thundbird 程序,而本地运行 Server 只是负责显示这些程序界面(Client 会告诉 Server 显示什么、如何显示),实际的程序运行及资源占用则是发生在远程主机上的。

当然,大多数情况下,我们是单台主机,所以 Client 与 Server 在同个主机上。

常用术语区分

XFree86 / XF86

XF86 是 X Window System 协议的实现。

X.Org

Xorg 是 X Window System 的开源实现。由 XFree86 4.4 RC2 分叉出来的。

The X.Org project provides an open source implementation of the X Window System.

Window Manager

在图形用户界面中,用于控制窗口系统内窗口的位置和外观的系统软件。大多数窗口管理器旨在帮助提供一个桌面环境。下图中标注的就是一个 Window Manager 的组成部分,但是图中 Window content 的内容是由 Client 或软件绘制的,它不属于 Window Manager。

pasted_image.png

Display Manager

在引导过程结束时,显示的图形用户界面,代替默认 Shell。Display Manager 有众多的实现,像 LXDM、GDM、KDM、XDM 等等。下面 KDM 截图:

pasted_image001.png

参考文献

WikiNotes/基本概念(学习笔记)
X Window System - Wikipedia
The X Window System Architecture: overview
Wikipedia/XFree86
Wikipedia/Root Window
ArchWiki/Display Manager
X.Org/Wiki
Documentation for the X Window System

猜你喜欢

转载自blog.csdn.net/u013670453/article/details/112813340
今日推荐