Skip to content

操作系统 ​

围绕操作系统建立可解释、可验证的知识主线。

阅读起点 ​

学习前先阅读:计算机组成原理学习路线。

全书顺序 ​

本书按知识依赖组织。主线先建立可运行的共同模型,再进入机制、工程边界和生产约束;维护与前沿内容明确标注,不改变主线的学习顺序。

第1章|系统抽象与系统调用 ​

理解本章系统抽象与系统调用的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 用户态与内核态:特权级、地址空间与陷阱:理解用户态与内核态:特权级、地址空间与陷阱的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 系统调用:调用约定、参数传递与错误处理:理解系统调用:调用约定、参数传递与错误处理的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 进程地址空间:代码、数据、堆、栈与共享库:理解进程地址空间:代码、数据、堆、栈与共享库的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 文件描述符:抽象、重定向与资源限制:理解文件描述符:抽象、重定向与资源限制的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 内核组织:宏内核、微内核与模块化:理解内核组织:宏内核、微内核与模块化的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第2章|进程、线程与生命周期 ​

理解本章进程、线程与生命周期的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 进程生命周期:创建、就绪、运行、阻塞与终止:理解进程生命周期:创建、就绪、运行、阻塞与终止的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 进程创建:fork、exec、写时复制与进程映像:理解进程创建:fork、exec、写时复制与进程映像的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 线程模型:用户线程、内核线程与 1:1/M:N:理解线程模型:用户线程、内核线程与 1:1/M:N的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 上下文切换:寄存器、栈、TLB 与缓存代价:理解上下文切换:寄存器、栈、TLB 与缓存代价的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 信号:投递、处理、屏蔽与异步安全:理解信号:投递、处理、屏蔽与异步安全的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 进程终止:退出状态、僵尸、孤儿与资源回收:理解进程终止:退出状态、僵尸、孤儿与资源回收的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第3章|调度与时间管理 ​

理解本章调度与时间管理的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 调度目标:吞吐、响应时间、公平性与实时性:理解调度目标:吞吐、响应时间、公平性与实时性的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 时间片与抢占:时钟中断、抢占与协作式调度:理解时间片与抢占:时钟中断、抢占与协作式调度的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 调度算法:FCFS、SJF、优先级、轮转与 MLFQ:理解调度算法:FCFS、SJF、优先级、轮转与 MLFQ的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 多核调度:负载均衡、CPU 亲和性与 NUMA:理解多核调度:负载均衡、CPU 亲和性与 NUMA的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 实时调度:硬实时、软实时与优先级反转:理解实时调度:硬实时、软实时与优先级反转的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第4章|同步与进程间通信 ​

理解本章同步与进程间通信的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 竞态条件与临界区:原子性、可见性与顺序:理解竞态条件与临界区:原子性、可见性与顺序的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 互斥锁:自旋锁、睡眠锁、公平性与开销:理解互斥锁:自旋锁、睡眠锁、公平性与开销的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 条件变量:等待、通知、虚假唤醒与惊群:理解条件变量:等待、通知、虚假唤醒与惊群的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 信号量:计数、生产者消费者与同步模式:理解信号量:计数、生产者消费者与同步模式的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 死锁:必要条件、预防、避免、检测与恢复:理解死锁:必要条件、预防、避免、检测与恢复的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 进程间通信:管道、消息队列、共享内存与 Socket:理解进程间通信:管道、消息队列、共享内存与 Socket的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第5章|虚拟内存与分页 ​

理解本章虚拟内存与分页的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 虚拟内存:地址翻译、页表与保护:理解虚拟内存:地址翻译、页表与保护的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 页表结构:多级页表、页表项与权限位:理解页表结构:多级页表、页表项与权限位的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. TLB:地址翻译缓存、覆盖率与上下文切换:理解TLB:地址翻译缓存、覆盖率与上下文切换的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 缺页与页面置换:LRU、时钟算法与工作集:理解缺页与页面置换:LRU、时钟算法与工作集的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 内存分配:伙伴系统、slab、堆分配器与碎片:理解内存分配:伙伴系统、slab、堆分配器与碎片的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 交换与内存压力:换出、换入、OOM 与 cgroup:理解交换与内存压力:换出、换入、OOM 与 cgroup的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第6章|文件系统 ​

