跳至主要内容

关于X服务器的C/S模型的一点理解

一般,在C/S模型中,客户端是发送命令和请求服务器处理,服务器响应这些请求并给客户访问服务器的权限。X的C/S模型看上去有些让人混淆。X服务器被动地显示客户机要求的显示任务(图形和窗口),X服务器永远也不会自发决定去移动一个窗口或是触发一个按钮,它的工作只是管理显示并将鼠标和键盘的输入传给客户端。客户端的程序处于控制之中,且是资源的实际消耗者。客户端请求使用被X服务器控制的窗口和图形。键盘和鼠标也属于X服务器,服务器不会将这些事件传递给客户端,除非客户端专门请求这些事件,即请求将这些事件流作为一种资料。客户端应用程序处理进来的事件并请求X服务器据此改变显示内容。
但是上述描述与Win32下编程模型是很相似的,可以作以下类比:X中的客户对应Win32下的进程,X中的服务器对应Win32下的GDI库。X服务器(GDI)不负责移动窗口等任务实际是将这些消息传给客户(进程),由客户(进程)中的消息响应代码来调用(向GDI发送命令)显示相关的操作。窗口和图形当然是由X服务器管理的(GDI),键盘和鼠标也属于X服务器(这里有些差异,Win32下好像是属于user32或是kernel32库的),服务器不会将事件传递给客户端(类似于Win32系统中默认处理函数),除非客户端专门请求这些事件(进程实现了相应消息的处理代码)。
X Window系统的一个最强有力的特征是其通过网络透明地运行应用程序的能力。服务器在自己这边管理这些资源,使客户端能轻易地生成一个远方图形环境。这应该是X系统与GDI系统的显著不同之处。还没见过GDI接受远程进程的显示操作的。

评论

此博客中的热门博文

反转剧

这两天明显感到天气转冷,呱呱的家里也已经下起了大雪,南京则是阴冷潮湿,让人没有了出行的欲望。没想到躲在被子里看反转剧也成了度过寒冬的一剂良药。在PPLive越来越让人失望的时候,PPStream横空出世,虽然广告仍是少不了的主题,但从视频质量和播放连续性上来说都超过PPLive,实为居家必备之良品(由此可见,新事物一定会战胜旧事物......)。韩国的反转剧最近似乎比较流行,称之为反转剧就在于其结果总是让人出乎意料,不合常理,其间又不乏各种搞怪搞笑的镜头,各种当红帅哥美女也一定让DDMM们爱不释手,20~30分钟一集的剧情一改韩剧拖沓的风貌,想看就看,容易切入。 反转剧,今天你看了吗?

低谷

近段时间,小猪的身体不好,连续好几个周末游走于各个医院,两人的心情也坏到了极点。现在的小猪已俨然成为一个药罐子,不再提当年之勇。这个周末又发起烧来,像一滩烂泥似地躺在床上,真是祸不单行。 而我呢,由于前任离职的缘故,现在出奇地忙,每天就像打仗似地,压得人喘不过气来,工作与家庭,真有些夹缝中求生存的感觉,两头都要兼顾,我想这一次我们是真的走到一个低谷了吧。 希望这一切都会过去,一切都能圆满地解决。

Black Hawk Down

ONLY THE DEAD HAVE SEEN THE END OF WAR. PLATO 黑鹰坠落,拍了有好几年了,虽然根据这个事件改编的游戏很早就玩过,电影今天还是第一次看。 电影无疑是血腥的,战争无疑是残酷的。 一开始指挥官就低估了战局,民兵数量如此之多,对比悬殊,再加上作战基本上是巷战,让人防不胜防,空中掩护无法有效地展开。在车队前往坠机地点时,那情景就和游戏里一样,“it's a dead trap”,建筑物窗口,顶层,满是民兵,装甲车炮手目标太明显,如果不是民兵的射击准确度太低,恐怕早就被全部打死了。似乎美国片总是在宣扬一种精神:不能落下一人,在这样的战况下还做出这样的决定,我不清楚这种精神是骨子里的,还是政治上的,然而牺牲的总是战士,有太多不属于我们的战争。 有几个地方印象比较深刻: 最先被RPG炸死的装甲车炮手,下半身已经炸没了,死前的话还是希望告诉女儿他很好,我想对于士兵,要么家是一个太遥远的概念,要么就是最痛心的牵挂了。 在车队通过四处伏击的巷道时,第一辆车正面被RPG击中,驾驶员的眼晴已经瞎了,然而还是要咬着牙踏油门,不能停,在那样的情况下,如果第一辆车停下,整个车队都将被覆灭。 第二架被击落的黑鹰驾驶员Durant被俘后,与Aidid的人有这样的对话: What do you want with me? You have taken hostages. We have you. My government will never negotiate for me. Then perhaps you and I can negotiate, huh? Soldier to soldier. I'm not in charge. Course not. You have the power to kill, but not negotiate. In Somalia, killing is negotiation. Do you really think if you get General Aidid...we will simply put down our weapons...and a...