1).在B上启动一个X Server程序
2).在A上设定适当的DISPLAY变量,例如:export DISPLAY=B:0.0
3).在A上启动gimp
PS:
1).如果无法使用A的物理控制台的话,例如A、B的物理距离很遥远,可以使用 telnet、ssh等方法远程登录A来执行第2、3两步,没有任何区别。
2).注意,因为gimp是在B上显示的,或者说它使用的是B上的X Server,所以A上完 全不需要运行着一个X Server,甚至根本不安装也没有任何关系。
3).注意,并没有要求B一定使用Linux或者UNIX操作系统,只要在他上面运行一个X Server即可。Linux下使用的X Server一般为XFree86,是一个免费的开源X Server。微软的windows下也有可用的X Server,例如X-Win32,Hummingbird Exceed等,但它们多为商业软件。
你可能注意到了一个问题,按照前面所述,似乎可以把一个X图形程序显示到网络 中任何一个X Server上,这样必将造成混乱。所以,X Window系统提供了权限控制 命令xhost,可以控制哪些机器能使用我这个X Server。xhost的使用很简单,如果允许主机foo使用我这个X Server,可以使用"xhost +foo";如果不允许主机foo使用我这个X Server,可以使用"xhost -foo";如果允许任何主机使用我这个X Server,简单的"xhost +"即可;反之,"xhost -"将禁止任何主机使用我这个X Server。更进一步的使用可以参考xhost(1)。
4.vnc(Virtual Network Computing)。VNC也是C/S架构的东东,但是有一个比较特殊的地方值得注意,如果你在会话A中打开一个vnc server,那么vnc client连接上来后也会使用会话A,换句话说,vnc不会开启新的会话。这样导致的最直接后 果是,如果你是在一个X会话中开启的vnc server,那么你会发现,你在本机上的 动作(例如移动鼠标、新开窗口等等)会如实的反映到vnc client那里,而同样 的,如果在vnc client中移动鼠标,你会发现本机屏幕上的鼠标也会相应的移动。
linux下的vnc server程序叫做vncserver,client程序叫做vncviewer。首先启动 server:
[leona@Ash]$ vncserver
You will require a password to access your desktops.
Password:
Verify:
New 'Ash:1 (leona)' desktop is Ash:1
Creating default startup script /home/leona/.vnc/xstartup
Starting applications specified in /home/leona/.vnc/xstartup
Log file is /home/leona/.vnc/Ash:2.log
vncserver会告诉你一个标志符,也就是
New 'Ash:1 (leona)' desktop is Ash:1
这一行中的"Ash:1","Ash"是运行vncserver的主机的主机名,换成相应的ip地址也没有问题;"1"可以认为是启动的 vncserver的序号(实际上是X Window的 displaynumber)(可以同时启动多个vncserver)。如果是第一次启动 vncserver,他会要求你设置一个口令,vnc client在连接这个server时必须提供这个口令。这个口令在将来可以使用vncpasswd命令来修改。server成功启动后就可以使用vnc client来连接了。连接时必须提供目标server的标志符,也就是前面 所说的"Ash:1":










