Linux 折腾总结

Linux
Feb 28, 2016
27min

从放假前到假期结束,我的主要精力都在研究Linux操作系统上,以下内容,是我在这个过程中的一些收获和经验。 注:未完待续

March 10, 2019 修复了一些错误的 markdown 标记用法

导论

我们通常指的Linux系统其实是Linux的 发行版,比如知名度非常高的Ubuntu系统。但是Linux本身只是指的 操作系统的内核,关于 内核发行版 这两个词,会在后面的章节中讲到。

理论性和历史性太强的东西在这里也不去解释了,具体可以看百科。而这篇文章所希望是我通过自己的实践经验和知识,向大家分享关于Linux的种种知识,以便让更多人接触、了解、学习Linux。

理论篇

什么是 Linux

Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux发行版,而不是自己选择每一样组件或自行设置。 严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思。Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将该组合系统命名为GNU/Linux,但Linux不属于GNU计划。

以上是维基百科中对于Linux的解释,首先我来做一些简单的解释。

从操作系统的概念上来看,Linux属于操作系统的内核,并且它是一种被广泛使用的宏内核。实际上,世界上以Linux为内核的设备远远多余运行windows、unix、os x的设备的总和。例如常见的路由器、服务器、智能家具、机器人等等设备,你可能看不到它们在运行,但是它们大都有一个Linux内核安静的躺在内存里,保障着系统的运行。

但是我们常常听说的是:某某人正在用Linux系统,某某服务器用的是Linux,而且还常常听见什么Ubuntu之类的词,那么它们是什么呢?

很简单,这些指的是机遇Linux内核定制的系统,它们往往由各种各样的社区或者公司维护,可以安装到PC机或者Mac机上,它们被称为发行版关于发行版的问题会在后面的章节中提到。

还有一个问题,就是Linux这个单词怎么读?有这样一句话说的非常好:

Linux是自由的,它的发音也一样。

所以不需要纠结这个单词怎么读,实际上,世界各地的人的读法奇奇怪怪各种都有,就算在美国一个国家内,大家的读法也不统一,东海岸西海岸的读法都不同。

Unix Linux Windows

link

Linux桌面发行版特点

什么是发行版

因为发行版众多,而且常常很相似,所以在这里首先给出wikipedia上的介绍,我就不赘述其细节了,我会在之后的介绍时抓住几个特质:家族特征版本特征使用体验。其中关于家族特征会介绍的详细一些。

Debian

Debian (/ˈdɛbiən/)[2] is a Unix-like computer operating system that is composed entirely of free software, most of which is under the GNU General Public License, and packaged by a group of individuals known as the Debian Project.

以上是 维基百科 中的Debian。

如果你观察仔细的话,按照目录的解构很容易看出来,Debian不仅是一个发行版,更是一个家族。实际上,有一部分原因是因为Debian是一个比较古老的发行版,它的Initial Release的日期是1993年,而且一直以来以稳定可靠著称。所以后来很多其他的发行版由于商业原因或者开发成本的考虑,是基于Debian的,比如著名的Ubuntu。也就是因为其影响力巨大,现在流行的Linux二进制软件包就有一种.deb格式,著名的Ubuntu用的就是这种格式。

下面针对之前的三个要素说明一下,Linux系统中系统稳定性主要依赖于其发行版的上游软件质量,其bug数量直接会作用于系统稳定性。

版本特征:有三个主要版本:Stable, TestingUnstable.采用固定版本号更新的方式,大的版本之间不能直接更新,多数情况需要重装系统,但是也有像 apt-get dis-upgrade 的方法。

家族特征:Debian系(蝶系)的鼻祖

使用体验:Stable版的非常稳定,代码仓库很丰富,尤其是有大量的第三方包。而且提供了完整的本地安装方案,目前官方一共提供十八张DVD容量的安装文件,包含全部软件,不需要网络就可以安装官方提供的任何软件。但缺点是软件版本稍微老一点。

Ubuntu

Connonical的核心产品,如果最流行的发行版之一,我相信大多是人都听说过它。我们必须承认,它是目前最好用的开箱即用的Linux发行版。Ubuntu的哲学是:

Linux for human being.

而在目前看来,它也很好的实现了这一点,我们得承认,从安装开始,Ubuntu就远超很多其他发行版。并且在软件方面,除了Connonical提供的官方软件源外,还有非常非常多的其它软件源,比如PPA(Connonical提供的一个方便用户分享自己的Ubuntu软件的平台)。

另外ubuntu最致命的一个杀手锏就是凡是与Connonical有合作的硬件厂商大部分都提供一些硬件的私有驱动,这是非常非常关键的,因为驱动的安装是比较麻烦的一件事。而ubuntu提供的图形化安装流程是无痛且安全的,例如英伟达的显卡驱动打个够点个apply等一会就安好了,这在很大程度上甚至优于就版本的windows系统。(windows 10现在支持了直接在windows update里安装驱动,让人感觉相见恨晚。并且作为一个商业系统,其支持的硬件还是要多于Ubuntu的)

