奔跑吧Linux内核 卷1:基础架构 第2版 人民邮电出版社 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线

奔跑吧Linux内核 卷1:基础架构 第2版 人民邮电出版社精美图片
》奔跑吧Linux内核 卷1:基础架构 第2版 人民邮电出版社电子书籍版权问题 请点击这里查看《

奔跑吧Linux内核 卷1:基础架构 第2版 人民邮电出版社书籍详细信息

  • ISBN:9787115549990
  • 作者:暂无作者
  • 出版社:暂无出版社
  • 出版时间:2021-01
  • 页数:暂无页数
  • 价格:68.10
  • 纸张:胶版纸
  • 装帧:平装-胶订
  • 开本:16开
  • 语言:未知
  • 丛书:暂无丛书
  • TAG:暂无
  • 豆瓣评分:暂无豆瓣评分
  • 豆瓣短评:点击查看
  • 豆瓣讨论:点击查看
  • 豆瓣目录:点击查看
  • 读书笔记:点击查看
  • 原文摘录:点击查看
  • 更新时间:2025-01-19 18:01:08

寄语:

新华书店正版,关注店铺成为会员可享店铺专属优惠,团购客户请咨询在线客服!


内容简介:

本书基于Linux 5.0内核的源代码讲述Linux内核中核心模块的实现。本书共9章,主要内容包括处理器架构、ARM64在Linux内核中的实现、内存管理之预备知识、物理内存与虚拟内存、内存管理之高级主题、内存管理之实战案例、进程管理之基本概念、进程管理之调度和负载均衡、进程管理之调试与案例分析。本书适合Linux系统开发人员、嵌入式系统开发人员及Android开发人员阅读,也可供计算机相关专业的师生阅读。


书籍目录:

第1章处理器架构1

1.1处理器架构介绍3

1.1.1精简指令集和复杂指令集3

1.1.2大/小端字节序3

1.1.3一条存储读写指令的执行全过程4

1.1.4内存屏障产生的原因8

1.1.5高速缓存的工作方式10

1.1.6高速缓存的映射方式11

1.1.7组相联的高速缓存13

1.1.8PIPT和VIVT的区别14

1.1.9页表的创建和查询过程17

1.1.10TLB21

1.1.11MESI协议21

1.1.12高速缓存伪共享26

1.1.13高速缓存在Linux内核中的应用27

1.1.14ARM的大/小核架构28

1.1.15高速缓存一致性和一致性内存模型30

1.1.16高速缓存的回写策略和替换策略30

1.1.17NUMA31

1.1.18ARM处理器设计32

1.1.19近期新进展33

1.2ARM64架构34

1.2.1ARMv8-A架构34

1.2.2采用ARMv8架构的常见处理器内核35

1.2.3ARMv8架构中的基本概念35

1.2.4ARMv8处理器执行状态36

1.2.5ARMv8支持的数据宽度36

1.2.6不对齐访问37

1.3ARMv8寄存器37

1.3.1通用寄存器37

1.3.2处理器状态38

1.3.3特殊寄存器39

1.3.4系统寄存器41

1.4A64指令集42

1.4.1常用的算术和搬移指令42

1.4.2乘法和除法指令43

1.4.3移位操作指令45

1.4.4位操作指令45

1.4.5条件操作47

1.4.6内存加载指令48

1.4.7多字节内存加载和存储指令50

1.4.8非特权访问级别的加载和存储指令50

1.4.9内存屏障指令简介51

1.4.10独占内存访问指令51

1.4.11跳转与比较指令52

1.4.12异常处理指令53

1.4.13系统寄存器访问指令54

1.5GCC内联汇编55

1.6函数调用标准和栈布局57

1.7ARM64异常处理59

1.7.1异常类型59

1.7.2同步异常和异步异常60

1.7.3异常发生后的处理60

第2章ARM64在Linux内核中的实现62

2.1ARM64内存管理63

2.1.1页表63

2.1.2页表映射64

2.1.3页表项描述符65

2.1.4Linux内核中的页表68

2.1.5ARM64内核内存分布74

2.1.6案例分析:ARM64的页表映射过程78

2.2高速缓存管理84

2.3TLB管理87

2.4内存属性90

2.4.1内存属性91

2.4.2高速缓存共享属性94

2.5内存屏障95

2.5.1内存屏障指令95

2.5.2加载-获取屏障原语与存储-释放屏障原语96

2.6Linux内核汇编代码分析97

2.6.1链接文件基础知识97

2.6.2vmlinux.lds.S文件分析99

2.6.3启动汇编代码102

2.6.4创建恒等映射和内核映像映射106

2.6.5__cpu_setup函数分析114

2.6.6__primary_switch函数分析117

2.7关于页表的常见疑问120

