5 Linux 桌面系统简介

通过阅读本章,你将会了解到以下几项内容。

  • 从 Live CD/DVD 运行系统
  • X Window 系统
  • 新秀 Wayland 的评价
  • 常见的桌面环境(Desktop Environments)简介

随着技术的发展,电脑桌面操作系统也在不断的完善,虽然不能说是夕阳产业,但也在趋向一个完美的天花板。个人认为很多在 windows 和苹果桌面操作系统下的软件和操作体验,在 Linux 桌面这边一定会慢慢实现并赶上来的。未来软件会趋同,会跨平台。目前为止, Linux 桌面系统下已经有足够多的软件满足一般的日常生活需求了。

5.1 运行 Live CD/DVD 试用系统

本文一直强调“ 能动手的就不要光动口” ,意思就是最好安装 GNU/Linux 操作系统。如果您不喜欢安装,也可用在不安装的前提下试用该系统。下面介绍如何试用系统。当然下载安装镜像还是不可避免的。

5.1.1 下载深度系统

下载深度操作系统系统最新版本的镜像文件(以便您能够体验到最新特性),下载地址:https://www.deepin.org/download/ 如图??所示,

如果您只是想试用系统,可以选择下载Live 系统

注意:为了更加专注系统的发展,deepin 15.4版本将不再提供32位官方iso镜像,如需获取和技术支持,请发送邮件到

5.1.2 把系统写到U盘里

安装说明: https://www.deepin.org/installation/

现在流行 U 盘安装,当然也可用光盘安装。下面只介绍 U 盘启动器的制作,到这里下载系统启动盘制作工具。 根据自己操作系统情况请选择对应版本。另外也可用选择其他的制作软件,比如 Ultraiso 软件,网上搜索“ 使用UltraISO(软碟通)制作U盘启动盘完整教程” ,可以找到相当多的资料,这里从略。

5.1.3 开始试用

试用版有一些功能受限,但是可以感受一下。不过还是强烈建议安装正常版本的软件。

参考:

5.2 X Window 系统简介

当前主要的linux桌面发行版基本都是采用X Window 系统来提供桌面服务。

X Window是一种以位图方式显示的软件窗口系统,最初是1984年麻省理工学院的研究成果,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。

X Window通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上,几乎所有的操作系统都能支持与使用X Window,GNOME和KDE也都是以X Window为基础建构成的。

X Window向用户提供基本的窗口功能支持,而显示窗口的内容、模式等可由用户自行定制,在用户定制与管理X Window系统时,需要使用窗口管理程序,窗口管理程序包括AfterStep、Enlightenment、Fvwm、MWM和TWM Window Maker等,供习惯不同的用户选用。 可以定制的窗口环境在给用户带来了个性化与灵活性的同时,要求用户有相对比较高的使用水平,不过这种机制带来的好处也是明显的,它不象Microsoft Window那样将窗口元件的风格、桌面、操作方式等千篇一律地规定死,只可以换一下墙纸、图标、调整字体大小等等,在X Window系统中可以有多种桌面环境的选择。

5.2.1 基本部件

X系统由三个相关的部分组成:服务端(Server)、客户端(Client)和通讯通道 (communication channel)。

服务端(Server)

Server是控制显示器和输入设备(键盘和鼠标)的软件。Server可以创建视窗,在视窗中绘图和文字,回应Client程序的“ 需求” (requests),但它不会自己完成,只有在Client程序提出需求后才完成动作。

每一套显示设备只对应惟一的Server,而Server一般由系统供应商提供,通常无法被用户修改。对操作系统而言,Server只是一个普通的用户程序而已,因此很容易更换新版本,甚至更换成第三方提供的原始程序。

客户端(Client)

Client是使用系统视窗功能的一些应用程序。在X下的应用程序称做Client,原因是它是Server的客户,要求Server回应它的请求完成特定动作。

Client无法直接影响视窗行为或显示效果,它们只能送一个请求(request)给Server,由Server来完成这些的请求。典型的请求通常是“ 在某个视窗中写‘Hello World’的字符串” ,或者从A到B划一条直线。

Client的功能大致可分为两部分:向Server发出“ 需求” 只是它的一部分功能,其他的功能是为用户执行程序而准备的。例如输入文字信息、作图、计算等等。通常,Client程序的这一部分是和X独立的,它对于X几乎不需要知道什么。通常,应用程序(特别是只大型的标准绘图软件、统计软件等)对许多输出设备具有输出的能力,而在X视窗中的显示只是Client程序许多输出中的一种,所以,Client程序中和X相关的部分只占整个程序中很小的一部分。

