奔跑吧Linux内核:基于Linux 4.x内核源代码问题分析9787115465023
正版图书,可开发票,请放心购买。
¥
97.33
6.2折
¥
158
全新
库存10件
作者张天飞
出版社人民邮电出版社
ISBN9787115465023
出版时间2016-03
装帧平装
开本16开
定价158元
货号9001973
上书时间2024-12-22
商品详情
- 品相描述:全新
- 商品描述
-
导语摘要
本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。
作者简介
张天飞,笔名“笨叔叔”。Linux内核爱好者,从事Linux内核和驱动开发十余年,在多家芯片公司从事过手机芯片底层软件开发和客户支持工作。
目录
LINUX内核奔跑卷1
第1章 处理器体系结构4
本章思考题4
第2章 内存管理32
本章思考题32
2.1 物理内存初始化36
2.1.1 内存管理概述36
2.1.2 内存大小37
2.1.3 物理内存映射38
2.1.4 zone初始化40
2.1.5 空间划分44
2.1.6 物理内存初始化45
2.2 页表的映射过程51
2.2.1 ARM32页表映射51
2.2.2 ARM64页表映射60
2.3 内核内存的布局图67
2.3.1 ARM32内核内存布局图67
2.3.2 ARM64内核内存布局图70
2.4 分配物理页面72
2.4.1 伙伴系统分配内存72
2.4.2 释放页面85
2.4.3 小结89
2.5 slab分配器90
2.5.1 创建slab描述符91
2.5.2 分配slab对象103
2.5.3 释放slab缓冲对象108
2.5.4 kmalloc分配函数111
2.5.5 小结112
2.6 vmalloc113
2.7 VMA操作120
2.7.1 查找VMA122
2.7.2 插入VMA124
2.7.3 合并VMA129
2.7.4 红黑树例子131
2.7.5 小结133
2.8 malloc133
2.8.1 brk实现134
2.8.2 VM_LOCK情况138
2.8.3 小结148
2.9 mmap150
2.9.1 mmap概述151
2.9.2 小结153
2.10 缺页中断处理155
2.10.1 do_page_fault()157
2.10.2 匿名页面缺页中断165
2.10.3 文件映射缺页中断169
2.10.4 写时复制175
2.10.5 小结183
2.11 page引用计数184
2.11.1 struct page数据结构185
2.11.2 _count和_mapcount的区别188
2.11.3 页面锁PG_Locked192
2.11.4 小结192
2.12 反向映射RMAP192
2.12.1 父进程分配匿名页面193
2.12.2 父进程创建子进程198
2.12.3 子进程发生COW200
2.12.4 RMAP应用201
2.12.5 小结202
2.13 回收页面204
2.13.1 LRU链表204
2.13.2 kswapd内核线程216
2.13.3 balance_pgdat函数219
2.13.4 shrink_zone函数228
2.13.5 shrink_active_list函数233
2.13.6 shrink_inactive_list函数238
2.13.7 跟踪LRU活动情况244
2.13.8 Refault Distance算法244
2.13.9 小结249
2.14 匿名页面生命周期251
2.14.1 匿名页面的诞生251
2.14.2 匿名页面的使用252
2.14.3 匿名页面的换出252
2.14.4 匿名页面的换入254
2.14.5 匿名页面销毁254
2.15 页面迁移254
migrate_pages()函数255
2.16 内存规整(memory compaction)262
2.16.1 内存规整实现263
2.16.2 小结272
2.17 KSM273
2.17.1 KSM实现274
2.17.2 匿名页面和KSM页面的区别293
2.17.3 小结294
2.18 Dirty COW内存漏洞296
2.19 总结内存管理数据结构和API309
2.19.1 内存管理数据结构的关系图309
2.19.2 内存管理中常用API312
2.20 最新更新和展望315
2.20.1 页面回收策略从zone迁移到node315
2.20.2 OOM Killer改进316
2.20.3 swap优化317
2.20.4 展望318
第3章 进程管理319
本章思考题319
3.1 进程的诞生320
3.1.1 init进程321
3.1.2 fork325
3.1.3 小结344
3.2 CFS调度器345
3.2.1 权重计算346
3.2.2 进程创建358
3.2.3 进程调度369
3.2.4 scheduler tick379
3.2.5 组调度382
3.2.6 PELT算法改进386
3.2.7 小结387
3.3 SMP负载均衡389
3.3.1 CPU域初始化389
3.3.2 SMP负载均衡401
3.3.3 唤醒进程415
3.3.4 调试421
3.3.5 小结422
3.4 HMP调度器422
3.4.1 初始化423
3.4.2 HMP负载调度425
3.4.3 新创建的进程436
3.4.4 小结437
3.5 NUMA调度器438
3.5.1 node和page的关系439
3.5.2 扫描进程441
3.5.3 NUMA缺页中断442
3.5.4 进程迁移450
3.5.5 小结455
3.6 EAS绿色节能调度器457
3.6.1 能效模型459
3.6.2 WALT算法465
3.6.3 唤醒进程480
3.6.4 CPU动态调频491
3.6.5 小结494
3.7 实时调度496
3.8 最新更新与展望500
3.8.1 进程管理更新500
3.8.2 展望500
第4章 并发与同步501
本章思考题501
4.1 原子操作与内存屏障503
4.1.1 原子操作503
4.1.2 内存屏障506
4.2 spinlock508
4.2.1 spinlock实现509
4.2.2 spinlock变种511
4.2.3 spinlock和raw_spin_lock512
4.3 信号量513
4.3.1 信号量513
4.3.2 小结516
4.4 Mutex互斥体517
4.4.1 MCS锁机制518
4.4.2 Mutex锁的实现525
4.4.3 小结531
4.5 读写锁531
4.5.1 读者信号量532
4.5.2 写者锁538
4.5.3 小结544
4.6 RCU544
4.6.1 经典RCU和Tree RCU547
4.6.2 Tree RCU设计551
4.6.3 小结573
4.7 内存管理中的锁574
4.8 最新更新与展望584
4.8.1 Queued Spinlock584
4.8.2 读写信号量优化591
4.8.3 展望592
4.8.4 推荐书籍593
第5章 中断管理594
本章思考题594
5.1 Linux中断管理机制595
5.1.1 ARM中断控制器595
5.1.2 硬件中断号和Linux中断号的映射599
5.1.3 注册中断610
5.1.4 ARM底层中断处理618
5.1.5 高层中断处理626
5.1.6 小结636
5.2 软中断和tasklet637
5.2.1 SoftIRQ软中断638
5.2.2 tasklet642
5.2.3 local_bh_disable/local_bh_enable647
5.2.4 小结649
5.3 workqueue工作队列650
5.3.1 初始化工作队列652
5.3.2 创建工作队列659
5.3.3 调度一个work665
5.3.4 取消一个work675
5.3.5 和调度器的交互680
5.3.6 小结682
第6章 内核调试684
6.1 QEMU调试Linux内核684
6.1.1 QEMU运行ARM Linux内核684
6.1.2 QEMU调试ARM Linux内核687
6.1.3 QEMU运行ARMv8开发平台688
6.1.4 文件系统支持690
6.1.5 图形化调试691
6.1.6 实验进阶693
6.2 ftrace694
6.2.1 irqs跟踪器695
6.2.2 preemptoff跟踪器696
6.2.3 preemptirqsoff跟踪器697
6.2.4 function跟踪器698
6.2.5 动态ftrace699
6.2.6 事件跟踪700
6.2.7 添加tracepoint702
6.2.8 trace-cmd和kernelshark705
6.2.9 trace marker707
6.2.10 小结709
6.3 SystemTap710
6.4 内存检测714
6.4.1 slub_debug714
6.4.2 内存泄漏检测kmemleak718
6.4.3 kasan内存检测720
6.5 死锁检测722
6.6 内核调试秘籍728
6.6.1 printk728
6.6.2 动态打印730
6.6.3 RAM Console731
6.6.4 OOPS分析731
6.6.5 BUG_ON()和WARN_ON()734
内容摘要
本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。 本书内容丰富,讲解清晰透彻,不仅适合有一定Linux相关基础的人员,包括从事与Linux相关的开发人员、操作系统的研究人员、嵌入式开发人员及Android底层开发人员等学习和使用,而且适合作为对Linux感兴趣的程序员的学习用书,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。
主编推荐
1.基于Linux 4.x内核 2.Linux内核奔跑卷,提高读者兴趣,方便面试人员复习。 3.以实际问题为导向的内核分析书籍,给读者提供一个以解决实际问题为引导的阅读方式。 4.基于Linux 4.x内核和Android 7.x内核 5.基于ARM32 ARM64体系架构 6.内容详实,讲解深入透彻,反映内核社区技术发展 7.新型黑科技:EAS调度器、MCS锁、QSpinlock、DirtyCOW
精彩内容
本书内容基于Linux 4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。
本书内容丰富,讲解清晰透彻,不仅适合有一定Linux相关基础的人员,包括从事与Linux相关的开发人员、操作系统的研究人员、嵌入式开发人员及Android底层开发人员等学习和使用,而且适合作为对Linux感兴趣的程序员的学习用书,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。
— 没有更多了 —
以下为对购买帮助不大的评价