出版社:电子工业出版社
年代:2009
定价:50.0
本书注重实例,尽量在讨论“如何做”的基础上,深入讨论为什么要这么做。在内容安排上,本书包含:x86硬件基础、Linux内核Makefile分析、Linux内核启动、内存管理、中断和异常处理、信号机制、系统调用、时钟机制、进程管理、调度器、文件系统、常用内核分析方法等内容。
第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 softirq180
6.4.2 tasklet185
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-ResolutionTimers247
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
《独辟蹊径品内核:Linux内核源代码导读》根据最新的2.6.24内核为基础。在讲述方式上,《独辟蹊径品内核:Linux内核源代码导读》注重实例分析,尽量在讨论“如何做”的基础上,深入讨论为什么要这么做,从而实现《独辟蹊径品内核:Linux内核源代码导读》的写作宗旨:“授人以渔”。在内容安排上,《独辟蹊径品内核:Linux内核源代码导读》包含以下章节x86硬件基础;基础知识;Linux内核Makefile分析;Linux内核启动;内存管理;中断和异常处理;系统调用;信号机制在类UNIX系统中;时钟机制;进程管理;调度器;文件系统;常用内核分析方法。
《独辟蹊径品内核:Linux内核源代码导读》适合初、中级Linux用户、从事内核相关开发的从业人员,也可以作为各类院校相关专业的教材及Linux培训班的教材,也可作为Linux内核学习的专业参考书。
较新的内核版本:本书使用的内核版本为2.6.24。
独特的写作手法:本书在讨论“How”的基础上,力求进一步探究“Why”。
“授人以渔”的写作宗旨:Linux内核处于飞速发展中,任何资料都无法覆盖内核的方方面面。配收以笔者学习过程的疑问和经验为基础,融会贯通于各个章节,毫无保留地就如何学习内核,如何分析内核进行了大量且大胆的探讨,从而力求体现本书的写作宗旨——“授人以渔”。
书籍详细信息 | |||
书名 | 独辟蹊径品内核站内查询相似图书 | ||
9787121085154 如需购买下载《独辟蹊径品内核》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN | |||
出版地 | 北京 | 出版单位 | 电子工业出版社 |
版次 | 1版 | 印次 | 1 |
定价(元) | 50.0 | 语种 | 简体中文 |
尺寸 | 26 | 装帧 | 平装 |
页数 | 印数 | 5000 |
高剑林, 著
孙更新, 宾晟, 孙海伦, 编著
工业和信息化部软件与集成电路促进中心, 编著
(日) 高桥浩和, 等著
赵炯, 编著
赵炯, 编著
(美) 拜克 (Beck,M.) , (美) 鲍姆 (Bohme,H.) , (美) 戴治卡 (Dziadzka,M.) , 著
赵炯, 编著
华清远见嵌入式培训中心, 编著