
| 《linux原理与结构》 第一章 linux概述 1 1.1 操作系统内核 1 1.2 linus与linux 3 1.3 linux内核结构 6 1.4 linux发布 10 1.5 unix与linux哲学 12 思考题 21 第二章 平台与工具 22 2.1 硬件平台 22 2.2 intel处理器体系结构 23 2.2.1 处理器操作模式 23 2.2.2 段页式内存管理 24 2.2.3 内存管理的变化与扩展 28 2.2.4 内存保护 29 2.2.5 进程管理 30 2.2.6 中断处理 31 2.2.7 apic 33 2.2.8 处理器初始化 34 2.2.9 寄存器与特权指令 35 .2.3 gnu c语言 36 2.4 gnu汇编语言 38 2.4.1 gnu汇编格式 38 2.4.2 at&t指令语法 40 2.4.3 gnu内嵌汇编 41 2.5 gnu链接脚本 43 2.6 常用数据结构 45 2.6.1 通用链表 45 2.6.2 红黑树 46 思考题 48 第三章 引导与初始化 49 3.1 内核引导 49 3.2 实模式初始化 51 3.3 内核解压缩 52 3.4 内核预初始化 53 3.5 第0级初始化 56 3.6 第1级初始化 74 3.7 ap初始化 81 思考题 82 第四章 中断处理 83 4.1 中断处理流程 83 4.2 异常处理 85 4.2.1 异常处理流程 86 4.2.2 内核异常捕捉 86 4.3 外部中断处理 88 4.3.1 硬处理管理结构 88 4.3.2 设备中断硬处理管理接口 92 4.3.3 外部中断硬处理 94 4.3.4 外部中断软处理 97 4.4 系统调用 101 4.4.1 系统调用表 102 4.4.2 标准函数库 103 4.4.3 系统调用处理 104 4.4.4 快速系统调用 105 思考题 107 第五章 时钟管理 108 5.1 时钟管理系统组成结构 108 5.2 时钟设备管理 109 5.2.1 时钟设备管理结构 109 5.2.2 pit设备 110 5.2.3 hpet设备 111 5.2.4 local apic设备 112 5.2.5 当前时钟设备 113 5.3 计时器管理 114 5.4 周期性时钟中断 115 5.4.1 周期性时钟中断处理 115 5.4.2 时间管理 116 5.4.3 定时管理 118 5.5 单发式时钟中断 127 5.5.1 高精度单发中断模式 127 5.5.2 高精度单发式时钟中断处理 128 5.5.3 高精度周期性时钟中断仿真 129 5.5.4 低精度单发中断模式 130 5.6 变频式周期性时钟中断 131 5.6.1 变频管理结构 131 5.6.2 高精度周期性时钟中断暂停 132 5.6.3 低精度周期性时钟中断暂停 133 思考题 134 第六章 物理内存管理 135 6.1 内存管理系统组成结构 135 6.2 伙伴内存管理 136 6.2.1 伙伴内存管理结构 137 6.2.2 伙伴内存初始化 141 6.2.3 物理页块分配 144 6.2.4 内核线性地址分配 146 6.2.5 物理页块释放 148 6.3 逻辑内存管理 149 6.4 对象内存管理 151 6.4.1 slab管理器 151 6.4.2 slub管理器 157 6.4.3 slob管理器 160 思考题 162 第七章 进程管理 164 7.1 进程管理结构 164 7.2 进程创建 172 7.3 进程调度 175 7.3.1 linux调度器的演变 175 7.3.2 普通进程调度类 179 7.3.3 实时进程调度类 181 7.3.4 空闲进程调度类 183 7.3.5 通用调度器 184 7.3.6 linux调度器的增强 188 7.4 进程终止 190 7.4.1 子进程退出操作exit 190 7.4.2 父进程回收操作wait 191 思考题 192 第八章 虚拟内存管理 193 8.1 虚拟内存管理结构 193 8.2 虚拟内存区域管理 198 8.2.1 虚拟地址空间布局 199 8.2.2 虚拟内存区域操作 200 8.3 虚拟地址空间建立 202 8.3.1 可执行文件 202 8.3.2 加载函数 204 8.3.3 elf文件加载 205 8.3.4 动态链接器初始化 208 8.3.5 elf格式动态链接 208 8.4 页故障处理 210 8.4.1 页故障异常处理流程 210 8.4.2 非法访问页故障处理 211 8.4.3 有效用户页故障处理 212 8.4.4 有效内核页故障处理 215 8.5 页面回收 216 8.5.1 页面换出位置 216 8.5.2 页面淘汰算法 219 8.5.3 页面回收流程 221 8.5.4 优化措施 223 思考题 224 第九章 互斥与同步 225 9.1 基础操作 225 9.1.1 格栅操作 225 9.1.2 原子操作 226 9.1.3 抢占屏蔽操作 227 9.1.4 睡眠与等待操作 228 9.2 自旋锁 229 9.2.1 自旋锁的概念 229 9.2.2 经典自旋锁 230 9.2.3 带中断屏蔽的自旋锁 231 9.2.4 读写自旋锁 232 9.3 序号锁 234 9.4 rcu机制 235 9.4.1 rcu实现思路 235 9.4.2 rcu管理结构 237 9.4.3 宽限期启动 241 9.4.4 宽限期终止 242 9.5 信号量 243 9.5.1 经典信号量 244 9.5.2 互斥信号量 245 9.5.3 读写信号量 246 9.6 信号量集合 248 9.6.1 管理结构 249 9.6.2 信号量操作 252 思考题 253 第十章 进程间通信 254 10.1 信号 254 10.1.1 信号定义 254 10.1.2 信号管理结构 256 10.1.3 信号处理程序注册 257 10.1.4 信号发送 258 10.1.5 信号处理 260 10.1.6 信号接收 263 10.2 管道 263 10.2.1 管道的意义 264 10.2.2 匿名管道 264 10.2.3 命名管道 266 10.3 消息队列 267 10.3.1 system v消息队列 267 10.3.2 posix消息队列 270 10.4 共享内存 274 10.4.1 共享文件映射 274 10.4.2 posix共享内存 276 10.4.3 system v共享内存 279 思考题 280 第十一章 虚拟文件系统 282 11.1 虚拟文件系统管理结构 282 11.1.1 虚拟文件系统框架 283 11.1.2 超级块结构 284 11.1.3 索引节点结构 284 11.1.4 目录项结构 287 11.2 文件系统管理 288 11.2.1 文件系统注册 288 11.2.2 文件系统安装 289 11.2.3 文件系统卸载 293 11.3 文件管理 293 11.3.1 路径名解析 294 11.3.2 文件管理操作 297 11.4 文件i/o操作 299 11.4.1 文件描述符表 299 11.4.2 文件打开与关闭 302 11.4.3 文件内容读写 304 11.5 文件缓存管理 305 11.5.1 缓存管理基数树 305 11.5.2 文件地址空间 307 11.5.3 缓存管理机制 308 11.5.4 文件读写操作 310 思考题 311 第十二章 物理文件系统 312 12.1 块设备管理 312 12.1.1 块设备的用户表示 313 12.1.2 块设备的物理表示 313 12.1.3 块设备的逻辑表示 315 12.1.4 请求队列 317 12.1.5 请求递交 320 12.1.6 请求处理 321 12.2 ext文件系统 321 12.2.1 ext文件系统布局 322 12.2.2 ext管理结构 323 12.2.3 ext逻辑块管理 330 12.2.4 ext inode管理 333 12.2.5 ext文件系统类型 335 12.2.6 ext超级块操作集 335 12.2.7 ext inode操作集 336 12.2.8 ext文件操作集 338 12.2.9 ext地址空间操作集 338 思考题 340 参考文献 341 |
商品评论(0条)