操作系统不是”老学问”。它是所有上层软件的地基——数据库的事务、分布式系统的一致性、网络栈的吞吐、容器的隔离、AI 的算力调度,全都落在它的抽象之上。可惜中文互联网上关于 OS 的深度材料,要么停留在教材,要么散落在一些晦涩的源码笔记里。本系列尝试补这个空白。
110 篇长文,从”什么是操作系统”谈起,逐层下到调度器、虚拟内存、文件系统与 I/O、内核并发、中断与时钟、启动与 ABI、可观测性、安全与隔离,最后展望 OS 的下一个十年。每一篇都对着 Linux 6.x 主线源码做实证分析,对关键分歧引入 FreeBSD、XNU、Windows、Zephyr/QNX 的对照视角。我们不做 man page 翻译,不做教科书搬运。
本系列假设你能读 C/Go/Rust,了解 CPU 缓存、虚拟内存、系统调用等基础概念;如果你读过本站的 分布式系统百科、存储百科 或 网络工程百科,阅读体验会更好。
子系列 A · 操作系统思想与边界
- 什么是操作系统 — 从 monitor 到微内核再到 unikernel,OS 的职责清单
- Unix 谱系与设计遗产 — Multics、Unix V6/V7、BSD、Plan 9、Linux
- 宏内核 vs 微内核 — Tanenbaum-Torvalds 论战三十年后的工程结论
- 特权级与硬件隔离 — ring0/SMM/EL/SMEP/SMAP/PKU/CET
- 系统调用 ABI — x86_64/arm64/riscv/NT 的 syscall 路径
- 内核与用户态的契约 — copy_from_user、SMAP、pin_user_pages
- POSIX 神话 — fork、信号、IOCP、kqueue
- OS 工程常识错觉 — 零拷贝、微内核、实时、协程的若干神话
子系列 B · 进程、线程与任务模型
- 进程与 fork/exec 的历史包袱
- 线程模型:1:1 / N:1 / M:N 与虚拟线程
- task_struct 解剖
- 进程生命周期
- 信号:Unix 最拧巴的抽象
- 管道、FIFO、socketpair
- 共享内存:SysV / POSIX / memfd
- 消息队列与 mqueue
- namespace:容器的内核根基
- cgroup v2:资源控制的统一模型
子系列 C · 调度器深度
- 调度理论:从 FCFS 到 EDF
- CFS 内部
- EEVDF:取代 CFS 的新调度器
- 实时调度与 PREEMPT_RT
- SCHED_DEADLINE 与 CBS
- 多核负载均衡
- HMP 异构调度:big.LITTLE 与 Intel P+E
- 调度延迟分析
- 空闲管理与 cpuidle
- 频率调节:schedutil 为什么赢
子系列 D · 虚拟内存
- 虚拟内存模型
- x86_64 多级页表与 LA57
- ARMv8 翻译体制
- TLB 工程
- mm_struct 与 VMA
- 缺页:major/minor/COW/userfault
- 页缓存(VM 视角)
- 内存回收与 MGLRU
- 交换:swap/zram/zswap
- OOM Killer 与 systemd-oomd
- NUMA
- HugeTLB 与 THP
子系列 E · 内核内存分配器
子系列 F · 文件系统与 VFS
- VFS 四层抽象
- 路径名解析与 RCU walk
- fd 表与 struct file
- 文件锁:flock / fcntl / OFD
- xattr / ACL / capabilities
- fanotify / inotify / fsnotify
- OverlayFS 与容器镜像
- FUSE 性能天花板
子系列 G · I/O 子系统
- VFS I/O 路径
- POSIX AIO 与 libaio 的历史包袱
- io_uring 内核内部
- epoll 内部
- select / poll:该退场的两位
- signalfd / eventfd / timerfd / pidfd
- splice / tee / vmsplice
- 异步 I/O 模型 benchmark
子系列 H · 并发、同步与内核锁
- Linux 内核内存模型 LKMM
- 原子 RMW 与硬件原语
- spinlock 家族
- mutex 与 rwsem
- RCU 深度
- seqlock
- percpu_refcount 与引用计数
- futex
- 优先级反转
- 内核并发的形式化验证
子系列 I · 中断、时钟与低层机制
- 中断架构
- softirq / tasklet / workqueue
- 线程化中断
- hrtimer 与 timer wheel
- NO_HZ tickless 内核
- clocksource 与时间源
- CPU 热插拔
- 电源管理
子系列 J · 启动、内核模块与 ABI
子系列 K · 可观测性与调试
- ftrace
- perf 子系统
- eBPF 核心
- kprobe / uprobe / fprobe
- kdump / crash / ramoops
- lockdep / kcsan / kfence
- 内核日志与 printk
- /proc 与 /sys
子系列 L · 安全与隔离
- POSIX capabilities
- seccomp-bpf 与 Landlock
- SELinux 与 AppArmor
- IMA / EVM / dm-verity / fs-verity
- KASLR、KPTI 与投机执行缓解
- 容器隔离强度
- 虚拟化基础:VMX / SVM / EPT
- KVM 架构与 vhost
子系列 M · OS 前沿与未来
- FreeBSD / OpenBSD 对照
- Windows NT 内核对照
- 实时 OS 巡礼
- Unikernel
- Rust for Linux
- 机密计算 OS
- 可拆分 OS 与远程内存
- OS 的下一个十年
写作状态
系列正在持续撰写中。已发表的文章标题为普通链接;未完成的以灰色占位链接形式列出。读者可通过 RSS 订阅本站更新。
延伸阅读
- 分布式系统百科 — 单机之上的共识、复制、事务
- 存储百科 — 块层、文件系统、LSM/B-tree 引擎
- 网络工程百科 — 协议栈、socket、XDP、CDN
- 算法与数据结构百科 — 并发数据结构、lock-free
- 系统架构百科 — 性能建模、容量规划、架构模式
post/linux/下的历史笔记(allocator-arena、ebpf、iouring-production 等)是本系列许多章节的”案例库”,文章中会交叉引用。
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【操作系统百科】什么是操作系统:从 monitor 到 unikernel 的职责清单
从裸机监控器到微内核再到 unikernel 与 serverless,OS 这个抽象层在六十年里被反复挑战又反复回归。本文不做教科书式定义,而是回到工程视角,提炼 OS 真正在做的五件事:资源抽象、复用、隔离、公平、可观测性。以此为尺,丈量宏内核、微内核、VMM、unikernel、serverless 各自的胜负边界。
分布式系统百科
64 篇深度长文,从系统模型到前沿研究,覆盖分布式系统的每一个核心主题。
【操作系统百科】内存回收
Linux 内存回收是 VM 最复杂的子系统之一。本文讲 active/inactive LRU、kswapd 与 direct reclaim、watermark 三线、swappiness 的真实含义、MGLRU 改造、memcg 回收与 PSI。
【操作系统百科】交换
swap 还值得开吗?本文讲 swap area 基础、swap cache、zram 压缩内存、zswap 前端压缩池、swappiness 的真实含义、容器里的 swap 策略,以及为什么现代 Android 全靠 zram 不靠磁盘。