操作系统那些事儿④:为什么 Linux 有几百个发行版,而 Windows 没有
2026/8/10 11:21:09 网站建设 项目流程

如果把操作系统的发展史比作《三国演义》,那么本文更像《三国演义》,而不是《三国志》。

本系列尝试用故事化的方式,讲述 Unix、Linux、BSD、GNU、Windows、macOS、Android 等操作系统背后的发展历程。

文中的人物、事件和技术演进都尽量参考公开资料,但为了让故事更容易理解,会适当简化一些历史细节,也会加入作者自己的理解。

它不是一篇学术论文,而是一段程序员视角的技术故事。

如果读完之后,你产生兴趣,愿意继续查阅官方资料,那这篇文章的目的就达到了。


引子:第一次进入 Linux 世界的人,通常都会懵

如果你准备安装 Windows,选择通常很简单:

  • Windows 11 家庭版;
  • Windows 11 专业版;
  • Windows 11 企业版。

虽然版本不少,但它们都叫 Windows。

界面大致相同。

软件基本兼容。

更新也来自微软。

但是,当你准备安装 Linux 时,画风突然变了。

有人推荐:

  • Ubuntu;
  • Debian;
  • Fedora;
  • Arch Linux;
  • Linux Mint;
  • openSUSE;
  • Manjaro;
  • Rocky Linux;
  • Kali Linux。

继续往下搜索,还会看到:

  • Kubuntu;
  • Xubuntu;
  • Lubuntu;
  • Pop!_OS;
  • Gentoo;
  • Slackware;
  • Alpine Linux;
  • NixOS。

再搜索一会儿,你可能会发现:

Linux 发行版似乎不是十几个,而是几百个。

初学者很容易产生一个疑问:

为什么大家不能团结一点,只做一个 Linux?

Windows 为什么没有:

  • 联想 Windows;
  • 戴尔 Windows;
  • 游戏玩家 Windows;
  • 程序员 Windows;
  • 极简 Windows;
  • 极客 Windows?

而 Linux 为什么像一棵失去控制的大树,到处都在长新枝?

要回答这个问题,首先要理解一件经常被忽略的事情:

Linux 最初并不是一个完整的桌面操作系统。


第一章:Linux 最初交付的,只是一台“发动机”

1991 年,Linus Torvalds 发布 Linux 时,完成的主要是:

Kernel,也就是操作系统内核。

内核负责什么?

大致包括:

  • 管理 CPU;
  • 管理内存;
  • 驱动硬件;
  • 管理进程;
  • 提供文件系统;
  • 在应用程序和硬件之间传递消息。

它非常重要。

但只有内核,电脑仍然很难直接使用。

你还需要:

  • Shell;
  • 基础命令;
  • 系统工具;
  • 软件库;
  • 编译器;
  • 安装程序;
  • 软件包管理器;
  • 图形界面;
  • 浏览器;
  • 文本编辑器;
  • 更新和维护机制。

Linux 内核官方网站也明确提醒普通用户:

Linux Kernel 只是一个可用 Linux 系统中的组成部分;普通用户需要下载的是一个完整的 Linux Distribution,而不是单独下载内核。

这就像:

Linus 造出了一台非常优秀的发动机。

但是,一辆能够上路的汽车,还需要:

  • 变速箱;
  • 方向盘;
  • 轮胎;
  • 座椅;
  • 仪表盘;
  • 车灯;
  • 车身。

谁来把这些零件组装起来?

答案就是:

Linux 发行版。


第二章:什么叫“发行版”?

所谓 Linux Distribution,翻译成中文就是:

Linux 发行版。

这个名字听起来有些神秘。

其实它做的事情并不难理解。

发行版维护者会从不同的开源项目中挑选软件:

Linux Kernel +GNU 基础工具 +系统服务 +软件库 +软件包管理器 +桌面环境 +安装程序 +默认应用 =一个可以直接使用的操作系统

然后,他们还要负责:

  • 编译软件;
  • 处理依赖关系;
  • 修复兼容问题;
  • 制作安装镜像;
  • 建立软件仓库;
  • 推送安全更新;
  • 决定软件版本;
  • 制定升级路线;
  • 提供文档和支持。

所以,发行版并不只是:

给 Linux 换了一张壁纸。

它更像是一家汽车厂。

大家都可以使用类似的发动机和零件,但不同厂商会有不同的设计理念。

有人想造家用轿车。

有人想造越野车。

有人想造跑车。

有人想造卡车。

还有人认为:

汽车不应该预装座椅,用户应该自己选择。

这大概就是 Arch Linux。


第三章:GNU 准备了零件,Linux 补上了发动机

在 Linux 出现之前,GNU 项目已经开发了大量自由软件。

例如:

  • GCC;
  • Bash;
  • Coreutils;
  • glibc;
  • GDB;
  • Make。

这些工具已经能够组成操作系统的大部分用户空间。

但是,GNU 自己开发的 Kernel——GNU Hurd,迟迟没有成为一个广泛可用的产品。

Linux 出现后,情况发生了变化。

一边有 Linux Kernel。

另一边有 GNU 工具和大量自由软件。

于是,有人开始把它们组合起来。

一个可以真正使用的自由操作系统逐渐出现。

GNU 官方将 Linux 描述为内核,并强调内核需要和其他系统组件结合,才能形成完整系统。

但问题也随之出现了:

应该怎么组合?

有人说:

稳定最重要。

有人说:

新版本最重要。

有人说:

自由软件最重要。

有人说:

普通用户能装上最重要。

有人说:

服务器不需要图形界面。

有人说:

没有漂亮桌面还叫什么操作系统?

于是,不同的人拿着同一批零件,开始组装不同的系统。

发行版的故事,就这样开始了。


第四章:开源世界最可怕的能力——我不同意,所以我自己做

在商业软件世界里,如果你不喜欢某个功能,通常只有几个选择:

  • 忍着;
  • 提交反馈;
  • 等待厂商修改;
  • 换一个产品。

但是在自由软件世界里,还有另一个选择:

Fork。

也就是:

复制一份源代码,然后按照自己的想法继续开发。

Linux Kernel 和大量 GNU 软件采用自由软件许可证发布。

以 GNU GPL 为例,它保护的不只是“免费使用”,还包括研究、修改和重新分发软件的自由。

这意味着:

如果你不满意现有发行版的方向,理论上可以拿走源代码,重新组织团队,再做一个版本。

你可能觉得:

软件包太旧了。

那就做一个更新更快的版本。

你可能觉得:

安装过程太复杂了。

那就增加图形安装器。

你可能觉得:

默认桌面太难用了。

那就更换桌面环境。

你可能觉得:

这个系统装了太多东西。

那就制作一个极简版本。

你甚至可能只是觉得:

默认壁纸不好看。

虽然只为换壁纸创建一个发行版多少有点夸张,但从技术和许可证角度来说,通常也不是完全不行。

在开源世界里:

不同意见,不一定只能变成争论,也可能直接变成一个新项目。


第五章:最早的发行版,其实是在帮大家“打包”

早期安装 Linux,并不像今天这样:

下载 ISO。

制作启动盘。

下一步。

下一步。

安装完成。

当时的用户可能需要:

  • 下载内核;
  • 自己编译;
  • 下载各种 GNU 工具;
  • 处理不同软件版本;
  • 手工配置文件系统;
  • 解决软件依赖;
  • 制作启动环境。

这对普通用户来说,实在太复杂了。

于是,有人开始整理这些软件:

我帮你把内核、工具和应用打包好,你直接安装就行。

这就是早期发行版存在的重要意义。

后来,发行版做的事情越来越多:

  • 统一软件格式;
  • 建立软件仓库;
  • 管理依赖关系;
  • 提供安全更新;
  • 制定发布周期;
  • 维护硬件支持;
  • 建立开发者社区。

发行版逐渐从一个“软件合集”,变成了一套完整的工程体系。

其中,一些早期发行版直到今天仍然存在。

例如:

  • Slackware;
  • Debian。

Debian 于 1993 年启动,它从一开始就强调开放协作,并逐渐形成了自己的社会契约、软件政策和社区治理方式。

这说明:

发行版选择的不只是软件,也是在选择一种组织方式。


第六章:不同的人,对“好系统”的理解完全不同

