一、Linux查看版本
查看Linux内核版本命令
1、cat /proc/version
2、uname -a
查看Linux发行版本
- lsb_release -a
- cat /etc/issue
查看Linux桌面版本
- 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的重要区别之一
桌面环境是一个组件的组合体,为你提供常见的 图形用户界面(graphical user interface)(GUI)元素组件,如图标、工具栏、壁纸和桌面小部件。大多数桌面环境都有自己的一套集成的应用程序和实用程序,比如文件资源管理器、桌面搜索、应用程序菜单、壁纸和屏保实用程序、文本编辑器等,这样用户在使用操作系统时就能得到统一的感受。
Linux桌面本质是一个应用程序,因此Linux桌面也种类繁多,如GNOME、KDE等,一般发行版都可以支持多种桌面(如Ubuntu默认是GNOME,也可以使用其它的桌面环境)。桌面环境就像人的穿戴一样,不同的人喜欢不同的风格,有人喜欢简洁,有人喜欢华丽,比如笔者喜欢简洁耐用哪怕简陋一点都没关系。
1、X协议
Linux图形界面使用X协议。主要有X应用程序(客户端)和X服务器组成,也就是说Linux图形界面天然对远程桌面支持。当然一般X服务和X应用(客户端)运行在同一台电脑。
![X协议(client-server)](https://i-blog.csdnimg.cn/blog_migrate/421a8ea7ab1e936a4a0ba06591881885.png)
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)。
![X-Client示意图](https://i-blog.csdnimg.cn/blog_migrate/42ca29f0e463e832d7801600d84fd55b.png)
(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桌面环境架构(Gnome pk KDE)](https://i-blog.csdnimg.cn/blog_migrate/ec5cfaf8dcd9dddecfbfb44cb13dbc9a.png)
- 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。
《linux-mate桌面命令集锦》列举了中标麒麟下常用的mate命令说明清单。
2. 银河麒麟,基于MATE,改动稍大。银河麒麟与Ubuntu合作的优麒麟使用的桌面是UKUI轻量级桌面环境,由中国团队主导开发和维护,默认搭载在优麒麟开源操作系统和银河麒麟/中标麒麟商业发行版中。但是最新的银河麒麟V10中显示MATE。
3. UOS/深度,使用自己开发的DDE桌面。
以下资料来自于https://www.deepin.org/zh/developer-community/architectural-design/
深度桌面系统架构如下图:
![UOS/Deepin深度桌面体系结构](https://i-blog.csdnimg.cn/blog_migrate/e308c69bb37e3fc576beb29f85d3c23a.png)
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环境“差异”。另外差别较大是各发行版对集成的软件的适配经验和系统调优能力,表现在稳定性和性能上。
|注| 打个比方,就像手机系统一样,有人喜欢简洁更接近原生系统的手机,有人喜欢界面丰富绚丽的手机。