X 视窗系统协议是用于 UNIX 和 Linux 的图形显示系统协议(X-Window/X Protocol:X-Window或X-Protocol或X-System),X-Window是麻省理工学院(MIT)电脑科学研究室在1984年开发的。严格地讲,X-Window系统并不是一个软件,而是一个协议,一个定义系统所必须具备哪些功能的协议。
X 视窗系统是一个图形结构,用于 UNIX 和 Linux 下的图形系统。X 视窗系统很少用于 VMS ,MVS 和 MS-WINDOWS 等系统。它为显示窗口图形提供了固有的面向客户机 / 服务器的基础。X 视窗系统提供了一个公共协议,通过它客户程序可以查询和更新 X 服务器上的信息。X 视窗系统(X协议)允许网络中不同计算机上的进程在其他网络显示器上显示内容。
X视窗系统由三个相关部分组成,分别是server(服务器)、client(客户端)和通信通道。
(1)Server 服务器:是一种运行在用户桌面的程序,用于管理视频系统,包括交互式 I/O设备,如鼠标、键盘和一些特殊设备等。
Server的主要功能有:
在屏幕上显示图形请求;
回复请求信息;
报告请求中的错误;
管理键盘、鼠标和显示器设备;
将键盘和鼠标输入复用到连接各自 X 客户机( X 事件)的网络上;
创建、映射和删除视窗;
在视窗中写和绘图。
(2)Client 客户端:是一个运行在连接 X 服务器以显示图形的另一个主机上的应用程序。Client客户端不能直接对鼠标和键盘进行操作,它们只能发出一个请求给Server服务器以完成其相应请求。
客户端的主要功能有:
发送请求给服务器;
从服务器处接收事件;
从服务器处接收错误。
(3)通信通道:是在Server服务器端和Client客户端传送资讯的媒介,通过这个媒介Client客户端将需求传送给 Server 服务器,而服务器则通过该通道回传状态及一些其他的资讯给Client客户端。
学习目标 了解 X-Window 的基本部件,能运用该指令在命令行模式下启动 X-Window图形界面。
语法 startx
功能说明 startx 指令可用来启动 X-Window 图形界面。在 Linux 系统中 X-Window 是定义一个图形界面系统所必需的功能的协议。它具体包含三个部分:
(1)Server服务器,实现显示和输入设备的控制功能,能建立视窗界面或回应Client的需求;
(2)Client用户端,是Server的客户,可以向Server发送请求;
(3)通信通道,是为Server和Client传送信息。
基础应用
范例684 启动图形界面。
[root@localhost ~]# startx //启动图形界面
学习目标 学会使用 xhost 指令来设置 X 服务器的访问权限
语法 xhost [-可选参数]
功能说明 xhost 指令可用来添加或删除 X 服务器接受连接的列表上的主机名。
参数说明 可选参数具体说明如下:

基础应用
范例685 显示访问 X 服务器的当前主机。
[root@localhost ~]# xhost //显示访问主机
Access control enabled,only authorized clients can connect
SI:localuser:liveuser
[root@localhost ~]#
直接输入 xhost 指令将在标准输出设备上显示访问 X 服务器的当前主机名。
范例686 添加或删除 X 服务器访问列表中的指定主机。
[root@localhost ~]# xhost + 192.168.10.1 //添加指定主机到 X服务器访问列表
192.168.10.1 being added to access control list
[root@localhost ~]#
执行指令“xhost + 192.168.10.1”将允许主机 192.168.10.1 访问 X 服务器。要想禁止该主机访问服务器,可将指定主机从X服务器的访问列表中删除。
[root@localhost ~]# xhost - 192.168.10.1 //从 X服务器的访问列表中删除指定的主机
192.168.10.1 being removed from access control list
[root@localhost ~]#
学习目标 掌握 xinit 指令的使用
语法 xinit [ [ 客户机 ] 选项 ] [ - - [ x 服务器] [显示器名称 ] 选项 ]
功能说明 xinit 指令可用来启动 X-Window 的 X 服务器。该指令不能从 /etc/init 或使用多视窗系统的环境中直接启动 X 服务器。如果指令中未给出任何特定的客户机程序,xinit指令将查找一个要运行的文件来启动客户机程序。当客户机退出后,xinit将结束X服务器。
基础应用
范例687 启动X-Window。
[root@localhost ~]# xinit //启动X-Window
学习目标 能使用 xlsclients 指令来显示客户端应用程序信息
语法 xlsclients [-可选参数]
功能说明 运行xlsclients指令将显示某指定显示器中当前正在执行的客户端应用程序信息。
参数说明 可选参数具体说明如下:

基础应用
范例688 输出所有显示器上的客户端应用程序信息。
[liveuser@localhost ~]$ xlsclients //输出所有显示器上的客户端应用程序信息
Localhost.localdomain gnome-session
Localhost.localdomain gnome-settings-deamon
Localhost.localdomain metacity
Localhost.localdomain gnome-panel
Localhost.localdomain nantilus
Localhost.localdomain gpk-update-icon
Localhost.localdomain gnome-power-manager
Localhost.localdomain nm-applet
Localhost.localdomain Bluetooth-applet
Localhost.localdomain kerneloops-applet
Localhost.localdomain imsettings-applet
Localhost.localdomain applet-py
Localhost.localdomain sealert
Localhost.localdomain gnome-screensaver
Localhost.localdomain transhapplet
Localhost.localdomain wnck-applet
Localhost.localdomain mixer_applet2
Localhost.localdomain gdm-user-switch-applet
Localhost.localdomain notification-area-applet
Localhost.localdomain clock-applet
Localhost.localdomain gnome-terminal
[liveuser@localhost ~]$
学习目标 学会使用 xlsfonts 指令来查看当前 x server 可使用的字体
语法 xlsfonts [-可选参数]
功能说明 执行 xlsfonts 指令能显示目前 x server 可使用的字体,也能使用范本样式仅列出符合条件的字体。
参数说明 可选参数具体说明如下:


基础应用
范例689 显示目前 x server 可使用的字体。
[liveuser@localhost ~]$ xlsfonts //显示可用的字体
---------------------------------------------
--------------------------------------------- //省略输出
[liveuser@localhost ~]$
学习目标 学会使用 xset 指令来设置 X-Window
语法 xset [-可选参数]
功能说明 用户可在终端输入 xset 指令来设置 X-Window 的各项参数,在使用 xset 指令设置X-Window的各项参数时需要先启动X-Window系统。如果直接输入xset指令,将显示当前的设置。
参数说明 可选参数具体说明如下:

基础应用
范例690 显示当前设置。
[liveuser@localhost ~]$ xset //显示当前设置
usage: xset [-display host:dpy] option ...
To turn bell off:
-b b off b 0
To set bell volume, pitch and duration:
b [vol [pitch [dur]]] b on
To disable bug compatibility mode:
-bc
To enable bug compatibility mode:
bc
To turn keyclick off:
-c c off c 0
To set keyclick volume:
c [0-100] c on
---------------------------------------------
--------------------------------------------- //省略输出
To turn auto –repeat off or on:
-r [keycode] r off
r [keycode] r on
r rate [delay [rate]]
For screen –saver control:
s [timeout [cycle]] s defaule s on
s blank s noblank s off
s expose s noexpose
s activate s reset
For status information: q
[liveuser@localhost ~]$