XWindow系统使用指南--第01章使用者对XWINDOW系统的概观
第壹部 系统概观第1章 使用者对X WINDOWS系统的概观
X Window System 是一套在各种位元映像显示器 (bitmapped
dispalys) 上具有极大可携性 (portable) 的视窗系统 (window system),
它是由麻省理工学院 (MIT)所发展出来. X Windows System ( 本书以後部
份简称为X) 可在许多系统上执行. 由於它和生产者无关、具可携性、对彩
色掌握的多样性及对网路之间的操作透通性 (operate transparently), 使
得X成为一个工业的标准. 由於原始程式可自由使用, 所以它也是一个优良
的研究媒介.
X视窗系统是一个让程式设计师发展可携性图形使用者介面的工业软体
标准, X最重要的特徵之一是它独特的与设备无关结构.任何硬体只要提供
X协定 (Protocol),便可以执行应用程式显示一群包含图文的视窗,而毋需
重新编译和连结.这种与设备无关的特性,使得只要是根据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.
1.1 X有什麽特点?
以下四个特徵说明了X大部分的能力及其受大众欢迎的原因:
.X具有网路透通性(Network Transparent): 透过网路,应用程式在
其他机器输出显示就和在自己机器上一样容易.此种通讯架构和网路
上另一端的它种机器完全语言无关和机器无关,甚至不需相同的作业
系统.总结一句,程式可以在另一种不同的显示器型态下执行而毋需
重新编译(re-compilation)和重新连结(re-linking).
.可支援许多不同风格的使用者介面,管理视窗的功能例如视窗的摆放
,大小及显示顺序等等并不包含於系统中,而是由应用程式来控制,
因此可轻易的更换.不同风格的介面关系於不同的应用程式,利如卷
动视窗中的文字和选择视窗中的一个物体,彼此间不会互相限制.
.X不是电脑作业系统的一部分:对作业系统而言,X只是一个应用程
式而已,因此,X很容易在不同的系统上装设.
.视窗是阶层性的 (hierarchical): 应用程式可以直接利用视窗系统
已有的设施 (facilities) 便可满足大部分的需求,而毋需藉助其他
的输入或控制结构 (mechanisms). (例如:选单(menu)可利用一个分
支的子视窗来产生.)
所有的特徵均会在以下的章节中作进一步详述.
1.2 什麽是视窗系统?
本节讨论一般视窗系统的一些基本概念, X视为其中一个特例, 如果你
已熟悉其它的视窗系统, 本节内容仅需快速浏览即可.
X是一个在位元映像显示萤幕上建立和管理视窗的系统, 它可以在拥有
位元映像显示器、键盘和一些可以指示萤幕上特定位置或物件的装置的工作
站或他种型式拥有位元映像显示器的终端机上执行. X把指示位置的装置叫
做指标 (pointer), 通常为滑鼠(mouse),X支援现今电脑上常见的视窗使用
者介面.
使用视窗系统常常拿来和在普通办公桌上的工作比较, 你的桌面上通常
放了一些纸, 信件和手边相关的工作, 一些有用的工具 (如时钟, 日历, 计
算器等),当进行到工作的另一个部份, 你会从新安排桌面上的纸, 你可能把
工具集中放在一起, 也可能不时参考桌上仍然看得到的纸的内容, 过了一阵
子, 你可能把其中的一些资料暂时摆到一边, 或者通通从桌面上移走.
上述是一个人的工作模式, 把它搬到电脑, 如果能提供相同的功能是很
理想的, 很不幸地, 老式的终端机或 CRT限制了你一次只能在萤幕上做一件
工作, 而且只能看见一小部份的文字资料 (通常为24行),图形的工作就更别
提了, 现在视窗系统试图克服这点, 通常它提供你一个较大的萤幕, 允许你
同时看到几件工作项目, 可以显示图形, 甚至有彩色.
X便是依照上述视窗的工作模式发展出来的, 在X的环境下、一个视窗
是萤幕上的一块长方形区域, 且平行於萤幕的边, 通常, 每一个视窗 (注1)
被一个独立的应用程式所专用, 数个应用程式可以" 同时" 在它自己所拥有
的视窗上显示输出结果,X允许视窗重叠. 见图 1 - 1
注 1: 严格地说, 应该说成" 一个最高层 (top level)的视窗",因为X允许
视窗有阶层, 所以, 一个典型的应用视窗可以包含许多子视窗
(sub-window)分别用来做控制、输入及显示等功能.
┌——————————————┐
│ page 6. Fig 1.2 │
│ │
│ │
│ │
│ │
│ 图 1 - 1 重叠的视窗 │
└——————————————┘
但即使视窗的部份或全部被其它视窗遮盖, 应用程式仍然可以对它自己
所拥有的视窗做输出. 设备程式 (facilities) 提供在萤幕上移动视窗、改
变视窗大小、把视窗放在最上一层或最下一层等功能。即便是视窗可以重叠
, 为了方便而在同一萤幕开了许多视窗仍然非常费时, 因此, 就如同其它的
视窗系统一般,X提供表徵图 (icon), 我们在萤幕上用一个表徵图代表一个
应用视窗, 当我们对应用视窗表徵图化 (iconify)後, 视窗被从视窗上移走
, 代之以表徵图, 而空出了较多的萤幕空间, 相反的动作为解除表徵图化 (
de-iconify),也就是以原先的视窗取代表徵图。
一些便利的功能, 例如时钟或日历, 并非内建於系统, 而是由许多小的
应用程式所提供.
对於输出, X提供了许多写文字和画图形到视窗上的功能选择, 许多种
的字型 (FONTS)可以非常容易并且做一致性的处理, 有许多图形的结构和绘
图的基本方法, 例如点, 线, 弧线, 区域 (areas)被提供, 色彩的掌握更是
丰富, 这些复杂的部份对使用者而言是隐藏起来的, 使用者可以简单和方便
的使用它们,例如, 在应用上, 你可以用 "*times-bold-i*"表示要使用加倍
粗的斜体字型 (italic),你需要使用彩色时, 你只要用日常的名称, 例如
"yellow(黄色)" 或 "navy blue (天蓝色)".
对於输入功能的提供, X也是多样化的, X可以连结不同形式的键盘,
如传统的QWERTY键盘或Dvorak Style键盘, 或者是不同国家的特殊规定. 处
理使用者介面是输入功能很重要的一个部份, 键盘和滑鼠的指令告诉系统如
何架构一个视窗和处理视窗的内容.
由於X的视窗处理功能并非内建於系统, 而是建在使用者层次, 因此容
易於修改或更换, 所以X能提供不同形态的使用者介面。换个角度来说,使
用者介面所必需具有的弹性几乎完全可由X独立提供.
1.3 X简史
X於1984年在麻省理工学院 (MIT)电脑科学研究室开始发展, 当时 Bob
Scheifler 正在发展分散式系统 (distributed system),同一时间 DEC公司
的 Jim Gettys 正在麻省理工学院做 Athena 计画的一部份, 两个计画都需
要一个相同的东西 ------ 一套在 UNIX 机器上优良的视窗系统. 因此合作
关系开始展开, 他们从史丹佛 (Stanford) 大学得到了一套叫做W的实验性
视窗系统, 因为是根据W视窗系统的基础开始发展,当发展到了足以和原先
系统有明显区别时,他们把这个新系统叫做X.
工作持续地进行, 新的版本 (version)不断地产生 (当软体和前一版不
相容时, 新的版本便产生了),在1985年中期, 任何人只要付版权费便可使用
X的基本政策被决定. 以下为一些最近的记事:
第10版: 1985年底. 直到此时, 在 MIT以外的人和组织, 才开始对X有
实质的贡献.
第一套商业化的X产品: DEC 於 1986 年 1月推出 VAXstation-II/GPX.
第10版第 3次发行: 1986年 2月. 从此时起, X开始流传於世, 人们把
它移植到许多新的系统上.
第10版第 4次发行: 1986年11月.
第一次X技术会议: 1987年 1月於 MIT.
在1986年间, 第10版X无法满足所有的需求已非常明显, MIT 和 DEC便从事於
完整协定 (protocal) 的重新设计, 这就是X第11版.
第11版第 1次