本文介绍图形在 Linux 中的工作原理以及它由哪些组件组成。 它包含桌面环境各种实现的许多屏幕截图。
如果您并不真正区分 KDE 和 GNOME,或者您确实区分了 KDE 和 GNOME,但想知道还有哪些其他选择,那么本文适合您。 这是一个概述,虽然它包含很多名称和很少的术语,但该材料对于初学者和那些只关注 Linux 的人也很有用。
在设置远程访问和实施瘦客户端时,高级用户也可能会对该主题感兴趣。 我经常遇到经验丰富的 Linux 用户,他们会说“服务器上只有一个命令行,我不打算更详细地研究图形,因为这都是普通用户所需要的。” 但即使是 Linux 专家也非常惊讶和高兴地发现 ssh 命令的“-X”选项(为此了解 X 服务器的操作和功能很有用)。
我在“” 教授 Linux 课程已近 15 年了
随着文章的进展,我为那些想要深入研究该主题的人提供每个组件的链接,例如维基百科文章(如果有英语和俄语文章,则指向更完整/有用的版本)。
对于基本示例和屏幕截图,我使用了 openSUSE 发行版。 只要存储库中有大量包,就可以使用任何其他社区开发的发行版。 在商业发行版上展示各种桌面设计很困难,但并非不可能,因为它们通常只使用一两个最知名的桌面环境。 这样,开发人员就可以缩小发布稳定、经过调试的操作系统的任务范围。 在同一系统上,我安装了在存储库中找到的所有 DM/DE/WM(下面这些术语的解释)。
带有“蓝框”的屏幕截图是在 openSUSE 上拍摄的。
我在其他发行版上截取了带有“白框”的屏幕截图,它们在屏幕截图中有所指示。
带有“灰框”的屏幕截图取自互联网,作为过去几年桌面设计的示例。
所以,让我们开始吧。
组成图形的主要组件
我将重点介绍三个主要组件,并按照它们在系统启动时启动的顺序列出它们:
- DM(显示管理器);
- 显示服务器;
- DE(桌面环境)。
此外,作为桌面环境的重要子条款:
- 应用程序管理器/启动器/切换器(开始按钮);
- WM(窗口管理器);
- 桌面环境自带的各种软件。
每个点的更多细节。
DM(显示管理器)
启动“图形”时启动的第一个应用程序是DM(显示管理器),一个显示管理器。 其主要任务:
- 询问允许哪些用户进入系统,请求身份验证数据(密码、指纹);
- 选择要运行的桌面环境。
目前广泛应用于各种发行版:
现有 DM 列表保持最新状态
值得注意的是,以下屏幕截图使用相同的 LightDM 显示管理器,但在不同的发行版中(括号中表示发行版名称)。 看看由于来自不同发行版的设计师的工作,这个 DM 看起来有多么不同。
这种多样性的主要内容是明确有一个应用程序负责启动图形并允许用户访问这些图形,并且该应用程序有不同的实现,它们在外观和功能上略有不同(选择设计环境、用户选择、针对不良用户的版本、通过协议进行远程访问的可用性
显示服务器
显示服务器是一种图形基础,其主要任务是与显卡、显示器和各种输入设备(键盘、鼠标、触摸板)配合工作。 也就是说,以“图形”呈现的应用程序(例如浏览器或文本编辑器)不需要知道如何直接使用设备,也不需要知道驱动程序。 X Window 负责这一切。
当谈到 Display Server 时,多年来在 Linux 中,甚至在 Unix 中,应用程序的意思是
现在许多发行版正在取代 X
您还可以阅读:
X架构的一般描述 ,在 X 中运行 X ,Windows 操作系统下的 X (需要远程启动图形应用程序,例如使用 PuTTY)。
首先,让我们启动 X 和其中的几个图形应用程序。
研讨会“运行 X 及其中的应用程序”
我将从新创建的 webinaruser 用户执行所有操作(以 root 身份执行所有操作会更容易,但并不安全)。
- 由于 X 需要访问设备,我授予访问权限: 设备列表是通过查看日志中启动 X 时的错误来确定的 (/home/webinaruser/.local/share/xorg/Xorg.77.log)
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- 之后我启动 X:
% X -retro :77 vt8 &
选项: * -retro - 以“灰色”经典背景启动,而不是使用黑色作为默认背景; * :77 - 我设置(合理范围内的任何一个都是可能的,只有 :0 很可能已经被已经运行的图形占用)屏幕编号,实际上是某种唯一标识符,通过它可以区分几个正在运行的 X; * vt8 - 表示终端,此处为 /dev/tty8,将在其上显示 X)。
- 启动图形应用程序:
为此,我们首先设置一个变量,应用程序将通过该变量了解我正在运行哪个 X 来发送需要绘制的内容:
% export DISPLAY=":77"
您可以像这样查看正在运行的 X 列表:
ps -fwwC X
设置变量后,我们可以在 X 中启动应用程序 - 例如,我启动一个时钟:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
该片段的主要想法和结论:
- X需要访问设备:终端、视频卡、输入设备、
- X 本身不显示任何界面元素 - 它是灰色(如果使用“--retro”选项)或特定尺寸(例如,1920x1080 或 1024x768)的黑色画布,以便在其中运行图形应用程序。
- “十字”的移动表明 X 跟踪鼠标的位置并将此信息传输到其中运行的应用程序。
- X 还捕获键盘上的击键并将该信息传输到应用程序。
- DISPLAY 变量告诉图形应用程序在哪个屏幕中(每个 X 在启动时都以唯一的屏幕编号启动),因此需要在我的计算机上运行的哪些屏幕中绘制 X。 (也可以在此变量中指定远程计算机,并将输出发送到网络上另一台计算机上运行的 Xs。)由于 Xs 是在没有 -auth 选项的情况下启动的,因此无需处理 XAUTHORITY 变量或 xhost命令。
- 图形应用程序(或 X 客户端这样称呼它们)在 X 中呈现 - 无法移动/关闭/更改它们“-g(宽度)x(高度)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)”。 带有减号,分别从右侧和从下边缘开始。
- 有两个术语值得一提:X-server(X 的名称)和 X-clients(X 中运行的任何图形应用程序的名称)。 对这个术语的理解有些混乱;许多人的理解恰恰相反。 在这种情况下,当我从“客户端计算机”(远程访问术语)连接到“服务器”(远程访问术语)以便在显示器上显示服务器的图形应用程序时,X 服务器将在监视器(即在“客户端计算机”上,而不是在“服务器”上)和 X 客户端在“服务器”上启动和运行的计算机,尽管它们显示在“客户端计算机”的监视器上。
DE 组件
接下来,让我们看看通常构成桌面的组件。
DE 组件:开始按钮和任务栏
让我们从所谓的“开始”按钮开始。 通常,这是“任务栏”中使用的单独小程序。 通常还有一个小程序用于在运行的应用程序之间进行切换。
在研究了不同的桌面环境之后,我将此类应用程序总结为通用名称“应用程序管理器(启动器/切换器)”,即用于管理应用程序(启动和在正在运行的应用程序之间切换)的工具,并且还指出实用程序是此类应用程序的示例。
- 它以经典(屏幕边缘之一的整个长度)“任务栏”上的“开始”按钮的形式出现:
○ xfce4-面板,
○ 伴侣面板/侏儒面板,
○ 瓦拉面板,
○ 色调2。 - 您还可以有一个单独的“MacOS 形任务栏”(不是屏幕边缘的整个长度),尽管许多任务栏可以以两种样式显示。 相反,这里的主要区别纯粹是视觉上的——存在“悬停时的象形图放大效果”。
○ 码头,
○ 拿铁底座,
○ 开罗码头,
○ 木板。 - 和/或当您按下热键时启动应用程序的服务(在许多桌面环境中,需要类似的组件并允许您配置自己的热键):
○ sxhkd。
- 还有各种菜单形状的“启动器”(来自英文Launch(启动)):
○ d菜单运行,
○ 罗菲-秀德伦,
○ 阿尔伯特,
○ 咕噜。
DE 组件:WM(窗口管理器)
WM(窗口管理器)- 负责管理窗口的应用程序,增加了以下功能:
- 在桌面上移动窗口(包括在窗口的任何部分按住 Alt 键的标准窗口,而不仅仅是标题栏);
- 调整窗口大小,例如通过拖动“窗框”;
- 在窗口界面添加“标题”和用于最小化/最大化/关闭应用程序的按钮;
- 哪个应用程序处于“焦点”的概念。
我将列出最著名的(在括号中我指出默认使用哪个 DE):
我还将列出“带有 DE 元素的旧 WM”。 那些。 除了窗口管理器之外,它们还有“开始”按钮和“任务栏”等元素,这些都是成熟的 DE 的典型元素。 不过,如果 IceWM 和 WindowMaker 都已经在 2020 年发布了更新版本,那么它们到底有多“老”呢? 事实证明,更正确的不是“老”,而是“老前辈”:
除了“经典”(“堆栈窗口管理器”)之外,值得特别一提的是
该项目还值得单独一提
各种窗口管理器的详细列表也可以在
DE 组件: 休息
还值得注意的是以下桌面组件(这里我使用既定的英语术语来描述一种应用程序 - 这些不是应用程序本身的名称):
- 小程序:
- 软件(Widget 工具包)- 通常环境中会提供特定的“最小软件集”:
DE(桌面环境)
由以上组件,就得到了所谓的“桌面设计环境”。 通常其所有组件都是使用相同的图形库和相同的设计原理开发的。 因此,至少可以保持应用程序外观的总体风格。
在这里我们可以重点介绍以下当前现有的桌面环境:
GNOME 和 KDE 被认为是最常见的,XFCE 紧随其后。
各种参数的对比可以在对应的表格中找到
德品种
历史上还有这样有趣的例子:2003-2007年,Sun为Linux做了一个名为“Project Looking Glass”的“3D桌面设计”。 我自己使用过这个桌面,或者更确切地说“玩过”它,因为它很难使用。 这种“3D 设计”是用 Java 编写的,当时还没有支持 3D 的显卡。 因此,所有的效果都由处理器重新计算,计算机必须非常强大,否则一切都会缓慢。 但结果很漂亮。 三维应用程序图块可以旋转/扩展。 可以在桌面的圆柱体中旋转360度全景壁纸。 有几个漂亮的应用:比如以“换CD”的形式听音乐等,你可以在YouTube上观看
轻量级桌面。 该项目自 1996 年以来已经存在了相当长的时间。 近年来,与较重的 KDE 和 GNOME 相比,它在许多需要轻量级和“经典”桌面界面的发行版上非常流行。 它有很多设置和大量自己的程序:终端(xfce4-terminal)、文件管理器(thunar)、图片查看器(ristretto)、文本编辑器(mousepad)。
用于 Elementary OS 发行版。 在这里,我们可以说,有些“桌面”是在一个单独的发行版中开发和使用的,而在其他发行版中使用不多(如果不是“根本不使用”)。 至少他们还没有受到欢迎并让大多数观众相信他们的方法的优点。 Pantheon 旨在构建一个类似于 macOS 的界面。
带坞站面板的选项:
高度关注图形效果和小部件(从其他桌面环境没有日历/时钟等桌面小部件的时代开始)。 使用自己的库。 有一大套自己的“漂亮”应用程序:终端(Terminology)、视频播放器(Rage)、图片查看器(Ephoto)。
这是 Enlightenment17 的一个分支,用于 BodhiLinux 发行版。
最初,创建了一个与 KDE 相对的“经典”桌面界面,它是在 QT 库中编写的,当时在许可证下分发,这对于商业发行来说不太方便。
从第三个版本开始,GNOME 开始附带了 GNOME Shell,它具有“非经典的外观”,并不是所有用户都喜欢(任何突然的界面变化都很难让用户接受)。 因此,出现了以“经典”风格继续开发此桌面的分支项目:MATE 和 Cinnamon。 在许多商业发行版中默认使用。 它有大量的设置和自己的应用程序。
它源自 GNOME2,并继续开发这个设计环境。 它有大量在 GNOME2 中使用的设置和应用程序分支(使用新名称),以免这些分支与 GNOME3 的新版本混淆。
GNOME Shell 的一个分支,为用户提供“经典”风格的界面(如 GNOME2 中的情况)。
它有大量的设置和与 GNOME Shell 相同的应用程序。
GNOME 的“经典”风格分支,作为 Solus 发行版的一部分开发,但现在也作为各种其他发行版的独立桌面。
由 KDE 项目开发的桌面环境。
它具有大量可供简单用户通过图形界面使用的设置以及在此桌面框架内开发的许多图形应用程序。
2008 年,KDE 发布了 KDE Plasma 的新实现(桌面引擎被大量重写)。 此外,与 GNOME/MATE 一样,并非所有 KDE 粉丝都喜欢它。 结果,出现了该项目的一个分支,继续之前版本的开发,称为 TDE(Trinity Desktop Environment)。
使用 Qt 编写的新桌面环境之一(KDE 是在其上编写的)。 它有很多设置并且相当漂亮(尽管这是一个主观概念)和开发良好的界面。 作为 Deepin Linux 发行版的一部分开发。 还有其他发行版的软件包
飞
使用 Qt 编写的桌面环境示例。 作为 Astra Linux 发行版的一部分开发。
轻量级桌面环境。 就像前面的几个例子一样,使用 Qt 编写。 事实上,它是 LXDE 项目的延续,也是与 Razor-qt 项目合并的结果。
正如你所看到的,Linux 中的桌面看起来可能非常不同,并且有一个适合每个人口味的界面:从非常漂亮的 3D 效果到简约,从“经典”到不寻常,从积极使用系统资源到轻量级,从大型屏幕到平板电脑/智能手机。
好吧,我希望我能够了解 Linux 操作系统中图形和桌面的主要组件是什么。
本文的材料于 2020 年 XNUMX 月在一次网络研讨会上进行了测试。 你可以观看
就这样。 我希望这可以帮到你。 如果您有任何问题或意见,请写信。 我很乐意回答。 那么,来学习吧
来源: habr.com