Linux下显示管理器和桌面环境
在这篇文章中,你将了解 Linux 中的显示管理器。它是桌面环境的一部分吗?它的作用是什么?同时会简单介绍一下桌面环境。
在Linux系统图形界面中遇到两个概念:显示管理器和桌面环境。
Linux的 Windows 子系统 WSL 上运行 Linux GUI 应用原理很简单:
Linux的应用是客户端,图形界面是服务器端。
你得先跑一个XServer服务器,并且设定好服务器的地址(在环境变量中),让Linux图形应用连上服务器,就能正常显示了。
WSL2 具备基本的命令行界面,但是在 Linux 内核环境下开发 GUI 界面的相关应用时,会暴露许多困难点,例如 LVGL、QT 界面开发需要使用到 GUI 功能,故需要配置 WSL2 的图形化显示功能,增加编程开发广泛性。
什么是 Linux 中的显示管理器?
简单来说, 显示管理器(display manager) (DM)是一个为你的 Linux 发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后,立即启动显示服务器并加载桌面环境。
显示管理器通常是登录界面的代名词。毕竟它是可见的部分。然而,可见的登录屏幕,也叫 欢迎页(greeter) ,只是显示管理器的一部分。
像各种桌面环境一样,显示服务器也有各种显示管理器。我们来看看它们。
不同的显示管理器
有些人认为显示管理器是桌面环境的一部分,但事实并非如此。它是一个独立的程序。
桌面环境可能会推荐某个显示管理器,但这并不意味着它不能与其它一些显示管理器一起工作。如果你曾经在同一个系统中安装过不止一个桌面环境,你会记得,登录界面(即显示管理器)允许你切换桌面环境。
显示管理器可以与各种桌面环境配合使用
虽然显示管理器不是桌面环境本身的一部分,但它往往与桌面环境由同一个开发团队开发。它也成为桌面环境的代表。
例如,GNOME 桌面环境开发了 GDM(GNOME Display Manager),光看登录界面就会想到 GNOME 桌面环境。
GNOME登录屏幕与GDM
一些流行的显示管理器有:
GDM ( GNOME 显示管理器(GNOME Display Manager) ):GNOME 的首选。
SDDM( 简单桌面显示管理器(Simple Desktop Display Manager) ):KDE 首选。
LightDM:由 Ubuntu 为 Unity 桌面开发。
显示管理器可以定制
有这么多的桌面环境可供选择,它们都有自己的显示管理器吗?不,不是这样的。
正如我之前提到的,可见的登录屏幕被称为欢迎页。这个欢迎页可以进行自定义来改变登录屏幕的外观。
事实上,许多发行版和/或桌面环境都制作了自己的欢迎页,以给用户提供一个类似于他们品牌的登录屏幕。
例如,Mint 的 Cinnamon 桌面使用了 LightDM,但有自己的欢迎页来给它更多的 Mint 式(或者我应该说是 Cinnamon)的外观。
Linux Mint 登录屏幕
来看看 Kali Linux 的登录界面:
Kali Linux 登录界面
如果你喜欢编码和调整,你可以根据自己的喜好修改或编码自己的欢迎页。
改变显示管理器
如果你愿意,可以更改显示管理器。你需要先安装显示管理器。安装时你会看到切换显示管理器的选项。
如果当时没有做切换,那么以后可以通过手动配置来改变显示管理器。
什么是 Linux 中的桌面环境?
桌面环境是一个组件的组合体,为你提供常见的图形用户界面graphical user interface(GUI)元素组件,如图标、工具栏、壁纸和桌面小部件。借助桌面环境,你可以像在 Windows 中一样使用鼠标和键盘使用 Linux。
有几种不同的桌面环境,这些桌面环境决定了你的 Linux 系统的样子以及你与它的交互方式。
大多数桌面环境都有自己的一套集成的应用程序和实用程序,这样用户在使用操作系统时就能得到统一的感受。所以,你会得到一个文件资源管理器、桌面搜索、应用程序菜单、壁纸和屏保实用程序、文本编辑器等。
如果没有桌面环境,你的 Linux 系统就只有一个类似于终端的实用程序,你只能用命令与之交互。
Linux 中各种桌面环境
桌面环境有时也被简称为 DE。
一些流行的桌面环境有:
GNOME - 使用大量的系统资源,但给你一个现代的、精致的系统
Xfce - 外观复古但占用资源很少
KDE - 可高度定制的桌面,适度占用系统资源
LXDE - 唯一的重点是尽可能少地使用资源
Budgie - 现代的外观和适度占用系统资源
桌面环境是 Linux 桌面计算机的重要组成部分,而 Linux 服务器通常依靠命令行界面。并不是说不能在 Linux 服务器上安装桌面环境,但这是画蛇添足,浪费了重要的系统资源,而这些资源可以被服务器上运行的应用程序所利用。
结语
希望大家对 Linux 中的显示管理器以及桌面环境这些术语有一点了解。看到这里,你是不是对“Linux”又有了一点新的认知呢~
显示管理器与桌面环境关系
这里涉及的概念有:
- 桌面环境
- 窗口管理器
- 显示管理器
- 文件管理器
linux图像显示采用的是X Window system(也可以叫做X11或者直接叫X)这套协议,我们平时经常见到的X就是指的这套协议。这套协议里面规定的架构是C/S架构,即客服端/服务器架构。客服端是x client,服务端是x server。这里说的x Window system毕竟只是协议而已,并不是程序实现。而xorg则是这套X11协议的程序实现,可以运行到电脑上。xorg主要是扮演服务端(x server)的角色。而客户端前面讲过了,就是一个个运行的GUI程序。而且为了便于编写GUI程序,还诞生了QT,GTK等一系列图形库,从而方便程序员给程序添加GUI。
窗口管理器则是为了实现一个屏幕上显示多个X程序,实现调整程序大小,标题栏,最大化,最小化,关闭按钮,虚拟桌面这些功能。如果没有窗口管理器,那么一次只能运行一个GUI程序,而且分辨率锁死,显然很不符合使用习惯。窗口管理器往往集成在常见的桌面环境中,比如Xfce使用的窗口管理器为Xfwm,此外还有Gnome的mutter,KDE的Kwin等。
显示管理器(display manager),用于开机后显示登陆界面,并启动窗口管理器等X组件.没有显示管理器,Linux开机会显示命令行登陆界面,需要使用命令行登陆后手动启动Xserver和窗口管理器才能显示GUI,显示管理器 自动的完成这些工作.常见的有GDM、LightDM、DDM。此外为了显示桌面图标,还需要一个文件管理器。
将显示管理器、窗口管理器和文件管理器以及一些常用的组件和程序集合起来,就构成了桌面环境。常见的桌面环境有gnome,KDE,xfce等。
有的桌面环境不包含显示管理器,需要单独安装,比如xfce,有的桌面环境包含,比如gnome就自带gdm这个显示管理器。因此常见的linux发行版(比如arch linux)安装桌面环境时(比如安装xfce),需要先单独安装xorg,然后安装xfce,最后还需要安装显示管理器(比如ddm)。这样重启之后才能登录图形界面。
显示管理器
有图形化界面的显示管理器就有控制台命令行显示管理器。
控制台显示管理器
- 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)
以Windows为例窗口管理器:
此外为了显示桌面图标,还需要一个文件管理器(File Manager).。
将显示管理器、桌面管理器和文件管理器以及一些常用的组件和程序集合起来,就构成了桌面环境。常见的桌面环境有Gnome,KDE,xfce等 。
需要注意的是,有的桌面环境不包含显示管理器,比如xfce,有的桌面环境包含,比如gnome就自带gdm这个显示管理器。 ,需要单独安装。因此常见的linux发行版(比如arch linux)安装桌面环境时(比如安装xfce),需要先单独安装xorg,然后安装xfce,最后还需要安装显示管理器(比如ddm)。这样重启之后才能登录图形界面。
桌面环境/桌面管理器(Desktop Manager)
在计算机科学中,一个桌面环境(Desktop Environment,有时称为桌面管理器)是对桌面比拟的实现。它由多个软件组成。一个桌面环境中的软件共享同一个图形用户界面。在一个典型的桌面环境中,这些软件提供给计算机用户视窗,文件夹,工具栏,壁纸、图标以及像拖放等服务。不同桌面环境在设计和功能上的特性会赋予其与众不同的外观和感觉。
一般封闭操作系统(如Microsoft Windows NT)所用的桌面环境是相对不可变的。但是也有主题和第三方软件可以完全更改常见界面元素的外观(比如窗口、按钮和图标)以及界面本身。在Windows中,这一切可以通过替换默认的Explorer shell来实现。
显示服务器
也称图形接口协议
显示服务器是一个程序,它负责协调其客户端与操作系统的其他部分之间,以及硬件和操作系统之间的输入和输出。基本上,多亏了显示 服务器,你才能以图形化的方式使用你的计算机(GUI)。如果没有显示服务器,你只能局限于命令行界面(TTY)。
显示服务器提供了一个图形环境的框架,使你可以使用鼠标和键盘与应用程序进行交互。
显示服务器通过显示服务器协议(如 X11)与客户端进行通信。显示服务器是图形用户界面特别是窗口系统中的一个关键组件。
不要把显示服务器和桌面环境混淆。桌面环境的下层使用的是显示服务器。
Linux 中有三种显示服务器协议,分别是 X11、Wayland 和 Mir。
Wayland 还是 X11 更好?
X11 和 Wayland 统称为窗口系统、显示服务器和图形平台。 Linux 上需要 X11 和 Wayland 才能运行(显示)图形应用程序。同时,X11 和 Wayland 是互斥的替代方案。 Wayland是X11的后继者,旨在解决显示服务器的缺点。
使用 Wayland 的总体经验通常是 Wayland 上的 Linux 一般运行得比较好,但也存在一些问题。
为什么我们还在使用 Xorg?
Wayland 作为比较新的产品,相比 Xorg 来说,还不是很稳定。作为客户端的程序,必须知道如何与显示服务器进行通信。
因此,很多程序在使用 Wayland 时可能无法运行。Ubuntu 默认切换到 Wayland 的实验证实了这一点。
根据网上查到的资料,据说 Ubuntu 21.04 已经将 预装的 gnome 默认设置为 Wayland 了!
主流Linux 发行版本对x11和Wayland的支持情况
Wayland 是 Debian 10 及更高版本、Fedora 34 或更高版本、Ubuntu 21.04 或更高版本以及其他发行版(例如 Arch Linux)中的默认窗口系统。
如何检查是否使用了 Wayland 或者 X11?
查看您当前是 Xorg(X11) 还是 Wayland
Terminal 中 运行下列命令
echo $XDG_SESSION_TYPE
打开“系统设置”,左边找到“关于本系 统”
查看图形平台后面的字符串即可!
古老的X Window和现代的桌面技术
X Window在1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略。举个最简单的例子吧:X Window提供了生成窗口(Window)的方法,但它没规定窗口要怎么呈现(map)或摆放(place),这个策略是由外部程序---- 窗口管理器(Window Manager)所决定的。另外一个X Window的主要特点便是:Server/Client网络模型。不论是本地、远程的应用程序,都统一通过Server/Client模型来运作,比如:让远程的应用程序跑在本地上。
X Window在推出之后快速演化,在1987年时候,其核心协议已经是第11版本了,简称:x11。这个版本已经将"提供机制,而非策略"这个哲学贯彻地非常彻底,以致于核心协议基本稳定,不需要特别大的改动。于是乎,你看到了,现在是2010年,整整23年了,X Window依然是X11。
其他关键语句
GDM(GDM 和 GDM3)、LightDM、SDDM 或 LXDM
有多种 Linux 显示管理器可供选择。 GDM、LightDM 和 SDDM 是其中最著名的一些。
Ubuntu桌面环境常见的有:GNOME、KDE、Xfce
Ubuntu 最近几个版本自带的桌面环境是GNOME(老版本可能是 Unity),如果想安装KDE,在终端下键入:sudo apt-get install kubuntu-desktop
sudo apt-get install kubuntu-desktop
如果不想用了, 删除命令是:
sudo apt-get remove kubuntu-desktop sudo apt-get autoremove
基于 Debian 和 Ubuntu 的 Linux 发行版,包括 Linux Mint、elementary OS 等。
Ubuntu 上的默认显示管理器 GDM 开箱即用
GDM(GNOME Display Manager),LightDM(Light Display Manager) 和 KDM(KDE Display Manager) 是为不同版本的Ubuntu配置的显示管理器。 他们帮助启动X 服务器、用户会话和欢迎( 登录屏幕)。
总结一下linux图形界面层次关系:linux本身–>X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)–>X应用程序。
查看当前正在使用的显示管理器:cat /etc/X11/default-display-manager
用于更改显示管理器的命令是dpkg-reconfigure
使用下面的命令查看你 Linux 设备上的 Window System(图形接口协议),通常是 Wayland/X11: echo $XDG_SESSION_TYPE
在其他基于 Debian 的发行版(包括 Kali Linux)上更改显示管理器的过程或多或少相同。
Wayland 是一种通信协议,指定显示服务器与其客户端之间的通信。 默认情况下,Ubuntu 20.04 桌面不会启动 Wayland,而是加载 Xorg 显示服务器X11。
在Ubuntu20.04上,可以通过编辑GDM3的配置文件来切换Wayland和Xorg。要启用Wayland,需在/etc/gdm3/custom.conf中取消注释WaylandEnable=true。禁用则需注释掉该行。之后重启GDM3或系统,用户可以在登录界面选择UbuntuonWayland选项来使用Wayland。
Windows端可用的xserver有MobaXterm、xmanager和xming,xming为开源的,而xmanager则是xshell家族的,学习成本自然低很多。
VcXsrv可以运行安装在WSL环境中的Linux GUI程序。
有了XServer就可以运行Linux图形界面程序了,为例方便操作WSL我们可以安装一个Linux桌面环境,这不是必须的。
WSL2本身已经支持Linux GUI程序了,没必要再使用MobaXterm、Xming之类的X-Server程序了。
声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。