Linux(CentOS)系统管理入门笔记(第一期)——从 Multics 到主流发行版

我的主页:AOwhisky,这里有更多运维系统性知识整理和其他有趣内容,欢迎与我一起探讨学习~

引言:操作系统,数字世界的“大管家”

假如你是一位新晋的“数字城市”市长,你管辖着一座庞大的城市。这座城市里有成千上万的工厂(CPU 核心)、庞大的仓库群(内存与硬盘)、纵横交错的交通网络(系统总线),还有无数的居民(进程与用户)在街上活动。如果没有一套行之有效的交通规则、资源调度和治安管理体系,这座城市将瞬间陷入混乱。

操作系统(Operating System,OS) 就是这位深藏功与名的“大管家”。它负责管理所有的硬件资源,为上层应用程序提供运行环境,并确保不同的用户和任务能够公平、安全、高效地共享计算资源。

在众多操作系统中,Linux 是当今互联网绝对的中流砥柱。全球超过 90% 的公有云服务器运行着 Linux,从你手机里的 Android 系统,到支撑双十一购物狂欢节的阿里巴巴数据中心,再到空间站上的科学计算设备,处处都有它的身影。

我们不禁要问:这个没有大公司背景、由全球无数极客志愿协作开发的系统,究竟从何而来?它的血脉里流淌着怎样的基因?本期,我们将穿越回 1960 年代,见证 Multics 的宏大理想、Unix 的极简哲学、Minix 的育人初心,直至 Linux 内核的横空出世。读完它,你将不仅了解历史,更能读懂支撑当今云原生世界的开源精神生态版图


— Compiled and Authored by Whisky — July 5 th, 2026

目录

  1. 黎明之前:批处理与分时系统的萌芽
  2. Multics 计划:理想主义的宏大叙事
  3. Unix 诞生:三周写出的极简传奇
  4. Minix:教学催生的“微”系统与著名论战
  5. Linux 内核:1991 年的那封新闻组邮件
  6. GNU 与 GPL:自由软件运动的基石
  7. Linux 发行版生态:RPM 与 DEB 的百年战争
  8. CentOS 的兴衰与 Stream 新方向
  9. Linux 的设计哲学与应用场景
  10. 总结与全览速查

1. 黎明之前:批处理与分时系统的萌芽

1.1 早期计算机的“低效”与“独占”

在 20 世纪 50 至 60 年代,计算机是极其昂贵且体积庞大的庞然大物。彼时的操作系统极其原始,主要采用 批处理(Batch Processing) 模式。程序员将程序和数据打在穿孔纸带或卡片上,交给操作员,操作员将一批任务统一输入计算机。

这种模式的痛点显而易见:

  • 交互性极差:你无法与计算机实时对话,如果程序中有个 bug,只能等几个小时后拿到打印出的内存转储文件(Core Dump)才能调试。
  • 资源利用率低:CPU 在等待慢速的 I/O(如读卡器)时常常处于空闲状态,造成极大的计算资源浪费。

1.2 CTSS:分时系统的先驱

为了打破这种僵局,1964 年,麻省理工学院(MIT) 成功研发了 CTSS(兼容分时系统,Compatible Time-Sharing System)。CTSS 让多个用户通过各自的终端(电传打字机)同时连接到同一台主机,每个用户都感觉自己在独占计算机。分时(Time-Sharing) 概念的诞生,标志着操作系统开始关注“人机交互”与“多用户公平调度”,为后来的一切奠定了思想基础。


2. Multics 计划:理想主义的宏大叙事

2.1 三巨头的联手

1965 年,受 CTSS 的鼓舞,麻省理工学院(MIT)通用电气(GE)贝尔实验室(Bell Labs) 三大巨头强强联合,启动了一个雄心勃勃的项目——Multics(MULTiplexed Information and Computing Service,多路信息计算系统)

Multics 的目标极具前瞻性:

  • 构建一个公用事业(Utility) 级别的计算服务平台,像供电、供水一样提供计算能力。
  • 实现高可用性(即使部分硬件损坏,系统依然运行)。
  • 提供动态文件共享和层级式文件系统。

2.2 败给了“复杂度”与“成本”

理想丰满,现实骨感。Multics 的设计过于超前且复杂,代码量急剧膨胀,开发进度严重滞后,运行效率也十分低下。贝尔实验室在评估后认为,该项目无法“以合理的代价为实验室提供计算服务”,且维护成本太高。1969 年,贝尔实验室宣布退出 Multics 计划。

💡 历史辩证法:Multics 虽然在商业上失败了,但它留下了极其宝贵的技术遗产——如层级文件系统、动态链接库、命令解释器(Shell)雏形等。Unix 的“多路(Multi)”之名,正是站在这个巨人的肩膀上。


3. Unix 诞生:三周写出的极简传奇

3.1 “不务正业”的游戏梦

贝尔实验室退出 Multics 后,参与该项目的研究员 Ken Thompson(肯·汤普逊) 失去了继续在上面运行自己心爱的“太空大战(Space Travel)”游戏的环境。他四处寻找,最终在实验室角落发现了一台落灰的 PDP-7 小型机(1965 年生产,内存仅 4KB)。

Ken 决定将游戏移植到 PDP-7 上,但发现这台机器缺少他所需的操作系统。他没向领导申请“开发操作系统”这样的大项目,而是决定利用妻子带着一岁儿子回娘家休三周假的时间,闭门造车,写一个能跑游戏的操作系统内核。

3.2 三周创造历史

Ken 高效地完成了系统核心三要素的编写:

  • 第一周:一个命令解释器(Shell),让用户能键入指令。
  • 第二周:一个文本编辑器,用于编写代码和文档。
  • 第三周:一个汇编器,将高级人类指令翻译为机器码。

3.3 从“Unics”到“Unix”的命名

同事 Brian Kernighan(布莱恩·柯林汉) 戏称这个系统为 “Unics”(谐音“Eunuchs”太监),意指它虽然是“多路(Multi)”的简版,只能单打独斗,但足够简洁实用。后来大家取其谐音,正式命名为 Unix

同年巧合:1969 年底,Unix 诞生。也正是在这一年(12 月 28 日),未来的 Linux 之父——Linus Torvalds(林纳斯·托瓦兹) 出生。命运的齿轮开始转动。

3.4 Unix 的设计哲学(影响了 Linux 数十年)