2.7.1关于下一级页表基地址121

2.7.2软件遍历页表121

第3章内存管理之预备知识124

3.1从硬件角度看内存管理126

3.1.1内存管理的“远古时代”126

3.1.2分段机制127

3.1.3分页机制128

3.1.4虚拟地址到物理地址的转换128

3.2从软件角度看内存管理129

3.2.1从Linux系统使用者的角度看内存管理129

3.2.2从Linux应用程序开发人员的角度看内存管理130

3.2.3从内存分布的角度看内存管理131

3.2.4从进程的角度看内存管理131

3.2.5从Linux内核的角度看内存管理135

3.3物理内存管理之预备知识136

3.3.1内存架构之UMA和NUMA136

3.3.2内存管理之数据结构138

3.3.3内存大小140

3.3.4物理内存映射141

3.3.5zone初始化143

3.3.6空间划分145

3.3.7物理内存初始化146

第4章物理内存与虚拟内存152

4.1页面分配之快速路径153

4.1.1分配物理页面的接口函数154

4.1.2分配掩码155

4.1.3alloc_pages()函数158

4.1.4get_page_from_freelist()函数162

4.1.5zone_watermark_fast()函数164

4.1.6rmqueue()函数165

4.1.7释放页面167

4.1.8小结170

4.2slab分配器170

4.2.1slab分配器产生的背景170

4.2.2创建slab描述符173

4.2.3slab分配器的内存布局176

4.2.4配置slab描述符178

4.2.5分配slab对象180

4.2.6释放slab缓存对象183

4.2.7slab分配器和伙伴系统的接口函数185

4.2.8管理区185

4.2.9kmalloc()188

4.2.10小结189

4.3vmalloc()190

4.4虚拟内存管理之进程地址空间194

4.4.1进程地址空间194

4.4.2mm_struct数据结构195

4.4.3VMA数据结构197

4.4.4VMA的属性199

4.4.5查找VMA201

4.4.6插入VMA203

4.4.7合并VMA206

4.4.8红黑树例子207

4.4.9小结209

4.5malloc()210

4.5.1brk系统调用210

4.5.2用户态地址空间划分212

4.5.3__do_sys_brk()函数213

4.5.4do_brk_flags()函数213

4.5.5_mm_populate()函数215

4.5.6get_user_pages()函数216

4.5.7小结220

4.6mmap223

4.6.1mmap概述223

4.6.2小结225

4.7缺页异常处理227

4.7.1ARM64缺页异常的底层处理流程228

4.7.2do_page_fault()函数234

4.7.3handle_mm_fault()函数237

4.7.4匿名页面缺页中断240

4.7.5系统零页241

4.7.6文件映射缺页中断242

4.7.7写时复制245

4.7.8ARM64硬件DBM机制导致的竞争问题248

4.7.9关于pte_offset_map()安全使用的问题251

4.7.10关于写时复制的竞争问题253

4.7.11为什么要在切换页表项之前刷新TLB256

4.7.12缺页异常引发的死锁257

4.7.13小结257

第5章内存管理之高级主题259

5.1page260

5.1.1page数据结构260

5.1.2_refcount的应用265

5.1.3_mapcount的应用268

5.1.4PG_Locked269

5.1.5mapping成员的妙用270

5.1.6和page相关的几个接口函数271

5.1.7小结272

5.2RMAP272

5.2.1RMAP的主要数据结构273

5.2.2父进程产生匿名页面274

5.2.3根据父进程创建子进程277

5.2.4子进程发生写时复制280

5.2.5RMAP的应用281

5.2.6小结283

5.3页面回收285

5.3.1LRU链表285

5.3.2第二次机会法288

5.3.3触发页面回收293

5.3.4kswapd内核线程293

5.3.5balance_pgdat()函数296

5.3.6shrink_node()函数298

5.3.7shrink_active_list()函数302

5.3.8shrink_inactive_list()函数304

5.3.9跟踪LRU活动情况308

5.3.10页面回收机制309

5.3.11RefaultDistance算法312

5.3.12小结317

5.4匿名页面生命周期318

5.4.1匿名页面的产生319

5.4.2匿名页面的使用319

5.4.3匿名页面的换出319

5.4.4匿名页面的换入321

5.4.5匿名页面的销毁321

5.5页面迁移321

5.5.1哪些页面可以迁移322

5.5.2页面迁移主函数322

5.5.3move_to_new_page()函数324

5.5.4迁移页表325

5.5.5迁移非LRU页面326

5.5.6小结328

5.6内存规整329

5.6.1内存规整的基本原理329

5.6.2触发内存规整330

5.6.3直接内存规整330

5.6.4compact_zone()函数333

5.6.5哪些页面适合做内存规整338

5.7KSM339

5.7.1使能KSM339

5.7.2KSM基本实现343

5.7.3KSM数据结构345

5.7.4新版本KSM的新特性345

5.7.5malloc()分配的页面可以被KSM扫描吗353

5.7.6合并页面355

5.7.7一个有趣的计算公式358

5.7.8page->index的值359

5.7.9小结360

5.8页面分配之慢速路径362

5.8.1alloc_pages_slowpath()函数362

5.8.2水位管理和分配优先级367

5.9内存碎片化管理368

5.9.1伙伴系统算法如何减少内存碎片368

5.9.2页面迁移类型和内存规整370

5.9.3Linux5.0内核新增的反碎片优化371

第6章内存管理之实战案例分析375

6.1内存管理日志信息和调试信息375

6.1.1vm_stat计数值375

6.1.2meminfo分析377

6.1.3伙伴系统信息383

6.1.4查看内存管理区的信息383

6.1.5查看与进程相关的内存信息385

6.1.6为什么S_swap与P_swap不相等387

6.1.7解读OOMKiller机制输出的日志信息388

6.1.8解读缺页异常后输出的宕机日志信息394

6.2内存管理调优参数400

6.2.1影响内存管理区水位的调优参数min_free_kbytes401

6.2.2影响页面分配的参数lowmem_reserve_ratio402

6.2.3影响页面回收的参数404

6.2.4影响脏页回写的参数406

6.3内存管理实战案例分析407

6.3.1案例一:缺页异常和文件系统引发的宕机407

6.3.2案例二:KSM和NUMA引发的虚拟机宕机410

6.3.3案例三:为什么无法分配一个页面415

6.3.4案例四:秘密任务——动态修改系统调用表引发的4次宕机420

第7章进程管理之基本概念430

7.1关于进程的基本概念431

7.1.1进程的来由431

7.1.2进程描述符432

7.1.3进程的生命周期434

7.1.4进程标识436

7.1.5进程间的家族关系436

7.1.6获取当前进程438

7.1.7进程0和进程1440

7.2与进程创建和终止相关的操作系统原语441

7.2.1写时复制技术442

7.2.2fork()函数443

7.2.3vfork()函数444

7.2.4clone()函数445

7.2.5内核线程445

7.2.6终止进程446

7.2.7僵尸进程和进程托孤446

7.3代码分析:进程的创建和终止447

7.3.1_do_fork()函数分析447

7.3.2copy_process()函数分析449

7.3.3dup_task_struct()函数分析453

7.3.4sched_fork()函数分析453

7.3.5copy_mm()函数分析454

7.3.6进程创建后的返回458

7.4进程调度原语461

7.4.1进程分类461

7.4.2进程优先级和权重461

7.4.3调度策略463

7.4.4时间片465

7.4.5经典调度算法465

7.4.6Linux内核的O(n)调度算法467

7.4.7Linux内核的O(1)调度算法467

7.4.8Linux内核的CFS468

第8章进程管理之调度与负载均衡469

8.1CFS470

8.1.1vruntime的计算471

8.1.2调度器的数据结构474

8.1.3对进程创建代码的分析479

8.1.4对进程加入调度器的代码的分析483

8.1.5进程调度485

8.1.6进程切换488

8.1.7调度节拍497

8.1.8组调度机制498

8.1.9小结502

8.2负载计算503

8.2.1如何衡量一个CPU的负载503

8.2.2工作负载和量化负载504

8.2.3历史累计衰减的计算505

8.2.4量化负载的计算506

8.2.5实际算力的计算507

8.2.6sched_avg数据结构508

8.2.7PELT代码分析510

8.2.8PELT接口函数516

8.3SMP负载均衡517

8.3.1CPU管理位图517

8.3.2CPU调度域519

8.3.3建立CPU调度域拓扑关系522

8.3.4负载均衡529

8.3.5唤醒进程536

8.3.6wakeaffine特性538

8.3.7调试541

8.3.8小结542

8.4绿色节能调度器542

8.4.1量化计算能力545

8.4.2能效模型548

8.4.3OPP子系统551

8.4.4初始化CPUfreq-dt驱动程序556

8.4.5注册能效模型子系统557

8.4.6该选择哪个CPU来执行唤醒进程p呢561

8.4.7overutilized条件判断569

8.4.8CPU动态调频570

8.4.9小结573

8.5实时调度574

8.5.1实时延时分析574

8.5.2Linux内核实时性改进576

第9章进程管理之调试与案例分析580

9.1进程管理之调试580

9.1.1查看与进程相关的调度信息580

9.1.2查看CFS的信息582

9.1.3查看调度域信息585

9.1.4与调度相关的调试节点586

9.2综合案例分析——系统调度587

9.3进程管理589

9.3.1进程的本质589

