X Window,即X Windows图形用户接口,它并不是一个软件,而是一个协议(protocal),这个协议定义一个系统成品所必需具备的功能(就如同 TCP/IP, DECnet 或IBM的 SNA,这些也都是协议,定义软件所应具备的功能)。任何系统能满足此协议及符合X协会其他的规范,便可称为X。
Linux 是内核,shell 是用户和内核之间的接口,xwindows 是图形接口,是linux的图形工作界面。
使用xwindows系统,简单讲就是在linux上使用GNOME或者KDE。
首先明确一下概念x server和一般的server的概念不太一样,通常位置是相反的,比如所有的类似x-win32, extra!x, kea!x, xmanager, exceed等等的都是x server,不过不是运行在Linux上的x server,而是运行在windows上的x server,这样连接到远程的linux上之后,实际上那台linux是x client,而x-win32才是x server。等于是用server去连接client,呵呵。x server提供所有的绘图的操作,这样当client,也就是被连接的Linux需要显示任何的程序的时候就可以利用x-win32提供的绘图功能,把linux的GUI显示在windows的桌面上了。就像telnet之所以可以显示linux上的命令的输出,是因为telnet 的工具可以显示字符,这个功能太普通了,所
以大家都忽略了。图形也是一样,是因为windows上x server(x-wind32,extra!x或是类斯的)可以显示图形,所以才能显示linux的桌面,x server和x client之间传送的是createwindow, drawline,invalidate这样的消息,而不是一张一张的桌面图片,否则的话网络负荷太大,即使是局域网,也受不了。
回到楼主的问题,telnet是不能显示图形的,所以如果试图“连接到x server”,概念上就是错误的,因为x server需要和telnet在同一机器上,你才能看到所有的GUI程序。
至于闲云提到的从其他的机器连到x server上,一般的windows上的x server都有passive模式,就是启动x server之后,不起动任何session.然后可以telnet到linux上(假设extra!x的ip是10.1.1.1)
linux# export DISPLAY=10.1.1.1:0
linux# xterm
就会看到一个xterm出现在extra!x所在的机器上。
其实linux的gnome拉,fvwm拉,AIX的CDE什么的,都是在x server启动了之后,用网络
回到楼主的问题,telnet是不能显示图形的,所以如果试图“连接到x server”,概念上就是错误的,因为x server需要和telnet在同一机器上,你才能看到所有的GUI程序。
至于闲云提到的从其他的机器连到x server上,一般的windows上的x server都有passive模式,就是启动x server之后,不起动任何session.然后可以telnet到linux上(假设extra!x的ip是10.1.1.1)
linux# export DISPLAY=10.1.1.1:0
linux# xterm
就会看到一个xterm出现在extra!x所在的机器上。
其实linux的gnome拉,fvwm拉,AIX的CDE什么的,都是在x server启动了之后,用网络
连接到x server上。即使是本本机,也是依赖于网络的,这就是为什么有些时候lo0这个虚拟网卡没有配好,GUI就启动不了的原因
基本部件:
X系统不像早期的视窗系统是把一堆同类软件集中在一起,而是由3个相关的部分组合起来的。
Server(服务端)
Server是控制显示器和输入设备(键盘和鼠标)的软件。Server可以创建视窗,在视窗中绘图和文字,回应Client程序的“需求”(requests),但它不会自己完成,只有在Client程序提出需求后才完成动作。
每一套显示设备只对应惟一的Server,而Server一般由系统供应商提供,通常无法被用户修改。对操作系统而言,Server只是一个普通的用户程序而已,因此很容易更换新版本,甚至更换成第三方提供的原始程序。
Client(客户端)
Client是使用系统视窗功能的一些应用程序。在X下的应用程序称做Client,原因是它是Server的客户,要求Server回应它的请求完成特定动作。
Client无法直接影响视窗行为或显示效果,它们只能送一个请求(request)给Server,由Server来完成这些的请求。典型的请求通常是“在某个视窗中写‘Hello World’的字符串”,或者从A到B划一条直线。
Client的功能大致可分为两部分:向Server发出“需求”只是它的一部分功能,其他的功能是为用户执行程序而准备的。例如输入文字信息、作图、计算等等。通常,Client程序的这一部分是和X独立的,它对于X几乎不需要知道什么。通常,应用程序(特别是只大型的标准绘图软件、统计软件等)对许多输出设备具有输出的能力,而在X视窗中的显示只是Client程序许多输出中的一种,所以,Client程序中和X相关的部分只占整个程序中很小的一部分。
用户可以通过不同的途径使用Client程序:通过系统提供的程序使用;通过第三方的软件使用;或者用户为了某种特殊应用而自己编写的Client程序来使用。
C/S(客户端/服务端)的概念
第一次接触X Window系统的用户很容易混淆X Window系统中的C/S的概念,他们会认为X Window下的C/Swindows开发平台的概念与一般网络中的C/S的概念不完全相同。通常的解释中,用户利用客户端,使用远程服务端提供的文件或显示服务,而在X Window下,用户使用X服务端进行操作,而客户端可以运行在本地或者远程电脑上。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论