God's in his heaven.
All's right with the world.

0%

关于Linux X-Window的一些名词深究

一直以来对X-Window、Xrdp、KDE、VNC等词半懂不懂,因此大致地调查了下。这篇文章包括了一些我自己的总结,因此可能有一些地方有不准确之处,敬请谅解。参考了http://cn.linux.vbird.org/linux_basic/0590xwindow_1.php

X-Window/X Protocol:在XWindow 简介中有比较好的解释,这其实是一套图形接口(协议)。不同于Windows已经将图形接口与操作系统完全融为一体的做法,Linux的图形接口是可选的。而X-Window就是这样的一种图形接口。这个图形接口是属于CS架构的(client/server)。X Server负责画面的绘制和显示,以及接收用户的输入并传到给X Client。X Client负责处理传递过来的用户输入并决定呈现数据,然后由X Server来进行绘制。这与通常的对于CS架构的理解是相反的,与用户直接沟通的其实是X Server。

X-Window是一种协议,因此还需要具体的实现,例如Xfree86、Xorg,Xming和Xnest。

X11R6:X Protocol version 11 Release 6(X协议第11版第六次发行)。

Window Manager(WM):个人看法,每一个窗口程序可能就对应一个(或多个?)X Client,而WM就是管理这些窗口移动、窗口大小和重叠显示的管理程序,常见的WM有GNOME、KDE、XFCE。

远程桌面:当你从另一台电脑上(主要是Windows)上想要通过图形化界面操作远程Linux时需要用到。常见的图形化远程桌面连接协议是RDP和VNC。Windows远程桌面用的就是RDP。RDP和VNC的区别可以参考VNC与RDP的区别。VNC主要传图像,适用于瘦客户端。RDP主要传指令,适用于低速网络。此外微软还有一项针对RDP的增强技术RemoteFX。

常见的VNC服务器软件有vnc4server、TightVNC,RealVNC等。

常见的VNC客户端有RealVNC Viewer、Ultra VNC等。

而如果你想用Windows自带的远程桌面连接Linux机器时,就必须用RDP协议了。需要在Linux上装兼容RDP的服务器,例如Xrdp。Xrdp使用Xvnc,X11rdp或xorgxrdp作为后端(XRDP与VNC的关系)。如果在Windows Hyper-V中安装Ubuntu等,在登录的时候就需要从几个选项中选择一个后端。根据What is x11rdp?Xvnc中所提到的,X11rdp和Xvnc都属于X Server,用于显示“虚拟屏幕”,而不是物理屏幕。而Xorg中证实了Xorg是X-Window的一种实现,那感觉Xorg和Xvnc等并不是同一个层面上的概念,Xorg包括了X Server和X Client,而Xvnc只是X Server的一种实现。同时Xvnc对于用户而言又是VNC Server。


本文地址:http://xnerv.wang/linux-xwindow-investigation/