X Window

 X Window
提起 Linux 上的图形,许多人首先想到的是 X Window。这一系统是目前类 UNIX 系统中处于控制地位的桌面图形系统。无疑,X Window 作为一个图形环境是成功的,它上面运行着包括 CAD建模工具和办公套件在内的大量应用程序。但必须看到的是,由于 X Window 在体系接口上的原因,限制了其对游戏、多媒体的支持能力。用户在 X Window 上运行 VCD 播放器,或者运行一些大型的三维游戏时,经常会发现同样的硬件配置,却不能获得和 Windows 操作系统一样的图形效果?D?D即使使用了加速的 X Server,其效果也不能令人满意。另外,大型的应用程序(比如 Mozilla 浏览器)在 X Window 上运行时的响应能力,也相当不能令人满意。当然,这里有 Linux 内核在进程调度上的问题,也有 X Window 的原因。

X Window 为了满足对游戏、多媒体等应用对图形加速能力的要求,提供了 DGA(直接图形访问)扩展,通过该扩展,应用程序可以在全屏模式下直接访问显示卡的帧缓冲区,并能够提供对某些加速功能的支持。

Tiny-X是XServer在嵌入式系统的小巧实现,它由Xfree86 Core Team 的Keith Packard开发。它的目标是运行于小内存系统环境。典型的运行于X86 CPU 上的Tiny-X Server 尺寸接近(小于)1MB。

 

 

1. X Window System简介

甚麽是X Window System?

X Window System是一套为UNIX或是UNIX like的作业系统提供GUI(Graphical User Interface)图形操作介面的程式,X Window System独具的网路通透性(Network Transparency),使它成为UNIX平台上的工业标准,现在UNIX的工作站或大型主机几乎都执行着X Window System,而且只要根据X标准所发展的应用程式,均可以在不同的环境下执行。

X Window System的发展史

早在1970年代,众家电脑厂商对於更友善的人机界面都还在摸索时候,Xerox(全录)的Palo Alto Research Center开始对图形化使用者界面(GUI),做了一系列的研究,其研究成果对後来的X Window、麦金塔作业系统、甚至Microsoft Windows造成了相当深远的影响。1984年MIT(美国麻省理工学院)与DEC(迪吉多电脑)共同合作在UNIX系统上发展一个分散式的视窗环境,这便是X Window。1986年MIT开始发行X Window之後,X Window很快就成为UNIX系统的标准视窗环境。同时X协会成立,以订定业界标准,并继续发展X Window。另外也有许多厂商根据MIT的原型开发出适合自家UNIX的视窗环境,例如Sun Microsystems和AT&T共同推出的OpenLook,OSF(开放软体基金会)在IBM的主导之下也推出Motif。随着自由软体的盛行,一些爱好者成立了XFree86,XFree86是一个非营利的组织,起初专注在Intel x86相容系统上的仿UNIX环境中开发X Window,但是这套免费、功能完整的X Window很快便侵入了商用UNIX系统之中,并且被移植到许多种不同的硬体平台。

X Window System的别名

X Window System (正式的名称) 
X Window (注意Window没有加”s”) 
 X11 (这是指X Window System的第11版) 
X11R6 (这是指X Window System的第11版的第6释出版) 
X (最简单的称呼,也是X Window System的代表符号) 
2. 基本元素

X Window System本身是一个非常杂的图形化作业环境,我们大致可以将它分成三个部分来讲,分别是X Server、X Client、X Protocol;X Server主要是处理输入输出的讯息,X Client是执行大部份应用程式的运算功能,而X Protocol则是建立X Server和X Client的沟通管道,以下我们详加说明:

(1)、 X Server

X Server主要是处理输入输出的讯息,并且维护相关资源。它接受输入设备(如键盘、滑鼠)的讯息,将这些讯息交给X Client处理,而X Client所传来的讯息,就由X Server负责输出在输出设备(如显示卡、萤幕)上。

X Serve传给X Client的讯息称做:Events(事件)

X Client传给X Serve的讯息称做:Request(要求)

Events(事件)主要包括键盘的输入,滑鼠的位置、移动及按下等动作,而Request(要求)主要是X Client要求X Serve对显示卡及萤幕的输出作调整

(2)、 X Client

X Client主要负责应用程式的运算处理部分,它将X Server所传来的Events作运算处理後,在将结果以Request的方式去要求X Server显示在萤幕上的图形视窗。在X Window System的结构中,X Server和X Client所负责的部分是分开的,所以X Client和硬体是无关的,只和程式运算有关,这样有一个好处,例如更换显示卡时,X Client的部份并不需要从新编写,还有因为X Server和X Client是分开的,所以可以将两者分别安装在不同电脑上,这样我们就可以利用本地端的萤幕、键盘和滑鼠来操作远端的X Client程式

(3)、 X Protocol

X Protocol(X通讯协定)主要就是负责建立X Server和X Client的沟通管道,就如同在人类社会中需要共通的语言来互相沟通和传达讯息一样。

(4)、 X Library、 X Toolkit和Widget

X Client主要就是应用程式,而开发程式大多都会提供所谓的函式库,以方便开发人员开发,在X则有提供X Library(X Lib),X Library主要提供X Protocol的存取能力,由於X Server只是跟据X Client所给的Request(要求)去显示画面,所以所有的使用者界面都交由X Client负责,这就等於是每写一支应用程式就得再开发一个界面,所以有X Toolkit和Widget的产生,让开发者可以由Toolkit和Widget取用按钮、轴或是整体视窗结构,这样让开发者更易於开发各种程式。

3. 基本运作原理

我们上面提过了X的主要基本元素,也知道X Window System主要分成X Server、X Client、X Protocol,而X Server和X Client主要透过X Protocol来沟通协调,下图我们将这些元素的关画出,让大家更了解彼此的关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值