免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1012 | 回复: 0
打印 上一主题 下一主题

x server intro [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-25 12:17 |只看该作者 |倒序浏览

            x-window的客户-服务器架构详解
            作者:杨硕,
华清远见嵌入式学院
讲师。
            一.X-Window简介
            
    X-
Window(也常称为X11或X)系统是一种以位图方式显示的软件视窗系统,最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及
OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X
Window系统通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能
支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X Window系统为基础建构成的。
            
    X
只是工具包及架构规范(协议),本身并无实际参与运作的实体,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的实体,始可称为实现体。目
前依据X的规范架构所开发撰写成的实现体中,以X.Org最为普遍且最受欢迎。X.Org所用的协议版本是X11,是在1987年9月所发布。而今最新的
参考实现(参考性、示范性的实现体)版本则是X11 Release
7.4(简称:X11R7.4)。在它的基础上开发出了诸如Gnome和KDE等桌面环境。
            
    X-Window在Linux系统中的位置可以用下图表示:
          
                    

                  
            下面让我们看一下X系统的组成以及它的基本架构:C/S架构。
            二.X-Window系统的组成
                   1、X-Server:
                   运行在有显示设备的主机上,是服务器端。
     X-Server 主要在处理来自 X-Client applications 的 请求,在屏幕上绘制图形 (所以又称为
Display Server);并且负责管理可用的字形与屏幕可用的颜色等系统资源,读取使用者的输入
(来自键盘或鼠标),传送键盘、鼠标事件与窗口状态信息给 X-Client (也就是应用程序)。
                   2、X-Client:
                   客户端可以运行在本地机器,也可以运行在网络上的不同主机。
                   其实就是各式各样的应用程序(文字处理、数据库应用、网络软件等)
                   客户端以请求的方式让服务器管理图形化界面。
                   3、X-Protocol:
                   客户端与服务器通信的协议
    在接触更多 X Programming 的信息后,会慢慢体会到它的存在;目前不妨暂时将 X Protocol 在 X-Window
System 中所扮演的角色,想象为 HTTP 协议在 Web Server 与 Web Client (Browser)
间所扮演的沟通角色一样。
        在 X-Window System 中比较特殊的一点,就是 X-Protocol 允许 X-Server 与 X-Client
能跨网络来交换讯息,这意味着 X-Server 与 X-Client 不限制都得在同一台机器上执行,可在不同的计算机上同时执行(网络透明性)。
                   4、X-Lib:
                   客户端的C语言接口库,它封装了X协议,并对应用程序提供方便使用的API。使用X-Lib,应用程序不用直接向服务器发送请求与处理回复。
                 X-Lib = C Language X Interface
            三.X-Window的C/S架构:
    不知道大家有没有注意到一个很有意思的现象:X-Window的C/S架构和我们平常看到的很多C/S架构正好相反,对于大多数的C/S架
构,Server一般都是在网络上提供某种服务的程序,如FTP,HTTP,BBS,Email等服务,而Client则是向这些Server要求服务的
程序,比如Browser,Email-Client等。而在 X-Window System 中,X-Client
指的则是可在网络上任何计算机上执行的各种应用程序,它们的执行结果必须传到某个屏幕显示器上,而负责将执行结果显示到屏幕上与管理各种系统资源的程序,
便是 X-Server(一定是运行在使用者自己的计算机上)。
       如下图所示:
     我们可以在自己的计算机上激活 X-Server后,再 Telnet 联机至其它计算机,将其它计算机上
X-Client的执行结果传回到自己的屏幕上。当然 X-Server 一定得在使用者自己的计算机上执行,这样我们才能看到应用程序
(X-Clients) 的执行结果为何。
                    

            
下图是X-Window系统的C/S架构视图,有助于我们从宏观上了解X系统的结构:
            
                                  

            当用户点击鼠标或者按下键盘的时候这些动作会传递给X-Server,X-Server把这些动作以事件的形式传递给X-Client,X-Client根据具体的事件执行相应的程序,再将所要显示的结果传给X-Server,X-Server将结果显示在屏幕上
                      相信到此为止,我们可以对X-Window系统总体上有了一个比较清晰的认识了。        
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/92965/showart_2159722.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP