Appearance
concepts/ —— 底层原理文档
这里放为什么/原理类文档(与 ../tools/ 的"某个命令怎么用"相对)。全局知识地图、五层结构和推荐阅读路径见根目录 ../overview.md;崩溃排查见 ../crash/。
按知识层级分目录,每个子目录有自己的总纲 README:
知识层级总览
| 层级 | 目录 | 内容 |
|---|---|---|
| L5 二进制基础 | elf/ | ELF 格式、编译链接加载、进程内存布局 |
| L4 CPU 微架构+内存序 | microarch/ · memory-ordering/ · cpu/ | 流水线/乱序/分支预测 · 编译器重排/内存重排/屏障 · 物理封装/互联总线 |
| L3 内存子系统 | cache/ | 缓存组织与访问、一致性协议族 |
| L2 系统与资源 | process/ · numa/ · io/ · network/ | 进程调度/syscall · NUMA · DMA/PCIe · 网络高并发 |
| 辅助 | vfs/ · container/ · storage/ · latency/ · debug/ · tools/ · quant-fpga/ | VFS/容器/存储/低延时/调试/高级工具/FPGA |
microarch/ —— CPU 微架构(单核怎么跑得快)
📌 子目录总纲:microarch/README.md —— 标量→流水线→超标量→乱序→投机,一条演进链串起来
总纲:microarch/cpu-microarch-overview.md
| 文档 | 定位 |
|---|---|
| pipelining-superscalar.md | 流水线 + 超标量:阶段重叠 + 横向加宽 |
| reservation-station.md | 保留站:解耦译码与执行,乱序发射的发生地 |
| rob.md | ROB:顺序退休、精确异常、对头阻塞 |
| lsu.md | LSU:AGU、store buffer、store→load forwarding |
| register-renaming.md | 寄存器重命名:消除假依赖 |
| cpu-out-of-order.md | 乱序执行全景 |
| branch-prediction.md | 分支预测 |
memory-ordering/ —— 内存序(多核看得对不对)
📌 子目录总纲:memory-ordering/README.md —— 编译器重排 ≠ CPU 乱序 ≠ 内存重排,三层一次性拆清
总纲:memory-ordering/reordering-overview.md
| 文档 | 定位 |
|---|---|
| compiler-reordering.md | 编译器重排:-O2 下代码顺序变了 |
| memory-reordering.md | 内存重排全景:四种重排模式 |
| store-buffer.md | Store Buffer 详解 |
| invalidate-queue.md | Invalidate Queue 详解 |
| memory-order.md | C++ 内存序语义:acquire/release/seq_cst |
cpu/ —— CPU 硬件架构与互联
📌 子目录总纲:cpu/README.md —— 从 Socket/Chiplet 物理层次到片内 Ring/Mesh/IFOP、片外 DDR/PCIe/UPI/CXL
总纲:cpu/cpu-bus-architecture.md
| 文档 | 定位 |
|---|---|
| cpu-architecture.md | CPU 架构全景 |
| cpu-physical-hierarchy.md | 物理封装:Socket→Die→Tile→Core |
| core-and-uncore.md | Core vs Uncore 分工 |
| pmu.md | PMU 性能监控单元:硬件计数器架构、PEBS/IBS |
| on-die-interconnect.md | 片上互联:Ring/Mesh/IFOP |
| off-chip-buses.md | 片外总线:DDR/PCIe/UPI |
| cxl.md | CXL:缓存一致性总线 |
| numa-optimization.md | NUMA 优化实践 |
| system-diagnosis-tools.md | 诊断工具:lstopo/numactl/perf |
cache/ —— 缓存子系统
📌 子目录总纲:cache/README.md —— 两条线:缓存组织与访问 + 一致性协议族
缓存组织与访问(6 篇)
- cache-organization.md —— 缓存寻址与映射
- i-cache.md —— I-Cache 指令缓存
- tlb.md —— TLB 与地址翻译
- page-table-translation.md —— 页表遍历
- memory-alignment.md —— 内存对齐
- cache-friendly-code.md —— Cache-friendly 编程
缓存一致性协议族(8 篇)
其他:memory-model.md · compile-options.md
process/ —— 进程与线程的内核内部
📌 子目录总纲:process/README.md —— 从 task_struct 到创建/调度/切换/陷入内核的完整地图
- task-struct.md —— 总纲:内核视角的进程
- 子目录 task-resources/:各资源对象逐篇详解(9 篇)
- scheduling.md · context-switch.md —— 调度与上下文切换
- syscall.md · syscall-details.md —— 系统调用
- x86-64-registers.md · segment-management.md —— x86-64 底层
- interrupts.md · irq-affinity.md —— 中断
- process-creation.md · thread-creation.md · fork-and-threads.md —— 进程/线程创建
- thread-affinity.md —— 线程绑核
- list-head.md —— Linux 内核侵入式链表
vfs/ —— VFS 虚拟文件系统
📌 子目录总纲:vfs/README.md
elf/ —— 二进制格式与地址空间
📌 子目录总纲:elf/README.md
- elf-format.md · symbol-table.md · compile-link-load.md · memory-layout.md
- mmap.md · shared-memory.md
- c-abi.md · c++-abi.md
- 工具:readelf.md · objdump.md · nm.md · ldd.md · misc.md
其他子目录
| 目录 | 总纲 | 内容 |
|---|---|---|
| network/ | README | 网络高并发:IO 模型/epoll/零拷贝/TCP 拥塞控制(18 篇) |
| io/ | README | I/O 子系统:DMA/8259/PCIe/FPGA 通信(15 篇) |
| numa/ | README | NUMA 概念 + 论文精读(3 篇) |
| container/ | README | 容器原理:namespace/cgroup/overlayfs(4 篇) |
| storage/ | README | 存储优化:Direct IO/io_uring(4 篇) |
| latency/ | README | 低延时设计:无锁/RCU/基准测试(5 篇) |
| debug/ | README | 内核与 C/C++ 调试(3 篇) |
| tools/ | README | 高级性能工具:perf 深入/ftrace(6 篇) |
| quant-fpga/ | README | 量化交易 FPGA 架构(5 篇) |
一句话:按五层金字塔读——L5 elf/ 建立二进制基础 → L4 microarch/ + memory-ordering/ + cpu/ 理解 CPU 内部和内存序 → L3 cache/ 理解缓存子系统 → L2 process/ + numa/ + io/ + network/ 理解系统与资源 → 辅助目录按需深入。每个子目录的 README 是入口总纲。