X Window 系统使用指南--X的基本架构


在本章和下一章我们将描述X的基本架构,并介绍许多基础的观念,其目
的在於对你稍後使用系统时能有一个了解,你将会洞悉系统程式做些什麽和如
何做,如此你将更快和更有效率的使用系统,我们也会指出系统外在的利益,
以及使用系统对你的影响 。
本章描述系统的基本元素,以及它们彼此之间如何交谈(interact),下一
章描述系统其它的面貌,特别是使用者介面 。此章包含了许多新观念,你不妨
先很快的浏览这两章後,开始实际地使用它,当你对系统比较有感觉之後,再
回头来复习,这样比较容易了解 。
2.1 X的基本元素X不像早期的视窗系统,把一堆同类软体集中在一起,而是由三个相关的
部份组合起来 。1. 一个"server"(供应者):是控制实际显示器和输入装置的程式 。2. "ClIEnt" (顾客) 程式:需藉著server在指定的视窗中完成特定的
操作 。3. 一个 "通讯通道(communication channel)":client和server用来作
为彼此交谈之用 。基本的"server","client"和 "通讯通道" 的关系图如图2-1。┌—————————————┐
│ p16 fig 2.1 │
│ │
│ 图 2-1 X的基础成员 │
└—————————————┘底下我们描述一下这三个部份 。2.1.1 ServerServer是控制实际显示器和它的输入装置 (键盘和滑鼠或其它指示装置)
的软体,server可以建立视窗、在视窗中画图形影像和文字、回应client程式
的 "需求" (requests),它不会自己动作,只有在client程式提出需求後才完
成动作 。每一个显示器只有一个唯一的server 。server一般由系统的供应厂商提供
,通常无法被使用者修改 。针对作业系统而言,server只是一个普通的使用者
程式而已,因此很容易换一个新的版本,或许甚至是由第三集团提供的原始程
式 (注1)。注1:这是Unix系统上的情况,有些供应厂商会选择将server的部份或全部放
在作业系统核心(kernel) 。
2.1.2 ClientClient是使用系统视窗功能的一些应用程式 。把X下的应用程式称作
"client",原因是因为它是server的 "顾客" :它要求server应它的需求
完成特定的动作 。Client无法直接影响视窗或显示,它们只能送一个 "需求" (request) 给
server,让server来完成它们的需求 。典型的 "需求" 通常是: "在 XYZ视窗
中写一列 "Hello, world" 的字串" ,或 "在 CDE视窗中用这种颜色从 A点到
B点画一条直线"。当然,对视窗操作提 "需求" 只是client程式的一部份,其它的部份是那
些让使用者执行的程式部份 。例如:编辑文字、画一个系统的工程图、执行计
算表的计算等等 。一般来说,client程式的这个部份和视窗是独立的,对於视
窗几乎不需要知道什麽,通常 (特别是指大型的标准绘图套装软体,统计套装
软体等) 应用程式对许多的输出装置具有输出的能力 。在X视窗上的显示只是
client程式许多输出格式中的一种,所以,client程式中和X相关的部份在整
个程式中,只占了非常小的一部份 。使用者可由不同的来源来使用client程式:一些是由系统提供的 (例如时
钟) ,一些来自於第三集团,一些是使用者为了特殊应用而撰写他自己的client
程式 。
2.1.3 通讯通道X的第三个元素为通讯通道,client藉著它送 "需求" 给server,而server
藉著它回送状态 (status) 及一些其它的资讯 (information) 。只要 client 和 server 都知道如何使用通道,通道的本身并不是很重要
,在系统或网路上支援通讯型态的需求是内建於系统基本的X视窗函数馆(library)
,所有和通讯型态有关的事都从函数馆独立出来,client和server之间的通讯

推荐阅读