为什么已经有 Debian 了,还要有 Ubuntu?

为什么已经有 Ubuntu 了,还要有 Linux Mint?

为什么已经有 Fedora 了,还要有 Rocky Linux?

原因很简单:

大家对“好用”的理解不同。


1. 有人认为,稳定最重要

这类用户希望:

  • 软件不要频繁变化;
  • 升级不要破坏系统;
  • 安全更新及时;
  • 一台服务器可以运行很多年。

Debian、Ubuntu LTS、RHEL,以及一些企业级发行版,都非常重视稳定性和长期维护。

它们可能不会第一时间提供最新软件。

但它们的理念是:

新,不一定比稳重要。


2. 有人认为,最新技术最重要

另一批用户希望:

  • 尽快使用新 Kernel;
  • 尽快使用新桌面;
  • 尽快使用新编译器;
  • 尽快体验新的 Linux 技术。

Fedora 就比较接近这条路线。

Fedora 强调与上游社区合作,并积极采用新的自由和开源技术。

它更像一辆技术测试车:

很多新技术会先在这里接受真实用户的检验。


3. 有人认为,控制权最重要

还有人不喜欢发行版替自己做太多决定。

他们希望:

  • 自己选择桌面;
  • 自己选择服务;
  • 自己选择软件;
  • 自己决定系统如何启动;
  • 系统里不要出现不需要的东西。

于是,他们选择 Arch Linux、Gentoo,甚至 Linux From Scratch。

Arch Linux 强调简洁,尽量减少不必要的修改,并把更多选择权交给用户。

Linux From Scratch 则更加直接:

它提供一套文档,指导用户从源代码开始构建自己的 Linux 系统。

别人安装系统是为了使用电脑。

这批人安装系统,可能就是为了研究怎么安装系统。


4. 有人认为,普通用户最重要

Linux 很强大。

但早期 Linux 的安装和配置门槛并不低。

于是,一些发行版开始思考:

能不能让不懂 Linux 的普通人也用上 Linux?

Ubuntu 就是在这样的背景下成长起来的。

Canonical 组织了一批 Debian 开发者,希望制作一个更容易使用的 Linux 桌面;Ubuntu 至今仍然建立在 Debian 的基础之上。

后来,Linux Mint 又在 Ubuntu 基础上继续调整:

  • 修改默认桌面;
  • 优化传统桌面操作;
  • 增加自己的系统工具;
  • 降低从 Windows 迁移的门槛。

于是,一条很有意思的家族关系出现了:

Debian └── Ubuntu └── Linux Mint

这三者都使用 Linux Kernel。

但它们对目标用户、发布节奏和默认体验的理解并不完全相同。


第七章:很多发行版,并不是从零开始的

看到“几百个 Linux 发行版”,很容易产生一种错觉:

难道有几百个团队,各自从头写了一遍操作系统?

其实并不是。

大多数发行版都存在家族关系。

例如:

Debian├── Ubuntu│ ├── Linux Mint│ ├── Pop!_OS│ ├── Kubuntu│ └── Xubuntu└── Kali Linux

另外一边:

Red Hat 系├── Fedora├── Red Hat Enterprise Linux├── CentOS Stream├── Rocky Linux└── AlmaLinux

还有:

Arch Linux├── Manjaro├── EndeavourOS└── SteamOS 3

很多新发行版不是重新编写 Kernel,也不是重新创造所有工具。

它们可能只是基于上游发行版:

  • 重新选择软件;
  • 增加自己的仓库;
  • 调整默认配置;
  • 改变桌面环境;
  • 修改发布周期;
  • 面向一种特定用途。

所以,Linux 的几百个发行版,更像是:

几棵大树,长出了大量枝条。

而不是几百棵彼此完全无关的树。

真正长期维护、拥有完整社区、软件仓库和工程能力的主流发行版,其实没有想象中那么多。


第八章:桌面环境,又让发行版数量翻了一轮

Windows 的桌面界面,由微软统一开发和提供。

你可以修改壁纸和主题。

但任务栏、开始菜单、资源管理器等核心体验,仍然属于 Windows 的一部分。

Linux 不一样。

