图形如何在Linux中工作:不同桌面环境概述

本文介绍图形在Linux中的工作方式以及它们由哪些组件组成。它包含许多桌面环境实现的屏幕截图。 



如果您实际上并没有真正区分KDE和GNOME,或者想了解KDE和GNOME的其他替代方法,那么本文适合您。它是一个概述,尽管其中有很多名称和很少的术语,但该材料对于初学者和仅针对Linux的读者也将很有用。



在设置远程访问和实现瘦客户端时,该主题也可能使高级用户感兴趣。我经常用“在服务器上只有命令行,并且我不打算更详细地研究图形的计划,因为对于普通用户来说这是必需的”,我会遇到经验丰富的Linux用户。但是,即使Linux专家也对发现ssh命令的“ -X”选项感到惊讶和高兴(这对于了解X服务器的工作方式和功能很有用)。



来源



我在LANIT Networking Academy教授Linux课程已有15年了»而且,我可以肯定的是,在接受过培训的五千多人中,有很多人读过并且可能写过关于哈勃的文章。这些课程总是非常丰富(平均课程时间为五天),您需要谈论至少需要十天才能完全熟悉的主题。在整个课程中,我总是根据读者(新来的新手或经验丰富的管理员)以及“观众的问题”来选择要传达的内容和细节,以便将更多时间用于命令行实用程序及其实际应用...有足够的那些必须牺牲一点。这些是“ Linux的历史”,“ Linux发行版中的差异”,“关于许可证:GPL,BSD,...”,“关于图形和桌面环境”(本文的主题)等。并不是说它们并不重要,但是通常会有更多相关的“从现在到现在”的问题,只有大约五天的时间...但是,为了对Linux操作系统的基本知识有一个一般的了解,请了解可用的版本(因此,即使使用一个特定的Linux发行版,您仍然可以对所有这些内容有更广泛的了解一个巨大而巨大的世界,称为“ Linux”),研究这些主题非常有用且必要。 



在本文的过程中,我为每个组件提供了链接,供那些想深入研究该主题的人使用,例如,维基百科上的文章(如果有英文和俄文,则指向更完整/有用的版本)。



对于基本示例和屏幕截图,我使用了openSUSE发行版。任何其他社区开发的发行版都可以与存储库中的大量软件包一起使用。很难但有可能在商业发行版上演示各种台式机设计,因为它们通常仅使用一个或两个较为知名的台式机环境。因此,开发人员缩小了发布稳定的,经过调试的操作系统的任务。在同一系统上,我安装了在存储库中找到的所有DM / DE / WM(以下术语的解释)。 



带有“蓝框”的屏幕截图是在openSUSE上拍摄的。 



屏幕截图中显示了带有“白色框架”的屏幕截图。 



带有“灰色框架”的屏幕快照是从Internet上获取的,作为过去台式机设计的示例。



所以,让我们开始吧。



组成图形的主要组件



我将突出显示三个主要组件,并按它们在系统启动时的启动顺序列出它们: 



  1. DM(显示管理器);
  2. 显示服务器;
  3. DE(桌面环境)。


此外,作为桌面环境中的重要子项目: 



  • Apps Manager /启动器/切换器(“开始”按钮); 
  • WM(窗口管理器);
  • 桌面环境随附的各种软件。


有关每个项目的更多详细信息。



DM(显示管理器)



当“图形”启动时启动的第一个应用程序是DM(显示管理器),即显示管理器。其主要任务:



  • 询问哪些用户进入系统,请求认证数据(密码,指纹);
  • 选择要启动的桌面环境。


目前,各种发行版被广泛使用: 



  • SDDM(已替换KDM),
  • GDM
  • LightDM
  • XDM
  • 还可以提及Fly-DM(在AstraLinux中使用)。


现有DM列表在Wiki文章中保持最新 











值得注意的是,以下屏幕截图使用相同的LightDM显示管理器,但使用不同的发行版(发行版在括号中命名)。借助各种发行版的设计师的工作,查看此DM的外观如何。













这种变化的主要目的是要弄清楚,有一个这样的应用程序负责启动图形并允许用户访问该图形,并且该应用程序的不同实现在外观和功能上有所不同(选择设计环境,用户选择,版本不好)。看到用户,可以通过XDMCP协议进行远程访问)。



显示服务器



Display Server是一种图形基础,其主要任务是与视频卡,监视器和各种输入设备(键盘,鼠标,触摸板)配合使用。也就是说,以“图形”呈现的应用程序(例如,浏览器或文本编辑器)不需要知道如何直接与设备一起使用,也不需要知道驱动程序。X Window会处理所有这一切。



当我们谈论Display Server时,在Linux和Unix中已经有很多年了,X Window System应用程序,或者在普通人中,X(X)就是这个意思。 



