Linux(CentOS)系统管理入门笔记(第一期)——从 Multics 到主流发行版
Linux(CentOS)系统管理入门笔记(第一期)——从 Multics 到主流发行版
我的主页:AOwhisky,这里有更多运维系统性知识整理和其他有趣内容,欢迎与我一起探讨学习~
引言:操作系统,数字世界的“大管家”
假如你是一位新晋的“数字城市”市长,你管辖着一座庞大的城市。这座城市里有成千上万的工厂(CPU 核心)、庞大的仓库群(内存与硬盘)、纵横交错的交通网络(系统总线),还有无数的居民(进程与用户)在街上活动。如果没有一套行之有效的交通规则、资源调度和治安管理体系,这座城市将瞬间陷入混乱。
操作系统(Operating System,OS) 就是这位深藏功与名的“大管家”。它负责管理所有的硬件资源,为上层应用程序提供运行环境,并确保不同的用户和任务能够公平、安全、高效地共享计算资源。
在众多操作系统中,Linux 是当今互联网绝对的中流砥柱。全球超过 90% 的公有云服务器运行着 Linux,从你手机里的 Android 系统,到支撑双十一购物狂欢节的阿里巴巴数据中心,再到空间站上的科学计算设备,处处都有它的身影。
我们不禁要问:这个没有大公司背景、由全球无数极客志愿协作开发的系统,究竟从何而来?它的血脉里流淌着怎样的基因?本期,我们将穿越回 1960 年代,见证 Multics 的宏大理想、Unix 的极简哲学、Minix 的育人初心,直至 Linux 内核的横空出世。读完它,你将不仅了解历史,更能读懂支撑当今云原生世界的开源精神与生态版图。
目录
- 黎明之前:批处理与分时系统的萌芽
- Multics 计划:理想主义的宏大叙事
- Unix 诞生:三周写出的极简传奇
- Minix:教学催生的“微”系统与著名论战
- Linux 内核:1991 年的那封新闻组邮件
- GNU 与 GPL:自由软件运动的基石
- Linux 发行版生态:RPM 与 DEB 的百年战争
- CentOS 的兴衰与 Stream 新方向
- Linux 的设计哲学与应用场景
- 总结与全览速查
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 接口访问。 |
| 组合优于集成 | 提供小巧的工具(如 grep、awk),用管道(` |
| 文本流是通用接口 | 程序间通过文本进行通信,易于调试和扩展。 |
对比表格: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 思维拓展
-
如果当年贝尔实验室没有退出 Multics,Unix 还会诞生吗?
——历史没有如果,但正是“资源受限”催生了 Unix 的极简之美。这启发我们:面对复杂问题,做减法往往比做加法更难,也更有价值。
-
GPL 的“传染性”是利是弊?
——对于商业公司,GPL 确实限制了闭源分发,但它保护了社区的成果不被私有化。这也是为什么 Linux 能汇集全球智慧的核心法律保障。
-
CentOS Stream 转向“上游开发”模式,对你未来的技术选型有何警示?
——永远不要把核心业务完全绑定在免费的社区版上,除非你有能力自维护分支(Fork)。
下期预告:了解了 Linux 的“出身名门”与“江湖版图”,我们将从理论走向实战。下一期,我们将正式打开那个令人着迷的“黑框框”,手把手带你熟悉 Linux 命令行环境。我们将剖析 Shell 的解析原理,掌握
date、head、tail、wc等高频工具,并学会用history和script录制操作回放——让你真正具备与内核对话的能力。敬请期待!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)