关于X-Server

关于X-Server

远程桌面或RealVNC连接服务器传过来的是图像数据,而通过X-Server方式传递的是显示指令(XDMCP协议),本地的X-Server通过这些指令把远程机器上运行的程序界面画出来,远程服务器上运行的程序是本地X的Client,这是这两种方式的根本区别。

X是Linux下GUI的基础,王垠的这篇 “ 理解 Xwindow “ 对理解X很有帮助。

Linux下的桌面显示是按照X->gdm->Gnome这样的层次,无论是远程的Client还是本机上运行的程序,X都用一视同仁的方式显示,灵活性是显而易见的,但也会带来性能上的成本,对于开机必然使用图形界面的大部分Ubuntu用户,这种tradeoff显然是不值得的,对于这些用户Windows在内核级别支持图形界面以获取更高性能的方式更适合,这也是我不看好Ubuntu的一个原因。

远程使用X的方法很简单,不得不赞一下设计者。以下过程我用的是Windows上的Cygwin X连接虚拟机上的Debian系统。

本地的X Server运行

xhost + 172.21.15.145 //允许172.21.15.145 使用X Server。

在172.21.15.145的Term下运行

export DISPLAY=172.21.15.150 :0.0// 指明使用的X-Server为172.21.15.150 :0.0 。

然后运行一个GUI程序,如geidt&。

然后在本地桌面会出现一个gedit程序的界面,即使本地没有安装这个程序。
  受教了