【进阶知识】显示管理器,窗口管理器,桌面环境/桌面管理器,显示服务器

news2024/9/23 17:22:42

文章目录

  • 一、显示管理器(Display Manager)
    • 1.1 什么是 Linux 中的显示管理器?
    • 1.2 不同的显示管理器
    • 1.3 其他
      • 控制台显示管理器
      • 图形界面显示管理器
  • 二、窗口管理器(Window Manager)
  • 三、桌面环境/桌面管理器(Desktop Manager)
    • 3.1 常见的桌面环境/桌面管理器
  • 四、显示服务器
    • 4.1 X11
    • 4.2 Wayland
    • 4.3 Mir
    • 4.4 为什么我们还在使用 Xorg?

进阶知识,在Linux的一个应用场景是个人电脑、个人PDA、移动交互设备,这些都会涉及到,显示管理、窗口管理、桌面环境、显示服务器等等,相对于一个还在用busybox、Buildroot构建散装操作系统的嵌入式Linux开发人员来说,上面的四个概念是令人震惊的、令人颅内高潮的。

2023年5月5日16:00:12 被这些管理器震惊了!之前没有听说过!

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

一、显示管理器(Display Manager)

聊聊Linux操作系统中的显示管理器及如何更换

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

1.1 什么是 Linux 中的显示管理器?

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

 显示管理器通常是登录界面的代名词。毕竟它是可见的部分。然而,我们所能见到的登录界面,也叫欢迎页(greeter),只是显示管理器的一部分。

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

1.2 不同的显示管理器

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

桌面环境可能会推荐某个显示管理器,但这并不意味着它不能与其它一些显示管理器一起工作。如果你曾经在同一个系统中安装过不止一个桌面环境,你会记得,登录界面(即显示管理器)允许你切换桌面环境。
在这里插入图片描述
虽然显示管理器不是桌面环境本身的一部分,但它往往与桌面环境由同一个开发团队开发。它也成为桌面环境的代表。

在这里插入图片描述

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

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

  • GDM(GNOME 显示管理器GNOME Display Manager):GNOME 的首选。

  • SDDM(简单桌面显示管理器Simple Desktop Display Manager):KDE 首选。

  • LightDM:由 Ubuntu 为 Unity 桌面开发。

 可见的登录屏幕被称为欢迎页。这个欢迎页可以进行自定义来改变登录屏幕的外观。事实上,许多发行版和/或桌面环境都制作了自己的欢迎页,以给用户提供一个类似于他们品牌的登录屏幕。

KDE显示管理器
在这里插入图片描述

1.3 其他

有图形化界面的显示管理器就有控制台命令行显示管理器。

控制台显示管理器

  • 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)。这样重启之后才能登录图形界面。

以上文字来源于
Linux 图形界面的显示原理是什么? - 韩朴宇的回答 - 知乎
https://www.zhihu.com/question/321725817/answer/669568568

三、桌面环境/桌面管理器(Desktop Manager)

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

 一般封闭操作系统(如Microsoft Windows NT)所用的桌面环境是相对不可变的。但是也有主题和第三方软件可以完全更改常见界面元素的外观(比如窗口、按钮和图标)以及界面本身。在Windows中,这一切可以通过替换默认的Explorer shell来实现。

3.1 常见的桌面环境/桌面管理器

在这里插入图片描述

来源于:https://zh.wikipedia.org/wiki/%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83

四、显示服务器

 显示服务器是一个程序,它负责协调其客户端与操作系统的其他部分之间,以及硬件和操作系统之间的输入和输出。基本上,多亏了显示服务器,你才能以图形化的方式使用你的计算机(GUI)。如果没有显示服务器,你只能局限于命令行界面(TTY)。

 显示服务器提供了一个图形环境的框架,使你可以使用鼠标和键盘与应用程序进行交互。

 显示服务器通过显示服务器协议(如 X11)与客户端进行通信。显示服务器是图形用户界面特别是窗口系统中的一个关键组件。

 不要把显示服务器和桌面环境混淆。桌面环境的下层使用的是显示服务器。

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

4.1 X11

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

在这里插入图片描述

X11 通信协议,使用显示服务器 X.org 服务器。它接收来自设备驱动程序的输入事件,并将它们提供给它的一个客户端。

显示服务器也从客户端接收数据,它处理数据并进行合成,在 Linux 上,它将数据传递给三个内核组件之一:DRM、GEM 或 KMS 驱动。

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

4.2 Wayland

按照其网站的说法,Wayland “旨在作为 X 的更简单的替代品,更容易开发和维护”。