版本特征:采用传统的版本号升级的模式,每年4月和10月更新一个版本。每隔两年的4月更新LTS版,即长期支持版。长期支持版大约维护5年左右的时间,而10月发布的普通版大约维护9个月的时间。

这里在简单介绍一下长期支持版普通版。之所以会有版本的分化,就是因为Linux系统的软件管理依靠包依赖解决,而在传统升级模式中,各版本的包依赖关系是独立的,即在当前以来关系下无论如何升级你的软件它都只能在当前的系统版本停留,而不会升级系统版本。

长期支持版顾名思义就是一种比较稳定的版本,软件版本一般不会太新。并且长期受到其维护组织或公司的维护,在生产环境中,经常使用这种版本。而普通版更像一种给发烧友们体验的版本,软件版本会新一些,在网上发布之后,在社区或者用户们之间测试过之后会修复可能存在的很多bug,并且将新特性试验完成投入下一个长期支持版中。而对此我个人的建议是这样的:

如果你是一个追求稳定工作环境的人:

比如你需要让机器在公司使用,或者作为你日常的工作机器。我的建议是请使用长期支持版,原因不尽在于长期支持版比较稳定,更重要的是很多第三方软件对长期支持版的支持状况明显好于普通版。比如genymotion,swift等,它们往往只针对长期支持版和最新的普通版发行,并且只针对Ubuntu系统提供安装包。所以说作为一台工作机的话,安装最新的长期支持版是最好的选择。

而如果你是一个追求新特性,新软件的人:

即时更新的普通版可能更适合你,但最适合你的可能不是ubuntu系统,因为它的软件版本并不够新。我相信如果你想追求新特性新软件的话,你一定也有能力处理它们可能存在的问题。因此,Arch Linux 或者 Fedora 应该是你更好的选择。

家族特征:Ubuntu的上游是Debian,并且使用deb包,总体来讲稳定性是还不错的。而随着Ubuntu如火如荼的发展,Ubuntu也趋向于自成一体,很多软件是Ubuntu独有的,而且其目录结构里也大肆书写了诸如Ubuntu之类的词,这样也导致很多软件只能在Ubuntu上运行。

使用体验:之前就说过,当前体验最好的Linux系统。但是它有一个显著的问题就是如果你安装了一些软件,尤其是没有使用apt-get命令安装的时候,系统有些时候会发生错误。这并不会让你的电脑崩溃,但是它会很心烦的报错。经常需要关闭系统报错才能安静的使用,可如果你是个强迫症无法忍受这个情况的话,那么大多数情况下你需要重装系统了,因为你将很难找到错误的原因。

Ubuntu-GNOME

从文章的目录结构和名字也能看出来,这是ubuntu系统的一个衍生版。它是ubuntu官方推出的一个版本,采用GNOME桌面环境。这里要明确的是普通的Ubuntu版本使用的是Unity桌面环境。同样下面的几个章节也将介绍这种换汤不换药的Ubuntu系统,都只是换一下桌面环境而已,本文将更关注于其体验,而非系统本身,进行快速的介绍。

关于GNOME桌面环境的介绍如下:

由于其底层还是Ubuntu,就没什么好讲的了。

版本特征:跟随ubuntu的更新发布,包括长期支持版和普通版,都有对应的Ubuntu-GNOME发布,其系统版本久没什么可关注的了。而值得关注的是其携带的GNOME桌面环境的版本,其携带GNOME版本是很新的,一般是其发布时的最新版。但是它有一个问题,就是其GNOME版本似乎并不会在日后升级,所以想在新的GNOME桌面环境发布后体验新的特性的话有可能就要使用PPA上GNOME team的源来安装,而这听上去并不优雅。

家族特征:Ubuntu家族的一个分支,使用还是比较广泛的,没什么好说的。

使用体验:谈到体验首先要明确一个问题,什么样的用户会来使用这个系统?其它的Ubuntu衍生版也面临这个问题。我总结了一下大概分为以下几类:

  • 不喜欢unity桌面环境,但因为各种原因,不想折腾其它发行版。
  • 技术有限,标新立异,又离不开Ubuntu的温床。
  • 无法忍受unity,日常使用其它发行版,但因为软件或其它需要必须使用Ubuntu系统。

以上提到了一点:无法忍受unity桌面

其实,实际上unity招人恨的原因主要是其丑陋的审美,作为稳定性来讲还是不错的,尤其是目前看来它是对高分屏支持的最好的桌面环境。但它长得丑,这是不好的。。。就我个人来讲还是可以接受的,但这只停留在unity7也就是当前版本的unity桌面环境。而正在开发中的unity8桌面环境的审美我是无法忍受的,希望它只是正在开发中的一个草稿吧。

那话说回来,Ubuntu-GNOME的体验如何我认为还是不错的,ubuntu家族的字体调教一向不错,整个系统的美观度很好。不怎么需要自己折腾就能用了,这还是非常方便的。但是有一点不好的是其GNOME桌面环境的版本不够新,对于乐意于尝鲜的用户来讲,这并不是一个好消息。

