linux与window图形界面的区别
也许大家都已经很习惯了windows的图形的操作方式。无论使用哪一种远程方式(QQ 远程,远程连接,teamviewer),windows同时只能由一个用户打开一个桌面系统。
比如远程连接登录时,主机CRT只能关闭并锁屏。
比如在使用QQ远程时,远程和本地都可以移动鼠标。两者都可以看到对方的操作与反映。
如果大家带着这样的想法来看linux,就不正确了。
linux可以支持多个用户同时打开多个桌面。一个用户同时打开多个桌面。这和SSH一样一样。
举个例子A
大家在使用用户XX进入了linux的桌面系统以后,在shell 下su 到其它用户,再在shell下再启动一个图形软件(如gedit),不会被打开,并有提示: No protocol specified。(这个提示熟悉吧)
这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令 xhost +
还有一个vnc远程的例子 (直接上图吧)
上图是redhat用户使用vnc远程登录主机,两个桌面可以分别进行操作。
两者的环境变量里有一个DISPLAY,分别是:5.0 和:6.0.
linux的图形界面
linux的图形模式的结构图
Xserver 与它的客户端之间使用Unix或是tcp远程连接进行信息。
1.1.桌面程序
桌面环境有多种,常用gnome,kde,unity等等,他们提供一系列的组件与程序,共同完成桌面服务。每一种桌面环境的风格不同,操作方式不同,提供的功能也不相同。
不过对于xserver来话,桌面程序(gdm,gnome-session)与gedit或是用户自己写的dialog程序没有不同。因为每一图形程序都需要与xserver进行通信,xserver才能告诉这种图形程序鼠标等事件,图形程序再做相应用的动作。
不过对于图形(如gedit)来说,它对桌面环境还有一些依赖的。在字符模式下,是打不开gedit的。字符模式下图形模式是有本质区别,那就是字符模式上的显示,不需要Xserver。
在字符形式下启动图形模式则可以使用startx,当然提示是已经安装了相关组件。
1.2.图形程序不依赖特定桌面服务
上图在使用vnc远程连接时,把默认启动的程序从gnome-session,改成了twm。twm也是个桌面程序的客户端,通过它一样可以打开gedit,gedit只有外部窗体有变化,内部显示则gedit程序来决定。
gnome-session-save --kill 此命令用于注销本显示器。