哲学原则 解释
KISS 原则 Keep It Simple, Stupid!保持简单,只做一件事并做好。
一切都是文件 把硬件设备、进程、网络套接字都抽象为文件,用统一的 read/write 接口访问。
组合优于集成 提供小巧的工具(如 grepawk),用管道(`
文本流是通用接口 程序间通过文本进行通信,易于调试和扩展。

对比表格:Unix 与 Multics 的基因差异

维度 Multics Unix
目标 功能繁多的公共计算平台 个人开发者的便捷工具
代码规模 极其庞大复杂 精简、短小
开发语言 PL/I(高级但笨重) 先是汇编,后改写为 C 语言(优雅高效)
运行效率 缓慢,资源消耗大 极高,对硬件要求低
价格 昂贵 免费提供给大学(早期)

4. Minix:教学催生的“微”系统与著名论战

4.1 昂贵的 Unix 授权与教学的困境

Unix 诞生后,由于其优美的设计,迅速在学术界流行。但 AT&T 在《谢尔曼反托拉斯法》的限制解除后,开始将 Unix 商业化。一份源代码授权高达 4 万美元(上世纪 80 年代的巨款),让几乎所有大学望而却步。学生和教授无法接触源代码,操作系统课程变得空洞乏味。

4.2 Tanenbaum 的使命

1987 年,荷兰阿姆斯特丹自由大学教授 Andrew S. Tanenbaum(安德鲁·塔能鲍姆) 为了解决教学问题,参考 Unix 的设计,从零编写了一个完全兼容 Unix 的微内核操作系统——Minix(即 Mini-Unix)。他将完整的源代码附在他的著作《操作系统:设计与实现》中,学生花几十美元买书就能获得整套系统。

Minix 的特点

  • 采用 微内核(Microkernel) 架构,内核极小,驱动程序运行在用户态。
  • 专为教学优化,代码可读性极强。
  • 许可证限制:不允许外部贡献者随意添加代码,目的是保持纯净性,确保 80% 的代码能在考试中出现。

4.3 改变历史的“Tanenbaum-Torvalds 论战”

当 Minix 在全球黑客圈传播时,大家都想为其添加新功能,但 Tanenbaum 教授无情地拒绝了所有补丁。他认为“改得面目全非就没法教课了”。

1992 年,当 Linus 发布 Linux 后,Tanenbaum 在新闻组上发帖,提出了著名的论断:“Linux 已经过时了(Linux is obsolete)。”他认为在 1990 年代,微内核才是未来,而 Linux 采用的宏内核(Monolithic Kernel)是落后的。

年轻的 Linus 毫不示弱,两人展开了激烈的隔空论战。Linus 用一句名言回击:

“如果微内核真的那么好,那为什么它没有被广泛采用?Talk is cheap. Show me the code.”

这场论战虽然没有输赢,但极大地提高了 Linux 在技术圈的知名度。后来的事实证明,Linux 的宏内核在实际工业应用中具备极强的性能优势。


5. Linux 内核:1991 年的那封新闻组邮件

5.1 一个学生的“业余爱好”

1991 年,就读于赫尔辛基大学的 Linus Torvalds 对 Minix 的限制感到不满,更买不起昂贵的 Unix 工作站。他在一台配备 Intel 80386 CPU 的兼容机上,决定参照 Minix 和 Unix 的规范,编写自己的操作系统内核。

1991 年 8 月 25 日,Linus 在 Usenet 新闻组 comp.os.minix 上发布了一封载入史册的帖子:

“我正在编写一个(免费的)操作系统(只是个人爱好,不会像 GNU 那样庞大和专业)……它可能只是为 386/486 机器准备的。我从 4 月份开始酝酿,目前已经完成了一部分(包括 bash 和 gcc 的移植)。我希望得到大家的反馈。”

此时,Linux 内核版本仅为 0.01,功能极其简陋,甚至无法运行完整的图形界面,但它已经包含了进程管理和磁盘驱动。

5.2 版本号的进化与 1.0 里程碑

  • 1991-1992:全球黑客通过互联网(当时还是邮件列表)向 Linus 提交补丁。版本号从 0.01 快速迭代到 0.99。
  • 1994 年:Linux 内核 1.0 正式发布,代码量达到约 17 万行,并正式采用了 GPL(通用公共许可证) 发布。
  • 如今,Linux 内核版本号如 6.x,代码量已超过 3000 万行,是全球最大的开源协作单体项目。

5.3 彩蛋:Linus 与 NVIDIA 的“硬核对话”

Linus 性格直率。2012 年,他在芬兰阿尔托大学的访谈中,被问及为何 Linux 不支持 NVIDIA 显卡 Optimus 技术时,他对着镜头竖起中指,喊出了经典名句:

“So, NVIDIA: FUCK YOU!”

原因是 NVIDIA 拒绝开源其驱动源码,导致内核开发人员无法完美适配。这一事件充分体现了开源社区对“封闭二进制驱动(Blobs)”的深恶痛绝,以及 Linus 对自由软件原则的坚定捍卫。


6. GNU 与 GPL:自由软件运动的基石

6.1 理查德·斯托曼的“十字军东征”

如果说 Linux 内核是“汽车引擎”,那么 GNU 计划 提供的就是车身、座椅和方向盘。

1983 年,Richard Stallman(理查德·斯托曼) 发起了 GNU(GNU’s Not Unix) 计划。他的目标是创建一个完全自由的类 Unix 操作系统。他提出了自由软件(Free Software) 的概念,这里的“Free”指的是自由(Freedom),而非免费(Gratis)。

6.2 四种自由的宣誓

斯托曼归纳了自由软件的四大自由:

自由等级 内容
自由 0 无论何种目的,自由运行该软件。
自由 1 自由研究源码,并按需修改(前提是可得源码)。
自由 2 自由分发副本,帮助他人。
自由 3 自由分发修改后的副本,让社区受益。

6.3 GPL 许可证的“传染性”与 GNU/Linux

为了实现上述目标,斯托曼起草了 GPL(GNU General Public License)。GPL 的核心是 Copyleft(著佐权):如果你修改了 GPL 代码并分发,那么你的修改也必须以 GPL 开源。

到 1991 年,GNU 项目完成了 GCC 编译器、Emacs 编辑器、Bash Shell、C 标准库(Glibc)等几乎所有用户态工具,唯独内核(Hurd)难产。此时,Linus 的 Linux 内核恰好填补了这块拼图。
Linux 内核 + GNU 工具集 = 一个完整的自由操作系统
因此,自由软件基金会坚持要求将其称为 GNU/Linux,以铭记 GNU 计划的巨大贡献。


7. Linux 发行版生态:RPM 与 DEB 的百年战争

Linux 只是一个“内核”,普通用户无法直接使用内核。把内核、GNU 工具、包管理、图形界面、应用软件打包在一起,就构成了 Linux 发行版(Distribution)

7.1 两大包管理流派

Linux 世界的“宗教战争”之一就是包管理系统的选择。软件安装需要解决复杂的依赖问题(即 A 软件依赖 B 库,B 库依赖 C 组件),包管理系统正是为了解决“依赖地狱”而生。

包管理流派 包后缀 前端命令 后端命令 代表发行版
RPM 系 (红帽系) .rpm dnf / yum rpm RHEL, CentOS, Fedora, Rocky
DEB 系 (Debian系) .deb apt / apt-get dpkg Debian, Ubuntu, Kali
滚动系 (独立) 源码/二进制 pacman makepkg Arch Linux

7.2 主流发行版家族全解析

① 红帽家族(RHEL 生态)

  • RHEL(Red Hat Enterprise Linux):企业级 Linux 的标杆,提供长达 10 年的安全支持,商业订阅模式。经过严格的兼容性测试,是银行、电信、政府部门的首选。
  • Fedora:红帽的上游试验田,技术非常前沿(如抢先集成 Wayland、Btrfs),适合桌面开发者和喜欢尝鲜的人。
  • CentOS / Rocky / AlmaLinux:基于 RHEL 源码重新编译的免费克隆版,二进制兼容 RHEL,是中小企业运维的最爱(但 CentOS 8 已转向,详见下文)。

② 德班家族(Debian 生态)

  • Debian:社区驱动的典范,严格遵守 GNU 自由软件规范。拥有最庞大的软件仓库(超过 5 万个包)。以稳定(Stable) 著称,版本迭代较慢,但 bug 极少。
  • Ubuntu:基于 Debian 的 Sid(不稳定分支)衍生,由 Canonical 公司维护。注重桌面易用性和用户体验,驱动支持完善,是目前 AI/ML 和数据科学领域最流行的发行版(因为 Nvidia 驱动和 CUDA 工具链支持最好)。
  • Kali Linux:基于 Debian,预装了数百种渗透测试和安全审计工具,是白帽子黑客的标配。

7.3 发行版对比速查表

维度 RHEL / CentOS Debian / Ubuntu Arch Linux
稳定性 ★★★★★ (极稳) ★★★★☆ (Debian 极稳,Ubuntu 较新) ★★☆☆☆ (滚动更新,易崩)
软件新度 ★★☆☆☆ (老旧,但安全) ★★★★☆ (适中) ★★★★★ (最新)
商业支持 红帽官方支持 Canonical 或社区支持 社区 Wiki (极其详尽)
学习曲线 平缓,文档多 平缓,用户量大 陡峭,需要自己配置内核模块
适用场景 关键任务生产服务器 通用服务器、桌面、深度学习 极客台式机、定制化系统

8. CentOS 的兴衰与 Stream 新方向

8.1 CentOS 的初心与荣耀

CentOS(Community Enterprise Operating System) 诞生之初就是为了对抗 RHEL 的商业授权费用。它利用红帽公开的 SRPM(源码包),去除 Red Hat 商标,重新编译成二进制,免费发布。因为二进制兼容 RHEL,它迅速成为无数中小企业和开发者的**“生产环境免费午餐”**。

2014 年,红帽正式收购 CentOS 项目,承诺保持其独立性。社区本以为找到了好靠山,风平浪静。

8.2 平地惊雷:CentOS 8 的“早逝”

美国时间 2020 年 12 月 8 日,红帽突然宣布战略性调整:

  • CentOS 8 将在 2021 年底(原计划 2029 年)停止维护,寿命缩短了 8 年。
  • CentOS 7 按原计划维护至 2024 年 6 月 30 日。
  • 不再有 CentOS Linux 9,取而代之的是 CentOS Stream 9

8.3 从“下游”到“上游”的模式巨变

传统的 RHEL 开发模式是:Fedora → RHEL (内部开发) → CentOS (下游克隆)
而新的模式是:Fedora → CentOS Stream (公开滚动开发) → RHEL (下一个版本)

这意味着什么?
CentOS Stream 不再是 RHEL 的 1:1 克隆,而是 RHEL 的“预览版”或“开发分支”。对于希望“绝对稳定”的生产者来说,这是致命的。此举导致大量用户恐慌性迁移。

8.4 后 CentOS 时代的选择

  • Rocky Linux:由 CentOS 联合创始人 Gregory Kurtzer 发起,目标是接替原 CentOS 的位置,社区驱动,免费。
  • AlmaLinux:由 CloudLinux 公司发起,承诺永久免费,背靠商业支持。
  • Oracle Linux:甲骨文提供的免费克隆,附带自家 UEK 内核。

⚠️ 常见误区:很多人说“CentOS 死了”。准确的说法是 “CentOS Linux”(下游稳定版)死了,但 “CentOS Stream”(上游开发版)依然活跃。如果你参与 RHEL 生态的开发测试,Stream 值得关注;如果你是普通运维,建议迁移至 Rocky 或 Alma。


9. Linux 的设计哲学与应用场景

9.1 “一切皆文件”的深刻内涵

在 Linux 世界里,/dev/sda 代表你的硬盘,/dev/tty 代表终端,/proc/cpuinfo 代表 CPU 信息。甚至网络连接(/dev/tcp)也被抽象为文件。

好处:操作任何设备,都是用统一的 API 接口(open, read, write, close)。你可以用 cat 命令查看 CPU 信息,用 echo 命令向设备写入数据,极大地简化了编程模型。

9.2 Linux 的统治级应用场景

应用场景 占比/地位 原因分析
云服务器与 Web 后端 > 96% 的公共云 免费、稳定、轻量,容器(Docker/K8s)原生支持
超级计算 全球 TOP500 超级计算机 100% 运行 Linux 开源,可针对特定硬件深度裁剪优化
移动操作系统 Android(基于 Linux 内核)占据 85% 市场份额 强大的内存管理和进程调度适配移动低功耗场景
嵌入式与物联网 智能路由器、机顶盒、汽车中控(Automotive Grade Linux) 高度模块化,可裁剪至几 MB 大小
金融交易 华尔街高频交易系统 低延迟调度算法,网络协议栈高效

9.3 为何 Linux 无法取代 Windows 桌面?

并非技术劣势,而是生态锁定和用户习惯。Windows 拥有庞大的 .NET 开发框架、DirectX 游戏驱动和 Adobe 全家桶。而 Linux 桌面(如 GNOME/KDE)虽然已非常精美,但对普通办公人员的学习成本依然较高,且国内政务软件、网银控件对 Linux 支持不佳。


10. 总结与全览速查

10.1 核心历史路线图

时间 事件 关键人物/组织 历史意义
1965 Multics 项目启动 MIT, GE, Bell Labs 首次提出多用户分时系统宏大理想
1969 Unix 诞生 Ken Thompson, Dennis Ritchie 确立了极简、模块化的操作系统设计哲学
1983 GNU 计划发起 Richard Stallman 提出“自由软件”概念,奠定了开源运动的法理基础
1987 Minix 发布 Andrew Tanenbaum 让操作系统教学有源码可依,激发了 Linus
1991 Linux 内核发布 Linus Torvalds 诞生了历史上最成功的开源协作内核项目
1994 Linux 1.0 与 GPL 合体 全球黑客社区 GNU/Linux 完整操作系统正式成熟
2020 CentOS 8 提前终止 Red Hat 标志着社区免费稳定版商业模式的重大转变

10.2 发行版选型终极指南

你的身份/需求 第一推荐 备选
企业级生产服务器(金融、政务) RHEL(买商业订阅) Rocky Linux
初创公司/个人开发者低成本生产 Rocky Linux / AlmaLinux Ubuntu Server LTS
AI 炼丹师 / 深度学习 Ubuntu(驱动兼容性最好) -
网络安全渗透测试 Kali Linux Parrot OS
想从头学习 Linux 内部原理 Arch Linux / Gentoo LFS(Linux From Scratch)
最小化容器基础镜像 Alpine Linux(基于 musl,体积仅 5MB) Debian Slim

10.3 动手验证:查看你的 Linux 内核版本

虽然我们还没深入敲命令,但你可以尝试打开终端,输入以下命令查看系统底层内核版本,感受一下“内核 + 发行版”的实体存在:

# 查看当前系统内核版本号
uname -r
# 示例输出: 3.10.0-1160.el7.x86_64
# 解析: 3.10 是内核主版本,el7 代表专为 RHEL/CentOS 7 编译

# 查看发行版的具体名称与版本
cat /etc/os-release
# 输出示例: NAME="CentOS Linux", VERSION="7 (Core)"

10.4 思维拓展

  1. 如果当年贝尔实验室没有退出 Multics,Unix 还会诞生吗?

    ——历史没有如果,但正是“资源受限”催生了 Unix 的极简之美。这启发我们:面对复杂问题,做减法往往比做加法更难,也更有价值。

  2. GPL 的“传染性”是利是弊?

    ——对于商业公司,GPL 确实限制了闭源分发,但它保护了社区的成果不被私有化。这也是为什么 Linux 能汇集全球智慧的核心法律保障。

  3. CentOS Stream 转向“上游开发”模式,对你未来的技术选型有何警示?

    ——永远不要把核心业务完全绑定在免费的社区版上,除非你有能力自维护分支(Fork)。


下期预告:了解了 Linux 的“出身名门”与“江湖版图”,我们将从理论走向实战。下一期,我们将正式打开那个令人着迷的“黑框框”,手把手带你熟悉 Linux 命令行环境。我们将剖析 Shell 的解析原理,掌握 dateheadtailwc 等高频工具,并学会用 historyscript 录制操作回放——让你真正具备与内核对话的能力。敬请期待!

— Compiled and Authored by Whisky — July 5 th, 2026
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