而事实上 Wayland 就是现代的显示服务器,它应该取代传统的 X 显示服务器。

对它的采用还在普及中。Ubuntu 曾试图在 17.10 版本中改用 Wayland 作为默认的显示服务器,但这个尝试遭到了负面反馈。

很多 GUI 应用程序及其框架都依赖于 X 服务器。这些应用程序在 Wayland 上无法正常工作。

这迫使 Ubuntu 继续使用 X 作为默认显示服务器。它仍然提供了使用 Wayland 的选项,但不再是默认的了。

即使在今天,绝大多数的发行版都默认使用 X 显示服务器。

在这里插入图片描述

实施 Wayland 显示服务器协议的显示服务器,被称为 Wayland 合成器。和 X11 上的一样,Wayland 合成器负责处理其客户端的输入和输出,但同时也进行合成,这与 X11 相反。

几个 Wayland 合成器是 Weston、Mutter、KWin 或 Enlightenment。

4.3 Mir

Mir 显示服务器自带的 Mir 显示服务器协议,与 X11 和 Wayland 使用的协议不同。它是由 Canonical 开发的,作为 Unity 开发的一部分,打算成为 Ubuntu 的首选显示服务器。

但在 2017 年,它已经被 [Ubuntu] 桌面版的 Wayland 显示服务器所取代,不过 Mir 的开发还在继续,用于物联网(IoT)应用。

4.4 为什么我们还在使用 Xorg?

Wayland 作为比较新的产品,相比 Xorg 来说,还不是很稳定。作为客户端的程序,必须知道如何与显示服务器进行通信。

因此,很多程序在使用 Wayland 时可能无法运行。Ubuntu 默认切换到 Wayland 的实验证实了这一点。

来源:
Linux 黑话解释:什么是显示服务器,用来做什么?
http://www.embeddedlinux.org.cn/emb-linux/industry-news/202009/07-9232.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD9680之JESD204B接口2路、4路、8路的14bit 500MSPS/1GSPS/1.25GSPS采样率子卡的中文版本设计及调试经验资料分享

板卡概述: 【FMC155】 FMC155 是一款基于 VITA57.1 标准的,实现 2 路 14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合 ADC 同步采集 FMC 子卡模 块。 该模块遵循 VITA57.1 规范,可直接与 FPGA 载卡配合使用,板 卡 ADC 器件采用 ADI 的…

MySQL基础篇补充 | 单行函数(数值函数、字符串函数、日期函数、流程控制函数、加密与解密函数、MySQL信息函数)

目录 一:单行函数 1. 数值函数 (1)基本函数 (2)角度与弧度互换函数 (3)三角函数 (4)指数与对数 (5)进制间的转换 2. 字符串函数 3. 日期和…

Nginx配置浏览器缓存,页面展示更快一步

1.简介 缓存能够存储请求的响应结果,可以很方便的再次访问,使用缓存的优点是很明显的。 加速内容的访问,降低响应时间减少服务器的负载 Nginx不仅仅是一个web服务器,它也是一个web缓存服务器。通过Nginx缓存,我们对…

Java引用类型(强引用,软引用,弱引用,虚引用)

从Java SE2开始,就提供了四种类型的引用:强引用、软引用、弱引用和虚引用。Java中提供这四种引用类型主要有两个目的:第一是可以让程序员通过代码的方式决定某些对象的生命周期;第二是有利于JVM进行垃圾回收。 强引用&#xff08…

【Linux环境】Linux常用命令记录汇总

Linux常用命令记录汇总 一、传输命令二、打包命令三、创建文件夹或文件命令四、切换用户五、vim相关命令六、权限更改命令 一、传输命令 命令格式: rz 点击回车 sz 文件名 点击回车命令解释: rz(receive Zmodem缩写)上传文件&am…

淘宝时光机入口在哪里怎么打开回溯20年淘宝历史账单?

淘宝时光机入口在哪里怎么打开? 打开淘宝时光机入口:https://www.caochai.com/article-4208.html ,开始回溯20年淘宝历史账单; 淘宝大额内部隐藏优惠券怎么领取? 1、打开淘宝优惠券查询领取入口:https://…

上班摸鱼逛博客,逮到一个字节8年测试开发,聊过之后羞愧难当......

老话说的好,这人呐,一旦在某个领域鲜有敌手了,就会闲得某疼。前几天我在上班摸鱼刷博客的时候认识了一位字节测试开发大佬,在字节工作了8年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有…

好家伙,一天约了6场面试,又被吊打了....

