Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

范围、取舍与淘汰内容

1. 母本清单与角色

本书吸收十部母本。它们不是并列的十章,而是各自负责一条证据链:

#母本版本/规模在本书中的角色主要落点
1《Linux/UNIX 系统编程手册》Kerrisk上下册,64 章系统编程的主干:API 语义、边界、可移植性第 2 篇;第 1 篇 1.8/1.10
2《深入理解计算机系统》CSAPP3e,12 章系统底座:表示、汇编、链接、内存、并发第 1 篇;第 2 篇部分
3《操作系统导论》OSTEP4 部分 49 章理论骨架:虚拟化、并发、持久化第 1 篇 1.9/1.12/1.13;第 3 篇
4《操作系统原理、实现与实践》李治军8 章 + 8 实践实现视角:从零做一个内核第 3 篇「实现侧写」;第 1 篇 1.13
5《奔跑吧 Linux 内核》6 章内核源码主线:内存、进程、并发、中断、调试第 3 篇
6《深入理解 Linux 网络》10 章网络栈主线:收包、发包、socket、连接、调优第 4 篇 4.8–4.12
7《鸟哥的 Linux 私房菜·基础篇》4e,26 章运维与使用:文件、权限、磁盘、服务、启动第 0 篇
8《Linux 命令行大全》Shotts2e,36 章命令行基本功:Shell 语法、重定向、文本工具第 0 篇
9《Linux 命令行与 shell 脚本编程大全》4e,25 章Shell 工程:脚本结构、sed/awk、实用工具第 0 篇
10《计算机网络》谢希仁8e,9 章协议分层:物理层到应用层、网络安全第 1 篇 1.11;第 4 篇 4.1–4.7

2. 覆盖原则

2.1 「不遗漏」指概念与路径,不是逐页翻译

十部母本合计约 7000 页。逐页复述既不可能,也违背「精炼」。本书的覆盖判据是:

  1. 每个母本章节的核心问题必须在正文出现(可由覆盖矩阵逐条核对);
  2. 每个 API/结构/协议状态至少给出语义、边界、典型错误;
  3. 每条内核/网络路径至少给出「谁调用谁、数据结构怎么变、怎么观测」;
  4. 淘汰内容可以只出现在附录,但必须能查到「它是什么、为什么被取代、怎么迁移」。

因此覆盖矩阵里允许「一章对一节」,也允许「多章对一节」,但不允许「无落点」。

2.2 深度标记

正文用三种标记控制阅读负担:

标记含义第一遍
核心必须掌握,后续章节依赖精读 + 动手
选读重要但可后补,通常是实现细节/边角 API知道在哪,用时回查
历史已淘汰或被替代只读附录 A.1

2.3 证据等级

本书把结论按证据强度标注(不单独打标签,而在正文中写清):

  • 规范级:POSIX/Linux man-pages/RFC 明确规定;
  • 实现级:当前内核/glibc 的实现行为,可能随版本变化;
  • 观测级:在本书实验环境实测,注明命令与版本;
  • 经验级:工程惯例,给出适用条件。

遇到冲突,以规范级为准;实现级要注明版本;经验级要说明边界。

3. 版本基线与淘汰政策

3.1 基线

项基线备注
发行版Ubuntu 24.04 LTSDebian 12 / Fedora 40 差异在文中标注
内核Linux 6.8+内核篇以 6.x 为主,4.x/5.x 差异标注
libcglibc 2.39musl 差异在容器/嵌入式处标注
编译器GCC 13 / Clang 18C17 + POSIX.1-2008
架构x86-64 为主ARM64 在汇编、内存、网络处对照
容器Docker 26 / containerd 1.7 / runc 1.1cgroups v2

3.2 淘汰内容清单

以下内容不占主线,集中到附录 A.1:

旧内容现状本书处理
SysV init、/etc/inittab、rc.local 作为主流程systemd 为事实标准附录讲启动模型演进 + 如何迁移 unit
ifconfig、route、arp、netstatiproute2(ip、ss)第 0 篇只教 iproute2;附录给对照表
iptables 旧语法nftables;iptables-nft 兼容层第 4/5 篇讲 nftables;附录给旧规则迁移
ext2/ext3 细节、mke2fs 旧选项ext4/XFS/Btrfs第 3 篇讲 VFS 与 ext4 日志;附录提 ext2 历史
32 位 x86 汇编、int 0x80 作为主入口x86-64 syscall;ARM64 svc第 1 篇讲 x86-64;附录保留 32 位对照
Linux 2.6 O(1) 调度器、旧 CFS 细节EEVDF(6.6+)第 3 篇讲 CFS 思想 + EEVDF;旧调度器只作历史
SysV IPC 作为首选 IPCPOSIX IPC、socket、io_uring第 2 篇讲 POSIX 为主;SysV 在附录对照
手写 Makefile 管理大型项目CMake/Meson/Bazel第 0/6 篇讲现代构建;Makefile 只讲最小必要
物理机装双系统、BIOS/MBR 为主UEFI/GPT、虚拟机/容器第 0 篇讲 UEFI/GPT;附录提 BIOS/MBR
传统 LAMP 手工编译部署容器、CI/CD、声明式配置第 5/6 篇讲容器化交付

判断标准:一个 2026 年入行的工程师,如果只学旧做法,是否会在真实工作中受阻?会,则旧做法进附录;不会,则保留在主线并标注「兼容」。

4. 明确排除的内容

以下内容不属于本书范围,避免「什么都讲一点」:

  • 桌面环境的安装与美化、输入法、打印机、多媒体编解码;
  • 特定发行版的安装器逐屏讲解(只讲分区与引导的通用原理);
  • 云厂商产品操作(AWS/Aliyun 控制台)、Kubernetes 全量运维;
  • 编译器构造、编程语言理论、算法竞赛;
  • 内核所有子系统(如音频、USB、GPU 驱动)的逐行分析;本书只讲通用机制与一条完整路径。

5. 与母本的对应方式

每章末尾有「母本对应」小节,列出该章吸收了哪些原书章节。完整的逐章矩阵在附录 A.4,格式如下:

母本原书章节本书落点覆盖程度
Kerrisk第 4 章 文件 I/O2.2完整
Kerrisk第 5 章 深入文件 I/O2.3完整
CSAPP第 9 章 虚拟内存1.9 + 3.8理论 + 实现
鸟哥第 7 章 磁盘与文件系统0.10 + 3.12使用 + 原理

覆盖程度分三档:完整(概念、API、边界、示例齐全)、精选(核心概念与常用 API,冷门 API 指路)、背景(只保留理解主线所需的最小集)。

6. 时效与勘误

技术书天然会过期。本书的处理办法:

  • 与版本强相关的结论标注「Linux 6.8 实测」;
  • 可能变化的默认值(如 net.core.somaxconn)给出查看命令,而不是只给数字;
  • 已知的母本笔误、版本差异集中到附录 A.6;
  • 读者发现错误,欢迎按页脚的「编辑此页」直接提 PR。

下一站:能力矩阵与学习目标把「读完能做什么」写成可检查的条目。