XWindow核心协议.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
X Window核心协议 ? X Window核心协议 前言:X Window核心协议是X Window系统的基础协议,它是一个以位图显示的网络化视窗系统,用来在Unix、类Unix和其他操作系统上建立使用者图形界面。X Window系统基于主从式模型:单一服务器控管硬件的输出入,如屏幕、键盘和鼠标;所有的应用程式都被视作客户端,使用者之间透过服务器来互动。互动部分由X Window核心协议来管理。还有其他与X Window系统有关的协议,有的建立在X Window核心协议之上的,有的是独立的协议。X Window源于1984年的麻省理工学院(目前所发布的X11发表于1987年9月)。设计者鲍伯·斯凯夫勒(BobScheifler)和吉姆·杰提斯(JimGettys)早期对核心协议的原则是建立机制,而不是方针,所以核心协议并未规定客户端之间以及客户端和使用者之间的互动规范。这部分则由其他的独立规格所规范,如ICCCM、freedesktop.org规范,且可由所使用的特定组件工具包自动强制执行。一:概观服务器和客户端之间的通讯,是由通道上的交换封包所完成。由客户端建立连线,且由客户端发送第一个封包。封包中包括将要使用的位元顺序、协议版本方面的资讯,以及客户端期望服务器使用的认证种类。服务器以回传封包来答复,封包中陈述接受或拒绝连线,或要求进一步的验证。如果接受连线,接受封包内会包含客户端接下来和服务器互动所需的资料。客户端和服务器之间的互动范例。建立连线之后,在客户端和服务器的通道上,会有四种交换封包的类型:X Window核心协议客户端和服务器之间的互动范例客户端和服务器之间的互动范例1请求:客户端请求服务器的资讯,或者请求服务器执行一个动作。2回应:服务器回应请求。但并非所有的请求都会产生回应。3事件:服务器传送事件给客户端。如:键盘或鼠标的输入,或移动、调整、显示视窗等。4错误:如果请求无效时,服务器会传送一个错误封包。因为请求是以排队方式处理,所以经由请求所产生的错误封包,并不会立即传送出去。请求和回应封包可以有各种长度,事件和错误封包的长度则固定是32字节。请求封包的编号顺序是以服务器的接收为顺序:来自客户端的第一个请求编号为1、第二个编号为2,依此类推。请求的序列编号中最小的有效16位元,包含在由请求所产生的回应和错误封包之中,如果有的话。它们也包含在事件封包中,以指出服务器正在处理或是刚刚完成的请求序列编号。客户端和服务器之间的互动范例二:视窗在XWindow系统以及各种图形化使用者界面中,视窗即为一个顶层视窗。视窗也用来指视窗内部的视窗,这类视窗是父视窗的子视窗。图形化元件,如按钮、选单、图示等等,都是使用视窗来实现的。视窗可能的放置情形如下图:视窗1是根视窗,与整个屏幕对应;2和3是顶层视窗;4和5是2的子视窗。超出父视窗的部分不会显示出来。客户端可请求建立一个视窗。更严谨的说,客户端可请求建立现存视窗的子视窗。所以客户端所建立的视窗,皆以树状结构组织(阶层结构)。树状结构的根即为根视窗,根视窗是服务器在启动时,所自动建立的特殊视窗。其余视窗都是根视窗的子视窗,顶层视窗就是根视窗下的第一个子视窗。如同所见,根视窗和屏幕同等大小,且在其余视窗的后面(被子视窗遮盖住)。视窗里的内容并非在所有时候都能显示出来。更精确的说,在视窗移动、调整大小、被其他视窗遮盖、部分或整个视窗不可见时,视窗里的内容就有可能会被销毁。更精确的说,如果X服务器无法维护视窗内容的后备存放区(backingstore)时,这些内容就会遗失。客户端可请求为视窗进行维护的后备存放区,但服务器没有义务要这样做。因此,客户端不可假设已得到后备存放区的维护。若视窗有一部分未指出内容时,就会传送一个事件,通知客户端重绘那部分内容。每个视窗都关联一组属性值(Attribute),如视窗的几何性质(大小和位置)、背景图、是否请求了后备存放区等等。协议中还包含用来给客户端检阅和改变视窗属性值的请求。视窗可以是InputOutput(输出入)或InputOnly(仅输入)。前者是显示在屏幕上用于绘图的视窗,而后者并不显示在屏幕上,仅用来接受输入。平常可看到视窗周围的装饰性框架和标题列(可能含有按钮),是由视窗管理器所建立的视窗,而非客户端所建立的。视窗管理器也处理与元件有关的输入,例如当使用者点击并拖曳视窗的边框时,便会调整视窗大小。客户端所建立的视窗,通常可以忽略视窗管理器所带来的变化。还有一个改变必须注意,那就是改变亲属关系的视窗管理器,几乎所有新式的视窗管理器,都会将顶层视窗的亲属关系改变到一个视窗(不是根视窗)里去。从核心协议的角度来看,视窗管理器是一个客户端,与其他的应用程式没有区别。关于视窗的资料,可执行xwininfo程式来取得。加上-tree命令

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档