第1章 x86硬件基础  1
         1.1 保护模式  1
         1.1.1 分页机制  1
         1.1.2 分段机制  7
         1.2 系统门  13
         1.3 x86的寄存器  14
         1.4 典型的PC系统结构简介  16
         第2章 基础知识  18
         2.1 AT&T与Intel汇编语法比较  18
         2.2 gcc内嵌汇编  20
         2.3 同步与互斥  25
         2.3.1 原子操作  25
         2.3.2 信号量  27
         2.3.3 自旋锁  29
         2.3.4 RCU机制  35
         2.3.5 percpu变量  39
         2.4 内存屏障  41
         2.4.1 编译器引起的内存屏障  41
         2.4.2 缓存引起的内存屏障  44
         2.4.3 乱序执行引起的内存屏障  47
         2.5 高级语言的函数调用规范  49
         第3章 Linux内核Makefile分析  52
         3.1 Linux内核编译概述  52
         3.2 内核编译过程分析  54
         3.3 内核链接脚本分析  62
         第4章 Linux内核启动  65
         4.1 BIOS启动阶段  65
         4.2 实模式setup阶段  67
         4.3 保护模式startup_  3277
         4.4 内核启动start_kernel()  84
         4.5 内核启动时的参数传递  90
         4.5.1 内核参数处理  91
         4.5.2 模块参数处理  95
         第5章 内存管理  99
         5.1 内存地址空间  99
         5.1.1 物理内存地址空间  99
         5.1.2 虚拟地址空间  101
         5.2 内存管理的基本数据结构  104
         5.2.1 物理内存页面描述符  104
         5.2.2 内存管理区  106
         5.2.3 非一致性内存管理  108
         5.3 内存管理初始化  109
         5.3.1 bootmemalloctor的初始化  109
         5.3.2 页表初始化  115
         5.3.3 内存管理结构的初始化  118
         5.4 内存的分配与回收  127
         5.4.1 伙伴算法  127
         5.4.2 SLUB分配器  138
         第6章 中断与异常处理  152
         6.1 中断的分类  152
         6.2 中断的初始化  156
         6.2.1 异常初始化  156
         6.2.2 中断的初始化  160
         6.2.3 中断请求服务队列的初始化  167
         6.3 中断与异常处理  171
         6.3.1 特权转换与堆栈变化  171
         6.3.2 中断处理  172
         6.3.3 异常处理  177
         6.4 软件中断与延迟函数  180
         6.4.1 softirq  180
         6.4.2 tasklet  185
         6.5 中断与异常返回  187
         6.6 中断优先级回顾  191
         6.7 关于高级可编程中断控制器  192
         6.7.1 APIC初始化  193
         第7章 信号机制  199
         7.1 信号机制的管理结构  200
         7.2 信号发送  204
         7.3 信号处理  210
         第8章 系统调用  220
         8.1 Libc和系统调用  220
         第9章 时钟机制  226
         9.1 clocksource对象  227
         9.1.1 clocksource概述  227
         9.1.2 clocksource初始化  228
         9.2 tickless机制  232
         9.2.1 tickless由来  232
         9.2.2 clockeventdevice对象概述  234
         9.2.3 clockeventdevice对象的初始化  236
         9.3 High-ResolutionTimers  247
         9.3.1 High-ResolutionTimers管理结构  247
         9.3.2 High-ResolutionTimers初始化  252
         9.3.3 High-ResolutionTimers操作  258
         9.4 时钟中断处理  268
         9.4.1 时钟维护  276
         9.4.2 进程时间信息统计  281
         9.5 软件定时器  283
         9.5.1 基本管理结构  283
         9.5.2 初始化  284
         9.5.3 注册与过期处理  287
         第10章 进程管理  295
         10.1 进程描述符  296
         10.1.1 进程状态  297
         10.1.2 进程标识  299
         10.1.3 进程的亲缘关系  300
         10.1.4 进程的内核态堆栈  301
         10.1.5 进程的虚拟内存布局  302
         10.1.6 进程的文件信息  305
         10.2 进程的建立  306
         10.2.1 建立子进程的task_struct对象  308
         10.2.2 子进程的内存区域  315
         10.2.3 子进程的内核态堆栈  323
         10.2.4 0号进程的建立  325
         10.3 进程切换  327
         10.4 进程的退出  331
         10.4.1 do_exit函数  331
         10.4.2 task_struct结构的删除  334
         10.4.3 通知父进程  335
         10.5 do_wait()函数  338
         10.6 程序的加载  344
         第11章 调度器  351
         11.1 早期的调度器  351
         11.2 CFS调度器的虚拟时钟  353
         11.3 CFS调度器的基本管理结构  357
         11.4 CFS调度器对象  359
         11.5 CFS调度操作  360
         11.5.1 update_curr()函数  360
         11.5.2 scheduler_tick()函数  362
         11.5.3 put_prev_task_fair()函数  364
         11.5.4 pick_next_task()函数  366
         11.5.5 等待和唤醒操作  368
         11.5.6 nice系统调用  373
         第12章 文件系统  376
         12.1 Ext2的磁盘结构  376
         12.2 Ext2的内存结构  385
         12.3 虚拟文件系统的管理结构  387
         12.3.1 文件系统对象  388
         12.3.2 VFS的超级块  389
         12.3.3 VFS的inode结构  400
         12.3.4 VFS的文件对象  406
         12.3.5 VFS的目录对象  409
         12.3.6 VFS在进程中的文件结构  412
         12.4 文件系统的挂载  413
         12.5 路径定位  425
         12.6 文件打开与关闭  441
         12.7 文件读写  449
         12.7.1 缓冲区管理  449
         12.7.2 文件读写操作分析  456
         第13章 常用内核分析方法  471
         13.1 准确定位同名宏及结构体  471
         13.2 准确定位同名函数  473
         13.3 利用linkmap文件定位全局变量  474
         13.4 准确定位函数调用线索  476
         13.5 SystemTap在代码分析中的使用  479
      · · · · · ·     (
收起)