Linux 的图形桌面本身,也可以独立选择。

常见桌面环境包括:

  • GNOME;
  • KDE Plasma;
  • Xfce;
  • Cinnamon;
  • MATE;
  • LXQt。

于是,即使大家使用同一个 Ubuntu 底层,也可以出现:

Ubuntu → GNOMEKubuntu → KDE PlasmaXubuntu → XfceLubuntu → LXQtUbuntu MATE → MATE

它们使用相近的软件仓库和系统基础。

但桌面体验可能完全不同。

这就像同一家汽车厂,使用同一个底盘,推出了:

  • 家庭版;
  • 运动版;
  • 越野版;
  • 轻量版。

有人会问:

有必要给每个桌面都取一个新名字吗?

技术上不一定。

但从社区组织、安装镜像、默认配置和用户定位来看,独立命名确实更方便。

于是,发行版名单又变长了。


第九章:还有一些发行版,只为做好一件事

并不是所有 Linux 发行版都想成为通用桌面系统。

很多发行版从一开始,就只服务某一种场景。

例如:

Kali Linux

面向安全测试和渗透测试。

它默认集成了大量安全工具。

但这并不意味着它更适合日常办公。

就像工具箱里装满了扳手和电钻,并不代表它适合拿来当书包。


Alpine Linux

追求轻量和简洁。

它经常被用于:

  • 容器;
  • 小型系统;
  • 网络设备;
  • 资源受限环境。

SteamOS

围绕游戏设备和 Steam 生态进行优化。

它关心的重点不是办公软件,而是:

  • 手柄操作;
  • 游戏兼容;
  • 图形驱动;
  • 客厅模式;
  • 游戏设备体验。

OpenWrt

面向路由器和嵌入式网络设备。

它也是基于 Linux Kernel 的系统。

但是,你通常不会在 OpenWrt 上安装 LibreOffice 写年终总结。


这就是 Linux 发行版数量庞大的另一个原因:

Linux 不只运行在个人电脑上。

它还运行在:

  • 服务器;
  • 云平台;
  • 超级计算机;
  • 路由器;
  • 电视;
  • 汽车;
  • 工业设备;
  • 手机;
  • 游戏掌机;
  • 各种嵌入式设备。

用途越多,组合方式自然越多。


第十章:那么,Windows 为什么没有发行版?

说完 Linux,再回头看 Windows。

Windows 为什么没有出现:

Windows MintWindows FedoraWindows Arch

最直接的原因是:

Windows 是微软拥有和控制的商业产品。

微软负责:

  • 开发系统;
  • 控制源代码;
  • 制定产品路线;
  • 发布正式版本;
  • 管理商标;
  • 提供更新服务;
  • 设计许可证;
  • 决定哪些功能进入系统。

Windows 并不是一个允许普通开发者自由修改、重新编译,再以新名字发布的开源系统。

微软确实通过特定项目向部分政府和合作伙伴提供受控的源代码查看渠道,但这与允许公众自由修改和重新发行 Windows 完全不同。

假设你觉得 Windows 任务栏不好用。

你可以:

  • 安装第三方工具;
  • 修改注册表;
  • 提交反馈;
  • 等待微软更新。

但你不能合法地拿到完整 Windows 源代码,修改任务栏,然后发布一个:

老王 Windows 11 Ultimate Linux Style Edition。

至少不能像创建 Linux 发行版那样做。

这不是技术能力的问题。

而是:

  • 所有权;
  • 源代码权限;
  • 软件许可证;
  • 商标;
  • 产品控制权。

都不允许你这么做。


第十一章:Windows 家庭版、专业版,算不算发行版?

不算。

Windows 家庭版、专业版、企业版,更准确地说是:

同一产品的不同版本或者不同 SKU。

它们由同一家公司开发。

使用同一套核心技术。

接受微软统一管理。

主要区别可能是:

  • 功能开关;
  • 授权方式;
  • 企业管理能力;
  • 安全功能;
  • 硬件支持范围。

这就像同一辆汽车的:

  • 标准版;
  • 豪华版;
  • 商务版。

而 Linux 发行版更像是:

不同公司、社区和组织,拿着开放的发动机和零件,设计出了不同的汽车。

