X 视窗/X 协议:用于 UNIX 和 Linux 图形显示的 X 视窗系统协议(X Window or X Protocol or X System)
X 视窗系统协议,即 X 视窗或 X 协议,是一个图形结构,用于 UNIX 和 Linux 下的图形系统。X 视窗系统很少用于 VMS、MVS 和 MS-WINDOWS 等系统。它为显示窗口图形提供了固有的面向客户机/服务器的基础。X 视窗系统提供了一个公共协议,通过它客户程序可以查询和更新 X 服务器上的信息。X 视窗系统(X 协议)允许网络中不同计算机上的进程在其它网络显示器上显示内容。
X 视窗系统(X 协议)定义的客户机和服务器角色如下:
X 服务器是一种运行在用户桌面的程序,用于管理视频系统,包括交互式 I/O 设备,如鼠标、键盘和一些特殊设备等。主要功能有:
- 在屏幕上显示图形请求
- 回复请求信息
- 报告请求中的错误
- 管理键盘、鼠标和显示器设备
- 将键盘和鼠标输入复用到连接各自 X 客户机(X 事件)的网络上
- 创建、映射和删除视窗
- 在视窗中写和绘图
X 客户机是一个运行在连接 X 服务器以显示图形的另一个主机上的应用程序。客户机通常运行在一个强大的 UNIX/LINUX 平台上,也就是通常的“服务器“。主要功能有:
- 发送请求给服务器
- 从服务器处接收事件
- 从服务器处接收错误
X 系统将各种组件分成各个单独的子系统。X 视窗系统(X 协议)框架的主要组件有:
- 视窗管理员 - 当鼠标指针指向由特定应用程序控制的屏幕范围外时,控制事件的发生。
- 程序/文件管理员 - 通常是一个显示应用程序图标的程序,并允许用户运行这些程序。
- 内部程序接口 - X 视窗客户机通信的标准模式,称之为 ICCCM。CORBA 也用来提供更加精密复杂的方法用于 X 视窗通信。通信的实现基于 TCP/IP 网络。
X 视窗系统( X 协议)包括两个基本版本:X10 和 X11。
协议结构
X 协议具有以下客户机和服务器间的主要通信信息:
请求
- X 客户机向 X 服务器发出服务请求,如创建 Window 。
- 为增强性能,X 客户机通常并不期望或等待响应。请求保留给可靠的网络层进行传送。
- X 请求是 4 字节的任意倍。
答复
- X 服务器响应某个的 X 客户机请求。注意:并不是所有的请求都需要响应。
- X 答复是 4 字节的任意倍,但最小为 32 字节。
事件
- X 服务器将转发事件给 X 客户机。可能包括键盘或鼠标输入。为减小网络流量,只有期望的事件发送给 X 客户机。
- X 事件是 32 字节。
差错
- X 服务器应客户机请求报告差错。差错与事件相似,但它们的处理不同。
- X 差错大小与事件相同,用于简化它们的处理。它们被发送到 X 客户机(32 字节)的差错处理程序中。
组织来源:X Window / X Protocol 由 X.ORG(http://www.x.org)推出。
相关链接:http://www.x.org/X11_protocol.html:The X Protocol.