第 03 卷 · 计算机系统、操作系统与 Linux
本卷的定位与入口
先修:Go 基础和最小集合;算法卷的数量级与局部性可并行学习。
本卷按起步、原理、工程和进阶分层;首次进入时按阶段学习路线选取当前需要的章节。
已完成的独立章稿
03.01 数据、指令与存储层次已完成,可在 01.04 后建立资源基础。位、单位、地址与缓存的必要定义都在本章给出,不要求先读 02.01 或掌握 Go 指针语法。03.02 进程与系统调用承接本地历史 CLI,说明程序启动、用户/内核边界、文件读取与退出。03.03 Linux 进程与资源再用只读观察解释 PID、cwd、环境、描述符和信号。03.04 CPU 调度由进程状态进入可运行、等待、时间片和 IM 连接负载。03.05 虚拟内存在 S4 回访地址翻译、驻留与连接内存预算;03.06 分配与映射再把 Go 对象、分配器、文件页和进程 RSS 对齐;03.07 文件与目录用日志轮转区分名字与打开对象;03.08 持久化机制再把名字切换与崩溃恢复分开;03.09 I/O 与事件通知用两连接解释就绪、短读写和完整消息;03.10 系统诊断整合只读资源证据;03.11 隔离与限制在 S6 回访 namespace/cgroup、容器 CPU 配额和 OOM 业务影响;03.12 资源故障案例再以 FD、磁盘、内存回收与退出信号完成故障分流。
03.01 含 8 节、16 道练习和明确假设的缓存/预算推演;03.02–03.12 各含 8 节、22 道练习,分别沿本地文件、进程现场、单核调度、虚拟内存、分配映射、文件轮转、崩溃恢复、事件 I/O、资源诊断、容器隔离与资源故障模型推演。十二章均完成独立正文。
IM 主线中的位置
长连接的描述符、进程与线程、消息缓冲、内存保留、日志和磁盘;把症状与资源机制对应。
主参照与源码入口见 OpenIM 阅读地图。各章区分公开项目事实与虚构教学规则,在具备先修后对照固定源码。
参考材料怎样进入课程
采用经典资料的知识覆盖与递进思路,结合 Go 和虚构 IM 重新组织。下表对应本卷已完成的十二章;按先修选择章节并完成独立变式。
起步层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 03.01 数据、指令与存储层次 | 二进制、字节、地址、整数与浮点;CPU、寄存器、缓存、内存和磁盘。 | 用消息缓冲解释字节、地址和存储层次,比较顺序扫描与随机访问的工作量。 |
| 03.02 进程与系统调用 | 用户态/内核态、进程地址空间、系统调用、程序启动与退出状态。 | 沿客户端或网关读写操作区分程序、进程、运行时与内核,解释启动和退出。 |
| 03.03 Linux 进程与资源 | PID、环境、信号、文件描述符、权限、工作目录;父子进程关系。 | 用只读观察定位网关的目录、配置、权限、信号与描述符问题。 |
原理层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 03.04 CPU 调度 | 线程、可运行与阻塞、时间片、上下文切换、多核与公平性。 | 解释大量连接等待时CPU不满的原因,区分可运行任务、调度等待与I/O阻塞。 |
| 03.05 虚拟内存 | 地址转换、页、页表、TLB、缺页、驻留内存与交换。 | 区分网关申请地址空间、实际触碰页面和驻留内存,解释缺页与资源变化。 |
| 03.06 分配与映射 | 堆、栈、碎片、mmap、页缓存;语言 GC 与系统内存统计。 | 分析消息缓冲释放后RSS未立即下降,区分对象、分配器、映射与页缓存。 |
工程层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 03.07 文件与目录 | 文件名、inode、描述符、偏移、链接、权限与删除;缓冲读写。 | 推演聊天日志轮转、打开文件偏移和删除后仍占空间的情况。 |
| 03.08 持久化机制 | 设备、块、文件系统;write、fsync、rename、日志、崩溃与恢复。 | 为本地历史保存安排崩溃点,区分write、刷盘、原子替换与真正耐久。 |
| 03.09 I/O 与事件通知 | 阻塞/非阻塞、就绪、epoll;短读短写;事件循环与工作线程。 | 解释连接就绪、短读短写与完整消息边界,比较阻塞和事件通知模型。 |
进阶层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 03.10 系统诊断 | 进程、内存、磁盘与 socket 观察;proc、vmstat、iostat、ss 的用途。 | 围绕消息时延提出假设,再选择进程、内存、磁盘与socket观察工具。 |
| 03.11 隔离与限制 | namespace、cgroup、CPU 配额、内存限制、OOM;容器与主机视角。 | 解释网关容器受限而主机空闲的现象,分析配额、隔离、OOM与实际恢复。 |
| 03.12 资源故障案例 | 描述符耗尽、磁盘满、页缓存压力、信号与退出;恢复路径。 | 给出描述符耗尽、磁盘满或信号退出的证据链,核对哪些连接和消息需要恢复。 |
本卷综合任务
围绕 IM 网关的连接、内存或磁盘症状编写诊断说明,包含假设、只读观测、最小复现与恢复验证。
任务由学习者在具备环境时执行。理论推导、参考示例、个人实现和真实运行记录分别保存,故障与反例属于必需部分。
达到的能力
能把应用现象追踪到资源与机制,并说明观测数据的单位、视角和局限。
用解释、最小实现、失败变式、业务取舍四类证据评审。只有目录、术语定义或参考代码通过,不能直接记为掌握本卷。
本卷章节展开规则
每章从一个明确问题开始,先补齐本章所需定义,再推导机制;至少含一条完整执行过程、一个反例、分层练习、反馈与业务迁移。复杂章节拆成多课,不把整卷知识压成一次速读。
当前编写状态和章节深度要求见课程编写与能力验收。