理解本章文件系统的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 文件抽象:inode、数据块、目录与路径解析:理解文件抽象:inode、数据块、目录与路径解析的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 文件操作:打开、读写、定位、关闭与缓冲:理解文件操作:打开、读写、定位、关闭与缓冲的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 目录与链接:硬链接、符号链接与挂载点:理解目录与链接:硬链接、符号链接与挂载点的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 页缓存:预读、写回、脏页与 fsync:理解页缓存:预读、写回、脏页与 fsync的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 日志与崩溃一致性:元数据日志、数据日志与检查点:理解日志与崩溃一致性:元数据日志、数据日志与检查点的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 文件系统实现:ext4、XFS、Btrfs 与 ZFS:理解文件系统实现:ext4、XFS、Btrfs 与 ZFS的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第7章|I/O、设备与网络 ​

理解本章I/O、设备与网络的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. I/O 模型:阻塞、非阻塞、异步与多路复用:理解I/O 模型:阻塞、非阻塞、异步与多路复用的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 设备驱动:字符设备、块设备与设备文件:理解设备驱动:字符设备、块设备与设备文件的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 中断与 DMA:中断处理、软中断与零拷贝:理解中断与 DMA:中断处理、软中断与零拷贝的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 网络协议栈:套接字、TCP/IP 与内核路径:理解网络协议栈:套接字、TCP/IP 与内核路径的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 事件驱动:epoll、kqueue、io_uring 与 Reactor:理解事件驱动:epoll、kqueue、io_uring 与 Reactor的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第8章|虚拟化、隔离与性能(第1段) ​

理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 虚拟化:全虚拟化、半虚拟化与硬件辅助:理解虚拟化:全虚拟化、半虚拟化与硬件辅助的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 容器:namespace、cgroup、镜像与运行时:理解容器:namespace、cgroup、镜像与运行时的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 安全隔离:权限、capabilities、seccomp 与 SELinux:理解安全隔离:权限、capabilities、seccomp 与 SELinux的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 性能诊断:CPU、内存、I/O 与网络观测工具:理解性能诊断:CPU、内存、I/O 与网络观测工具的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 系统可靠性:故障检测、重启策略与资源限制:理解系统可靠性:故障检测、重启策略与资源限制的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 用户态与内核态:理解用户态与内核态的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第9章|虚拟化、隔离与性能(第2段) ​

理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 系统调用参数传递:理解系统调用参数传递的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. fork 与写时复制:理解fork 与写时复制的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 线程模型:理解线程模型的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 上下文切换:理解上下文切换的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 时间片与抢占:理解时间片与抢占的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 多级反馈队列:理解多级反馈队列的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第10章|虚拟化、隔离与性能(第3段) ​

理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 多核负载均衡:理解多核负载均衡的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. 竞态条件:理解竞态条件的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 互斥锁的开销:理解互斥锁的开销的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 条件变量:理解条件变量的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 死锁的必要条件:理解死锁的必要条件的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 进程间通信:理解进程间通信的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第11章|虚拟化、隔离与性能(第4段) ​

理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 多级页表:理解多级页表的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. TLB 加速:理解TLB 加速的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 缺页处理:理解缺页处理的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. 内存分配:理解内存分配的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 交换与 OOM:理解交换与 OOM的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 页缓存:理解页缓存的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

第12章|虚拟化、隔离与性能(第5段) ​

理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

  1. 日志与崩溃一致性:理解日志与崩溃一致性的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  2. inode 与数据块:理解inode 与数据块的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  3. 文件系统实现:理解文件系统实现的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  4. I/O 模型:理解I/O 模型的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  5. 中断与 DMA:理解中断与 DMA的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  6. 事件驱动 I/O:理解事件驱动 I/O的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
  7. 网络协议栈:理解网络协议栈的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。

阅读边界 ​

本页是学习路线和专题入口,不替代专题笔记中的机制解释、可运行示例和练习。笔记尚未完成的专题会先显示为占位页;已有经验的读者可以跳到具体章节,再按前置关系回补。

路线状态 ​

本路线的目录已完成本轮架构审查;专题笔记的内容质量和来源审查另行进行。

用心记录每一步成长