记录: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博客

相关推荐
REDcker7 小时前
Linux 进程资源占用分析指南
linux·运维·chrome
samroom7 小时前
Linux系统管理与常用命令详解
linux·运维·服务器
PKNLP7 小时前
07.docker介绍与常用命令
运维·docker·容器
Mxsoft6198 小时前
电力系统AR远程运维与数字孪生交互技术
运维·ar
一叶之秋14128 小时前
Linux基本指令
linux·运维·服务器
码割机8 小时前
Linux服务器安装jdk和maven详解
java·linux·maven
亚林瓜子8 小时前
在amazon linux 2023上面源码手动安装tesseract5.5.1
linux·运维·服务器·ocr·aws·ec2
爱学习的大牛1239 小时前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
FreeBuf_9 小时前
研究人员披露 Windows SMB 服务器权限提升漏洞(CVE-2025-58726)
运维·服务器·windows
go_bai9 小时前
Linux--进程池
linux·c++·经验分享·笔记·学习方法