Sys¶
从程序行为出发,沿编译、运行时、操作系统、网络与硬件追到真实机制。
地图¶
| 入口 | 核心问题 | 继续阅读 |
|---|---|---|
| 硬件与体系结构 | 一条指令怎样变成数据依赖、访存和执行资源竞争? | ISA 与微架构、缓存与一致性、CPU、GPU |
| 操作系统与并发 | 资源怎样被复用、隔离、调度并在失败后保持可解释? | 进程与线程、虚拟内存、协程、无锁与 RCU |
| 网络与存储 | 数据怎样跨主机和持久介质移动,顺序与可靠性从何而来? | TCP、UDP 与 QUIC、拥塞控制、SSD 与 NVMe、崩溃一致性 |
| 并行与分布式 | 工作怎样拆分,通信、同步、复制与失败怎样限制扩展? | 性能模型、CUDA、复制与共识、事务与隔离 |
| 语言与工具链 | 源码语义如何穿过编译器、ABI、运行时和内核? | 语言比较框架、编译流水线、链接与加载 |
| 性能与可观测性 | 如何证明瓶颈位于哪一层,并区分相关性与因果? | 基准设计、性能剖析、指标、日志与追踪 |
一条贯穿全栈的路径¶
以一次网络请求为例,源码中的函数调用会依次穿过语言运行时、内存分配器、系统调用边界、Socket 缓冲区、传输协议、网卡队列、网络链路和远端机器;返回路径还可能触发调度、缓存未命中、锁竞争、GC、重传或排队。任何单层解释都可能正确,却不足以回答“为什么这次慢”。
本站统一使用六个问题拆解机制:
- 契约是什么,允许观察到哪些行为?
- 状态存在哪里,由谁拥有和更新?
- 控制流怎样推进,何时阻塞、唤醒、取消或重试?
- 数据经过哪些表示、缓存、队列与复制边界?
- 主要成本和失败模式是什么?
- 哪个实验或观测能够证伪当前解释?