[Share Experiences] Linux系统人机交互中的显示管理和桌面管理
Tofloor
poster avatar
流浪的加菲
deepin
2024-07-31 14:59
Author

在Linux系统中,人机交互都会涉及到:显示管理、窗口管理、桌面环境、显示服务器等等。窗口管理器负责窗口的显示、移动、调整大小等操作。桌面环境则是提供完整桌面体验的软件套件,包含窗口管理器、桌面面板、文件管理器、启动器等等多个应用和组件。窗口管理器和桌面环境可以分开安装和使用。

咱们可以这么拆分理解:

  • 开机后,在登陆界面,此时是处于显示管理器的范畴;
  • 登陆成功后,进入桌面,打开几个软件,这就是在窗口管理器和桌面管理器的范畴了;

显示管理器(Display Manager)

显示管理器(Display Manager),用于开机后显示登陆界面,并启动窗口管理器等X组件。 没有显示管理器,Linux开机会显示命令行登陆界面,需要使用命令行登陆后手动启动Xserver和窗口管理器才能显示GUI,显示管理器自动的完成这些工作,常见的有GDM、LightDM、DDM。

什么是显示管理器

简单来说,显示管理器(Display Manager, DM)是一个为你的 Linux 发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后,立即启动显示服务器并加载桌面环境。

像各种桌面环境和显示服务器一样,显示管理器也有很多种。

不同的显示管理器

有些人认为显示管理器是桌面环境的一部分,但事实并非如此,它是一个独立的程序。

桌面环境可能会推荐某个显示管理器,但这并不意味着它不能与其它一些显示管理器一起工作。如果你曾经在同一个系统中安装过不止一个桌面环境,你会记得,登录界面(即显示管理器)允许你切换桌面环境。

虽然显示管理器不是桌面环境本身的一部分,但它往往与桌面环境由同一个开发团队开发。它也成为桌面环境的代表。

GNOME 桌面环境开发了 GDM(GNOME Display Manager),光看登录界面就会想到 GNOME 桌面环境。

DDE桌面环境的登录界面一看过去就知道是deepin系统。
企业微信截图_17224073969655.png

一些流行的显示管理器有:

  • GDM(GNOME 显示管理器GNOME Display Manager):GNOME 的首选。
  • SDDM(简单桌面显示管理器Simple Desktop Display Manager):KDE 首选。
  • LightDM:由 Ubuntu 为 Unity 桌面开发。

显示管理器分为“图形化界面的显示管理器”和“控制台命令行显示管理器”。

控制台显示管理器

  • CDM — 用 Bash 编写的登录管理器
  • Console TDM — 用 Bash 编写的 xinit 扩展
  • nodm — 用于自动登录的显示管理器(自 2017 年以来不再维护)
  • Ly — 用于 Linux 和 BSD 的 TUI(类似 ncurses)显示管理器
  • tbsm — Bash 会话或应用程序启动器。支持 X 和 Wayland 会话
  • emptty — TTY 上的简单 CLI 显示管理器,支持 X 和 Wayland
  • loginx — 带有友好 curses 用户界面的 getty/login/xinit 组合

图形界面显示管理器

  • Entrance — Enlightenment 显示管理器
  • GDM — GNOME 显示管理器
  • LightDM — 跨桌面显示管理器,可以使用任何工具包编写的各种前端
  • LXDM — LXDE 显示管理器。可以独立于 LXDE 桌面环境使用
  • SDDM — 基于 QML 的显示管理器,KDM 的继任者;推荐用于 Plasma 和 LXQt
  • XDM — 支持 XDMCP 的 X 显示管理器,适合服务器主机

窗口管理器(Window Manager)

窗口管理器(Window Manager)是为了实现一个屏幕上显示多个X程序,实现调整程序大小、标题栏、最大化、最小化,、关闭按钮等等这些功能。

如果没有窗口管理器,那么一次只能运行一个GUI程序,而且分辨率锁死,显然很不符合使用习惯。窗口管理器往往集成在常见的桌面环境中,比如Xfce使用的窗口管理器为Xfwm,此外还有GNOME的mutter,KDE的Kwin等。

