简体版  |  繁体版   推荐信息:
商用系统

unix桌面的背后:理解Xwindow工作原理

出处:ddivp 作者: 2005-07-22 09:17 评论
字体大小: | |
Xwindow 是非常巧妙的设计,很多时候它在概念上比其它窗口系统先进,以至于经过很多年它仍然是工作站上的工业标准。

  很多人在用 Xwindow,但是他们是在用一些包装掩盖下的 Xwindow,那些包装有些很不稳定,占用大量资源,以至于有人说 Xwindow 是垃圾。其实 Xwindow 是一个非常出色的图形系统,你应该抱怨的是那些不稳定的包装,而不是 Xwindow 本身。

  Xwindow 是非常巧妙的设计,很多时候它在概念上比其它窗口系统先进,以至于经过很多年它仍然是工作站上的工业标准。许多其它窗口系统的概念都是从 Xwindow 学来的。

  Xwindow 可以说的东西太多了。下面只分辨一些容易混淆的概念,提出一些正确使用它的建议。

  分辨 X server 和 X client

  这是我被别人问了好多次的问题,我实在不想再对人说一遍了,所以写在这里偷个懒,嘿嘿。

  很多熟悉 Internet 原理的人首次遇到 Xwindow 的这两个概念都会搞错。如果他从一台 Windows 机器上使用 Exceed 通过 XDMCP 登录到一台 Sun 服务器,他就说 Exceed 是客户端(client),而 Sun 机器是服务器(server)。这就完全搞错了。

  理解了 Xwindow 的工作原理,这个区别就会很明显。X server 不是指你登录的那台机器,而是指一个程序,它负责在某台机器上接受客户的要求,在屏幕上显示客户请求的图形,并且把消息(键盘鼠标,窗口消息)通知客户程序。

  比如上面例子里的 Exceed 就是一个 X server,它负责控制那台 Windows 机器上的显示(display),Sun 机器上的程序,xterm, xxgdb, dtwm(CDE的窗口管理器),……是客户程序。它们通常会使用 TCP 6000 号端口连接 Windows 机器,而Windows机器的 6000 号端口是由 Exceed bind 和 listen 的,怎么样,我们的 Internet 专家,Exceed 看起来是一个 server 吧

  比如,当你通过 telnet 启动 Sun 机器上的 xterm,就会在 Exceed 的屏幕上显示一个窗口。实际发生的事情是: xterm 请求连接 Windows 机器的 6000 号端口,与Exceed 跟 Exceed 连接,然后xterm请求得到资源,然后 xterm 请求在屏幕上显示一个窗口。

  你在 xterm 的窗口里按下"A"键时,Exceed 会把这个事件通知 xterm 进程,然后 xterm 会发送数据报,请求 Exceed, “请在坐标(100,30)处显示一个字母A,然后在后面显示一个矩形作为光标。”,这样你的 xterm 窗口里就会多显示一个字母。

  这下你理解了吗?不?那还是自己多用用,体会体会吧。

共4页。 1 2 3 4 :
    共4页。 1 2 3 4 :
    相关文章
  • 本文关键字:
  • 服务器技术(4)
  • Xwindow(3)
  • unix(6)
  • 频道最新更新
    奥运嘉年华
    点击排行
    推荐专题
    更多
    论坛热贴
    更多
    博客精选
    更多
    视频推荐
    更多
      TMG

      Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络

      渝ICP证B2-20030003号 商务联系、网站内容、合作建议:010-82657868

      版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i

      经营性网站备案信息 网警备案 中国网站排名