本类书籍检索

书籍介绍


Linux内核修炼之道

8.0

(1人评分)

0.0%
100.0%
0.0%
0.0%
0.0%
作  者: 华清远见嵌入式培训中心  
出 版 社: 人民邮电出版社
书  号: 9787115225856
页  数: 350 页
出版日期: 2010-7-14
定  价: ¥49 元
Linux内核修炼之道简介
第1章 初识Linux 1
1.1 Linux史记 2
1.1.1 Linux诞生记 2
1.1.2 泰坦尼克的狂潮 2
1.1.3 提前发生的革命 3
1.1.4 和平、爱情和Linux 4
1.1.5 Ubuntu 4.10 4
1.1.6 Richard Stallman的征婚启事 5
1.1.7 一封公开信 6
1.1.8 首款Android手机 8
1.1.9 Linux信用卡 8
1.2 内核的版本 9
1.3 获取内核源码 10
1.4 Linux发行版 11
1.4.1 软件包管理器 11
1.4.2 流行的发行版 12
1.4.3 选择Linux发行版 13

第2章 配置与编译内核 15
2.1 配置内核 16
2.1.1 几种配置方式 16
2.1.2 .config文件 19
2.1.3 配置选项详解 20
2.2 编译内核 26
2.2.1 准备工作 26
2.2.2 如何为内核打补丁 27
2.2.3 编译步骤 28
2.2.4 文档的编译 29
2.2.5 编译小技巧 29
2.3 自由软件的编译与安装 30
2.3.1 发布时的组织结构 30
2.3.2 配置 30
2.3.3 编译 32
2.3.4 安装 35

第3章 浏览内核源代码 37
3.1 内核学习的技术基础 38
3.2 内核体系结构 38
3.3 内核源码目录结构 40
3.4 浏览代码的工具 43
3.4.1 Source Insight 43
3.4.2 Vim+Cscope 43
3.4.3 LXR 45
3.5 内核代码的特点 46
3.5.1 GCC扩展 46
3.5.2 内嵌汇编 51
3.6 内核中的链表 51
3.7 Kconfig和Makefile 53
3.7.1 Kconfig结构 54
3.7.2 利用Kconfig和Makefile寻找目标代码 55
3.8 代码分析示例 57
3.8.1 分析README 57
3.8.2 分析Kconfig和Makefile 58
3.8.3 寻找初始化函数 60

第4章 系统初始化 64
4.1 引导过程 65
4.2 内核初始化 67
4.2.1 start_kernel函数 68
4.2.2 reset_init函数 71
4.2.3 kernel_init函数 72
4.2.4 init_post函数 73
4.3 init进程 75
4.4 内核选项解析 75
4.4.1 内核选项 75
4.4.2 注册内核选项 77
4.4.3 两次解析 78
4.5 子系统的初始化 79
4.5.1 do_initcalls()函数 79
4.5.2 .initcall.init节 80
4.5.3 分析示例 81

第5章 系统调用 84
5.1 系统调用概述 85
5.1.1 系统调用、POSIX、C库、系统命令和内核函数 85
5.1.2 系统调用表 87
5.1.3 系统调用号 87
5.1.4 系统调用服务例程 88
5.1.5 如何使用系统调用 88
5.1.6 为什么需要系统调用 90
5.2 系统调用执行过程 91
5.3 系统调用示例 93
5.3.1 sys_dup 93
5.3.2 sys_reboot 94
5.4 系统调用的实现 97
5.4.1 如何实现一个新的系统调用 97
5.4.2 什么时候需要添加新的系统调用 99

第6章 中断与中断处理 100
6.1 概述 101
6.1.1 中断分类 101
6.1.2 PIC vs APIC 102
6.1.3 中断号vs中断向量 104
6.1.4 中断描述符表 105
6.1.5 门 106
6.1.6 中断服务程序 107
6.2 重要数据结构 107
6.2.1 中断描述符irq_desc 108
6.2.2 中断控制器描述符rq_chip 109
6.2.3 中断服务程序描述符qaction 110
6.3 中断子系统初始化 111
6.3.1 中断描述符表的初始化 111
6.3.2 中断请求队列的初始化 116
6.4 中断或异常处理 117
6.4.1 中断控制器的工作 118
6.4.2 CPU的工作 120
6.4.3 内核对中断的处理 120
6.4.4 内核对异常的处理 123
6.5 中断API 123
6.5.1 注册和释放 123
6.5.2 激活和禁止 125
6.5.3 其他API函数 125
6.6 通用IRQ层 126
6.6.1 GenIRQ的起源及发展 126
6.6.2 GenIRQ的抽象层次 126
6.7 多处理器系统中的中断处理 128
6.7.1 处理器间中断 128
6.7.2 中断亲和力 128
6.7.3 中断负载均衡 129
6.8 中断的下半部 130
6.8.1 下半部的实现机制 130
6.8.2 下半部机制的选择 132

第7章 进程管理 133
7.1 概述 134
7.1.1 进程vs程序 134
7.1.2 进程vs线程 134
7.1.3 进程描述符 135
7.1.4 进程状态 136
7.1.5 进程标识符 137
7.1.6 进程间关系 138
7.1.7 进程0与进程1 140
7.1.8 进程的内核栈 140
7.1.9 获取当前进程 142
7.2 进程创建 142
7.2.1 fork()、vfork()与clone() 143
7.2.2 do_fork() 146
7.2.3 copy_process() 149
7.2.4 内核线程 150
7.3 进程退出 151
7.3.1 do_exit() 151
7.3.2 僵死进程 152
7.3.3 孤儿进程 153
7.4 后台进程 153

第8章 调度 155
8.1 概述 156
8.1.1 调度策略 156
8.1.2 进程调度的目标 157
8.1.3 进程的nice值 158
8.1.4 优先级 158
8.1.5 时间片 159
8.2 进程调度器的发展历史 160
8.2.1 Linux 2.4的调度器 160
8.2.2 O(1)调度器 161
8.2.3 SD调度器 163
8.2.4 RSDL调度器 163
8.2.5 CFS调度器 164
8.3 O(1)调度器 165
8.3.1 运行队列 165
8.3.2 优先级数组 168
8.3.3 计算时间片 169
8.3.4 平均休眠时间 170
8.3.5 判断交互性 170
8.3.6 计算优先级 171
8.3.7 休眠和唤醒 172
8.3.8 schedule() 173
8.3.9 负载均衡 174
8.3.10 软实时调度 176
8.4 CFS调度器 176
8.4.1 完全公平与进程的权重 176
8.4.2 模块化 177
8.4.3 调度实体 179
8.4.4 CFS运行队列 180
8.4.5 虚拟运行时间 181
8.4.6 CFS调度类 182
8.4.7 schedule() 183
8.4.8 组调度 183
8.5 进程抢占与切换 185
8.5.1 用户抢占 185
8.5.2 内核抢占 186
8.5.3 进程切换 187

第9章 内存管理 189
9.1 内存概述 190
9.1.1 地址空间 190
9.1.2 分页 191
9.2 内核的内存分配 192
9.2.1 内存结构 192
9.2.2 BUDDY页面管理 195
9.2.3 SLAB内存管理 198
9.2.4 SLUB/SLOB内存管理 201
9.2.5 vmalloc内存分配 203
9.2.6 高端内存映射 204
9.3 进程地址空间 204
9.3.1 内存描述符 205
9.3.2 内存映射 208
9.3.3 多级页表结构 209
9.3.4 缺页错误处理 210
9.4 页面缓存 211
9.4.1 页面缓存管理 212
9.4.2 Swap内存交换 213
9.4.3 kswapd和pdflush 214
9.5 内存工具汇总 214
9.5.1 用proc接口查看内存信息 214
9.5.2 系统命令工具 215

第10章 文件系统 217
10.1 概述 218
10.1.1 文件 218
10.1.2 文件系统 218
10.1.3 虚拟文件系统 221
10.2 VFS的数据结构 224
10.2.1 超级块 224
10.2.2 索引节点 227
10.2.3 目录项 232
10.2.4 文件 235
10.2.5 与文件系统相关的数据结构 238
10.2.6 与进程相关的数据结构 240
10.2.7 路径查找辅助结构 243
10.3 VFS的缓存机制 244
10.3.1 索引节点缓存 244
10.3.2 目录项缓存 245
10.3.3 缓冲区缓存 247
10.4 文件系统的注册与安装 248
10.4.1 文件系统的注册 248
10.4.2 文件系统的安装 249
10.4.3 rootfs的注册和安装 250
10.5 inotify机制 251
10.5.1 inotify数据结构 251
10.5.2 inotify钩子函数 253
10.5.3 inotify用户接口 254
10.5.4 应用示例 255
10.5.5 inotify工具 256

第11章 设备驱动 258
11.1 概述 259
11.2 模块机制与“Hello World!” 260
11.3 设备模型 262
11.3.1 设备模型的经济基础 263
11.3.2 设备模型的上层建筑 268
11.3.3 类(Class)与类设备(class_device) 273
11.4 sysfs文件系统 275
11.4.1 sysfs与/sys 276
11.4.2 sysfs目录项sysfs_dirent 277
11.4.3 sysfs目录和属性 278
11.5 spec、datasheet与内核源代码 279
11.6 USB子系统与USB驱动 279
11.6.1 USB简史 279
11.6.2 USB协议基础 281
11.6.3 USB子系统与sysfs 284
11.6.4 内核中的USB 286
11.6.5 USB设备基础 288
11.6.6 USB urb 304
11.6.7 OTG简介 310
11.6.8 USB驱动程序 310

第12章 内核开发基础 316
12.1 相关资源 317
12.1.1 内核文档 317
12.1.2 经典书籍 318
12.1.3 内核社区 319
12.1.4 其他网络资源 319
12.2 编码风格 320
12.3 内核API 324
12.4 内核中的Makefile 325
12.5 如何添加自己的驱动程序 327
12.6 如何提交补丁 329
12.7 学会使用Git 332

第13章 调试 335
13.1 内核调试配置选项 336
13.2 二分法与printk() 337
13.2.1 二分查找法的基本原理 337
13.2.2 printk() 338
13.3 获取内核信息 339
13.3.1 syslog和dmesg 339
13.3.2 /proc 340
13.3.3 /sys 341
13.3.4 ioctl 342
13.4 oops 342
13.5 调试工具 343
13.5.1 gdb 343
13.5.2 kgdb 344
13.5.3 kdb 346
13.5.4 kprobes 346
13.5.5 systemtap 347
13.5.6 kdump 348
13.5.7 硬件工具 348
13.6 “神奇”的SysRq 349
13.7 使用模拟器与虚拟机 349

   beibingyang61   2012-8-30 12:16

谢谢分享

   问题男生   2011-7-27 00:22

可不可以下载的呢

   hj0001278   2010-4-27 19:02

学习

Archiver| C114 ( 沪ICP备12002291号-1 )

GMT+8, 2024-5-14 09:51 , Processed in 0.037053 second(s), 8 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部