INDEX · CS_FOUR
CS 四大件
一页读完版:CS 四大件 · 专区门户 —— 全部 87 篇可搜可筛、按现象反查、术语表、14 个 Lab 与 14 个实战案例,都在同一页。
文章索引
计算机系统全链路
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | CSER 必须先建立的底层通识 | 计算机在处理什么、四类核心资源、抽象分层与成本模型 |
| 02 | 按现象、资源、机制反查章节 | 四张反查表,从现象、资源、机制、学习目标跳到对应章节 |
| 03 | 跨学科速查:一段程序背后的四大件 | 把一次执行的每一步对应到四门课,理清课程间依赖 |
| 04 | 四大件底层术语索引 | 五组高频术语的一句话定义,附反向记忆法 |
| 05 | 四大件可操作练习 | 14 个动手 Lab,从 bit 解释、溢出到死锁与 DNS TTL |
| 06 | 学完本章到底能解决什么问题 | 14 个真实故障案例,用四大件知识倒推根因 |
| 07 | CS Four Core | 整套指南的读法、推荐学习路径与全局地图 |
状态、抽象、成本与可靠性
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | 01. 信息、状态与状态转移 | 把程序看成状态转移,用不变量和状态机理解 bug |
| 02 | 02. 抽象、接口与分层 | 抽象与接口的本质、分层的收益与代价、分层排查思路 |
| 03 | 03. 成本模型 | 复杂度之外的真实成本:延迟、吞吐、排队与局部性 |
| 04 | 04. 失败模型与可靠性 | 部分失败、幂等、崩溃一致性,给一个操作做失败分析 |
| 05 | 05. 表示、边界与解释规则 | 同一段 bit 的多种解释:位宽、溢出、编码、字节序、对齐 |
| 06 | 06. 数据搬运、缓冲与缓存 | 缓冲吸收速度差、缓存省重复成本,外加零拷贝与序列化 |
| 07 | 07. 控制流、状态机与协议 | 从程序计数器到调用栈,协议和流程都是状态机 |
| 08 | 08. 并发、时间与顺序 | 竞态、原子性、可见性、有序性与 happens-before 直觉 |
| 09 | 09. 调试、观测与证据链 | 证据链调试法:定义现象、二分定位、最小复现、验证假设 |
| 10 | CS 通识基础 | 通识九章的阅读顺序与读完要形成的直觉 |
数据结构
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | 00. 从 0 开始理解数据结构 | 用操作、成本、内存布局、不变量四个视角重看数据结构 |
| 02 | 01. 复杂度、内存与数据访问成本 | 最好最坏与摊还、内存连续性、指针与搬迁的真实开销 |
| 03 | 02. 数组与动态数组 | 连续内存与 cache 友好的来源,扩容策略与摊还 O(1) |
| 04 | 03. 链表 | 指针串联的自由与代价:哨兵、双向循环、cache 不友好 |
| 05 | 04. 栈与队列 | 两种受限访问结构,从函数调用栈到环形队列与单调栈 |
| 06 | 05. 哈希表 | 哈希函数、冲突处理、负载因子与 rehash,O(1) 的前提 |
| 07 | 06. 树、二叉树与搜索树 | 树的递归本质、两种遍历、二叉搜索树的有序与退化 |
| 08 | 07. 平衡树、红黑树与 B/B+ 树 | 旋转控制高度,红黑树与 B+ 树各自适配内存和磁盘 |
| 09 | 08. 堆与优先队列 | 数组上的完全二叉树:上浮下沉、建堆、堆排序与 Top K |
| 10 | 09. 图 | 两种存图方式、DFS 与 BFS、拓扑排序与最短路 |
| 11 | 10. 字符串结构 | KMP 前缀表的直觉、Trie 与自动机、字符编码边界 |
| 12 | 11. 位图、布隆过滤器与跳表 | 位图省空间、布隆容忍误判、跳表用随机层数换平衡 |
| 13 | 12. 数据结构选型 | 先列操作再选结构:十个判断问题加一张选型速查表 |
| 14 | 数据结构 | 学习路线与每章通用的固定分析模板 |
计算机组成原理
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | 00. 从 0 开始理解计算机组成原理 | 存算控 IO 最小模型、冯诺依曼结构与取指执行循环 |
| 02 | 01. 二进制、数据表示与存储单位 | bit 到 byte、字符编码与码点、大小端、地址与对齐 |
| 03 | 02. 整数、补码与溢出 | 补码为什么好用:整数环、溢出判定与位运算 |
| 04 | 03. 浮点数 | IEEE 754 的结构、舍入与大数吃小数,金额为什么不用浮点 |
| 05 | 04. CPU 与指令执行 | 指令生命周期、流水线冒险、分支预测与乱序执行 |
| 06 | 05. 寄存器、ALU 与控制器 | 寄存器、ALU 与控制器组成数据通路,标志位与栈帧 |
| 07 | 06. 存储层次结构 | 存储为什么分层:局部性、延迟阶梯、每层缓存下一层 |
| 08 | 07. Cache 原理 | cache line、映射与替换、写策略、多核一致性与伪共享 |
| 09 | 08. 总线、外设与 IO | 总线与设备控制器,轮询、中断、DMA 三种 IO 方式 |
| 10 | 09. 中断与 DMA | 中断向量与现场保存、中断风暴,DMA 与零拷贝的关系 |
| 11 | 10. 硬件视角的性能模型 | 先分 CPU、内存、IO bound,再算 Big-O 之外的成本 |
| 12 | 计算机组成原理 | 学习路线与硬件层的固定观察点 |
操作系统
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | 00. 从 0 开始理解操作系统 | 应用、内核、硬件三层结构,用户态内核态与核心抽象 |
| 02 | 01. 进程、线程与 CPU 调度 | 进程线程的边界、调度与状态流转、上下文切换成本 |
| 03 | 02. 系统调用 | 陷入内核的完整流程、文件描述符与两级缓冲区 |
| 04 | 03. 内存管理 | 虚拟地址翻译:页表、TLB、缺页、COW、swap 与 OOM |
| 05 | 04. 并发与同步 | 互斥锁、自旋锁、信号量、条件变量,死锁与优先级反转 |
| 06 | 05. 文件系统 | inode、打开文件表与页缓存,写成功不等于落盘 |
| 07 | 06. IO 模型 | 从阻塞到 epoll 的演进、水平边缘触发、Reactor 与背压 |
| 08 | 07. 设备、驱动与中断 | 设备控制器与驱动的分工、中断为什么要快、设备即文件 |
| 09 | 08. Socket 与内核网络栈 | connect 与 listen 的内核动作、收发缓冲区与字节流本质 |
| 10 | 09. 进程间通信与信号 | 六种进程通信方式与选型,信号的危险和僵尸进程 |
| 11 | 10. 虚拟化、容器与资源隔离 | VM 与容器的本质差异:namespace 隔离、cgroup 限资源 |
| 12 | 11. 性能与排障 | 按 CPU、内存、IO、锁、网络五类拆解性能问题 |
| 13 | 操作系统 | 学习路线与内核视角的固定观察点 |
计算机网络
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | 00. 从 0 开始理解计算机网络 | 一次访问的完整路径、各层地址与单位、网络不保证什么 |
| 02 | 01. 分层、封装与解封装 | 五层模型逐层职责、封装解封装与 MTU 分片 |
| 03 | 02. 物理层、链路层与以太网 | MAC 地址、以太网帧与交换机,帧在局域网内如何送达 |
| 04 | 03. IP、子网与路由 | IPv4 与子网、默认网关、路由表与公网私网边界 |
| 05 | 04. ARP、ICMP 与 NAT | ARP 查 MAC、ICMP 做诊断、NAT 转地址,ping 与 traceroute |
| 06 | 05. UDP | 无连接数据报的取舍:省掉哪些保证、换来什么场景 |
| 07 | 06. TCP 基础 | 序号与重传撑起可靠字节流,握手挥手与 TIME_WAIT |
| 08 | 07. TCP 流量控制、拥塞控制与性能 | 流量控制护接收方、拥塞控制护网络,慢启动与 Nagle |
| 09 | 08. DNS | 递归解析链路、记录类型、缓存 TTL 与流量调度 |
| 10 | 09. HTTP/1.1、HTTP/2、HTTP/3 | 方法语义、状态码、Header 与缓存,三代版本演进 |
| 11 | 10. TLS/HTTPS | 证书信任链与握手流程,HTTPS 保护什么不保护什么 |
| 12 | 11. 代理、网关、负载均衡与 CDN | 四种中间层的职责、来源 IP 还原与 502/503/504 定位 |
| 13 | 12. 网络排障 | 按阶段切分故障、区分可达与可用,证据工具与排障模板 |
| 14 | 计算机网络 | 学习路线与网络分层的固定观察点 |
跨栈通用机制
| 序号 | 文章 | 内容 |
|---|---|---|
| 01 | 01. IO 多路复用与事件循环 | select 到 epoll 三代演进,同一骨架从 Redis 跑到 Kafka |
| 02 | 02. 定长块:从内存分页到 InnoDB 数据页 | 为什么处处是定长块:OS 页、InnoDB 页、磁盘块与 Kafka 段 |
| 03 | 03. 缓存分层:同一个思想从 CPU 到 CDN | 一次请求穿过的七层缓存,从 CPU 缓存行到 CDN |
| 04 | 04. 日志先行:WAL、redo、AOF 与消息队列的共同根 | 顺序写的红利:redo、binlog、AOF 与 Kafka 的共同根 |
| 05 | 05. 主从复制:复制的都是日志 | MySQL、Redis、Kafka 复制对照,复制的载体都是日志 |
| 06 | 06. 心跳、多数派与选主:哨兵在每个系统里的名字 | 心跳判死、多数派选主的配方,纪元编号如何防脑裂 |
| 07 | 07. 分片:一台装不下之后的所有套路 | 取模、一致性哈希、槽位映射三代路由与热点问题 |
| 08 | 08. 间接层:反向代理、网关与所有中间人 | 间接层只做一件事:名字与位置解耦,从页表到注册中心 |
| 09 | 09. 池化复用:线程池、连接池与内存池 | 池的通用四件事,ThreadPoolExecutor 与 HikariCP 拆解 |
| 10 | 10. 写时复制与多版本:fork、MVCC 与不可变 | 从 fork、CopyOnWrite 到 MVCC,多版本思想的形态与代价 |
| 11 | 11. 批处理:攒一批,摊掉固定成本 | pipeline、组提交、Kafka 攒批与 Nagle,批处理的账单 |
| 12 | 12. 惰性与摊销:渐进式 rehash 与过期删除 | 渐进式 rehash、惰性过期、按需调页,大成本摊成小账 |
| 13 | 13. 大一统:十二个思想在四大件和技术栈里的复现总图 | 三条硬件事实推出十二个思想,外加幂等与重试这条暗线 |
| 14 | 14. 需求驱动的演进链:每一代技术都是上一代的病历 | 会话、HTTP、分布式锁、GC 等七条链,每代都在治旧病 |
| 15 | 15. 解耦:从 IoC、SPI 到控制面与数据面 | IoC、SPI、事件观察者三种解耦方向,以及各自的代价 |
| 16 | 16. 双空间轮换:S0/S1、双 dict 与蓝绿部署 | S0/S1、双 dict、蓝绿部署,新旧两空间轮换的同一骨架 |
| 17 | 跨栈通用机制 | 学习路线与十六章机制的固定观察点 |