用户可以通过不同的途径使用Client程序:通过系统提供的程序使用;通过第三方的软件使用;或者用户为了某种特殊应用而自己编写的Client程序来使用。

通讯通道 (Communication channel)

Client藉著它送 “需求” 给Server,而Server藉著它回送状态 (status) 及一些其它的资讯 (information)。

只要 Client 和 Server 都知道如何使用通道,通道的本身并不是很重要,在系统或网路上支援通讯型态的需求是内建於系统基本的X视窗函数馆(library),所有和通讯型态有关的事都从函数馆独立出来,Client和Server之间的通讯只要藉著使用这函数馆(在标准X版为xlib)。

Server和Client之间的通信

Server和Client通信的方式大致有两类,对应于X系统的两种基本操作模式。

第一类,Server和Client在同一台机器上执行,它们可以共同使用机器上任何可用的通信方式做互动式信息处理。在这种模式下,X可以同其他传统的视窗系统一样高效工作。

第二类,Client在一台机器上运行,而显示器和Server则在另一台机器上运行。因此两者的信息交换就必须通过彼此都遵守的网络协议进行,最常用的协议为TCP/IP。这种通信方式一般被称为网络透明性,这也几乎是X独一无二的特性。

5.2.2 用户接口

X的设计目标之一就是能创建许多不同形式的用户接口。其他的是视窗系统提供具体的交互方式,而X只提供一般的架构,让系统创建者建造所需的交互风格。这种特性使得开发者可以在X的基础上建造全新的接口,并且可以在任何时刻根据自己的需要选用适当的接口。

一般来说,用户接口可以分为两部分。管理接口也就是视窗管理器,是命令的最高层,它负责在屏幕上创建或重建视窗,改变视窗的大小、位置,或者将视窗改变成图示等。

应用接口确定了用户和应用程序之间的交互风格,即用户如何利用视窗系统的设备程序来控制应用程序并传递输入行为。例如,如何用鼠标来选定一个选项。

5.2.3 用户界面

X刻意不去规范应用程序在用户界面上的具体细节设计,这些包括按钮、菜单和窗口的标题栏等等,这些都由窗口管理器(window manager)、GUI构件工具包、桌面环境(desktop environment)或者应用程序指定的GUI(如POS)等等的用户软件来提供,然而因为架构设计上保留了高度的弹性发挥空间,致使多年来X在“ 基础、典型、一般性” 的用户界面上,也都有数目惊人的多样性选择。

在X的系统架构中,窗口管理器用于控制窗口程序的位置和外观,其界面类似Microsoft的Windows或者Macintosh(例如:KDE的KWin或者GNOME的Metacity),不过在控制机制上却截然不同(如:X提供的基本窗口管理器twm)。窗口管理器可能只是个框架(如:twm),但也可能提供了全套的桌面环境功能(如:Enlightenment)。

虽然不同的X用户界面可以有很大的差异,然而绝大多数的用户在使用X时,多是用已经打包的桌面环境,这种桌面环境不仅包含窗口管理器,还具备各种应用程序以及风格一致的界面,目前最流行的桌面环境是GNOME和KDE,二者已普遍应用于Linux操作系统上,而UNIX所用的标准桌面环境多是通用桌面环境CDE,然而有些UNIX也开始采用GNOME。

此外,X桌面环境及组件虽然很多,但同时也需要保持兼容性与互通性,这些由freedesktop org积极与努力地维持各种不同X桌面环境的兼容性,使竞争态势下仍不失X的兼容本色。

5.2.4 优缺点

优点

(1)任务分工明确

客户端可以在远程电脑上执行计算任务,而X Server仅负责复杂的图形显示,充分发挥X Server在显示上的优势。

只有X Server服务端与硬件打交道,所有的客户端都与硬件无关,这让不同的平台上的移植变得很容易。 客户端可以在不同的电脑上运行,从巨型机到个人电脑,从而充分发挥网络计算的优越性。

X系统只负责显示图形,并不限制显示和操作的风格,因此不同的X Window的风格并不相同,用户可以根据自己的喜好进行选择。 由于X Window系统只提供了最基本的系统调用,而具体的视窗都有很多共性,因此要开发X应用程序,应该首先使用开发工具包,而没有必要直接使用最基本的X Window 的系统调用,以简化编写程序的工作量。

