章节一、Linux不同桌面环境

一、GNOME

GNOME桌面环境于1990s后期创建,非常流行。在CentOS和Ubuntu中默认使用。2011年是至关重要的一年——GNOME 2是一个更传统的桌面用户界面,而2011年发布了带非传统的界面的GNOME 3 (官方名称为GNOME Shell),用户反应剧烈,因此也激发好几个GNOME项目的fork。然而随着时间的推移,GNOME Shell重新获得欢迎。

GNOME Shell样例
在这里插入图片描述

GNOME Shell desktop默认组件

名称程序名称或描述
显示管理器GNOME Display Manager(GDM)
文件管理器GNOME Files(常被简称为Files),正式名称为Nautilus
喜欢栏GNOME Shell Dash(常被成为Dock)。
面板位于GNOME Shell帧顶部的单个面板
系统托盘位于单面板的右侧
窗口管理器Mutter

二、KDE Plasma

KDE(The Kool Desktop Environment)始于1996,第一次发布于1998年。随着发展,KDE不仅仅代表桌面环境,它指代其项目组织和支持它的很强大的社区。2009年KDE重命令为KDE Plasma。

KDE样例

在这里插入图片描述

KDE Plasma默认组件

名称程序名或描述
显示管理器SDDM(是Simple Desktop Display Manager的简称)
文件管理器Dolphin
喜欢栏在程序菜单栏内部显示。
面板位于Plasma帧顶部的单个面板
系统托盘位于单面板的右侧
窗口挂件被称为Plasmoids
窗口管理器Kwin

三、Cinnamon

Cinnamon始于2011年,当时正值用户对GNOME 3(GNOME Shell)反响剧烈的时候。Mint发行版的开发者fork了GNOME 3,直到2013年它正式“无GNOME化”。

Cinnamon样例

在这里插入图片描述

Cinnamon默认组件

名称程序名或描述
显示管理器LightDM
文件管理器Nemo(是Nautilus的一个fork分支)
喜欢栏在程序菜单栏内部显示
面板位于Cinnamon帧底部的单个面板(被称为Cinnamon面板)
系统托盘位于单面板的右侧
窗口挂件被称为Cinnamon Spices
窗口管理器Muffin(是GNOME Shell Mutter的一个fork分支)。

四、MATE

同样的,MATE也在GNOME 3 (GNOME Shell)发布后启动。随后在2个月后首次发布,并声称是从GNOME 2衍生而来,与GNOME 2非常相似。

MATE样例

在这里插入图片描述

MATE默认组件

名称程序名或描述
显示管理器LightDM
文件管理器Caja(是Nautilus的一个fork分支)
喜欢栏本桌面是喜欢菜单,通过应用菜单启动器访问
面板位于MATE帧的一个面板,其它面板位于MATE UI上面
系统托盘位于单面板的右侧
窗口管理器Marco(是Metacity的一个fork分支)

五、Xfce

炫丽的 Linux 图形桌面的一个缺点——是它们需要大量的 CPU 和内存资源才能运行。在过去,Linux以给旧硬件带来重生而出名——它能够在旧硬件上运行,而Windows或MacOS系统却做不到。上述几个炫丽图形桌面,都与这一特点相反。
幸好Linux是可灵活定制的系统,有好几种低端的图形桌面,能够在消耗资源极少的情况下运行良好——其中最流行的就是Xfce图形桌面。

Xfce样例

在这里插入图片描述

Xfce默认组件

名称程序名或描述
显示管理器LightDM
文件管理器Thunar
喜欢栏是面板左侧的一个单独图标,显示喜欢的、最近的应用以及应用菜单
面板位于窗口顶部的一个单独面板
系统托盘面板右侧的一组图标
窗口管理器Xfwm,能充分利用其自己的组合管理器

桌面小结

没有一种最优的方案能够适用于所有场景,因此企业在桌面选型时需按自身实际情况考虑,土豪配置可以选更酷炫的桌面,而初创企业(或者追求性价比更高的)则可以选更轻量化的桌面。各取所需!

