记录:linux桌面管理基础-X11协议(X window system)

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博客

相关推荐
ac.char2 分钟前
在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
linux·ubuntu·npm
肖永威8 分钟前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
tian2kong11 分钟前
Centos 7 修改YUM镜像源地址为阿里云镜像地址
linux·阿里云·centos
mengao123413 分钟前
centos 服务器 docker 使用代理
服务器·docker·centos
布鲁格若门15 分钟前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
Eternal-Student20 分钟前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
C-cat.22 分钟前
Linux|进程程序替换
linux·服务器·microsoft
dessler23 分钟前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
怀澈12224 分钟前
高性能服务器模型之Reactor(单线程版本)
linux·服务器·网络·c++
DC_BLOG26 分钟前
Linux-Apache静态资源
linux·运维·apache