(2)独立于操作系统

X不是内置于操作系统,它只是比用户层次稍高一些。在系统中也是一个相对独立的元件。这样做有如下优点:

  • 易于安装和改版,甚至去除。这种工作不需要重启系统,也不会对其他应用程序造成干扰。
  • 第三方很容易支持并加强它的功能。
  • X不会制定操作系统,只是一个标准,这也是第三方开发软件的原动力。
  • 为了开发者。在Server上进行工作时,如果程序异常中断,只会影响到视窗系统,不会造成机器的损坏或操作系统内核的破坏。

缺点

(1)稳定性不强

在PC世界里,需要第三方硬件驱动的非主流的个人计算机软件往往不能支持那些专为Microsoft Windows出品的设备。X Window也不例外,它的实现往往缺少较新(或者非常旧)的高效的显卡驱动。 X Window的C/S体系(C/S架构)设计在应用程序和显示硬件之间多加了一层软件,导致绘图效率下降,所以引起了一些批评。 X也被批评提供了过多的对硬件的直接访问,从而影响了系统的稳定性。

(2)不规范的用户界面

X刻意不去规范用户界面和程序之间大多数的通信,导致出现了许多非常不同的界面,同时造成程序之间协同的困难;而客户机之间的互操作规范ICCCM以难以正确实现而闻名。后来的标准化尝试,也于事无补。长久以来这已经成为用户和程序员的噩梦。 直到最近,X也没有好地解决显示与打印机所打印的内容一致性(所见即所得)的解决方案。

(3)网络通信能力弱

X不能像VNC那样把客户端的通信从一个服务端卸下然后再附加到另一个上,但现在正在为X增加此功能的工作,另外还要实现通过VNC实现X Server的显示。 X Server和远端客户机之间的网络通信使用明文的缺陷,让攻击者使用封包截取程序就能够截获和阅读它。这一缺陷一般可以通过在SSH通信上使用X来解决。 设备中立和客户端与服务端的分离还带来了一定性能开销。

参考:

5.3 王勇谈 Wayland

本篇大部分为转载,有改动。

Wayland是一个简单的“ 显示服务器” (Display Server),与X Window属于同一级的事物,而不是仅仅作为X Window下X Server的替代(注:X Window下分X Server和X Client)。也就是说,Wayland不仅仅是要完全取代X Window,而且它将颠覆Linux桌面上X Client/X Server的概念,以后将没有所谓的“ X Client” 了,而是“ Wayland Client” 。更确切的说,Wayland只是一个协议(Protocol),就像X Window当前的协议——X11一样,它只定义了如何与内核通讯、如何与Client通讯,具体的策略,依然是交给开发者自己。所以Wayland依然是贯彻“ 提供机制,而非策略” 的Unix程序。

Wayland相对于古老的X11来说最大的提升是,Gtk/Qt 这些图形库进行图形绘制时,不用像X11那样发送绘制消息到XServer来进行绘制,而是由Client自己进行图形绘制,Wayland只用担任图层混合器的作用。这样不但减少了X Client和X Server之间不必要的通讯,而且因为由Client自己进行渲染,所以很多画面撕裂和闪屏的现象从原理上就避免了。

大家可以看一下下面的两张架构图,图??和图??,来理解两者的差别:

Wayland 因为要彻底从技术架构上颠覆Linux几十年X11的渲染方式,不论从架构设计还是代码实现上都会非常复杂,不但要开发协议本身,还需要开发适合Wayland的混合器和窗口管理器,最后导致Wayland 1.0稳定版一再跳票。

而Ubuntu在独立开发Unity桌面环境的同时,也仿造了Wayland的架构开发了自己的Mir显示服务器,除了等不及Wayland稳定之外,更重要的是Ubuntu要为了它的下一步宏伟计划 “Ubuntu Touch” ,按照Mark的设想,Mir不仅仅要像Wayland那样从原理上提升Linux图形渲染效率,而且Mir还得担负起手机和电脑融合的使命,可以让Ubuntu Touch的手机在插上显示器底座时,手机的应用通过Mir的支持,可以直接在外接显示器上显示手机应用窗口,最终达到“ 当你手机放到底座时就是电脑,拿走就是手机” 的设想。

