序言一
序言二
前言
第一部分 操作系统基础
第1章 操作系统概述............................................................... 2
1.1 简约但不简单:从Hello World说起.............................................. 2
1.2 什么是操作系统................................................................ 3
1.3 操作系统简史.................................................................. 6
1.4 操作系统接口.................................................................. 9
1.5 ChCore:一个简单的实验操作系统............................................... 11
参考文献.......................................................................... 12
第2章 硬件结构.................................................................. 13
2.1 CPU与指令集架构.............................................................. 14
2.2 物理内存与CPU缓存........................................................... 17
2.3 设备与中断................................................................... 20
2.4 思考题....................................................................... 22
参考文献.......................................................................... 22
第3章 操作系统结构.............................................................. 23
3.1 操作系统的机制与策略......................................................... 24
3.2 操作系统复杂度管理方法....................................................... 25
3.3 操作系统内核架构............................................................. 274
3.4 操作系统框架结构............................................................. 35
3.5 思考题....................................................................... 39
参考文献.......................................................................... 40
第4章 内存管理.................................................................. 42
4.1 虚拟地址与物理地址........................................................... 43
4.2 基于分页的虚拟内存........................................................... 46
4.3 虚拟内存功能................................................................. 58
4.4 物理内存分配与管理........................................................... 62
4.5 案例分析:ChCore内存管理机制................................................ 70
4.6 思考题....................................................................... 73
参考文献.......................................................................... 74
第5章 进程与线程................................................................ 76
5.1 进程......................................................................... 76
5.2 案例分析:Linux的进程操作.................................................... 80
5.3 线程.......................................................................... 92
5.4 案例分析:ChCore的线程上下文................................................. 99
5.5 纤程......................................................................... 102
5.6 思考题....................................................................... 106
参考文献.......................................................................... 107
第6章 操作系统调度.............................................................. 108
6.1 计算机调度简介............................................................... 108
6.2 调度机制..................................................................... 113
6.3 单核调度策略................................................................. 117
6.4 多核调度策略................................................................. 141
6.5 调度进阶机制................................................................. 151
6.6 案例分析:现代调度器......................................................... 155
6.7 思考题...................................................................... 162
参考文献......................................................................... 163
第7章 进程间通信............................................................... 165
7.1 进程间通信基础.............................................................. 165
7.2 宏内核进程间通信............................................................ 175
7.3 微内核进程间通信............................................................ 186
7.4 案例分析:Android Binder.................................................... 195
7.5 案例分析:ChCore 进程间通信机制............................................. 201
7.6 思考题...................................................................... 203
参考文献......................................................................... 203
第8章 同步原语................................................................. 206
8.1 互斥锁...................................................................... 209
8.2 条件变量.................................................................... 219
8.3 信号量...................................................................... 223
8.4 读写锁...................................................................... 229
8.5 RCU......................................................................... 233
8.6 管程........................................................................ 237
8.7 同步带来的问题.............................................................. 239
8.8 案例分析:Linux中的futex................................................... 249
8.9 案例分析:ChCore中的同步原语................................................ 251
8.10 思考题..................................................................... 252
参考文献......................................................................... 254
第9章 文件系统................................................................. 256
9.1 基于inode的文件系统........................................................ 257
9.2 虚拟文件系统................................................................ 266
9.3 其他文件系统................................................................ 284
9.4 案例分析:ChCore文件系统.................................................... 294
9.5 思考题....................................................................... 296
参考文献.......................................................................... 297
第10章 设备管理................................................................. 299
10.1 计算机设备的连接和通信...................................................... 300
10.2 设备的识别.................................................................. 303
10.3 设备的中断处理.............................................................. 306
10.4 设备驱动与驱动模型.......................................................... 314
10.5 案例分析:Linux设备驱动模型................................................. 316
10.6 案例分析:Zircon的设备驱动模型.............................................. 323
10.7 案例分析:L4设备驱动模型.................................................... 327
10.8 案例分析:Linux的用户态驱动模型............................................. 329
10.9 思考题....................................................................... 332
参考文献........................................................................... 333
第11章 系统虚拟化................................................................ 335
11.1 系统虚拟化技术概述........................................................... 336
11.2 CPU虚拟化................................................................... 338
11.3 内存虚拟化................................................................... 347
11.4 I/O虚拟化................................................................... 357
11.5 中断虚拟化................................................................... 366
11.6 案例分析:QEMU/KVM........................................................... 367
11.7 思考题....................................................................... 372
参考文献........................................................................... 373
缩略语............................................................................. 375
在线章节
第二部分 操作系统进阶
第12章 多核与多处理器
第13章 文件系统崩溃一致性
第14章 网络协议栈与系统
第15章 轻量级虚拟化
第16章 操作系统安全
第17章 操作系统调测
第18章 形式化证明
第三部分 ChCore课程实验
第19章 Lab1:机器启动
第20章 Lab2:内存管理
第21章 Lab3:用户进程与异常处理
第22章 Lab4:多核处理
第23章 Lab5:文件系统与Shell
宅***i 2020-11-01 02:41:08
陈海波老师永远滴神,好书,就是level