窗口管理器根据管理窗口的方式不同,被分为几个门类:

  • 合成式窗口管理器(compositing window manager)
  • 堆叠式窗口管理器(stacking window manager)
  • 瓷砖式窗口管理器(tiling window manager)
  • 动态窗口管理器(dynamic window manager)

deepin社区团队全新自研wayland合成器——Treeland

image.png

项目地址:https://github.com/vioken

image.png

image.png

Windows窗口管理器图示:

1722492229483.jpg

常见的窗口管理器

  • Openbox:轻量级的窗口管理器,适合用于资源有限的旧电脑或嵌入式设备;
  • Xfwm:Xfce桌面环境自带的窗口管理器,具有较好的性能和稳定性;
  • KWin:KDE桌面环境自带的窗口管理器,功能强大,支持特效和3D加速;
  • KWin窗口管理器介绍

    KWin 是一款专为Linux上Xorg窗口系统设计的高效能、可扩展的合成窗口管理器,同时也支持Wayland和X11。作为KDE桌面环境(KDE Plasma Desktop)的一部分,KWin旨在提供无缝的用户体验,让用户几乎察觉不到它的存在。对于寻求高级功能的用户来说,KWin也提供了深度定制的可能性,只要这些功能不会与主要任务产生冲突。

    KWin技术分析

    KWin 不仅仅是一个窗口管理器,与传统的Openbox等轻量级窗口管理器不同,它不试图替代特定桌面环境的默认窗口管理器,如GNOME Shell。KWin可以在无合成或者X11网络透明模式下运行,其核心是为用户提供稳定的合成视图和流畅的交互体验。

    在技术层面,KWin充分利用了X11和Wayland的优势,实现窗口的平滑动画、高效的资源管理和多显示器支持。它的设计考虑到了扩展性,允许开发者通过插件添加新的特性和效果,同时保持代码的简洁和稳定性。

    KWin的特点

    • 隐形:桌面操作自然流畅,让用户在使用时忘记它的存在。
    • 灵活:对高级用户的友好,提供大量可自定义的设置和插件。
    • 稳定:优先保证稳定性和兼容性,确保所有功能在各种场景下都能正常工作。
    • 靠谱:有专门的邮件列表和IRC频道供用户交流和开发者讨论,同时也鼓励用户提交bug报告和贡献代码。

    KWin受众分析

    • 对于普通用户:享受KDE桌面环境提供的直观界面和流畅的操作体验,而无需关心底层的技术细节。
    • 对于应用开发者:如果你在开发Linux应用程序,KWin提供了一个强大的平台来测试窗口系统的兼容性和性能。
    • 定制爱好者:KWin支持脚本化的插件,你可以根据自己的喜好调整窗口行为和视觉效果,创建独特的桌面环境。

    此外为了显示桌面图标,还需要一个文件管理器(File Manager),将显示管理器、桌面管理器和文件管理器以及一些常用的组件和程序集合起来,就构成了桌面环境。常见的桌面环境有GNOME,KDE,Xfce、DDE等。

    需要注意的是,有的桌面环境不包含显示管理器,比如Xfce,需要单独安装。有的桌面环境包含,比如GNOME就自带GDM这个显示管理器。 因此常见的linux发行版(比如arch linux)安装桌面环境时(比如安装xfce),需要先单独安装Xorg,然后安装Xfce,最后还需要安装显示管理器(比如ddm),这样重启之后才能登录图形界面。

    桌面环境(桌面管理器)

    在计算机科学中,一个桌面环境(Desktop environment,有时称为桌面管理器)由多个软件组成。一个桌面环境中的软件共享同一个图形用户界面。在一个典型的桌面环境中,这些软件提供给计算机用户视窗,文件夹,工具栏,壁纸、图标放等服务。不同桌面环境在设计和功能上的特性会赋予其与众不同的外观和感觉。

    常见的桌面环境

    • KDE Plasma:功能丰富,高度可定制,自带KDE桌面面板、Dolphin文件管理器、Konsole终端等组件;
    • GNOME:功能强大易于使用,自带GNOME桌面面板,Nautilus文件管理器、GNOME终端等组件;
    • Xfce:轻量级,简洁易用,自带Xfwn窗口管理器、Thunar文件管理器、Xfce终端等组件;
    • DDE:美观易用,简单易上手,面向普通用户真正做到了“开箱即用”,主要由桌面、启动器、任务栏、控制中心、窗口管理器等组成;

    企业微信截图_17224076666048.png

    DDE(deepin environment desktop)

    deepin系统自带的桌面环境,由deepin社区团队自主开发,主要由桌面、启动器、任务栏、控制中心、窗口管理器等组成,系统中预装了深度特色应用,整个桌面环境美观易用,简单易上手,面向普通用户真正做到了“开箱即用”

    企业微信截图_17224083667132.png

    GNOME

    GNOME是Linux世界中的主要桌面之一。它是在Richard Stallman的GNU项目的支持下开始的,因为KDE使用的Qt工具包的许可存在争议,该许可证当时是专有的,即使KDE是开源的。Qt从那以后一直是开源的,但GNOME和Qt之间仍然存在竞争。GNOME 3的一个主要变化是GNOME Shell,它表面上类似于Ubuntu的Unity界面,和Unity一样,它引起了一些争议,**但是,Linux用户们的爱好之一就是相互争斗,哪个是最好的程序!joy **

    KDE

    KDE是Unix和Linux世界中首选的另一个主要桌面环境。与GNOME 3和Unity相比,它更加精致,但仍然保留了更多传统的桌面外观和感觉。这是一个非常光滑的界面,但你是否喜欢它仍然只是一个品味的问题。

    Xfce

    如果其他桌面环境对你来说太重了,但你仍然想要一个桌面环境,那么Xfce 可能非常适合你。它在较慢的旧系统上运行良好,但它具有可选的图形化合成功能。

    LXDE

    如果你想要一个更轻量级的解决方案,你可以考虑LXDE,它适用于上网本等低规格电脑,对于使用移动设备的人来说,它使用的内存更少,功耗更低。

    Unity

    Unity 是基于GNOME桌面环境的用户界面, 由Canonical公司开发。**Ubuntu自11.04以来的默认桌面环境。它的主要组件是面板(在屏幕顶部)、启动器(在左侧)和Dash(点击Ubuntu按钮或按下Super或Windows键时显示) **。虽然Canonical试图为其Linux发行版制作一个更加用户友好的版本,但它疏远了一些著名的Linux开发人员,因为它涉嫌“降低”桌面版本以及显然有缺陷的质量。

    显示服务器

    显示服务器是一个程序,它负责协调其客户端与操作系统的其他部分之间,以及硬件和操作系统之间的输入和输出。显示服务器提供了一个图形环境的框架,使你可以使用鼠标和键盘与应用程序进行交互。可以这么说,正式因为有了显示服务器,你才能以图形化的方式(GUI)使用你的计算机,如果没有显示服务器,你只能局限于命令行界面(TTY)。

    显示服务器通过显示服务器协议(如 X11)与客户端进行通信。显示服务器是图形用户界面特别是窗口系统中的一个关键组件,不要把显示服务器和桌面环境混淆,桌面环境的下层使用的是显示服务器。

    Linux 中有三种显示服务器协议,分别是 X11、Wayland 和 Mir。下面我就给大家简单介绍一下这些显示服务器。

    2023年第十三届DDUC大会上关于x11和wayland的分析对比:
    image.png

    更多DDUC(深度开发者与用户大会)活动信息可以查看:DDUC

    x11

    X11(也称 X)是已经存在多年的传统显示服务器,它是 Linux 发行版中最常用的显示服务器。

    企业微信截图_17224076904006.png

    X11 通信协议,使用显示服务器 X.org 服务器。它接收来自设备驱动程序的输入事件,并将它们提供给它的一个客户端,显示服务器也从客户端接收数据,它处理数据并进行合成。在 Linux 上,它将数据传递给三个内核组件之一:DRM、GEM 或 KMS 驱动。

    X.Org 服务器是一个显示服务器,它依靠“合成窗口管理器”来进行合成。例如 Mutter 或 KWin。GNOME 使用的是 Mutter。

    Wayland

    按照其网站的说法:Wayland “旨在作为 X 的更简单的替代品,更容易开发和维护”,而事实上 Wayland 就是现代的显示服务器,它应该取代传统的 X 显示服务器,对它的采用还在普及中。

    1722492304443.jpg

    Ubuntu 曾试图在 17.10 版本中改用 Wayland 作为默认的显示服务器,但这个尝试遭到了负面反馈,很多 GUI 应用程序及其框架都依赖于 X 服务器,这些应用程序在 Wayland 上无法正常工作,这迫使 Ubuntu 继续使用 X 作为默认显示服务器。它仍然提供了使用 Wayland 的选项,但不再是默认的了。

    实施 Wayland 显示服务器协议的显示服务器,被称为 Wayland 合成器,Wayland 合成器负责处理其客户端的输入和输出,但同时也进行合成,几个 Wayland 合成器是 Weston、Mutter、KWin 或 Enlightenment,deepin社区自研合成器叫“Treeland”

    Mir

    Mir 显示服务器自带的 Mir 显示服务器协议,与 X11 和 Wayland 使用的协议不同。它是由 Canonical 开发的,作为 Unity 开发的一部分,打算成为 Ubuntu 的首选显示服务器,但在 2017 年,它已经被 [Ubuntu] 桌面版的 Wayland 显示服务器所取代,不过 Mir 的开发还在继续,用于物联网(IoT)应用。


    整理不易,点赞再看applaud 转载请注明出处,感谢!

