上一篇在 Linux 介绍中曾提到,我们通常所指的 Linux 系统指的是 Linux 内核及其捆绑了 GNU 系统 组件的工具、应用和服务的操作系统。虽然 Linux 系统多用于服务器、嵌入式设备和其他大型平台;但是在桌面端,Linux 也可以根据一般使用者的需求预先整合好 Linux 内核和包含了硬件驱动、软件包管理系统、桌面环境、媒体播放器、办公套件等各种应用软件,把它们打包成供个人计算机使用的桌面发行版 ;它的优点是只需要小幅度更改设定就可以使用,一般使用者不需要重新编译,有些整合得非常好的桌面发行版甚至可以达到「开箱即用」的效果。
Linux 桌面发行版如何分类?由于 Linux 是一款基于 GNU 通用公共许可证(GPL) 发布的操作系统。很多发行版可以基于同一个许可证的情况下修改其他发行版的代码进行重新分发,这便造成了 Linux 发行版的百花齐放和百家争鸣。根据 DistroWatch 的统计,现存的 Linux 发行版本有 600 多种。那么这么多的发行版应该怎么分类呢?
DistroWatch 上不甚枚举的发行版
从技术角度来看,Linux 发行版的最大的不同之处在于软件包的管理机制。
同时根据维护主体的不同,又可分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的 Red Hat、Canonical 公司为首,后者以 Debian、Arch Linux 为代表。
按照软件包管理划分在 Linux 桌面发行版中,有三种软件包管理器最为主流,它们被分别用在不同的系统分支上:
不同于 Windows 和 macOS,除了类似 Ubuntu 和 Red Hat Enterprise Linux 这样完全由公司作为主体来维护的商业发行版;也有像 Debian 和 Arch Linux 这样完全由社区作为主体来开发、维护、支持的发行版。
当然也有像 CentOS 和 Fedora 这种以社区作为主体进行维护,公司提供支持的发行版。笔者在此不向个人新手用户进行推荐:因为此类的发行版在新版本中会加入众多未验证的新功能,一旦验证成功便会有选择性地加入其商业发行版的下一个版本。简单来说,它们是把个人用户当作小白鼠来进行测试和修复新功能的沙盒。
在 GNU/Linux Distribution Timeline 上有一张图整理了整个 Linux 发行版进化编年史:
发行版进化史
为什么不推荐个人新手用户选择 Debian 或者 Arch Linux?可能读完上文的新手朋友不禁有个疑问:既然社区提供支持的发行版即自由又能定制化,那么作为普通个人用户为何不推荐直接使用 Debian 或 Arch Linux 这两个在编年图上的「根级」桌面发行版?
Debian 这个伟大的项目遵循 GNU 规范,100% 免费,几乎兼容所有计算平台,拥有优秀的社区资源和强大的软件包管理,的确做到了「一个完全自由的通用操作系统」。但是由于其恪守的「纯净」准则,在默认情况下只安装自由软件,安装程序甚至没有提供专有固件的内核;如果你需要非自由软件,就需要为每个软件库添加 Nonfree 和 Contrib 这两个部分。虽然其稳定版的安全性可以说固若金汤,然而其以三年为更新周期,故对新上市硬件支持较差,而且安装完成后配置也会略微麻烦,故不推荐新用户直接上手。
众多系统的「老祖宗」
Arch Linux 以「KISS 原则」(保持简单和愚蠢)为总体指导,因其采用了滚动发行(即没有所谓的大版本更新,每次常规更新都会将系统和软件保持在最新状态)的激进策略,使得 Arch Linux 在个人计算机上总能部署最新的软件包。但是,滚动升级会带来一些「滚坏系统」的潜在风险。而且 Arch Linux 因为期待用户愿意去理解系统的运作,所以只提供命令行安装的模式。虽然其维基文档极尽详实,而且非常友好的用户社区素来有「邪教」的美誉;但对新手来说实在太难以入门。