好兄弟一天约了6场面试,又被吊打了 面试感受 先说一个字 是真的 “ 累 ” 安排的太满的后果可能就是一天只吃一顿饭,一直奔波在路上 不扯这个了,给大家说说面试吧,我工作大概两年多的时间,大家可以参考下 在整个面试…

mysql 连表查询

文章目录 一、内连接二、外连接2.1 左外连接2.2 右外连接 三、总结 写在前面 在MySQL中join操作被称为连接,作用是能连接多个表的数据(通过连接条件),从多个表中获取数据合并在一起作为结果集返回给客户端。即使用连接查询一条SQL…

Redis 主从 + 哨兵模式搭建

前言:以Linux环境为示例 一、整体架构(1主 2从 3哨兵) 二、redis 安装 1、安装路径:/usr/local/redis/redis-6382(可自行指定) 2、解压安装包: 直接解压:tar -axvf redis-5.0.…

国内可以使用的chatgpt站点,有多种工具可用

看到很多人在寻找国内可以使用的chatgpt站点,忍不住来给大家分享一波,这个相对而言还是挺好用的,不限制字数,每天都能白女票使用。看下面正文。 chatgpt的使用方法 在浏览器或者打开我的电脑,顶部车俞入 人工智能聊…

C++好难(5):内存管理

这一节学完,我们 C嘎嘎 就算是正式入门了,但是之后的课还会更上一阶d(ŐдŐ๑) 继续坚持! 【本节目标】 1. C/C内存分布 2. C语言中动态内存管理方式 3. C中动态内存管理 4. operator new与operator delete函数 5. new和delete的实现原…

【在线OJ项目】项目环境与项目演示

目录 一、项目环境 二、项目展示 项目Gitee地址:online-oj: 在线OJ项目实现了核心模块,后续添加竞赛、考试等 (gitee.com)https://gitee.com/PG1886/online-oj 一、项目环境 采用SpringBootSpringMVCMybatis进行服务器开发 前端采用HTMLCSSJS&#…

mysql 5.7.32安装及主从安装信息

最方便的 就是 直接使用docker容器 搭建一个比较方便 或者 直接使用yum源安装,说白了就是少踩坑。 或者 是直接使用 宝塔等工具帮忙,直接脚本跑 宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 以下是内网两台机器安装的方法 1: 下…

【数据结构】ArrayList与顺序表

目录 1.List接口 2.线性表 3.顺序表 3.1常用方法 3.2常用方法的实现 4.ArrayList 4.1构造方法 4.2遍历 4.3扩容 4.4CVTE面试题:删除相同字符 5.ArrayList的具体实现 5.1洗牌算法 5.2杨辉三角 6.ArrayList的优缺点 1.List接口 List 接口继承于 Collec…

3 天,入门 TAURI 并开发一个跨平台 ChatGPT 客户端

TAURI 是什么 TAURI 是一个使用 Rust 编写的程序框架,它允许我们使用 Web 技术和 Rust 语言构建跨端应用。它提供了大量特性,例如系统通知、网络请求、全局快捷键、本地文件处理等,它们都可以在前端通过 JavaScript 便捷的调用。 TAURI 应用…

《精英的傲慢:好的社会该如何定义成功》笔记与摘录

目录 作者简介 书内容简介 经典摘录 1、现状与现象 2、什么是优绩至上原则 3、对优绩至上原则赞同与否的讨论 4、 优绩至上原则存在的争议点 5、 作为哲学家,桑德尔从道德哲学角度的思考 6、作者对优绩制的批判 7、流动性与平等的关系 8、我们该如何摆脱优…

MyCat分片-垂直分库

文章目录 需求场景一、环境准备二、实现1.MyCat—schema.xml文件配置2.MyCat—server.xml文件配置3.MyCat启动4.MyCat登录5.创建表结构及数据导入 三、全局表配置全局表配置 此文档来源于网络,如有侵权,请联系删除! 需求场景 在业务系统中,涉…

使用ChatGPT辅助学习——让你的学生主动找到学习的方法!

ChatGPT就像一座巨大的金矿,能挖到多少金子,完全取决于你的思维、认知和行动力。 当大部分人还在观望,或者拿着ChatGPT随便玩一玩的时候。 有的人,已经快速把它切入垂直领域,开始深耕。 如果你的孩子或者学生正在上初…

静态库和动态库的制作与使用

1.静态库的制作与使用 小知识:删除命令行,或者是配置好的路径之类的:退出编辑模式后:dd 保存并退出:退出编辑模式后,:wq (1)静态库的制作 1.首先生成你需要加入的文件的.O文件。使用如下代码 …