深入计算机系统
追踪一行代码如何经过编码、CPU、内存与操作系统,
最终变成机器可执行的动作。
算法森林只告诉你一段程序要做多少工作,却没有解释工作怎样落到机器上。你们沿着一次函数调用进入计算机地心,从字节、指令和缓存一路追到进程、虚拟内存与文件系统,找出性能和故障背后的物理边界。
旅程位置:算法森林 → 计算机地心(理解程序如何执行)→ 网络驿道
前置要求
需要系统基础。熟悉 C/Java 编程,了解 Linux 基本命令。完成 Vol 1-2 后再阅读。
第1章 数据编码——计算机的符文系统 已写完
二进制、十六进制、ASCII、Unicode、UTF-8——0和1是计算机世界最基础的符文。
第2章 整数与浮点——数字的奥秘 已写完
有符号/无符号整数、补码、IEEE 754 浮点标准、精度陷阱。
第3章 数字逻辑——从逻辑门到计算机 已写完
逻辑门、MUX、加法器、ALU、状态机——计算机的物理基础。
第4章 CPU与ISA——地心引擎 已写完
指令集架构、RISC vs CISC、寄存器文件、指令流水线基础。
第5章 缓存体系——速度的缓冲带 已写完
缓存层次、局部性、缓存行、写策略、缓存友好的代码优化。
第6章 虚拟内存——内存的幻术 已写完
页表、TLB、分页与分段、地址转换、内存映射文件。
第7章 异常与系统调用——用户态的边界 已写完
中断、异常、陷阱、系统调用、用户态与内核态切换。
第8章 进程上下文——谁在运行你的代码 已写完
进程状态机、上下文切换、调度策略、PCB、fork/exec。
第9章 线程与同步——分身与协作 已写完
线程模型、互斥锁、信号量、条件变量、死锁预防。
第10章 CPU调度——谁先上CPU 已写完
FCFS/SJF/MLFQ/RR/CFS 调度算法、实时调度。
第11章 锁与动态内存 已写完
原子操作、自旋与 futex;空闲块、碎片及并发分配。
第12章 死锁 已写完
等待图、锁顺序、银行家算法与跨运行时现场诊断。
第13章 文件系统与崩溃恢复 已写完
路径与 inode、日志与 COW、持久化协议、RAID 与备份。
第14章 虚拟化与容器 已写完
vCPU、两阶段页表、虚拟 I/O、Linux 容器与 KVM API。
第15章 CPU 流水线 已写完
经典流水线、数据冒险、分支预测、超标量与乱序执行。
第16章 C 对象与内存模型 已写完
存储期、对齐与别名、volatile、原子操作与 happens-before。
第17章 汇编基础与调用约定 已写完
SysV AMD64 参数分类、寄存器保存、栈对齐与聚合返回。
第18章 性能工程 已写完
SLO、基准方法、Amdahl/Little 定律与 Linux perf。
本卷共 18 章,已全部完成
完整课目
本卷按“章 → 编号课次”组织。8.1、8.2 这样的文件是第 8 章下连续的短课,不是两个重复章节。