编辑: cyhzg | 2019-07-05 |
它 使用方便,界面直观,并且和具体的计算机的硬件无关.同时它支持分布式的网络操作.所以, 基于X Window 的应用程序一直在UNIX类的操作系统中占有主导的地位. Linux出现以后,X Window 系统也有了在Linux系统上的实现.这就是XFree86系统.XFree86 比标准的MIT版的X Window 支持更多的硬件,这样,它的应用就更加的广泛.关于 XFree 86的安装和启动,请参 考附录B. 麻省理工学院发布的 X Window系统以及其源代码叫做 X11系统. Linux系统上使用的 XFree86.3.1.2就是基于X11R6版本的.其他 UNIX系统中的X Window应用程序基本上可以在 Linux 的XFree 86系统上直接使用.而在Linux系统中编写基于XFree
86 的应用程序的需求也越 来越多.所以在本篇,我们讨论一下 Linux系统中X Window窗口系统的内部结构和具体的设置 和使用.有了这些知识,你就可以尝试着在 XFree 86系统上编写一些使用的程序.等到积累了 一定的经验以后,就可以编写一些大型的基于 X Window系统的程序了.下面,我们先从 X Window系统的最基本的概念讲起. 第27章XWindow系统的基本知识 27.1 X Window系统介绍 X Window 系统是一套在各种图形显示器上均可使用的窗口系统.它是由麻省理工学院 (MIT)开发出来的.X Windows系统( 以下简称为X) 可在许多系统上执行.由于它和生产厂商 无关、具可移植性、对彩色掌握的多样性及对网络之间的操作透明性,使得 X成为一个工业的 标准.由于原始程序代码可自由使用,所以它也是一个优秀的研究媒介. 程序员可以利用X开发可移植性图形用户界面. X最重要的特征之一是它独特的与设备无 关结构.任何硬件只要提供 X协议,便可以执行应用程序显示一系列包含图文的窗口,而不需 要重新编译和链接.这种与设备无关的特性,使得只要是根据 X标准所开发的应用程序,均可 在不同的环境下(如大型电脑、工作站、个人电脑上)执行,因而奠定了X成为工业标准的地位. X可以在一些 UNIX 系统的电脑上执行,如Alliant、Apollo、DEC、IBM、Hewlett- Packard、Sun等,也可在 DEC的VAX/VMS、MS-DOS及一些其他的系统上执行.其他的一些 厂商如 AT&
T、Adobe、Control Data、Data General、Fujitsu、Prime、Siemens、Silicon Graphics、 Sony、Texas Instruments、Wang、Xerox 均曾表示支持X. 27.1.1 X的特点 X的特点及其受大众欢迎的原因如下: ? X具有网络透明性:通过网络,应用程序在其他计算机上输出显示,就和在自己计算机
第六篇 X Window系统的 内部结构和使用 上输出一样容易.此种通信结构和网络上另一端的计算机使用的语言完全无关,也和计 算机硬件无关,甚至不需使用相同的操作系统.总而言之,程序可以在另一种不同类型 显示器下执行,而不需要重新编译和重新链接. ? 可支持许多不同样式的用户界面.管理窗口的功能 (例如窗口的摆放、大小及显示顺序等 等)并不包含于系统中,而是由应用程序来控制,因此可轻易地更换.不同样式的界面和 不同的应用程序有关,例如滚动窗口中的文字和选择窗口中的一个物体,彼此间不会互 相限制. ? X不是电脑操作系统的一部分:对操作系统而言, X只是一个应用程序而已,因此, X很 容易在不同的系统上安装. ? 窗口是层次式的: 应用程序可以直接利用窗口系统已有的工具便可满足大部分的需求, 而不需要借助于其他的输入或控制结构. (例如:可利用一个分支的子窗口来产生菜 单.) 27.1.2 什么是窗口系统 本节讨论一般窗口系统的一些基本概念, X可以当作其中一个特例,如果你已熟悉其他的 窗口系统,本节内容仅需快速浏览即可. X是一个在图形显示屏幕上建立和管理窗口的系统,它可以在拥有图形显示器和键盘的工 作站或其他型号拥有图形显示器的终端机上执行. X把指示位置的设备叫做指针,这个设备通 常为鼠标.X支持现今电脑上常见的窗口用户界面. 使用窗口系统的情形与在普通办公桌上的工作相似.你的办公桌上通常放了一些纸、邮件 和手边相关的工作、一些有用的工具 (如时钟,日历,计算器等).当进行到工作的另一个部分 时,你会重新安排桌面上的纸,你可能把工具集中放在一起,也可能不时参考桌上仍然看得到 的纸的内容,过了一阵子,你可能把其中的一些资料暂时摆到一边,或者通通从桌面上移走. 上述是一个人的工作模式,如果电脑能提供这样的功能是很理想的.不幸的是,老式的终 端机或显示器使得你一次只能在屏幕上做一件工作,而且只能看见一小部分的文字资料 (通常 为24行),图形的工作就更别提了.现在窗口系统正克服这点,通常它提供一个较大的屏幕, 允许你同时看到几件工作项目,可以显示图形,甚至有彩色. X便是依照上述窗口的工作模式开发出来的. 在X的环境下,一个窗口是屏幕上的一块长 方形区域,且平行于屏幕的边,通常,每一个窗口被一个独立的应用程序所专用,数个应用程 序可以 同时 在它自己所拥有的窗口上显示输出结果, X允许窗口重叠. 但即使窗口的一部分或全部被其他窗口遮盖,应用程序仍然可以对它自己所拥有的窗口输 出信息.设备程序提供在屏幕上移动窗口、改变窗口大小、把窗口放在最上一层或最下一层等 功能.即便是窗口可以重叠,但在同一屏幕开了许多窗口仍然非常费时. 因此和其他的窗口 系统一样,X提供图标功能.我们在屏幕上用一个图标代表一个应用窗口,当我们对应用窗口 图标化后,窗口以图标代之,从而空出了较多的屏幕空间;