Linux的xorg、显示管理器和窗口管理器以及桌面环境之间的关系

   linux图像显示采用的是X Window system(也可以叫做X11或者直接叫X)这套协议,我们平时经常见到的X就是指的这套协议。这套协议里面规定的架构是C/S架构,即客服端/服务器架构。客服端是x client,服务端是x server。架构如下图所示(图片来自wiki百科):
Linux的xorg、显示管理器和窗口管理器以及桌面环境之间的关系_第1张图片
   服务端(x server)负责管理键盘、鼠标、显卡、显示器等输入输出设备。客户端收到来自键盘、鼠标等输入设备的数据,通知服务端进行显示,服务端通过控制输出设备进行输出。这样的好处是,客户端和服务端不用在一台电脑上,客户端也可以在网络上。
   客户端(x client)客服端就是计算机上运行的程序(比如Firefox等)。客户端想要显示图形,必须通过服务端,然后让服务端来负责显示。
  上面说的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)。这样重启之后才能登录图形界面。

本文参考借鉴的内容如下:
作者:韩朴宇
链接:https://www.zhihu.com/question/321725817/answer/669568568
来源:知乎
作者写得非常好,推荐大家打开上面的链接看看。

你可能感兴趣的:(Linux)