不论Wayland还是Mir,虽然底层架构都非常先进,但是为了兼容现有的X11程序,它们分别开发了 XWayland 和 XMir 用于在新的显示服务器协议上支持现有的大多数 X11 程序(主要是Gtk2/Qt3/Qt4开发的大多数应用)。

具有讽刺意味的是,Wayland和Mir本来就是要解决 X11 那种不适合现代PC场景繁琐的通讯协议,甚至很多开发者为了技术的洁癖都在大力安利 Wayland/Mir ,但是最后 XWayland 和 XMir 本身的兼容实现却比 X11 的实现更加“ 恶心” 和繁琐,包括Mir的开发者最后都放弃 XMir 的开发。

正是因为Wayland/Mir这样的技术无法彻底解决和大部分原本就基于X11协议而开发的应用的兼容性问题,最后导致基于Wayland/Mir开发的桌面系统从 ” 解决渲染性能问题“ 转变到 “ 无法运行很多现有Linux应用”  这一个更加让用户难以接受的结果。这也是后面基于Mir开发的新版Unity难产的重要原因。

参考:

5.4 常见的桌面环境

桌面环境是为了方便用户操作电脑的一系列工具的集合。常常包括以下几个或者全部的组件。

  • 窗口管理器(Window manager)
  • 面板(Panels)
  • 菜单(Menus)
  • 小工具(Widgets)
  • 文件管理器(File Manager)
  • 浏览器(Browser)
  • 办公套件(Office Suite)
  • 文本编辑器(Text Editor)
  • 终端(Terminal)
  • 显示管理器(Display Manager)

Linux 桌面环境有很多种,比如 Cinnamon,Unity,GNOME,KDE,XFCE,LXDE,MATE,Enlightenment,Pantheon ,以及后面详细介绍的深度桌面 DDE(Deepin Desktop Environment)等。

5.4.1 Cinnamon

??,Cinnamon 桌面环境很现代很时尚,界面类似 Win 7,是 Linux Mate 的默认桌面环境,托 Linux Mate的福,也非常流行。

此桌面环境,底部有一个面板,在右下角有一个带有快速启动图标和系统托盘的时尚菜单,有一系列的键盘快捷方式方便操作,视觉效果也很棒。同时也有很好的定制功能,比如更改壁纸,添加和位置面板,添加小程序到面板,也可以添加桌面提供新闻,天气和其他关键信息等。

  • 内存使用情况:\(\approx\) 175MB
  • 优点:
    • 仿Windows的操作习惯。
    • 好看、特效多、小部件多
    • 键盘快捷键功能强大
    • 可定制
  • 缺点:
    • 与其他桌面相比太耗内存
    • 可定制的功能还不够强大

5.4.2 GNOME

??,GNOME桌面环境,包括 GNOME2 和 GNOME3,GNU计划的一部分,开放源码运动的一个重要组成部分,是一种让使用者容易操作和设定电脑环境的工具,目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,是GNU计划的正式桌面环境。

  • 内存使用情况:\(\approx\) 250MB
  • 优点:
    • 现代的
    • 有大量的核心应用程序和开发工具包,使得开发人员易于创建丰富的应用程序。
    • 功能强大的键盘快捷键
    • 搜索过滤功能强悍
  • 缺点:
    • 太耗内存
    • 可定制性极差

5.4.3 KDE

??,KDE桌面环境类似 Cinnamon,仿 Win 7。底部有一个面板,菜单,快速启动栏和系统托盘图标。可以在桌面上添加新闻和天气等小部件。默认安装有大量的应用程序。

  • 内存使用情况:\(\approx\) 300MB
  • 优点:
    • 仿Windows的操作习惯
    • 提供大量的默认应用程序,包括Web浏览器和邮件客户端。
    • 很多小部件
    • 可定制能力强
  • 缺点:
    • 太耗内存

5.4.4 LXDE

??,LXDE桌面环境非常适合旧计算机。能提供一些非常基础的功能。

  • 内存使用情况:\(\approx\) 85MB
  • 优点:
    • 非常小巧,适合旧电脑和配置较差的计算机
    • 强大的定制能力
  • 缺点:
    • 默认应用程序较少
    • 可用应用程序相比其他桌面环境体验感觉不够好

参考:

5.5 总结

本章介绍了如何在不安装系统的情况下,试用 GNU/Linux 系统。然后介绍了 X Window 系统的概况,同时附带介绍了当前新技术 Wayland 的状况。最后列举了常见的几种桌面环境。