X Server / X Client
的互动并非½有
client --> server
,两者其实有互动的!从上图
23.1.1
我们也可以
发现,
X Server
还有一个重要的工作,那就是½来自输入设备
(
如键盘、鼠标等
)
的动作告知
X
Client
,
你晓得,
X Server
既然是管理这些周边硬件,所以,周边硬件的动作当然是由
X Server
来
管理的,
但是
X Server
本身并不知道½口设备这些动作会造成什么显示上的效果,
因此
X Server
会½½口设备的这些动作行为告知
X Client
,让
X Client
去伤脑½。
.
X Client
:负责
X Server
要求的『事件』之处理:
前面提到的
X Server
主要是管理显示½口与在屏幕上绘图,同时½输入设备的行为告知
X Client
,
此时
X Client
就会依据这个输入设备的行为来开始处理,最后
X Client
会得到『
嗯!这个输入设
备的行为会产生某个图示』,然后½这个图标的显示数据回传给
X Server
,
X server
再根据
X Client
传来的绘图资料½他描图在自己的屏幕上,来得到显示的½果。
也就是说,
X Client
最重要的工作就是处理来自
X Server
的动作,½该动作处理成为绘图数据,
再
½这些绘图数据传回给
X Server
啰!由于
X Client
的目的在产生绘图的数据,因此我们也称呼
X
Client
为
X Application (X
应用程序
)
。而且,
每个
X Client
并不知道其他
X Client
的存在
,
意思
是说,如果有两个以上的
X client
同时存在时,两者并不知道对方到底传了什么数据给
X Server
,
因此
X Client
的绘图常常会互相重迭而产生困扰喔!
举个例子来说,当我们在
X Window
的画面中,½鼠标向右移动,那他是怎么告知
X Server
与
X
Client
的呢?
首先,
X server
会侦测到鼠标的移动,但是他不知道应该怎么绘图啊!此时,他½鼠
标的这个动作告知
X Client
,
X Client
就会去运算,½果得到,嘿嘿!其实要½鼠标指针向右移动
几个像素,然后½这个½果告知
X server
,
½下来,您就会看到
X Server
½鼠标指针向右移动啰~
这样做有什么好处啊?最大的好处是,
X Client
不需要知道
X Server
的硬件配备与操作系统!
因为
X Client
单纯就是在处理绘图的数据而已,本身是不绘图的。所以,在客户端的
X Server
用的是什
么硬件?用的是哪套操作系统?服务器端的
X Client
根本不需要知道~相当的先½与优秀~对吧!
^_^
整个运作流程可以参考下图:客户端用的是什么操作系统在
Linux
主机端是不在乎的!
图
23.1.2
、
X Server
客户端的操作系统与
X client
的沟通示意
.
X Window Manager
:特殊的
X Client
,负责管理所有的
X client
软件
刚刚前面提到,
X Client
的主要工作是½来自
X Server
的数据处理成为绘图数据,再回传给
X server
而已,
所以
X client
本身是不知道他在
X Server
当中的位置、大小以及其他相关信息的。这也是
上面我们谈到的,
X client
彼此不知道对方在屏幕的哪个位置啊!为了克服这个问题,因此就有
Window Manager (WM,
窗口管理员
)
的产生了。
窗口管理员也是
X client
,只是他主要在负责全部
X client
的控管,还包括提供某些特殊的功能,例如: