新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > X-Window系统介绍

X-Window系统介绍

作者: 时间:2011-03-02 来源:网络 收藏
三.X的设计原则

本文引用地址:https://www.eepw.com.cn/article/150996.htm

  X的设计原则,早在最初仍在麻省理工学院的阶段(1984年)就已经成形,由Bob Scheifler和Jim Gettys两人制订出X最早的开发、强化、改进原则,原则大体如下:

  1、除非没有它就无法完成一个真正完整的应用程序,否则不用增加新的功能。

  2、决定一个系统不是什么和决定它是什么同样重要。与其去适应整个世界的需要,宁可使得系统可以扩展,如此才能以持续兼容的方式来满足新增需求

  3、只有完全没实例时,才会比只有一个实例来的糟。

  4、如果问题没完全弄懂,最好不要去解决它

  5、如果可以通过10%的工作量得到90%的预期效果,应该用更简单的办法解决。

  6、尽量避免复杂性。

  7、提供机制而不是策略,有关用户界面的开发实现,交给实际应用者自主。(这和驱动开发的思想一脉相承)

  之后,上述原则中的第一项原则在设计X11时被加以修改,修订成:“除非已有真正的应用程序,真的需要X为其修订、增订等支持,否则不会为X增加新功能。”X基本上一直遵循这些原则,参考实现的扩展及改进也是以此原则的角度来着手,也因为奉行上述原则,使至今的最新版X仍能与最初(1987年)发布的协议标准近乎完全兼容。

  这些原则性的东西短短几句话,就为一个庞大项目奠定了一个良好的基调和发展方向,使X问世以来经久不衰,没有这几个原则是做不到的。

  四.X-Window的功能

  X-Window提供了一组非常底层的服务,客户端程序发送请求给X-Window, X Window根据请求完成相应服务。通过这些服务,客户端程序可以构建期望的用户界面。根据不同的功能,可以把这些服务分为以下几大类:

  1、处理输入

  X-Window从键盘和鼠标接受输入,这些输入数据被当作”事件”传送给适当的客户端程序。至于哪个窗口应该接受到这些事件,是依赖于窗口管理器的(窗口管理器实际上也是一个客户端),典型的事件包括按键,鼠标移动,鼠标按下/放开等。

  输入设备往往是与硬件平台相关的,而且又是独占资源,所以用X-Window管理是理所当然的。应用程序通常不需要关心具体的设备,只要处理相应的事件就行了,像mouse和笔点可能发出同样的事件,而应用程序不用区分它们。输入事件也可以通过XTest扩展,由软件模拟出来的(通常用来实现软件键盘)

  2、按层次形组织窗口

  X-Window提供服务让客户端程序创建/销毁窗口,所谓的窗口就是屏幕上的矩形区域,它是可以层层嵌套的,有很多操作可以作用于窗口(如,查询或改变窗口的大小和位置等),X-Window的主要功能之一就是负责管理这种按层次形组织的窗口。

  不过X-Window管理这些窗口是被动进行的,由窗口管理器根据用户的行为决定。它请求X-Window做相应的动作,比如移动窗口,调整窗口的大小,改变窗口的前后关系等等。第一次接触X-Window时,得知窗口管理器是一个普通的客户端时,我觉得惊讶,这种设计真是太先进了,其实它正是遵循了提供机制而不是策略这一原则。

  现在已经有很多窗口管理器的实现可用,它们提供不同的风格和功能,有的用于PC,有的用于嵌入式系统,像matchbox就是在嵌入式上比较流行的,像Nokia的N770/N800就是用的matchbox。

  3、提供图形操作

  X-Window提供了一些基本的画图操作,如画直线、矩形、圆弧和多边形等。这些图形的颜色、线宽、填充类型都可以由客户端程序指定。X-Window同时提供了许多位图操作,这些位图操作可以作用于了窗口的各个区域。

  X-Winwod还会充分挖掘硬件的加速特性,像填充、画直线和图像叠加等操作,如果硬件支持相应的加速功能,就可以通过硬件实现,否则就用软件实现。

  4、提供文本和字体操作

  X-Window提供了字体相关的操作。客户端程序可以请求X-window在指定的区域用指定的字体显示指定的字符串,当然在此之前应该请求X-window加载字体,加载后客户端程序可以得到关于字体的一些信息。

  实际上,这一功能由于客户端字体绘制的流行,而大大弱化了,现在的字体差不多都是在客户端绘制好后,再通过X Render扩展显示到X-Window去的。在fontconfig/freetype/pango/cairo的帮助,在客户端绘制字体更容易使用。

  名词解释:

  位图:

  位图(Bitmap),又称光栅图(Raster graphics),是使用像素阵列来表示的图像,每个像素的色彩信息由RGB组合或者灰度值表示。根据颜色信息所需的数据位分为1、4、8、16、24及32位等,位数越高颜色越丰富,相应的数据量越大。其中使用1位表示一个像素颜色的位图因为一个数据位只能表示两种颜色,所以又称为二值位图。通常使用24位RGB组合数据位表示的的位图称为真彩色位图。

  视窗系统:

  视窗系统(Windowing system) 是“使用视窗当作它的主要象征之一”的图形使用者接口的构成元件。更为明确的说,是桌面环境的构成元件。视窗系统支撑着视窗管理员的实现(implementation);对于“图像硬件(graphics hardware)、指向装置(pointing devices)比如鼠标与键盘等装置”提供基本支持。绘制鼠标光标,一般也与视窗系统相关。

  从程式设计师的观点来看,视窗系统是作出绘图的基本单位,比如字型绘制,或是在屏幕上划线,有效地提供绘图硬件的一种抽象概念。

  视窗系统能让电脑使用者同时与数个程式一起工作。每个程式在他自己的视窗中执行,也就是屏幕上的矩形之中。大部份的视窗系统允许视窗重叠,且提供使用者执行标准的操作,像是移动/改变视窗尺寸,把视窗送到前景/背景,和最小化/最大化一个视窗。

  有些视窗系统,像是 X,有先进的能力比如网络通透性,允许使用者在远端机器上执行图形的应用程式。

  雅典娜工程:

  雅典娜工程是MIT、DEC以及IBM的一个联合工程,历时八年,于1991年6月30日告一段落。该工程意图建立一个计算机环境,容纳多达一万台工作站,以及各种硬件。用户可以访问其中的任何工作站,存取任何文件、程序,但在用户界面以及服务传递上,看起来不会有大的区别。

  这个工程产生了许多现在被广为使用的技术,比如X Window System、Kerberos。雅典娜工程开发的其他技术包括Xaw部件工具箱、Zephyr通知服务、第一个即时通讯服务,以及Hesiod名,还有目录服务。


上一页 1 2 3 下一页

关键词:

评论


相关推荐

技术专区

关闭