信创终端之Linux桌面系统

一、Linux查看版本

查看Linux内核版本命令

1、cat /proc/version

2、uname -a

查看Linux发行版本

  1. lsb_release -a
  2. cat /etc/issue 

查看Linux桌面版本

  1. env | grep DESKTOP_SESSION= 或 echo $DESKTOP_SESSION

#命令只能进入桌面系统后,在桌面系统启动命令窗口执行才能得到结果,使用SSH工具连接到系统,执行此命名得不到任何结果。

二、Linux桌面的架构

linux图形界面的实现只是linux下的应用程序实现,linux本质是基于命令行的操作系统,linux和桌面环境的关系就相当于当年的DOS和Windows 3.0一样,Windows 3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别(GUI)的系统。同样桌面环境只是linux下的一个应用程序而已,不是系统的一部分。Windows 95及以后的图形界面是Windows操作系统的一部分,图形界面在系统内核中就实现了。但linux却不一样,这也WINDOWS和linux的重要区别之一

Linux桌面本质是一个应用程序,因此Linux桌面也种类繁多,如GNOME、KDE等,一般发行版都可以支持多种桌面(如Ubuntu默认是GNOME)。

1、X协议

Linux图形界面使用X协议。主要有X应用程序(客户端)和X服务器组成,也就是说Linux图形界面天然对远程桌面支持。当然一般X服务和X应用(客户端)运行在同一台电脑。

信创终端之Linux桌面系统
X协议(client-server)

X11R6实际上是XProtocol version 11 Release6的意思,不同版本的X协议是不能通信的,现在的X服务器软件和X应用程序都遵循X11R6。

(1)X Server从键盘,鼠标或任何其他输入设备获取输入,并根据当前运行的X Client,将数据发送到内核进一步处理。 然后处理结果返给X Server,X Server在屏幕上呈现结构。XFree86是实现X协议的一个免费X服务器软件(现在的linux发行版都用Xorg)。

(2)任何需要GUI并且与X Server交互兼容的应用程序都称为X Client,像Mozilla firefox,WPS等。XClient应用主要使用QT/GTK开发。(在QT基础上实现KDE,在GTK基础上实现GNOME)。

信创终端之Linux桌面系统
X-Client示意图

(3)在X Server-Client 框架中,Client可以在本地的,也可以在远程。例如你的计算机上没有Firefox浏览器,可以ssh到另外一台有Firefox浏览器的Linux电脑,因为Firefox需要GUI,需要借助X fowarding,远端电脑作为X Server给X Client发送指令,而Firefox实际上还是在远程远端的电脑上。

 (4)苹果图形界面用的也是X协议,是做在系统内核里的,所以性能明显好很多。

 2. 主流的桌面环境(Server+Client)

Linux主流的桌面环境很多,如Gnome、KDE、MATE(GNOME2基础上的轻量级)、Unity(GNOME外壳)、Cinnamon(基于GNOME3),国产Linux比较喜欢采用MATE等轻量级桌面,可能更容易模拟Windows桌面环境。

下图是GNOME和KDE中的桌面环境架构。

信创终端之Linux桌面系统
Linux桌面环境架构(Gnome pk KDE)
  • Desktop Environment 显示桌面环境.,为你提供统一的用户体验。
  • Gnome Desktop Session Manager 管理一个窗口管理器的登录会话。Gnome Session Manager 让用户能维持一种对窗口环境的设定和状态。
  • GDM Display Manager 为一个登录会话管理一个或多个本地 /远程的显示服务器 (通常是通过窗口管理器进行)。
  • window Manager 为应用程序呈现一个独立的,可改变大小的虚拟显示器(窗口)。窗口管理器是一个管理窗口的软件,允许打开,关闭窗口re-sized并移动窗口。它也能够向用户呈现菜单和选项。它控制用户GUI的外观和感觉。
  • Display Server 对网络透明的显示驱动接口。
  • Driver 提供显示硬件的一个位图类型接口 (framebuffer)。

三、国产信创终端桌面

以龙芯CPU为例,龙芯公司提供了龙芯CPU下的基本Linux操作系统“loongnix”(Fedora类),对内核提供了龙芯CPU体系结构支持,并提供了基础软件的支持。在龙芯CPU架构下,各个操作系统发行版从技术角度而言,内核都是龙芯提供支持的Linux内核,重要的API如JDK很多是龙芯公司进行基本优化。主要区别是在于最上层的桌面环境。

1. 中标麒麟,基本直接是MATE桌面,修改的非常接近windows7.

2. 银河麒麟,基于MATE,改动稍大。银河麒麟与Ubuntu合作的优麒麟使用的桌面是UKUI轻量级桌面环境,由中国团队主导开发和维护,默认搭载在优麒麟开源操作系统和银河麒麟/中标麒麟商业发行版中。但是最新的银河麒麟V10中显示MATE。

3. UOS/深度,使用自己开发的DDE桌面。

以下资料来自于https://www.deepin.org/zh/developer-community/architectural-design/

深度桌面系统架构如下图:

信创终端之Linux桌面系统
UOS/Deepin深度桌面体系结构

DisplayManager深度系统使用的是由Ubuntu开发的LightDM,其他主流的显示管理器还有 Gnome 的 GDM 和 KDE 的 KDM,使用LightDM的原因主要是 LightDM 非常的轻量,不绑定任何桌面环境,而且提供Gtk+、Qt、Html5等各种前端界面的定制接口,非常方便。

DDE Service基本就是会话和调度层,相当于Gnome的 gnome-session-daemon ,深度团队用 golang 重写了整个后台守护进程的代码。和 Gnome一样调用底层的库(network-manager、upower、udisk、bluez、pluseaudio、cups、polkitd、gvfsd) 对桌面环境和应用提供更为抽象和高级的服务。

DDE API和DDE UI都是深度实现的API,方便应用开发。深度原生的应用程序很多是利用了这些API,实现风格统一,但这样,也会造成深度的原生应用难于移植到其它桌面环境中。

原生与魔改。Loongnix也就是Fedora可以算作是最原生系统,中标麒麟桌面更多的理念是和windows环境“替代”差异和成本尽量小,深度(UOS)则比较强调个性化及和windows环境“差异”。另外差别较大是各发行版对集成的软件的适配经验和系统调优能力,表现在稳定性和性能上。

|注| 打个比方,就像手机系统一样,有人喜欢简洁更接近原生系统的手机,有人喜欢界面丰富绚丽的手机。