注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

My Unix World

不要迷恋Unix,Unix只是计算世界很小的一部分!

 
 
 

日志

 
 

X体系  

2009-02-02 18:00:18|  分类: graphics-x-servi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
声明:只是个人笔记,由于对计算机史不甚了了,文中必然存在疏漏和错误,本人不对文章的正确性负责,请有批判地阅读。如果有朋友帮忙指出其中的疏漏和错误,小弟不胜感激。至于版权倒谈不上,谁想转谁就转好了,倒贴一句感谢!

X-Window相对于字符终端而言,至少包括两项革命性的技术变革:GUI和Window技术,这构成了X Server的核心,并决定了X Protocol和整个X Window的基本形态。


随着计算机的发展,人们需要显示一些图像图形,而不仅仅是字符,于是历史进入GUI时代。GUI与字符终端的不同,其关键思路是将字符或图像到像素点阵的转化功能从人机交互的硬件中剥离,而交由专门的逻辑功能组建实现。这些逻辑功能组件可以是硬件也可以是软件。其实这个重构过程可以用Unix中著名的一句话形容:Do one thing and do it well。在字符终端时代,字符终端需要同时做这两件事:首先把字符转化为点阵,然后将这些点阵显示出来。Unix哲学和软件设计的模块化理念适用于计算机系统,而不仅仅是软件,事实上,软件与硬件没有本质的区别,它们的本质都是逻辑组合。

图像生成部件与图像显示硬件需要有交互,这需要定义一种最合理的方案,这就是像素点阵。图像生成部件生成可以直接输出的像素点阵,而显示部件只需要将这些像素等效转化一下,转化成人类可以直观觉察的方式就行,图像显示硬件可以是像素打印机(如激光打印机),也可以图像显示器(如光栅显示器),因为它们有相同的本质。

生成像素点阵的重任由图像生成部件完成。它接受绘图指令或用绘图指令描述的文档,以及字符编码,输出可以直接显示的像素点阵。X Server就是这么一个部件。

由此衍生了另一个需求,用户希望精确定位到每一个像素,起码是大体位置,这需要一种外设在像素点阵中精确定位某个位置,但定位的同时,也要同步地展示目前已经定位到的位置,于是光标诞生。光标与像素点阵共同开启了一个GUI时代。至于鼠标,其价值在于方便地控制光标,这就是鼠标存在的意义,也是鼠标的全部意义。

在GUI方式下的人机交互,人其实是与像素点阵代表的有意义的字符或图形进行交互,中间的显示部件,只是一个透明的翻译。

这就是GUI的全部。

但人们总有新的需求,尤其是当操作系统支持多进程之后,用户启动几个需要使用GUI的进程,就有难度了,于是Window机制被提了出来。Window是一个糟糕的名词,它很容易形成误导,相反,Canvas这个名词更恰当一些,它更接近这种事物的本质。Window也不是全新的机制,在文本终端中,曾经就出现过,如Emacs、Vi等,都存在把控制台窗口分割为几个子窗口,以作不同的用途之用,这是Window的原型,但在这些程序中的窗口分割,并没有从根本上思考如果设计Window体系。当GUI系统设计时,Window成了必须进行合理规划的基础机制。

Window是什么?
不论是字符终端或者GUI终端,在Window技术之前,一般只有一帧界面,整个显示界面是一个整体,只能用来表达一个进程的信息,代表一个进程。整个窗口为这一帧界面所独享。而Window则可以把界面分割成几部分,各个部分相互独立,互不影响 。用个时髦的词就是虚拟化,Window其实是虚拟化了终端显示界面。这与进程代表一台虚拟的计算机完全类似。Window绝不是我们看到的带有标题栏、有最大化最小化关闭按钮的那个东西,那是它无数特例中最常见的一个例子,而且还是包装后最外层的形象。就像进程的本质代表了一台虚拟的完整的计算机逻辑,Window的本质代表了一个虚拟的完整的像素点阵空间。Windows也是树状结构,有父子关系。

为了对这么多的Window进行管理,于是窗口管理器出现。窗口管理器基本等同于进程管理器。但是Window的根本管理还是在X Server中实现的,就像进程管理其实是在内核中实现的一样。而WM只是一个前端窗口管理终端,仅此而已。

事实上,X-Window相对于字符终端而言,至少包括两项革命性的技术变革:GUI和Window技术,这构成了X Server的核心,并决定了X Protocol和整个X Window的基本形态。它们其实是两种技术,但在我们的习惯中,统统用GUI囊括了所有图形用户交互相关的技术。作为传统,这没什么不可以,但是在我们剖析X-Window的时候,需要把两者的不同指出来。
  评论这张
 
阅读(244)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017