linux与window图形界面的区别

也许大家都已经很习惯了windows的图形的操作方式。无论使用哪一种远程方式(QQ 远程,远程连接,teamviewer),windows同时只能由一个用户打开一个桌面系统。

比如远程连接登录时,主机CRT只能关闭并锁屏。
比如在使用QQ远程时,远程和本地都可以移动鼠标。两者都可以看到对方的操作与反映。

如果大家带着这样的想法来看linux,就不正确了。

linux可以支持多个用户同时打开多个桌面。一个用户同时打开多个桌面。这和SSH一样一样。

举个例子A
大家在使用用户XX进入了linux的桌面系统以后,在shell 下su 到其它用户,再在shell下再启动一个图形软件(如gedit),不会被打开,并有提示: No protocol specified。(这个提示熟悉吧)
这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令 xhost +

还有一个vnc远程的例子 (直接上图吧)

linux的图形模式框架_第1张图片
上图是redhat用户使用vnc远程登录主机,两个桌面可以分别进行操作。
两者的环境变量里有一个DISPLAY,分别是:5.0 和:6.0.

linux的图形界面

linux的图形模式框架_第2张图片
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程序来决定。

linux的图形模式框架_第3张图片

gnome-session-save --kill 此命令用于注销本显示器。