首页 百科知识 的基本元素

的基本元素

时间:2023-10-10 百科知识 版权反馈
【摘要】:每一个显示设备只有一个唯一的服务程序。服务程序一般由系统的供应厂商提供,用户通常无法修改。客户程序无法直接影响窗口或显示,它们只能向服务程序发送请求,让服务程序来完成它们的需求。X的第三个元素为通信通道,客户程序借助于它给服务程序发送请求。则客户程序和服务程序的通信必须通过网络利用彼此同意的协议方可。因为客户程序和服务程序完全独立,这样开发了一种称为X-terminal的新型显示器。

10.2.1 X Window的基本元素

这里描述X的基本体系结构,并介绍许多基础的概念,目的在于使读者在稍后使用X系统时能有一个了解。将会知道系统程序做些什么和如何做,这样将更快和更有效率地使用系统。X不像早期的窗口系统,把一堆同类软件集中在一起,而是由三个相关的部分组合起来的:(1)“服务”程序:是控制实际显示设备和输入设备的程序。

(2)“客户”程序:需凭借服务程序在指定的窗口中完成特定的操作。

(3)“通信通道”:客户程序和服务程序用此来彼此交互信息。

1.服务程序

服务程序用来控制实际的显示设备和输入设备(键盘和鼠标或其他输入设备)的软件。服务程序可以建立窗口、在窗口中画图形、图像和文字;回应客户程序的需求。它不会自己执行动作,只有在客户程序提出请求后才完成动作。

每一个显示设备只有一个唯一的服务程序。服务程序一般由系统的供应厂商提供,用户通常无法修改。对操作系统而言,服务程序只是一个普通的用户程序而已,因此很容易更换一个新的版本,甚至可编译运行由第三方厂商提供的原始程序。

2.客户程序

客户程序是指使用系统窗口功能的一些应用程序。把X下的应用程序称作“客户”程序,原因是它们是服务程序的“顾客”:客户程序要求服务器应它的请求完成特定的动作。客户程序无法直接影响窗口或显示,它们只能向服务程序发送请求,让服务程序来完成它们的需求。典型的请求通常是:“在XYZ窗口中写一行‘Hello world’的字符串”,或“在CDE窗口中用这种颜色从A点到B点画一条直线”。

当然,针对窗口操作提出需求只是客户机程序的一部分,其他的部分是那些让用户执行的程序部分。例如:编辑文字、画一个系统的工程图、执行一个计算表格的计算等等。一般来说,客户程序和窗口系统是独立的,它们对于窗口几乎不需要知道什么。通常(特别是指大型的标准绘图套装软件,统计套装软件等)应用程序对许多的输出设备具有输出的能力。在X窗口上的显示只是客户程序许多输出格式中的一种。所以,客户程序中和X相关的部分在整个程序中占了非常小的一部分。

用户可以使用不同来源的客户程序:一些是由系统提供的(例如时钟),一些来自于第三方厂商,一些是用户为了特殊应用而编写的自己的客户程序。

3.通信通道

X的第三个元素为通信通道,客户程序借助于它给服务程序发送请求。而服务程序借助于它向客户程序回送状态及一些其他的信息。

只要客户程序和服务程序都知道如何使用通道,通道的本身的结构并不是很重要。在系统或网络上支持通信类型的请求内建于系统基本的X窗口函数库中,所有和通信类型有关的事件都从函数库中独立出来,客户程序和服务程序之间的通信只要借助于使用这函数库(在标准X版为xlib)即可。

总之,只要客户程序利用函数库,自然可以用到所有可用的通信方法。

客户程序和服务程序之间的通信大约可以分为两类,分别对应于两种X系统的基本操作模式:

·服务程序和客户程序在同一部电脑执行,则它们彼此均可使用机器上任何可用的方法来做进程内通信(简称IPC)。在这种模式下,X可以像许多传统的窗口系统一样有效率地操作。

·客户程序在一部机器上执行,而显示和服务程序在另一部机器上。则客户程序和服务程序的通信必须通过网络利用彼此同意的协议方可。目前,最常见的协议为TCP/IP 和DECnet,但其他任何的可信赖的协议亦可使用。

这种通过网络使得应用程序的操作如同在本地机器一样的能力称为网络透明性,这几乎是X独一无二的特性。这种特性使得它非常适合建立在灵活的多目标混合的计算机网络上。

因为客户程序和服务程序完全独立,这样开发了一种称为X-terminal的新型显示器。简单地说,X-terminal是一种除了能直接在上面执行X服务程序外,什么也没有的工作站。它有键盘、鼠标和屏幕,以及一些和网络互相通信的方法(所以在其他主机上的客户机可在它上面显示),但并没有文件系统,也不提供一般目的的程序,一般目的的程序需要在网络上执行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