现在很多发行版与替代X韦兰 您还可以阅读: 









首先,让我们启动X和其中的几个图形应用程序。



研讨会“在其中运行X和应用程序”



我将使用新创建的webinaruser用户执行所有操作(以root身份执行操作会更容易,但更安全)。



  • 由于X'am需要访问设备,因此我授予访问权限:设备列表是通过在日志(/home/webinaruser/.local/share/xorg/Xorg.77.log)中启动X'ov时查看错误来确定的 


% 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上的哪些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'. ( X', .) X' -auth, XAUTHORITY xhost.
  • ( X-) X' — // «-g ()x()+()+()». «»  .
  • 有两个值得说明的术语:X服务器(称为X)和X客户端(称为在X中运行的任何图形应用程序)。对这种术语的理解有些混乱,许多人则完全相反。如果我从“客户端计算机”(以远程访问的术语)连接到“服务器”(以远程访问的术语),以在显示器上显示服务器上的图形应用程序,则X-server在显示器(也就是说,尽管X客户端显示在“客户端计算机”的监视器上,但是X客户端在“服务器”上启动并运行。 




DE组件



接下来,让我们看一下通常组成台式机的组件。



DE组件:“开始”按钮和任务栏



让我们从所谓的“开始”按钮开始。这通常是任务栏中使用的单独的小程序。它通常还具有用于在正在运行的应用程序之间进行切换的小程序。





在不同的桌面环境中,我将以“ Apps Manager(Launcher / Switcher)”的通用名称来概括这些应用程序,即用于管理应用程序(启动和在启动的应用程序之间切换)的工具,并指出作为此类应用程序示例的实用程序...



  • 它以经典样式(屏幕边缘之一的全长)“任务栏”上的“开始”按钮的形式发生:



    ○xfce4-面板,

    ○伴侣面板/ gnome面板,

    ○vala面板,

    ○tint2。
  • «MacOS- » ( ), . — « ».



    ○ docky,

    ○ latte-dock,

    ○ cairo-dock,

    ○ plank.
  • / , « » ( ):



    ○ sxhkd.
  • - «» ( . Launch ()):



    ○ dmenu-run,

    ○ rofi -show drun,

    ○ albert,

    ○ grun.




DE: WM (Window Manager)



更多俄罗斯



更多的英语



WM(窗口管理器) -一种应用程序,它负责管理窗口,增加了以下功能:



  • 在桌面上移动窗口(包括按住窗口任意部分的Alt键,而不仅仅是标题的标准窗口);
  • 调整窗口大小,例如通过拖动到“窗口框架”之外;
  • 添加“标题”和按钮以最小化/最大化/关闭窗口界面的应用程序;
  • 重点关注哪个应用程序的概念。




我将列出最著名的(在括号中,我指出默认情况下使用的DE):







我还将列出“带有DE元素的旧WM”。那些。除了窗口管理器外,它们还具有诸如“开始”按钮和“任务栏”之类的元素,这些元素在成熟的DE中更为固有。但是,如果IceWM和WindowMaker都已经在2020年发布了更新的版本,那么他们多大了。事实证明,它不是“老”,而是“老计时器”,更正确:















除了“经典”(“堆栈窗口管理器”)之外,值得一提的是平铺WM,它允许您在整个屏幕上平铺窗口,对于某些应用程序,还可以为全屏启动的每个应用程序提供单独的桌面。对于以前从未使用过它们的人来说这有点不寻常,但是由于我本人已经使用了很长时间了,我可以说它非常方便,而且您很快就会习惯这种接口,在此之后,“经典”窗口管理器似乎并不方便。







还值得一提的是Compiz项目和诸如“ Composite Window Manager”的概念,该概念使用硬件加速来显示透明度,阴影和各种三维效果。大约10年前,Linux桌面上出现了3D效果的热潮。DE中内置的许多窗口管理器现在都在部分地利用了复合功能。Wayfire最近出现-一种与Wayland具有类似Compiz功能的产品。





比较文章中还可以找到不同窗口管理器的详细列表 



DE组件:其余



还要注意桌面的以下组件(在这里,我使用公认的英语术语来描述应用程序的类型-这些不是应用程序本身的名称):



  • 小程序:
  • 软件(窗口小部件工具箱)-环境通常会提供“最小数量”的软件:


DE(桌面环境)



英文更多



从上面列出的组件中,可以获得所谓的“桌面设计环境”。通常,其所有组件都是使用相同的图形库和相同的设计原理开发的。这至少保持了应用程序外观的一般样式。



在这里,我们可以区分以下当前存在的桌面环境:





GNOME和KDE被认为是最常见的,而XFCE紧随其后。





可以在相应的Wikipedia文章中找到以表格形式进行的各种参数比较。  



品种DE





Project_Looking_Glass



甚至还有一些历史上有趣的例子:2003-2007年,Sun为Linux设计了一个名为“ Project Looking Glass”的“ 3D桌面设计”。我自己使用了这个台式机,或者说是“玩过”,因为它很难使用。这种“ 3D设计”是在没有3D图形卡的时候用Java编写的。因此,所有效果都由处理器计算,计算机必须功能强大,否则一切运行缓慢。但是结果很美。三维应用板可以旋转/扩展。可以从360度全景图中打开带有墙纸的桌面圆柱体。它们本身具有多种精美的应用程序:例如,以“更换CD”的形式收听音乐等。您可以在YouTube上观看有关该项目的视频,只有这些视频的质量很可能会很差,因为在那些年中无法上传高质量的视频。





Xfce



轻量级桌面。自1996年以来,该项目已经存在了很长时间。近年来,与较重的KDE和GNOME相比,它非常流行,后者在许多发行版中都需要轻便的“经典”桌面界面。它具有许多设置和大量程序​​:终端(xfce4-terminal),文件管理器(thunar),图像查看器(ristretto),文本编辑器(mousepad)。



 



Pantheon 



在“基本OS”发行版中使用。在这里,我们可以说有些“桌面”是在一个单独的发行版中开发和使用的,在其他发行版中并未被大量使用(如果根本不使用)。至少他们还没有得到普及,并说服了大部分听众他们采用这种方法的好处。Pantheon旨在构建类似于macOS的界面。 





码头选项:





启蒙



高度重视图形效果和窗口小部件(自从其他桌面环境在桌面上没有窗口小部件(如日历/时钟)的日子起)。使用自己的库。它有大量的“美丽”应用程序:终端(术语),视频播放器(Rage),查看图片(Ephoto)。





Moksha



这是Enlightenment17的一个分支,被BodhiLinux发行版使用。 





GNOME



最初是一个“经典”桌面界面,与在Qt库中编写的KDE相比,创建时是在当时的许可下分发的,该许可对于商业发行而言并不十分方便。 





GNOME_Shell



从第三个版本开始,GNOME开始随GNOME Shell一起发布,它具有“非经典外观”,并非所有用户都喜欢(界面上的任何大变化都很难让用户接受)。结果-出现了以“经典”风格继续开发此桌面的fork项目:MATE和Cinnamon。默认情况下,在许多商业发行版中使用。具有大量的设置和应用程序。 





MATE 



基于GNOME2,并将继续发展该设计环境。GNOME2中使用了大量的应用程序设置和分支(使用新名称),以免使分支与GNOME3的新版本混淆。





肉桂



GNOME Shell的一个分支,为用户提供“经典”样式的界面(如GNOME2中的情况)。 



具有许多设置和与GNOME Shell相同的应用程序。





Budgie



GNOME的“经典”样式分支,已作为Solus发行版的一部分进行了演变,但现在也可以作为独立桌面在其他各种发行版中提供。





KDE_Plasma(或通常简称为KDE) 



由KDE项目开发的桌面环境。 



它具有大量的设置,可供普通用户通过图形界面以及在此桌面内开发的许多图形应用程序使用。





Trinity



在2008年,KDE发布了新的KDE Plasma实现(台式机引擎被大量重写)。另外,与GNOME / MATE一样,并不是所有的KDE爱好者都喜欢它。结果,出现了该项目的分支,继续了先前版本的开发,该版本称为TDE(Trinity桌面环境)。





Deepin_DE



使用Qt(在其上编写KDE)编写的较新的桌面环境之一。它具有许多设置,并且非常漂亮(尽管这是一个主观的概念)和完善的界面。作为Deepin Linux发行版的一部分开发。也有其他发行包





Fly 



使用Qt编写的桌面环境示例。作为Astra Linux发行版的一部分开发的。 





LXQt



轻量级桌面环境。像之前的几个示例一样,使用Qt编写。实际上,这是LXDE项目的延续,也是与Razor-qt项目合并的结果。



如您所见,Linux桌面看起来可能会非常不同,并且将有一个适合每个人的口味的界面:从非常漂亮的3D效果到简约,从“经典”到不寻常,从积极使用系统资源到轻量级,从大型平板电脑/智能手机的屏幕。



好吧,我希望我能对Linux中图形和桌面的主要组成部分有所了解。



本文的材料于2020年7月在网络研讨会上推出。您可以在这里观看



就这样。希望对您有所帮助。如果您有任何疑问或意见,请写信。我很乐意回答。好吧,快来LANIT网络学院学习吧!



All Articles