标签:The splay environ 生成 有一个 部分 远程访问服务器 ica 视频
参考:X Server-Client!! What the hell? (这哥们理解有问题,看视频吧)
Beginner‘s Guide To The Deskop 2 of 5 | X11, Display Manager and Windows Manager
前言
关于Linux的最美好的事情就是,它不像Windows或Mac那样,是一个大型黑盒子,而是一个由像乐高积木搭成的一件艺术品。本文介绍的就是众多积木中非常重要的一块,X Server-Client。这也是Unix/Linux现代GUI框架的基础。
一致且设计良好的软件始终经得起时间的考验, X Server-Client architecture 也不例外。 它是由MIT实验室于1987年开发的,从那时起它就被部署在人类已知的每个UNIX系统上。 目前它处于第11次迭代中,因此它也被称为“X11”或简称为“X”。 如果有GUI,则称为X Server,这为操作系统使用带来了便利。X Server-Client architecture 中GUI的实现独立于OS,这意味着操作系统可以保持非常轻量,如果机器需要,完全可以在没有GUI的情况下提供全部功能。 例如,大型数据中心中的刀片服务器(server blades)永远不需要GUI,因此不必使用GUI来让系统变得臃肿。
由于X Server-Client architecture是跨平台的,因此为开发人员带来了便利,开发人员可以选择某种framework 来编写UI代码(例如QT framework ),并且无论什么硬件,X Server都可以顺利进行渲染。需要图形显示的程序不必考虑硬件类型,Linux发行版差异等问题,将生成的GUI直接外包(outsourced)给X就可以了。
X Client
Unix/Linux服务器通常具有强大的处理能力,但往往不是非常便携。虽然可以ssh远程访问服务器,但输出仍是命令行。 X Server-Client architecture解决了这个问题。
任何需要GUI并且与X Server交互兼容的应用程序都称为X Client,像Mozilla firefox,Xterm等。
注意:你在Ubuntu中使用的terminal也是一个X Client。那么,它们是图形终端(graphical terminals )吗?说实话,它只是终端仿真器(terminal emulators),用于在图形环境中模拟真实的TTY终端。
X Server
X Server从键盘,鼠标或任何其他输入设备获取输入,并根据当前运行的X Client,将数据发送到内核进一步处理。 然后处理结果返给X Server,X Server在屏幕上呈现结构。
在数据处理和最终输出之间,有两个重要的组成部分。 如图所示; 一个是Window Manager,另一个是Display Manager/Graphical Interface。
Window Manager
如果你打开了一个应用程序,而Window Manager并未在后台运行,那么将无法重新定位、甚至调整窗口大小。 甚至都没有关闭,最大化/恢复和最小化按钮,因为没有Window Manager提供标题栏。 这些东西都是Window Manager的一部分。Window Manager还决定如何将窗口放在一起(stack,tile等)。 目前有大量的stack,tile可用,像Compiz,I3,Awesome,Openbox等。这完全取决于你想要使用哪一个,Ubuntu的默认值是Compiz。
i3 window manager
Compiz window manager
Awesome window manager
Openbox window manager
如今许多X Client自带客户端装饰(Client-Side decoration),例如标题栏。这意味着即使没有Window Manager也可以正常工作,但并非所有X Client都这样。事实上,Ubuntu下面那个Terminal(前面有图)就没有客户端装饰。
Display manager基本上是桌面环境。 这是放置所有程序窗口的地方。 Window Managers,文件浏览器,Dock等与桌面环境密切配合,为你提供统一的用户体验。 有许多不同的桌面环境可供选择 - KDE,Unity,GNOME等。您可以在机器上安装多个这样的桌面环境,并随时切换。
KDE desktop environment
GNOME desktop environment
Unity desktop environment
最后
事实上,在X Server-Client architecture,中,Client本身可以在本地的,也可以在远程。
试想这样一种场景,你的计算机上没有Web浏览器(Firefox),但你的朋友有一个。 好吧,你可以ssh -X,但问题是Firefox需要GUI,而GUI无法在终端上呈现。 所以你要做的就是使用X fowarding,借助X fowarding,你朋友的电脑作为X Server,他会给你(X Client)发送指令,告诉Client怎么把图像绘制出来。而Firefox实际上还是在远程你朋友的电脑上。 再假设你电脑上有Firefox(你更改了主题),你仍然远程连接到你朋友电脑(Firefox没有更改主题),那么你现实的Firefox是没有主题的那个。
标签:The splay environ 生成 有一个 部分 远程访问服务器 ica 视频
原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/10099876.html