从我个人来讲,是比较推荐GNOME桌面环境的,因为其整体比较简洁美观,而且相对稳定,毕竟后面有Red Hat这个公司在做支撑,也是RHEL的默认桌面环境。

Kubuntu

与Ubuntu-GNOME一样是官方支持的衍生版,采用KDE桌面环境

关于kde的介绍

版本特征:这里值得一提的是,Kubuntu项目的名声并不太好,因为在公司内部,Kubuntu只有一个人在维护,而且由于一些历史和能力原因,这个版本bug比较多。由于我本人不喜欢KDE桌面,所以我不太关注这个版本。只使用过一小段时间,期间发生了很多bug,这不光和Kubuntu有关系,主要是KDE桌面环境比较臃肿复杂, 其本身bug也比较多。

家族特征:Ubuntu家族的一个分支,KDE爱好者的一个选择,没什么好说的。

使用体验:KDE桌面环境是个很有意思的桌面环境,它由C++和Qt写成。得益于Qt的动画性能非常好,KDE的视觉动画也非常多,窗口的最大化、最小化、弹窗都有非常炫酷的动画。但是也是因为这个,导致它的体积比较庞大,在启动时要加载比较长的时间。而另外一点不太好的地方是KDE的可定制性太强,导致它的UI上有非常多的按钮,看上去一副工程师审美的感觉。最后还要提到一下它bug比较多的事实,我在使用中其实遇到的最显著的情况就是跳转到根目录后系统会立即卡死,还有系统在使用较长一段时间后会卡顿或卡死,看上去像是显存溢出。

我从个人的角度讲,不太推荐KDE桌面环境,但是如果你对炫酷动画非常感兴趣,而且电脑配置相对较好的,你可以尝试。关于bug这一点,其实KDE也没有特别夸张。

Xubuntu

官方支持的衍生版,采用Xfce桌面环境

关于Xfce的介绍

Xfce基于GTK2,它比较简洁,没有花哨的效果,而从审美上讲它还算可以接受的,加上一些主题之后还是能表现的很好的。另外Linus大神也"官方"地推荐Xfce,但是众口难调,好不好还是自己用过才知道,从我的角度来讲,我是不太喜欢的,因为它有点过于简洁了,在我那台Xeon CPU,gtx660显卡的电脑上运行的话实在是有点暴遣天物。

版本特征:ubuntu的官方flavor,我个人是没怎么用过这个版本的。其实并不会有Linux的新手会直接上手Xfce的,因为新手玩Linux往往都停留在折腾theme这种层面上。Xfce这种桌面环境通常会跑在配置比较差的计算机上,如学习机或者老电脑。也有一些人会主动选择它,主要是觉得它简洁高效,能提升工作效率,这类人一般都是大神级别的,我相信他们的经验要比我多的多,也不需要我来介绍这些。

家族特征:Ubuntu家族的一个分支,Xfce爱好者的一个选择,没什么好说的。

使用体验:其实我对这个版本的使用体验可能连十分钟都不到,就是从网上下载下来然后烧录到U盘里在liveCD中体验了一下,实在是觉得太过简洁,对不起我的电脑就放弃了。不过这并不影响它的名声,况且使用的GTK这种几乎可以被定义为Linux Native的框架为根基,能保证它的兼容性和易用性。

Lubuntu

官方支持的衍生版,采用Lxde桌面环境,又是一个轻量级桌面环境的版本,我是完全没有用过这个版本的,所以在这里也不多说了,可能后期有功夫的话来补充一下吧。

Elementary OS

大名鼎鼎的EOS,被誉为最美Linux发行版的操作系统,我也是用过一段时间的,从审美的角度上讲我是认同这个发行版的。从UI的细致程度上讲确实毋庸置疑,有很多的小动画,用起来也非常舒服,尤其是如果你是一个Mac用户的话,你能在这里找到很多OS X的影子。自带的应用也是做的比较小巧精致,看上去挺舒服的。而其系统本质是基于ubuntu的,目前的 Elementary OS 是基于ubuntu 14.04 LTS版的。

Red Hat

RHEL

Fedora

Korora

Cent OS

OpenSUSE

Arch Linux

Manjaro

Antergos

Gentoo

小众发行版

Solus

Papyros

Parsix

认识包管理

内核与系统

认识 X Server

实践篇

为什么要学习Linux

遇到问题怎么办

桌面环境选择

Unity

GNOME

KDE

Others

源与镜像站

推荐软件

如何解决常用软件缺乏

善用Terminal

Linux配置当中的坑

语言

磁盘

驱动

字体

内核

DIY你的Linux

你同意Linux DIY的哲学吗?

硬件基础的选择

起步

选择一个发行版

让它能够正常而稳定的工作

做些锦上添花的事

安装一个桌面环境

配置一个主题

进阶

选用定制性更强的发行版

Arch Linux
Gentoo