阅读目录
而 CentOS 7 默认的外观太丑了,所以我给他换上了最流行的 adapta-gtk-theme 和 paper-icon-theme,下面的截图展示了其中 Terminal 和 GVim 的外观:

这两种风格应该是比较好区分的,在后文中,很容易通过外观来判断一个 GUI 程序究竟来自于哪一个系统。
从上图可以看出,Ubuntu 18.10 使用的 X Window 是 Xorg。如果使用 ps -ef 命令,还可以看到 Xorg 运行时的命令行参数。
想了解 X Window,下面这些文档需要看一遍先:

下面来说一下也许是众所周知的基础知识:X Window 是一个分层的架构,它分为 Serve 和 Client。X Server 负责图形界面的显示,(也负责用户的输入),而Client 程序需要连接到 X Server,然后请求 X Server 绘制图形界面,同时从 X Server 接受用户的输入。在桌面系统上,X Server 和 Client 程序往往安装在同一台机器上,日常使用基本感觉不到它是分层的。但是很显然,X Server 和 Client 也可以分别运行在不同的机器上,在一台机器上运行程序,而在另外一台机器上显示图形界面。
X Window 中的 Server 和 Client 的概念和我们平时接触到的“Server/Client”概念刚好相反。很多熟悉 Internet 原理的人,第一次接触 X Window 的这两个概念都会搞错。比如,我在一台本地机器上运行 Ubuntu 18.10 桌面版,而在另外一台远程机器上运行 CentOS 7(纯字符界面),当我用 ssh 从 Ubuntu 连接到 CentOS 的时候,Ubuntu 是 Client,而 CentOS 是 Server。在 X Window 中,Server 偏偏是我面前的这台 Ubuntu,X Server 运行在 Ubuntu 上。我可以在 CentOS 中运行 GVim,但是窗口显示在 Ubuntu 中,这时,GVim 是一个 Client 程序,它在远程机器上运行,而它的窗口显示在本地。
我们可以直接运行 X Server 程序来启动 X Server。/usr/bin/X 和 Xorg 都是 X Server 程序。其实 /usr/bin/X 是 Xorg 的符号链接,用哪一个都是一样的。
启动 X Server 的时候可以指定 display 参数,因为可以省略掉 hostname 和 screen_number,所以可以用 :0,:1 这样的格式来指定 display。在我的机器上,本来就有一个 X Server 在运行,display :0 已经被占用了,所以我使用
sudo X vt8 :1 -auth /run/user/1000/gdm/Xauthority -retro来在 display :1 上再运行一个 X Server,如下图:
其中的
-retro参数是为了让 X Server 的背景显示为斜纹,否则背景为纯黑色,那就看不出来是否启动了 X Server。vt8参数指定将新启动的 X Server 放到第 8 个虚拟控制台。:1参数指定新启动的 X Server 的 display number。启动 X Server 后的效果如下图:
按 Ctrl+Alt+F2 回到 display :0,在新启动的 X Server 中运行一个 GVim 看看效果。运行 GVim 时,使用 -display :1 参数指定窗口显示在新启动的 X Server 上,使用 -geometry 参数指定窗口的大小和位置。

再按 Ctrl+Alt+F8 切换到 display :1,看效果。如下:

不知道为什么,在 Ubuntu 18.10 中的虚拟控制台中切换两下,新启动的 X Server 就自动关闭了。而且切换到虚拟控制台 8 再切换回来,我的 Ubuntu 桌面的分辨率也变成了 800x600,非常不爽。当然,这里的展示只是为了证明能在一台机器上运行两个 X Server,能看到效果就行。
反之,如果在 CentOS 7 中使用
ssh -X 192.168.40.135远程连接到 Ubuntu 18.10 中,在运行gvim命令,就可以把 Ubuntu 中的 GVim 显示到 CentOS 7 的桌面中,如下图:
SSH 的 X11 Forwarding 是一个非常强大的功能。我们甚至可以把 Linux 中的图形界面显示到 Windows 中,只需要在 Windows 中运行一个 X Server 就可以了。我选择的软件是 XMing,然后使用 PuTTY 连接到 Linux 系统。在 PuTTY 的设置中,开启 X11 Forwarding 功能,如下图:

然后可以把 Linux 桌面中的图形界面带入 Windows 桌面,如下图:

青岛软件培训
可能你正在寻找一家靠谱的IT培训机构, 渴望突破职业瓶颈, 找一份得体的工作。 恰巧万码学堂正在寻找像你这样不甘平凡的追光者! 我们拒绝纸上谈兵,直接参与真实开发流程!
申请免费试听课程
现在行动,未来可期
立即拨打0532-85025005,预约免费职业规划咨询 前20名咨询者赠送《2025高薪技术岗位白皮书》!
你不是在报名课程,而是在投资五年后的自己!50000+5万行代码练就真实本领17年创办于2008年老牌培训机构1000+合作企业98%就业率
