「折腾日记」Linux发行版的介绍与选择——Linux,计算机不得不品的一环Part1
前言
岚的声明
本文为岚的折腾日记,它只是因为我想而写下的,不具备权威性,我也无法保证正确,仅供参考
参考资料
Linux是什么
提到计算机,你第一时间想到的是什么?是电影里酷炫的输出流,还是五花八门的编程语言?它们都是计算机的一部分,但计算机的本质,却是操作系统。操作系统是计算机硬件和软件之间的桥梁,它负责管理计算机的资源,翻译用户的输入,并输出结果。而Linux,就是众多操作系统中的一个。
Linux内核起源于芬兰人Linus Benedict Torvalds之手,也就是我们常说的Linux之父,他在1991年发布了Linux内核的第一个版本 (没错,严格来说Linux实际上指操作系统内核),而 完整的操作系统包含 Linux内核 GNU工具链 以及 X Window等其他组件。GNU起源于Richard Matthew Stallman发起的GNU计划,目标是创建一个完全自由的操作系统。自由软件基金会将 GNU工具链与Linux内核的组合命名为 GNU/Linux,但由于Linux不属于GNU 计划的一部分,因此GNU/Linux这一命名也没有获得社区的一致认可。不过,现在人们通常将Linux直接用于指代完整操作系统。本文将遵循大多数人的习惯,使用Linux一词来指代基于Linux内核的完整操作系统(即Linux发行版)。
小知识:GNU 计划中的“GNU”是 “GNU’s Not Unix!” 的缩写,意为 “GNU不是Unix”;开源协议 GPL——GNU General Public License 也来自这里,意为 “GNU通用公共许可证”。
得益于 Linux 开源的特性,其得到了广泛的传播和应用。从桌面操作系统到服务器操作系统,从嵌入式系统到移动设备,Linux 都在其中发挥着重要作用。例如你手头的安卓手机,就是基于 Linux 内核的操作系统。而它的另一个重要应用领域是服务器,如 RHEL、CentOS。许多大型网站和互联网公司都使用 Linux 作为其服务器操作系统,因为它的稳定性和安全性都得到了广泛的认可。对于个人用户,也诞生了许多 Linux 发行版,如 Ubuntu、Fedora、Debian 等,它们提供了丰富的实用工具和易于使用的界面,使得 Linux 操作系统更加易于使用。
Why Linux?
- 自由:Linux 是开源的,你可以在GPL许可范围内自由地修改和分发它。这意味着你可以随心定制 Linux,而不必担心受到供应商的限制。
- 稳定:Linux以其 稳定性 和 可靠性 而闻名。它被广泛应用于服务器和嵌入式系统。
- 性能:得益于开源的特性,Linux 社区百花齐放,各种优化和改进层出不穷,也没有像Windwos那样为了兼容而累积的“遗留代码”,加上其可用多种高性能文件系统(btrfs、ext4、XFS等),使得 Linux 在性能上有着不俗的表现。
一些注意事项
- Linux在 开发、服务器、桌面、日常工作等 用途都有不错的表现,但其 并不适用Windows生态,在Linux下运行Windows软件要额外的 兼容层,如 Wine,但并不能保证能正常运行,且 性能大打折扣。
- Linux即便有 Wine,也并 不推荐作为Windows软件开发环境,Windows仍是 开发Windows软件的首选,而Linux下需要 交叉编译环境。
给开发者的小建议:Windows+WSL或者Windows/Linux双系统,是不错的选择。
- Linux需要一定的耐心,在不断试错的过程中DIY你自己的Linux系统。
- Linux的社区资源丰富,遇到问题可以尝试搜索,或者加入社区,寻求帮助。
- 使用Linux,就不能怕麻烦,虽然Linux的安装过程日渐趋于简单,但接下来的使用、维护、升级等,都需要用户具备一定的技术知识。如果你对Linux感兴趣,那么本文(指南第一部分)将带你了解Linux发行版,以及如何选择适合自己的Linux发行版。
Linux发行版
目前Linux发行版主要分为三大分支以及一些自成一派的发行版,下图展示了Linux发行版家族的分类以及部分代表发行版,* 指通常没有官方提供的交互式安装程序:
flowchart LR A[Debian系<br />易于上手且稳定] B[Arch系<br />丰富的社区生态:AUR、ArchLinuxCN,高度定制化] C[RedHat系<br />企业级,稳定,服务器] A --> D[Debian] A --> E[Ubuntu] A --> H[Deepin] A --> I[Kali Linux] B --> J[Arch Linux **\***] B --> K[Manjaro] B --> L[BlackArch] C --> M[RHEL] C --> N[CentOS] C --> O[Fedora] P[Other] P --> Q[Gentoo **\***] P --> R[NixOS **\***] P --> S[Slackware]
Debian系
经典的发行版,以稳定性著称,适合初学者和需要稳定性的用户。Debian是Linux发行版的鼻祖,拥有较长的历史和最广泛的社区支持。Debian的稳定版本通常被认为是最可靠的,适合个人和商业使用;Debian还提供了大量的文档和教程,帮助用户学习和使用Debian。Ubuntu和Deepin都是基于Debian的发行版,它们提供了更开箱即用的体验和更多的特性,是入门Linux的好选择。
- 包管理:
APT
(Advanced Package Tool) - 包格式:
.deb
RedHat系
红帽致力于服务器级操作系统与相关付费服务,其主推系统为RHEL(Red Hat Enterprise Linux),商业订阅制服务器操作系统;CentOS是基于RHEL开源代码编译的发行版;Fedora是红帽提供支持的发行版,用于测试RHEL可能的新功能,稳定性低于RHEL/CentOS,但更适合桌面用户。RedHat系发行版通常具有强大的企业级支持,稳定性和安全性都得到了广泛的认可。
包管理:YUM
(Yellowdog Updater, Modified)/DNF
(Dandified YUM)
包格式:.rpm
CentOS Linux已在2024年6月30日停止维护,项目重心转到了CentOS Stream(滚动发布),也是RHEL上游测试版。
Arch系
Arch是三大分支中最灵活的发行版,它的主旨是:极简主义、完全的用户控制;其最大的特点是社区生态,社区维护者为其带来的其他发行版没有的庞大的软件包仓库,如AUR(Arch User Repository)、ArchLinuxCN等。Arch的安装过程相对复杂,需要用户具备一定的技术知识,但一旦安装完成,Arch的灵活性和定制性将使你体验到前所未有的自由,也是我个人选择最适合日用的发行版。Manjaro是基于Arch的发行版,它专注于用户友好性和开箱即用的体验,是入门Arch的好选择。但作为Arch教徒,我还是推荐直接使用Arch
- 包管理:
Pacman
官方仓库paru/yay
AUR(Arch User Repository)
- 包格式:
.pkg.tar.zst/.pkg.tar.xz
- 建议:
常备LiveCD
其他
- Gentoo是深度自定义的发行版,适合极客用户,学习成本高。其特点是,用户可以根据自己的需求控制内核、软件包的编译,以达到极致的性能优化和系统适配;虽然Gentoo提供了二进制包,但Gentoo用户会选择自行编译内核与所有软件包来达到性能优化,即使这可能花上几天时间;Gentoo安装过程复杂,需要用户具备一定技术知识
以及一块强大的CPU。 - 包管理:
Portage
(Gentoo Portage)
- NixOS是基于Nix包管理器和构建系统的发行版,适合极客用户,学习成本高。在NixOS中,发行版的所有组件——包括内核、安装包和系统配置文件——都是由Nix从称为Nix表达式的纯函数构建的,用户可以用配置文件配置整个系统,甚至用同样的配置文件复现它,但这也意味着安装过程复杂,需要用户具备一定技术知识。
- 包管理:
Nix
(Nix包管理器)
- Slackware: 现存最古老的发行版之一,坚持 UNIX哲学和KISS原则,在一众发行版中显得特立独行,设计简洁、稳定。其包管理相对简易,更依赖传统方式(如源码编译)。面向需要深度理解系统底层、偏好高度定制的高阶用户。
补充
目前Linux发行版分为滚动发布和固定版本发布两种:
- 滚动发布的系统会持续收到新的软件包和内核更新,没有固定的版本号,如Arch、Gentoo、Debian sid等,它可以保证系统在理论上始终处于最新状态,但这也意味着系统可能不稳定,流行的滚动发行版通常会极力降低此风险,也诞生了像Btrfs/ZFS这样支持快照回滚的文件系统,但滚动发布的系统作为生产环境仍需考量。
- 固定版本发布的系统会有固定的版本号,如Ubuntu 25.04、Fedora 42、Deepin 25等,它们会定期发布经过测试的稳定版本,这些版本用户主要通过包管理器获取补丁和软件更新,而主要的软件包和内核更新需要升级到下一个版本才能获得,固定版本发布的系统通常在支持时限内更稳定,但可能不会获得最新的软件包和内核更新。
本文提到的Linux发行版并非全部,开源社区很大,还有许多其他发行版,如openSUSE、Mint、Zorin OS等,它们各有特色,适合不同用户的需求,多逛逛或许能碰上你心仪的发行版。
如何选择适合自己的Linux发行版
flowchart LR A[Debian系] B[RedHat系] C[Arch系] D[其他] E[如何选择] E -->|初学者和<br />需要稳定性的用户| A E -->|有一定<br />Linux基础的用户| C E -->|企业级,稳定服务器<br />或喜欢Fedora的<br />桌面体验| B E -->|深度自定义<br />享受折腾| D A -->|大道至简<br />我要自己动手| Debian A -->|简单易用<br />我要开箱即用| Ubuntu A -->|支持国产<br />优秀本地化| Deepin B -->|企业级<br />完善服务| RHEL B -->|企业级<br />免费| CentOS B -->|测试功能<br />优秀桌面体验| Fedora C -->|大道至简<br />我要自己动手| Arch C -->|简单易用<br />我要开箱即用| Manjaro D -->|自定义<br />享受折腾| Gentoo D -->|声明式配置<br />可靠系统| NixOS D -->|UNIX风格<br />极客| Slackware
结语
以上,本章完。