两者不是同一个概念。


第十二章:电脑厂商预装的 Windows,算发行版吗?

也不算。

联想、戴尔、惠普、华硕确实会对预装 Windows 进行一些调整。

例如:

  • 增加硬件驱动;
  • 安装管理工具;
  • 添加品牌壁纸;
  • 预装恢复程序;
  • 加入售后服务软件;
  • 偶尔再附赠一些你并不想要的软件。

但是,它们并没有重新开发一个 Windows 分支。

系统核心仍然由微软提供。

安全更新仍然来自微软。

软件开发者面对的仍然是 Windows。

因此,这些系统最多算:

厂商定制的 Windows 预装镜像。

而不是独立的 Windows 发行版。

微软的软件通常通过零售、OEM 和批量许可等渠道提供,这些渠道改变的是授权与交付方式,并没有把 Windows 变成可由 OEM 自由分叉的系统。


第十三章:苹果为什么也没有几百个 macOS?

macOS 的情况和 Windows 类似,甚至更加封闭。

Apple 同时控制:

  • 硬件;
  • 操作系统;
  • 驱动;
  • 应用商店;
  • 产品设计;
  • 发布节奏。

虽然 macOS 底层使用了大量开源技术,Darwin 的部分代码也是公开的,但完整的 macOS 产品仍然由 Apple 控制。

你不能拿着 macOS 源代码,制作一个:

ThinkPad macOS Community Edition。

黑苹果社区可以尝试让 macOS 运行在非苹果硬件上。

但那不是一个新的 macOS 发行版。

它仍然是 Apple 的 macOS,只是运行环境发生了变化。

所以:

Windows 和 macOS 更像是完整商品。

Linux 更像是一套开放的工业体系。


第十四章:几百个发行版,真的是好事吗?

说到这里,Linux 发行版众多似乎全是优点。

自由。

选择。

创新。

针对不同场景优化。

但事情当然没有这么简单。

发行版太多,也会带来问题。


1. 初学者不知道选哪个

很多人第一次接触 Linux,还没有开始安装,就已经陷入选择困难:

  • Ubuntu 还是 Fedora?
  • Debian 还是 Arch?
  • GNOME 还是 KDE?
  • Snap 还是 Flatpak?
  • APT 还是 DNF?
  • Wayland 还是 X11?

Windows 用户很少需要在安装前研究这么多名词。


2. 软件打包重复劳动

同一个软件,可能需要分别制作:

  • Debian 软件包;
  • Ubuntu 软件包;
  • Fedora 软件包;
  • Arch 软件包;
  • openSUSE 软件包。

不同发行版还可能使用不同版本的软件库。

这会增加开发者和维护者的工作量。

Flatpak、Snap、AppImage 和容器技术,在一定程度上就是为了减少这些差异带来的麻烦。


3. 教程不一定通用

一篇 Linux 教程可能写着:

sudo apt install nginx

Fedora 用户执行后,却发现:

apt: command not found

因为 Fedora 使用的是 DNF。

到了 Arch Linux,又变成:

sudo pacman -S nginx

它们安装的是同一个 Nginx。

但进入系统的门不一样。


4. 小发行版可能突然停止维护

创建一个发行版并不一定特别困难。

长期维护一个发行版却非常困难。

你需要持续处理:

  • 安全漏洞;
  • 软件更新;
  • 构建失败;
  • 服务器费用;
  • 社区管理;
  • 硬件兼容;
  • 安装镜像;
  • 文档;
  • 用户支持。

很多小型发行版开始时热情高涨。

几年后,开发者没有时间了。

项目也就慢慢停止更新。

所以:

能创建发行版,不等于能长期维护发行版。


第十五章:普通用户真的需要研究几百个发行版吗?

其实不需要。

Linux 发行版虽然很多,但对于普通桌面用户来说,常见选择并不复杂。

希望安装简单、资料丰富,可以考虑:

  • Ubuntu;
  • Linux Mint。

喜欢较新的开源技术,可以考虑:

  • Fedora。

希望系统稳定、自己慢慢配置,可以考虑:

  • Debian。

希望深入理解 Linux,并掌握更多控制权,可以考虑:

  • Arch Linux。

