csatblogspotdotcom

Saturday, December 13, 2008

Xvnc:X和vnc的结合

vnc原本只有vnc服务器端vncserver和vnc客户端vncclient以及二者之间的通信协议,服务器把framebuffer中的一帧矩形图像压缩后传给客户端(可通过ssh对其加密,有的商业vnc软件也加入了加密的插件),客户端收到并处理后在显示器上显示出来。
但是后来的vnc又发展了一步:将vncserver和Xserver绑定。

顺便说说X。X包括服务器端和客户端。X服务器端连接显示器和键盘鼠标,在用户这一边;客户端不一定在本地,每个应用程序包括网络应用程序在内都可以是一个客户端。输入输出设备,包括鼠标键盘显示器都与X server交互,而X server则和X client交互。

现在通常所说的vncserver估计就是Xvnc,是把一个vncserver和一个Xserver绑定在一起的产物。X客户端的各个应用程序和Xvnc连着,而Xvnc和vnc client连着,这里的Xvnc既充当了X server的角色,又承担着vncserver的角色。

平时碰到的vnc,有的是包括本地用户和远程用户在内的多个用户同时控制一个桌面,好比Windows里的远程桌面,而有的是每个远程用户都有自己独立的桌面,例如开启的vncserver服务。我个人认为前者应属于真正意义上的vnc,只是简单的把一个桌面的图像发送给多个远程的vnc client,而vnc client又把远程的输入传送到本地的vncserver;后者则属于Xvnc,每个vncserver都对应着一个X server,用“ps -e|grep X”查看进程信息,就可以看到有Xvnc进程存在。Xvnc的好处是对多用户操作系统来说,一台机器可以运行多个桌面,每个用户可以有自己的一个或多个桌面,用户之间互不影响;而传统vnc也有其有点:只有一个X,消耗资源少,而且多个用户可以协同操作(当然Xvnc也可以,例如vncserver,但有的好像又不行,例如商业软件RealVNC)。

Labels: ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home