章节二、X

  • X可以被称为X,X11(1987年Version 11发布),X Window,它提供GUI
  • X设计初始就是以网络为中心的“客户端-服务器”架构

X架构

在这里插入图片描述

在这里插入图片描述

  • X客户端请求display服务
    • 应用使用了X库(如Xlib库)
    • 请求服务(如创建窗口)
    • 接收来自X服务器的事件(如鼠标输入)
  • X服务器提供display服务
    • 跑在本地,接收多个X客户端的请求
    • 管理输入输出设备,如键盘鼠标、显示器
    • 在屏幕上创建、绘制或销毁图形对象
  • X客户端与服务器通过X协议通信
    • 使得在本地与基于网络的图形操作,用起来一样,用户感受不到区别。

X11的实现(implementation)

  • XFree86
  • Xorg

窗口管理器(Window Manager)

  • 一个特殊的X客户端
    • 背景、桌面、主题
    • 虚拟桌面
    • 窗口大小与属性
  • X客户端与X服务器的交互,会被重定向到一个窗口管理器,由窗口管理器处理。
  • 实现
    • GNOME
    • KDE
    • Xfce
    • 等等

显示管理器(Display Manager)

  • 在Window Manager之前的登陆界面,就是属于Display Manager。该界面供用户输入账号密码,并选择一个桌面环境(如果有多个桌面环境的话,如Xfce, Gnome Shell等等)。

在这里插入图片描述

display与Display Manager通过XDMCP协议通信,在display发往Display Manager的request消息中包含display number信息。随后若成功建立连接,DISPLAY变量被自动设置好,随后所有的X客户端,除启动时手动传入display值外,都使用父进程的DISPLAY变量值。这也是为何在桌面右击新建terminal,能够正确弹到当前桌面的原因。

常用设置1

如果想让其他同学的X客户端,弹到自己的桌面,有两种方式xhostXauth

  • xhost + #关闭访问控制,xhost -为相反操作
  • xhost +hostname #关闭对这台名为hostname的机器的访问控制,xhost -hostname为相反操作
  • 使用Xauth来认证,https://tldp.org/HOWTO/Remote-X-Apps-6.html 6.2节,步骤
    • 生成Cookie
    • 传输Cookie
    • 共享家目录;或非共享家目录,则将认证文件传到目标机器的对应位置
    • 启动X客户端,它自动会到对应位置找认证文件(~/.Xauthority

常用设置2

如果因防火墙原因,或因需要使用ssh安全隧道保护X流量的原因,又或者偷懒不想手动设置DISPLAY(通常是跨数据中心),不想走普通的X11端口协议,则可以配置ssh隧道转发X11

  • ssh_config文件增加ForwardX11 true

  • ssh登陆服务器时加上-X,对X11进行ssh隧道转发。

常用设置3

数据中心多环境复杂,用户不想手动设置DISPLAY,site管理员也可以配置ssh时将DISPLAY传送过去

  • 在源服务器的ssh_config文件增加SendEnv DISPLAY
  • 在目的服务器的sshd_config文件增加AcceptEnv DISPLAY

这样用户无论ssh到哪里,正确的DISPLAY都随他走到哪里。

常用设置4

C Shell中手动设置DISPLAY
setenv DISPLAY display_hostname:display_number.screen_number
其中

  • .screen_number一般不写,或写.0。这个设置是在多屏的环境下,将X客户端显示在什么屏幕上。现在很多X Server都将物理多屏逻辑化为单屏,因此默认情况下可以不设置。
  • 如X客户端所在的服务器就是X Server,则可以省略display_hostname

常用快捷键1

Ctrl+Alt+Backspace重启X Server,用于X Server卡住的情况。

图片来源

各图片来自互联网。

参考资料

https://spins.fedoraproject.org/en/cinnamon/

https://learning.oreilly.com/library/view/lpic-1-linux-professional/9781119582120/c06.xhtml

Logo

更多推荐