服务器和企业环境,则经常围绕:

  • Ubuntu Server;
  • Debian;
  • RHEL;
  • Rocky Linux;
  • AlmaLinux;
  • SUSE Linux Enterprise。

剩下的大量发行版,很多只是:

  • 面向特定硬件;
  • 面向特定国家或社区;
  • 面向特定桌面;
  • 面向特定行业;
  • 面向爱折腾的开发者。

就像世界上有成千上万种汽车。

普通人买车时,也不会把所有车型研究一遍。

先选择一个主流、可靠、适合自己的,就足够了。


第十六章:Linux 发行版真正分发的,不只是软件

不同发行版表面上的区别,可能是:

  • 软件包格式;
  • 桌面环境;
  • 安装程序;
  • 默认主题;
  • 发布周期。

但更深层的区别,是它们对操作系统的理解。

Debian 认为:

自由软件原则和社区治理很重要。

Ubuntu 认为:

Linux 应该更容易安装,也应该具备长期商业支持。

Fedora 认为:

新技术应该尽快进入真实系统,并推动上游发展。

Arch Linux 认为:

系统应该保持简洁,把控制权和责任交给用户。

Gentoo 认为:

既然软件可以自己编译,为什么不按照自己的硬件和需求编译?

Linux Mint 认为:

桌面系统首先应该符合普通人的使用习惯。

这些发行版分发的,不只是 Kernel 和软件包。

它们还在分发:

  • 一套默认选择;
  • 一种工程方法;
  • 一种社区文化;
  • 一种对“好系统”的理解。

写在最后:Windows 是一座城市,Linux 是一片大陆

Windows 更像一座由微软规划和管理的现代城市。

道路怎么修。

地铁怎么建。

建筑高度是多少。

系统什么时候升级。

主要由微软决定。

硬件厂商可以建商店。

软件开发者可以开公司。

用户可以装修自己的房子。

但是,城市的总体规划仍然掌握在微软手中。

Linux 则更像一片开放大陆。

Linus Torvalds 和内核社区维护着重要的基础设施。

GNU 和无数开源项目提供了工具和零件。

不同社区来到这里,建立了自己的城市。

有的城市历史悠久,规章严谨。

它叫 Debian。

有的希望让更多普通人来到这里。

它叫 Ubuntu。

有的喜欢尝试最新技术。

它叫 Fedora。

有的把大部分土地交给居民自己规划。

它叫 Arch Linux。

还有一些城市建在高山、沙漠、海岛和边境。

它们不追求服务所有人,只想解决一种特殊问题。

所以,Linux 有几百个发行版,并不是因为开发者无法团结。

恰恰相反:

Linux 社区在 Kernel、GNU 工具、桌面环境和大量开源项目上进行了极其庞大的合作。

只是这种合作,并不要求所有人最终做出完全相同的产品。

Linux 世界允许大家共享底层成果。

也允许大家保留不同意见。

Windows 的力量来自统一。

Linux 的力量来自自由组合。

统一带来了:

  • 一致性;
  • 兼容性;
  • 清晰的产品路线。

自由组合带来了:

  • 多样性;
  • 创新;
  • 选择;
  • 以及偶尔让人头疼的碎片化。

它们没有绝对的好坏。

只是走了两条完全不同的道路。

所以,下次再看到几百个 Linux 发行版时,不妨把它们想象成一棵大树。

Linux Kernel 是树干。

GNU 和其他开源项目提供了养分。

Debian、Red Hat、Arch、SUSE 等系统形成了粗壮的枝干。

Ubuntu、Mint、Rocky、Manjaro 等发行版,则在上面继续生长。

有些枝条会开花。

有些枝条会枯萎。

有些枝条会长成新的大树。

这看起来有些混乱。

但也正是这种混乱,让 Linux 在三十多年里,从一个大学生编写的 Kernel,最终进入了:

  • 服务器;
  • 云计算;
  • 超级计算机;
  • 手机;
  • 路由器;
  • 汽车;
  • 游戏设备;
  • 以及我们面前的个人电脑。

Windows 是一个产品。

而 Linux 更像一个世界。

一个世界,当然不会只有一种活法。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询