Reply Favorite View the author
All Replies
流浪的加菲
deepin
2024-07-31 14:59
#1

沙发自己坐咯hi

Reply View the author
youme
deepin
2024-07-31 15:29
#2

Screenshot_2024-07-31-15-28-12-445_com.yjllq.kito.png

这壁纸是自带的吗?

Reply View the author
f@deepin
deepin
2024-07-31 16:41
#3

23正式版能用上treeland不

Reply View the author
mozixun
deepin
2024-07-31 17:07
#4
f@deepin

23正式版能用上treeland不

今年年底会用上

如果您想提前体验建议使用Kubuntu,安装后终端执行sudo apt install plasma-workspace-wayland -y后注销,在左下角切换到Wayland会话即可

GNOME个人不大建议,它不是一般的臃肿

Reply View the author
流浪的加菲
deepin
2024-07-31 17:28
#5
youme

Screenshot_2024-07-31-15-28-12-445_com.yjllq.kito.png

这壁纸是自带的吗?

可以在应用商店搜索下“鲸鱼壁纸”

image.png

Reply View the author
聪明蛋
deepin
2024-07-31 19:38
#6

顶贴~

Reply View the author
youme
deepin
2024-07-31 20:29
#7
流浪的加菲

可以在应用商店搜索下“鲸鱼壁纸”

image.png

like

Reply View the author
雪空子
deepin
2024-08-09 09:13
#8
mozixun

今年年底会用上

如果您想提前体验建议使用Kubuntu,安装后终端执行sudo apt install plasma-workspace-wayland -y后注销,在左下角切换到Wayland会话即可

GNOME个人不大建议,它不是一般的臃肿

等待年底大作,deepin在Linux桌面系统的推进方面可谓功不可没,之前没了解这些的时候以为一切都是本该那样的,没想到Linux之前的桌面系统和Windows、mac的桌面比简直不是一个时代的,有代差,因为Linux的极客们根本就用不着桌面,真的感谢deepin团队,在Linux桌面生态、桌面显示、包管理方面的贡献,把Linux桌面系统提升到现代桌面系统的级别。👍

Reply View the author