Wiki LogoWiki - The Power of Many

操作系统深度学习大纲

项目概述

本知识库是一次从底层硬件逻辑到高层抽象机制的"重筑工程", 旨在构建系统化, 可追溯到源码级别的操作系统知识体系.


参考教材体系

层次教材定位
理论基础Operating System Concepts (Silberschatz)通用原理, 算法分析
理论基础Modern Operating Systems (Tanenbaum)架构思辨, 微内核视角
理论基础OSTEP (Arpaci-Dusseau)虚拟化/并发/持久化三大主题
内核实现Linux Kernel Development (Love)内核子系统实战入门
内核实现Understanding the Linux Kernel (Bovet & Cesati)源码级深度剖析

知识模块总览


模块详细大纲

M1: 处理器架构与系统自举

主题知识点底层深度内容
操作系统定义资源管理器 / 扩展机器OSTEP 三大抽象: 虚拟化, 并发, 持久化
系统演化UNIX 演化树 / 分时技术CTSS, MULTICS 到 Linux 的架构嬗变
内核架构单体 / 微内核 / 混合 / 外核LKM 动态加载机制与 Unikernel 趋势
CPU 保护模式Ring 0-3 / GDT / TSS特权级切换时的硬件上下文保存机制
ARM 异常级别EL0 / EL1 / EL2 / EL3TrustZone 安全架构与虚拟化扩展
系统启动流程BIOS / UEFI → Bootloader → Kernelstart_kernel() 初始化序列与模式切换机制
安全执行环境TEE / TrustZone / SGX硬件级安全隔离与受信执行环境

M2: 交互边界与内核接口

主题知识点底层深度内容
异常分类Interrupt / Trap / Fault / Abort同步 vs 异步, 异常栈切换与逻辑陷阱
中断架构Local APIC / I/O APIC / MSI-X中断亲和性 (Irq Affinity) 与硬件隔离
中断流转上半部 / 下半部 (NAPI)中断上下文禁忌与软中断 (softirq) 调度
系统边界syscall / VDSO模式切换损耗与快速系统调用指令
动态追踪Kprobes / Uprobes / eBPF运行时指令替换技术与无损观测

M3: 任务调度与执行流抽象

主题知识点底层深度内容
进程抽象进程映像 / PCBtask_struct 核心字段与状态转换机
执行流控制fork / clone / vfork / exec写时复制 (COW) 机制与共享资源控制标志
线程模型NPTL / Kernel Threads1:1 模型实现与 do_exit 资源回收
EEVDF 调度器虚拟截止时间 / 延迟控制Linux 6.6+ 核心调度器原理与 CFS 差异
调度器演进O(1) / CFS / EEVDF虚拟运行时间 (vruntime) 与滞后 (lag) 补偿
资源隔离Cgroups v2 / NamespacesCPU 份额限制, PSI 压力指标与容器化基础

M4: 同步互斥与死锁

主题知识点底层深度内容
硬件原语TAS / CAS / LL-SC / Barrier内存屏障 (smp_mb) 与缓存一致性影响
自旋锁机制Spinlock / Reader-Writer自旋等待与 CPU 缓存行争用
高级同步Semaphores / Mutex / futex睡眠唤醒机制, 内核等待队列与优先级继承
无锁并发RCU (Read-Copy-Update)读端零开销, 宽限期 (Grace Period) 与回收
死锁治理Coffman 条件 / Banker 算法lockdep 静态依赖检测与动态图分析

M5: 存储层次抽象与内存治理

主题知识点底层深度内容
虚拟地址抽象多级页表 / 5-level PagingCR3 切换开销与 TLB Shootdown 机制
物理分配器Buddy / SLUB / Per-CPU缓存着色 (Cache Coloring) 与内存回收
内存压缩/交换zram / zswap / MGLRUGoogle 多代 LRU 算法与性能收益分析
分级存储治理Tiered Memory / CXL / FoliosLinux Folios 抽象与跨节点内存迁移优化
内存回收与治理MGLRU / PSI / Userfaultfd压力指标监控与用户态缺页异常处理机制
内核安全机制KASLR / CET / KPTI防御侧信道攻击与控制流完整性加固

M6: 持久化抽象与异步 I/O 架构

主题知识点底层深度内容
VFS 统一封装dentry cache / inode 索引路径查找冲突与 RCU 路径检索优化
文件系统实现ext4 / XFSExtent Tree 结构与日志 (JBD2) 机制
高性能 I/Oio_uring / Zero-CopyCompletion Queue 机制与内存环同步
块层演变Multi-queue (blk-mq)解决 NVMe 下的单队列锁竞争瓶颈
一致性保障Journaling / CoW / FSCK原子提交机制与崩溃恢复一致性链条

M7: 硬件虚拟化与基础设施

主题知识点底层深度内容
CPU 虚拟化VT-x / SVM / ARM EL2多架构支持 (Intel/AMD/ARM) 与根模式切换
内存虚拟化EPT (Extended Page Table)影子页表 vs 硬件辅助地址转换
I/O 虚拟化VirtIO / IOMMU / SR-IOV半虚拟化后端协议与网卡穿透直连
容器底层Namespace / Cgroups / Rootfs视图隔离,资源限制与联合文件系统 (OverlayFS)
运行时架构containerd / Kata Container跨特权级隔离与安全容器 MicroVM 演进

学习路径建议

阶段 1: 基础构建 (2-3 周)
├── M1 处理器架构 - 理解 CPU 运行模式, 启动自举与 TEE
└── M2 交互边界 - 掌握中断陷阱, 动态追踪与系统接口

阶段 2: 核心机制 (4-6 周)
├── M3 任务调度 - EEVDF 调度算法, 执行流抽象与 Cgroups
├── M4 同步机制 - 并发语义, 硬件原语 RCU 与屏障
└── M5 存储治理 - 分级存储, Folios 抽象与物理分配

阶段 3: 持久化与 I/O (2-3 周)
├── M6 持久化抽象 - VFS 架构, ext4 与 io_uring 实战
└── M7 基础设施 - 硬件虚拟化, 容器底层机制与 SR-IOV

阶段 4: 实践进阶 (持续)
├── 内核源码阅读 (结合 LXR 或 Bootlin Elixir)
├── 编写内核模块与 eBPF 控制台工具
└── 性能调优 (perf, ftrace, bpftrace)

文档约定

项目说明
语言中文正文, 专业术语附英文原文
标点全文使用英文标点符号
代码关键函数/结构体使用 等宽字体
引用教材引用格式: 斜体书名 + 章节号
流程图使用 Mermaid 绘制

On this page