操作系统
围绕操作系统建立可解释、可验证的知识主线。
阅读起点
学习前先阅读:计算机组成原理学习路线。
全书顺序
本书按知识依赖组织。主线先建立可运行的共同模型,再进入机制、工程边界和生产约束;维护与前沿内容明确标注,不改变主线的学习顺序。
第1章|系统抽象与系统调用
理解本章系统抽象与系统调用的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 用户态与内核态:特权级、地址空间与陷阱:理解用户态与内核态:特权级、地址空间与陷阱的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 系统调用:调用约定、参数传递与错误处理:理解系统调用:调用约定、参数传递与错误处理的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 进程地址空间:代码、数据、堆、栈与共享库:理解进程地址空间:代码、数据、堆、栈与共享库的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 文件描述符:抽象、重定向与资源限制:理解文件描述符:抽象、重定向与资源限制的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 内核组织:宏内核、微内核与模块化:理解内核组织:宏内核、微内核与模块化的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第2章|进程、线程与生命周期
理解本章进程、线程与生命周期的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 进程生命周期:创建、就绪、运行、阻塞与终止:理解进程生命周期:创建、就绪、运行、阻塞与终止的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 进程创建:fork、exec、写时复制与进程映像:理解进程创建:fork、exec、写时复制与进程映像的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 线程模型:用户线程、内核线程与 1:1/M:N:理解线程模型:用户线程、内核线程与 1:1/M:N的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 上下文切换:寄存器、栈、TLB 与缓存代价:理解上下文切换:寄存器、栈、TLB 与缓存代价的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 信号:投递、处理、屏蔽与异步安全:理解信号:投递、处理、屏蔽与异步安全的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 进程终止:退出状态、僵尸、孤儿与资源回收:理解进程终止:退出状态、僵尸、孤儿与资源回收的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第3章|调度与时间管理
理解本章调度与时间管理的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 调度目标:吞吐、响应时间、公平性与实时性:理解调度目标:吞吐、响应时间、公平性与实时性的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 时间片与抢占:时钟中断、抢占与协作式调度:理解时间片与抢占:时钟中断、抢占与协作式调度的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 调度算法:FCFS、SJF、优先级、轮转与 MLFQ:理解调度算法:FCFS、SJF、优先级、轮转与 MLFQ的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 多核调度:负载均衡、CPU 亲和性与 NUMA:理解多核调度:负载均衡、CPU 亲和性与 NUMA的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 实时调度:硬实时、软实时与优先级反转:理解实时调度:硬实时、软实时与优先级反转的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第4章|同步与进程间通信
理解本章同步与进程间通信的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 竞态条件与临界区:原子性、可见性与顺序:理解竞态条件与临界区:原子性、可见性与顺序的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 互斥锁:自旋锁、睡眠锁、公平性与开销:理解互斥锁:自旋锁、睡眠锁、公平性与开销的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 条件变量:等待、通知、虚假唤醒与惊群:理解条件变量:等待、通知、虚假唤醒与惊群的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 信号量:计数、生产者消费者与同步模式:理解信号量:计数、生产者消费者与同步模式的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 死锁:必要条件、预防、避免、检测与恢复:理解死锁:必要条件、预防、避免、检测与恢复的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 进程间通信:管道、消息队列、共享内存与 Socket:理解进程间通信:管道、消息队列、共享内存与 Socket的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第5章|虚拟内存与分页
理解本章虚拟内存与分页的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 虚拟内存:地址翻译、页表与保护:理解虚拟内存:地址翻译、页表与保护的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 页表结构:多级页表、页表项与权限位:理解页表结构:多级页表、页表项与权限位的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- TLB:地址翻译缓存、覆盖率与上下文切换:理解TLB:地址翻译缓存、覆盖率与上下文切换的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 缺页与页面置换:LRU、时钟算法与工作集:理解缺页与页面置换:LRU、时钟算法与工作集的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 内存分配:伙伴系统、slab、堆分配器与碎片:理解内存分配:伙伴系统、slab、堆分配器与碎片的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 交换与内存压力:换出、换入、OOM 与 cgroup:理解交换与内存压力:换出、换入、OOM 与 cgroup的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第6章|文件系统
理解本章文件系统的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 文件抽象:inode、数据块、目录与路径解析:理解文件抽象:inode、数据块、目录与路径解析的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 文件操作:打开、读写、定位、关闭与缓冲:理解文件操作:打开、读写、定位、关闭与缓冲的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 目录与链接:硬链接、符号链接与挂载点:理解目录与链接:硬链接、符号链接与挂载点的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 页缓存:预读、写回、脏页与 fsync:理解页缓存:预读、写回、脏页与 fsync的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 日志与崩溃一致性:元数据日志、数据日志与检查点:理解日志与崩溃一致性:元数据日志、数据日志与检查点的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 文件系统实现:ext4、XFS、Btrfs 与 ZFS:理解文件系统实现:ext4、XFS、Btrfs 与 ZFS的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第7章|I/O、设备与网络
理解本章I/O、设备与网络的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- I/O 模型:阻塞、非阻塞、异步与多路复用:理解I/O 模型:阻塞、非阻塞、异步与多路复用的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 设备驱动:字符设备、块设备与设备文件:理解设备驱动:字符设备、块设备与设备文件的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 中断与 DMA:中断处理、软中断与零拷贝:理解中断与 DMA:中断处理、软中断与零拷贝的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 网络协议栈:套接字、TCP/IP 与内核路径:理解网络协议栈:套接字、TCP/IP 与内核路径的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 事件驱动:epoll、kqueue、io_uring 与 Reactor:理解事件驱动:epoll、kqueue、io_uring 与 Reactor的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第8章|虚拟化、隔离与性能(第1段)
理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 虚拟化:全虚拟化、半虚拟化与硬件辅助:理解虚拟化:全虚拟化、半虚拟化与硬件辅助的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 容器:namespace、cgroup、镜像与运行时:理解容器:namespace、cgroup、镜像与运行时的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 安全隔离:权限、capabilities、seccomp 与 SELinux:理解安全隔离:权限、capabilities、seccomp 与 SELinux的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 性能诊断:CPU、内存、I/O 与网络观测工具:理解性能诊断:CPU、内存、I/O 与网络观测工具的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 系统可靠性:故障检测、重启策略与资源限制:理解系统可靠性:故障检测、重启策略与资源限制的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 用户态与内核态:理解用户态与内核态的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第9章|虚拟化、隔离与性能(第2段)
理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 系统调用参数传递:理解系统调用参数传递的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- fork 与写时复制:理解fork 与写时复制的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 线程模型:理解线程模型的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 上下文切换:理解上下文切换的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 时间片与抢占:理解时间片与抢占的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 多级反馈队列:理解多级反馈队列的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第10章|虚拟化、隔离与性能(第3段)
理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 多核负载均衡:理解多核负载均衡的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 竞态条件:理解竞态条件的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 互斥锁的开销:理解互斥锁的开销的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 条件变量:理解条件变量的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 死锁的必要条件:理解死锁的必要条件的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 进程间通信:理解进程间通信的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第11章|虚拟化、隔离与性能(第4段)
理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 多级页表:理解多级页表的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- TLB 加速:理解TLB 加速的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 缺页处理:理解缺页处理的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 内存分配:理解内存分配的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 交换与 OOM:理解交换与 OOM的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 页缓存:理解页缓存的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
第12章|虚拟化、隔离与性能(第5段)
理解本章虚拟化、隔离与性能的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 日志与崩溃一致性:理解日志与崩溃一致性的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- inode 与数据块:理解inode 与数据块的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 文件系统实现:理解文件系统实现的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- I/O 模型:理解I/O 模型的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 中断与 DMA:理解中断与 DMA的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 事件驱动 I/O:理解事件驱动 I/O的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
- 网络协议栈:理解网络协议栈的核心模型、常见操作和适用边界,并能据此判断下一步该查什么或如何验证。
阅读边界
本页是学习路线和专题入口,不替代专题笔记中的机制解释、可运行示例和练习。笔记尚未完成的专题会先显示为占位页;已有经验的读者可以跳到具体章节,再按前置关系回补。
路线状态
本路线的目录已完成本轮架构审查;专题笔记的内容质量和来源审查另行进行。