9.3.2逃离不掉的进程优先级590

9.3.3调度器的选择591

9.3.4用四维空间来理解负载591

9.3.5案例分析——为何不能调度592


作者介绍:

笨叔,Linux内核爱好者,出版过《奔跑吧Linux内核》《奔跑吧Linux内核入门篇》。创建了奔跑吧Linux社区,为广大Linux爱好者布道。


出版社信息:

暂无出版社相关信息,正在全力查找中!


书籍摘录:

暂无相关书籍摘录,正在全力查找中!



原文赏析:

暂无原文赏析,正在全力查找中!


其它内容:

编辑推荐

基于Linux 5.0内核和ARM64/x86_64架构,全面修订,分析和总结大量项目经验。

基于GCC的“O0”选项编译的Linux5.0实验平台,通过大量实战案例、高频面试题,剖析Linux内核的源代码

基于Linux 5.0内核的源代码进行案例分析。

新增了ARM64架构等方面的内容。

涵盖实战案例,可操作性强。

相对于Linux 4.0内核,Linux 5.0内核中增加了很多新特性,并且内核的实现已经发生了很大变化。本书旨在介绍Linux内核中核心模块的实现,主要内容包括ARM64架构,ARM64在Linux内核中的实现,内存管理的理论知识和案例,以及进程管理的基础知识与案例等。本书适合Linux系统开发人员、嵌入式系统开发人员及Android开发人员阅读。



书籍真实打分

  • 故事情节:5分

  • 人物塑造:8分

  • 主题深度:4分

  • 文字风格:3分

  • 语言运用:3分

  • 文笔流畅:4分

  • 思想传递:3分

  • 知识深度:8分

  • 知识广度:5分

  • 实用性:6分

  • 章节划分:7分

  • 结构布局:7分

  • 新颖与独特:5分

  • 情感共鸣:6分

  • 引人入胜:4分

  • 现实相关:8分

  • 沉浸感:6分

  • 事实准确性:7分

  • 文化贡献:5分


网站评分

  • 书籍多样性:4分

  • 书籍信息完全性:7分

  • 网站更新速度:3分

  • 使用便利性:7分

  • 书籍清晰度:7分

  • 书籍格式兼容性:3分

  • 是否包含广告:7分

  • 加载速度:5分

  • 安全性:7分

  • 稳定性:9分

  • 搜索功能:7分

  • 下载便捷性:7分


下载点评

  • 排版满分(173+)
  • 无广告(560+)
  • 无盗版(388+)
  • 博大精深(547+)
  • epub(135+)
  • 无缺页(111+)
  • 少量广告(87+)
  • 值得下载(332+)
  • 体验好(127+)
  • 藏书馆(596+)
  • 中评多(383+)
  • 一般般(159+)

下载评价

  • 网友 仰***兰: ( 2025-01-01 00:21:02 )

    喜欢!很棒!!超级推荐!

  • 网友 居***南: ( 2024-12-22 17:55:24 )

    请问,能在线转换格式吗?

  • 网友 苍***如: ( 2025-01-05 18:41:23 )

    什么格式都有的呀。

  • 网友 相***儿: ( 2024-12-21 15:46:16 )

    你要的这里都能找到哦!!!

  • 网友 车***波: ( 2024-12-28 16:47:24 )

    很好,下载出来的内容没有乱码。

  • 网友 石***致: ( 2025-01-14 17:06:16 )

    挺实用的,给个赞!希望越来越好,一直支持。

  • 网友 冯***卉: ( 2025-01-14 01:58:27 )

    听说内置一千多万的书籍,不知道真假的

  • 网友 常***翠: ( 2024-12-29 18:23:40 )

    哈哈哈哈哈哈

  • 网友 宫***凡: ( 2024-12-31 23:17:42 )

    一般般,只能说收费的比免费的强不少。

  • 网友 印***文: ( 2025-01-14 15:34:02 )

    我很喜欢这种风格样式。

  • 网友 国***舒: ( 2025-01-10 09:48:15 )

    中评,付点钱这里能找到就找到了,找不到别的地方也不一定能找到

  • 网友 邱***洋: ( 2024-12-21 02:58:58 )

    不错,支持的格式很多

  • 网友 步***青: ( 2025-01-09 08:18:21 )

    。。。。。好

  • 网友 曾***玉: ( 2025-01-08 02:09:28 )

    直接选择epub/azw3/mobi就可以了,然后导入微信读书,体验百分百!!!

  • 网友 宓***莉: ( 2024-12-26 07:53:58 )

    不仅速度快,而且内容无盗版痕迹。

  • 网友 潘***丽: ( 2024-12-20 06:53:01 )

    这里能在线转化,直接选择一款就可以了,用他这个转很方便的


随机推荐