LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 745|回复: 0

X Window System(看看或許有用)

[复制链接]
发表于 2005-6-27 23:19:35 | 显示全部楼层 |阅读模式
X Window 即 X Window System , 是一个图形接口系统,也是目前Linux所使用的图形接口.
X Window System 最大的特色即采用了X client /server的架构
而且可以在不同的系统,不同的主机上执行.

X window 商业版本由X Consortium维护.
                免费版本由X Free86来掌管.

它与一般的架构服务器不大一样.

如:提供服务的一方(www server,ftp server or sql server)为Server
    使用的一方为client.而且使用者是在client端操作的,以存取server端资源.

但是
X Window System 中
X server是显示应用程序窗口的一方
X client 是应用程序执行所在的一方

它们是如何沟通与分工的呢?
其X window system 用的client /server模式可分为
X server , X client ,X protocol 等部份

X server :处理输入输出信息
Xclient <---->X server<---->(Monitor\keyboard\mouse)


Xserver包括(硬件无关/有关的程序代码,显示卡/键盘/鼠标的驱动)
      显示卡驱动对于应显示卡的芯片到显示器.
      键盘驱动对应键盘控制芯片
    鼠标驱动程序也是对应了鼠标的控制芯片.

别忘了
X server到 Xclient的信息称为event
主要有键盘输入,鼠标移动点击,窗口状态变化(如位置变化)的信息...

X client 到 X server的信息为request
主要是如窗口上输出的文字或在窗口上显示输出的MM.

备注(X server仅仅只将输入设备的信息不加解释传给负责解释的X client)
简单点就是:我点击鼠标时Xserver只是将我按了那个键用event传给Xclient,
由X client去解释我点击动作的意义)


X server     event
             <-------------->   X client
                 Request

                  event
             <-------------->   X client
                 Request
               ......................


因为Xserver可以接受多个Xclient的request,也就是可以在X window system窗口环境中可以执行多个X client程序,而且它们可以有自己的窗口.

这就说明了我可以一遍写此稿也可以一遍听情歌...哈哈..
由此可见叫X window 为display server也合理吧..
如发现较新的输出输入硬件原来的X server不能支持时,就用新版的X server


X client: 执行大部份的运行功能.
举个例子:邮件收发的程序部份....

如上面我说X client并不接受我们的输入信息..
它会对X server用event 所传收到的运算后如需输出到显示器上就用request传给了X server
X client(
     操作接口逻辑,操作接口的组成部份,转换按键为适合的位字符,剪贴,绘制窗口.
     窗口管理程序接口)
它包含了大部份应用程序的功能 ...再与X server结合.

可以猜测如果我们将远端电脑执行的应用程序显示在本址电脑的显示器上,程序是完全不需
重写及编译X client的应用程序的.



X protocol:X server与X client的沟通管道

X server 与 X server 同一台计算机时:
                 X Protocol
X client <-------------------->X server  电脑A
               电脑内部沟通机制

X server 与 X server 不同一台电脑时:
                   X Protocol
X client <--------------------->X server
              Ethernet或其它网络
A 电脑                        B计算机

这两台电脑不需要有同样的硬件平台以及操作系统,也不限定在任何网络环境上,只要能用X rotocol即可...

X protocol支持了好多协议如(tcp/ip,osi,DEC net等)而在物理层协定也支持了忆太网,X.25,token ring等)

因此可在本地运行X server而在远端执行x client(不要与我们平常的client/server如php这种弄混了)

我们可以用通过我们本地的键盘和老鼠下达操作命令而已,然后由本地的x server将我们操作的信息
传给远端的x client.xclient对使用者的动作及需求运行后将显示的结果再传给本地的x server.最后x server显示到显示器上给我们看...


1.我用键盘对X server下操作命令.
2.X server用event传给我的操作信息给X client.
3.X client 进行程序运算
4.X client利用request传回所要显示的结果
5.X server将结果显示在显示器上


X windows system
优点:
1.整合不同平台,不受所执行的平台限制.
如我可以将MS windows上安装了X server以接受强壮的linux主机的X client所传过来的Request

2.更好的利用网络硬件资源.
因为X server的负荷量不大,因此我们可以将快老傻掉的电脑当成X server显示之用.
因为程序的大部分运算在x client上所在找一台不错的电脑来执行,再也不要欺负linux主机总是说给它一点就够了,哈哈...

当然也可以我一台傻windows电脑上同时在不同的远端电脑上分别执行X client的应用程序,然后
统统全部输出到我的本地电脑上...

3.更好的利用了网络的软件资源.
如果有的软件没有授权或者说我办公用的本机就没有那些linux程序,或许这是一种解决方法...

4.适合教学等特殊工作环境.
如老师要将教学内容直接显示在学生的显示器上.
而学生要将学习成果传回到老师的显示器上:

                  学习结果
X client   -------------------------->X server
X server <-------------------------  X client
                    教学教材
学生电脑                         老师的电脑

能在远端执行X client应该算上是X window system的一个特色吧...

1.带宽
2.远端电脑配置很棒,或本地电脑负担太重了.
3.运算的时间要很多,而输出到显示器上的机率不是很多时,


X window system的网络透明性(network transparency)
(不需要知道应用程序在哪里执行)

说了这么久了..口也干了..
哈哈...


Xmanager到http://www.netsarang.com中可下载试用30的版本.
即windows下的一个x server,当然你们可能找到更好的了..
我试过firefox,至少这样可以让我感觉漂亮的人上网了...哈哈..不用代理的哈哈

不知道这些是否可以让大家把最好的硬件配置给linux呢?哈哈........

晚安,各位...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表