当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]X-Window系统介绍

一.X-Window系统简介

  X-Window(也常称为X11或X)系统是一种以位图方式显示的软件视窗系统,最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X Window系统通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X Window系统为基础建构成的。

  二.X-Window的发展历史

  知晓过去才能明白现在,预见将来,我们需要清楚的了解X-Window的发展历史,尽管这有些曲折。

  1、 前身:

  事实上,早在X出现前已有几个位图式的软件显示系统已经存在,例如帕洛阿尔托研究中心(施乐公司)提出的Alto(1973年)和Star(1981年)、苹果计算机提出的Lisa(1983年)和麦金塔(1984年)、在UNIX世界也有雅典娜工程(1982年)和Rob Pike的Blit终端机(1984年)。

  1983年之前称为W-Window系统的窗口系统是X的真正前身(在拉丁字母里面 X 直接接在 W 后面)。W-Window系统运行于系统V之上,W使用一个支持终端机和图形窗口的网络协议,而服务器维护显示的列表。

  2、 起源:

  X-Window于1984年在麻省理工学院(MIT)电脑科学研究室开始开发的,当时Bob Scheifler正在发展分散式系统(distributed system),同一时间DEC公司的 Jim Gettys 正在麻省理工学院Athena计划的一部分。两个计划都需要一个相同的东西——一套UNIX机器上运行优良的视窗系统。因此合作关系开始展开,他们从斯坦福(Stanford)大学得到了一套叫做W的实验性视窗系统。因为是根据W视窗系统的基础开始发展的,当发展到了足以和原先系统有明显区别时,他们把这个新系统叫做X。

  3、版本发展历史

  

 [!--empirenews.page--]

  

 

  (注:X11协议设计由Scheifler领导,并在nascent Internet的开放邮件列表上广泛讨论。于是X成为最早的较大规模的开源软件项目之一)

  4、 对X-Window的管理历史

  1)MIT X协会与X协会公司

  1987年,随着X11取得明显成功,MIT希望免除X的管理责任。但是1987年6月与9个厂商举行会晤,这些厂商表示他们相信为了避免 X 由于商业因素而分裂,需要中立方的参与。1988年1月,X协会(X Consortium)做为非营利厂商团体而成立,由Scheifler担任主管,而Keith Packard担任高级开发人员,确保 X 能持续以中立超然的立场提供商业与学术教育所需的开发。1993年,X协会公司(X Consortium, Inc.;非营利性质的公司)做为MIT X协会的接继者而成立

  2)开放团体

  1997年中,X Consortium将X的管理交给开放团体(The Open Group),而它是1996年由开源软件基金会(Open Software Foundation;OSF)和X/Open合并成立的厂商团体。

  3)X.Org

  1999年5月开放团体组建了X.Org。X.Org指导了X11R6.5.1之前的版本发布。在此期间X的开发死气沉沉。2003年,随着Linux的流行X被大量安装。但是X.Org几乎无声无息,活跃的开发由XFree86承担。

  4)XFree86

  在19*至1990年期间,托马斯?罗尔把X11R4分类器上提供的X服务器程序的源代码下载到运行速度仅为33MHz的386PC 上,成功运行了被他称为是X38611.1的X服务器。这就是XFree86的雏形。

  1992年后多数技术创新都发生在XFree86项目中。1999年,由于众多对于XFree86在Linux上应用有兴趣的硬件厂商的推动,并也已经成为最普及的X版本,XFree86成为X.Org的荣誉成员(不付费)。

  但是自2003年开始,XFree86内部却发生了争论。它被认为太教堂式了,如同它的开发模式;开发者不能通过CVS做提交,而厂商被迫维护大量补丁。2003年3月,自从最初的MIT X Consortium结束之后就参加XFree86的Keith Packard由于被认为态度不良而被驱逐

  X.Org和XFree86开始讨论能够有助于X开发的重组Jim Gettys早在2000年就热心于开放的开发模式。Gettys、Packard和其他几个人开始讨论有效管理X和开放式开发的细节。

  最终就像是X11R*许可证争议的回响,XFree86于2004年2月在更加严格许可证下发布了4.4 。许多依赖X的项目认为该许可证无法接受,特别是它和GNU General Public License不兼容。这引起一场论战,许多人认为到了该对XFree86分叉(fork)的时候了,许多Linux发行版,包括Fedora、Gentoo都纷纷在最新的版本中使用X.Org基金会的发布代替XFree86。

  5)X.Org基金会

  2004年年初X.Org基金会成立。这意味着 X 在管理上的根本转变。1988年以来 X 的管理者(包括过去的X.Org)都是厂商组织,而基金会由软件开发者领导,采用依靠外部参与的集市模式的社区开发。其成员身份对个人开放,法人成员则成为赞助者。X.Org还开始同freedesktop.org密切合作[!--empirenews.page--]三.X的设计原则

 

  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名,还有目录服务。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