码迷,mamicode.com
首页 > 其他好文 > 详细

X Server-Client

时间:2018-12-11 00:36:40      阅读:270      评论:0      收藏:0      [点我收藏+]

标签: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

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是没有主题的那个。

 
 

X Server-Client

标签:The   splay   environ   生成   有一个   部分   远程访问服务器   ica   视频   

原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/10099876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!