1、认识X11
X11是X协议,版本号为11。X协议是专门被设计为linux桌面管理服务的,而linux桌面环境不像windows那样作为系统内核的一部分,作为一个普通程序运行在用户态上。该协议的设计初衷是为了linux的图形界面满足跨平台、跨网络、与具体硬件剥离、同时被多个用户使用的需求,因此该协议被设计成客户端-服务器的模式,即由xserver和xclient组成,xserver和xclient通过网络架构来进行图形接口的通信和执行绘制:
- xserver管理主机上与显示相关的硬件设置(如显卡、硬盘、鼠标等),它负责屏幕画面的绘制与显示,以及将输入设置(如键盘、鼠标)的动作告知 xclient。
- xclient即linux主机,负责处理逻辑。
比如如果用户点击了鼠标左键,xserver 捕捉到鼠标点击这个动作,然后它将这个动作告诉 xclient,然后xclient 就根据程序预先设定的逻辑(例如画一个圆),告诉 X server说:“请在屏幕XX位置(鼠标左键点击的位置)画一个圆”。最后,xserver 就响应 xclient 的请求,在鼠标点击的位置,绘制并显示出一个圆。
2、X协议的实现
目前基于该协议的实现架构如下图所示,xfree64是xserver的具体实现,xorg是xree64的扩展;xlib是xclient的具体实现,但是对开发者不够简便,于是在xlib上又诞生了qt和gtk,qt是直接使用Xlib库的,gtk则使用了再次封装了的gdk和glib;qt与gtk都很优秀,在他们之上开发者分别开发出了kde与gnome桌面;kde和gnome是集成了窗口管理器及一些应用程序的套件;其他的x application则跑在这些窗口管理器里。
3、显示管理器(Display Manager)和桌面环境(也叫窗口管理器Window Manager)
显示管理器(Display Manager,DM)主要用于提供linux登录环境和登录成功后加载桌面环境,我所理解的管理登录显示和选择桌面显示环境;桌面环境(Window Manager,WM,也就是X服务)主要用来统一管控多个xclient的绘制,因为xclient之间彼此是不知道对方在屏幕上的信息(想想多个xclient都往同一个显示器上绘制,这样容易导致相互覆盖)。
桌面环境的作用还包括:
- 提供许多的控制元素,包括工作列、背景桌面的设置等等;
- 管理虚拟桌面 (virtual desktop);
- 提供窗口控制参数,这包括窗口的大小、窗口的重叠显示、窗口的移动、窗口的最小化等等。
要注意显示管理器和桌面环境是两个分开独立的应用程序,但是往往在同一个团队一起开发,用户可以通过显示管理器切换任意的桌面环境,比如目前常见的配套如下(左为显示管理器,右为桌面环境):
- GDM——GNOME (GNU Network Object Model Environment,使用大量的系统资源,但给一个现代的、精致的系统)
- KDM——KDE(K Desktop Enviroment,可高度定制的桌面,适度占用系统资源)
- LightDM(Light Display Manager,由 Ubuntu 为 Unity 桌面开发,作为跨桌面显示管理器,其目的是成为 X org 的 X Server 的标准显示管理器)
- ——twm (Tab Window Manager)
- ——XFCE (XForms Common Environment,外观复古但占用资源很少)
- ——LXDE(唯一的重点是尽可能少地使用资源)
- ——Budgie(现代的外观和适度占用系统资源)
可以运行如下命令在各显示管理器之间切换:
sudo dpkg-reconfigure xxx
各桌面环境作为各linux发行版本的情况可以参照linux lightdm gdm gnome kde等的区别于联系(桌面环境 窗口管理器 显示管理器)_gdm和gnome的区别-CSDN博客
4、使用X协议远程桌面linux实践
linux远程桌面linux、windows远程桌面linux可以参考这篇:11.3 最原始图形接口: Xdmcp 服务的启用 | 鸟哥的Linux私房菜:服务器架设篇 第三版,
使用XVNC或者SSH隧道转发实现远程桌面linux可以参考这篇:
X11协议基础与实践-CSDN博客
参考:
认识x11_x11协议-CSDN博客
linux桌面管理器sddm,GDM, KDM, LightDM, SDDM的区别和安装配置-CSDN博客
gnome桌面_Linux 知识分享:显示管理器和桌面环境容易混淆?分分钟带你脱离认识误区...-CSDN博客
23.1 什么是 X Window System | 鸟哥的 Linux 私房菜:基础学习篇 第四版
linux lightdm gdm gnome kde等的区别于联系(桌面环境 窗口管理器 显示管理器)_gdm和gnome的区别-CSDN博客
LightDM简介-CSDN博客