1.基于Linux 4.x内核
2.Linux内核奔跑卷,提高读者兴趣,方便面试人员复习。
3.以实际问题为导向的内核分析书籍,给读者提供一个以解决实际问题为引导的阅读方式。
4.基于Linux 4.x内核和Android 7.x内核
5.基于ARM32/ARM64体系架构
6.内容详实,讲解深入透彻,反映内核社区技术发展
7.新型黑科技:EAS调度器、MCS锁、QSpinlock、DirtyCOW
本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。
本书内容丰富,讲解清晰透彻,不仅适合有一定Linux相关基础的人员,包括从事与Linux相关的开发人员、操作系统的研究人员、嵌入式开发人员及Android底层开发人员等学习和使用,而且适合作为对Linux感兴趣的程序员的学习用书,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。
张天飞,笔名“笨叔叔”。Linux内核爱好者,从事Linux内核和驱动开发十余年,在多家芯片公司从事过手机芯片底层软件开发和客户支持工作。
在参加2017年北京举办的LinuxCon大会期间遇到了张天飞,了解到他正在写作一本《奔跑吧Linux内核》新书。回来后读了本书的样章,其问答方式的写作手法构思巧妙;以工程实践经验为基础,让读者把知识活学活用的创意也颇有特色。书名也很吸睛,《奔跑吧Linux 内核》这个书名,源于作者每天坚持奔跑5公里,而且该书作者打算跟随Linux 内核版本的演变不断地更新本书。也希望读者跟随本书,坚持学习Linux内核不动摇。
—陈莉君 西安邮电大学
Linux是一个应用非常广泛的、成熟的操作系统。Linux内核是整个Linux的基础和核心,包括从存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信到系统引导、系统调用等内容,非常值得搞嵌入式、物联网、机器人、智能硬件、VR/AR等领域需要软硬件协同开发设计的工程师们深入研究。此书就是以Linux为例,详尽阐述了原本枯燥的操作系统的方方面面的知识,是一本很好的从知晓到熟悉Linux的进阶学习读物。
张天飞是12年前和我在上海亿道的同事,非常热爱底层技术探究。直到现在还能够静下心来做些底层研究的同志不多,希望他可以不断分享多年学习心得和从业经验给广大Linux学习者。加油!
—石庆 亿道控股Emdoor联合创始人&亿境虚拟现实技术有限公司总经理
Linux内核与我们的生活息息相关,从手机、平板电脑、服务器、汽车到智能家电,都能看到它的身影。长久以来,一直没有一部深入浅出介绍整个Linux内核的中文书。英文书很多也是稍显过时,因为内核的变化是如此之快。很高兴看到有这样的一本书出版,把新的内核与内核设计及一些重要变更的原因呈现出来,让内核不再是一个黑盒子。这对任何要做性能优化、开发驱动程序,甚至直接修改内核的人来说是一大福音。
—Tim Chen Linux内核资深技术专家
这是一本深入讲解基于ARM Cortex-A处理器在服务器和智能设备上运行Linux系统的书,可以帮助读者理解硬件如何与底层Linux内核交互,对Linux内核爱好者和Platform/BSP软件开发者系统学习工作很有益。
—修志龙 ARM公司应用工程师经理
对于安卓智能手机底层系统研发人员来说,本书有如一场及时雨,不仅在全球范围内首次解读新的ARM64体系架构和Linux 4.x内核,还及时呈现了与智能手机系统用户体验密切相关的内核新技术,比如EAS调度器。本书作者携十余年的Linux内核和驱动开发经验,倾情奉献,诚意满满,推荐细细品读、慢慢揣摩!
—吴章金 魅族手机研发中心BSP部技术总监
本书的形式设计非常巧妙,它采用一种启发问答的形式,这样容易让读者带着问题去阅读,并可以直接用回答问题来验证阅读的效果。本书的另外一个特点是内容新,能够紧扣内核的新变化。
—宋宝华 Linux内核资深技术专家,技术畅销书作者
这是一本Linux操作系统工匠的力作,作者站在Linux操作系统前沿,以情景分析的方法向我们展示了新版本内核的秘密。与所有深入讲解内核代码的书籍一样,本书同样值得读者反复推敲、仔细琢磨。如果你在阅读本书的过程中有更好的建议和意见,请告诉所有人。毕竟,开源社区是集市,而不是教堂。
—谢宝友 中国开源软件推进联盟专家委员,Linux ZTE平台维护者
在软件定义一切的时代,作为开源世界重要基石的Linux变得越发重要,掌握坚实的Linux内核知识几乎是软、硬件工程师进阶所必须的。本书作者采用交互问答的方式,将新Linux内核抽丝剥茧,依次呈现给读者,既适合初、中级开发人员系统学习,也适合高级开发人员随时参阅,强力推荐!
—段夕华 IT老兵,开源技术爱好者
伴随计算机层次化体系结构的更迭,操作系统、编译系统和数据库作为IT、互联网及物联网的基石,多年来不断演进。而Linux内核自1991年发起至今,集数万人智慧结晶,承上启下,早已成为学术界与工业界协作与创新的重要平台。本书作者从事Linux内核研发多年,勤于总结,故能将其脉络梳理详略得当,恰到好处。希望本书会让您踏上一次愉悦的内核之旅,不虚此行。
—刘杰 百度主任研发架构师,Linux内核资深技术专家,XFS文件系统核心开发者
学习Linux内核的第一手材料必然是代码,但是单纯研读代码犹如盲人摸象,容易迷失方向。本书立足于代码分析,辅以大量的子系统的概观,并以启发式问题为线索,让你在Linux内核的世界游刃有余、得心应手。
—赖江山 Linux内核SRCU模块的维护者
大数据与人工智能的发展方兴未艾,遮掩了TMT底层基础设施应有的光芒。Linux从1991年至今,廿年有余,历经了起初的前卫与今日的普及,每一个年代依然在演绎着新的故事。辉煌之余,略有遗憾,近些年全球鲜有书籍对Linux 4.x时代进行系统的梳理,本书弥补了这一遗憾,在此向致力于底层基础架构领域的读者推荐此书。
—王齐《Linux PowerPC详解—核心篇》和《PCI Express体系结构导读》作者
毫无疑问,ARM平台是目前使广泛的计算机平台,也是Linux系统应广泛的平台,这本基于ARM的Linux Kernel 4.x内核分析来得恰是时候。本书从ARM的系统硬件开始介绍,导出基于这些硬件的内核软件设计;从应用常见的系统调用开始,展开到在内核中如何实现这些系统调用,为中级层次读者一一揭开Linux系统内核的面纱。独特的问答方式也为该书的一大亮点,即使是内核老手也能在阅读中发现乐趣。希望此书能给国内广大内核爱好者带来欢乐和帮助!
—时奎亮 Linaro资深内核专家
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 vmalloc 113
2.7 VMA操作 120
2.7.1 查找VMA 122
2.7.2 插入VMA 124
2.7.3 合并VMA 129
2.7.4 红黑树例子 131
2.7.5 小结 133
2.8 malloc 133
2.8.1 brk实现 134
2.8.2 VM_LOCK情况 138
2.8.3 小结 148
2.9 mmap 150
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_Locked 192
2.11.4 小结 192
2.12 反向映射RMAP 192
2.12.1 父进程分配匿名页面 193
2.12.2 父进程创建子进程 198
2.12.3 子进程发生COW 200
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 KSM 273
2.17.1 KSM实现 274
2.17.2 匿名页面和KSM页面的区别 293
2.17.3 小结 294
2.18 Dirty COW内存漏洞 296
2.19 总结内存管理数据结构和API 309
2.19.1 内存管理数据结构的关系图 309
2.19.2 内存管理中常用API 312
2.20 最新更新和展望 315
2.20.1 页面回收策略从zone迁移到node 315
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 fork 325
3.1.3 小结 344
3.2 CFS调度器 345
3.2.1 权重计算 346
3.2.2 进程创建 358
3.2.3 进程调度 369
3.2.4 scheduler tick 379
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 spinlock 508
4.2.1 spinlock实现 509
4.2.2 spinlock变种 511
4.2.3 spinlock和raw_spin_lock 512
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 RCU 544
4.6.1 经典RCU和Tree RCU 547
4.6.2 Tree RCU设计 551
4.6.3 小结 573
4.7 内存管理中的锁 574
4.8 最新更新与展望 584
4.8.1 Queued Spinlock 584
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 软中断和tasklet 637
5.2.1 SoftIRQ软中断 638
5.2.2 tasklet 642
5.2.3 local_bh_disable/local_bh_enable 647
5.2.4 小结 649
5.3 workqueue工作队列 650
5.3.1 初始化工作队列 652
5.3.2 创建工作队列 659
5.3.3 调度一个work 665
5.3.4 取消一个work 675
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 ftrace 694
6.2.1 irqs跟踪器 695
6.2.2 preemptoff跟踪器 696
6.2.3 preemptirqsoff跟踪器 697
6.2.4 function跟踪器 698
6.2.5 动态ftrace 699
6.2.6 事件跟踪 700
6.2.7 添加tracepoint 702
6.2.8 trace-cmd和kernelshark 705
6.2.9 trace marker 707
6.2.10 小结 709
6.3 SystemTap 710
6.4 内存检测 714
6.4.1 slub_debug 714
6.4.2 内存泄漏检测kmemleak 718
6.4.3 kasan内存检测 720
6.5 死锁检测 722
6.6 内核调试秘籍 728
6.6.1 printk 728
6.6.2 动态打印 730
6.6.3 RAM Console 731
6.6.4 OOPS分析 731
6.6.5 BUG_ON()和WARN_ON() 734
AsLinuxspreadsoutintomoreandmoresystemsinallareasofcomputing,understandingtheinternalsoftheoperatingsystembecomesaveryvaluableskill.ThisbookwillhelpyoulearnaboutthecoreinternalsoftheLinuxoperatingsystem,providingyoutheknowledgetobeabletoadaptLinuxtoworkproperlyforthenewdevicesandenvironmentsthatyoucreate.
Linux操作系统已经部署到越来越多计算领域的系统中,理解操作系统内核的实现就变成一个具有极高价值的技能。《奔跑吧Linux内核》可以帮助你学习Linux操作系统zui关键的内核,让你有足够多的知识去将Linux顺利应用到你所创造的新设备和新应用环境中。
—GregKroah-Hartman
GregKroah-Hartman简介:Linux基金会院士,Linux内核核心领袖之一,Linuxstabletree的维护者,《LinuxDeviceDrivers》一书的作者之一。
已经开始看了,还不懂好不好,很多人推荐应该不错,活动价很给力,已经开始看了,还不懂好不好,很多人推荐应该不错,活动价很给力,已经开始看了,还不懂好不好,很多人推荐应该不错,活动价很给力,已经开始看了,还不懂好不好,很多人推荐应该不错,活动价很给力,已经开始看了,还不懂好不好,很多人推荐应该不错,活动价很给力,
评分非常好的书,便宜实惠,京东购物很方便。
评分配送员态度和服务都很好,但是发货这个环节太不走心了,实在是不忍直视,太拉低购物体验了。三本书外面只有一层塑料快递袋,结果被磨成了这个样子,也是很佩服京东发货环节的松散。换货后三本书每本都有一个单独的硬纸盒包装,还是很满意的。不过不得不吐槽,早点用一个硬纸盒能解决的问题,何必呢?!
评分经常网购,总有大量的包裹收,有很多的评语要写! 但是,总是写评语花掉了我大量的时间和精力! 回头想想,我花了钱了,还要我花这么多的时间和精力来写评语是不是很不划算? 所以在一段时间里,我总是不去评价或者随便写写! 但是,我又总是觉得好像有点对不住那些辛苦工作的卖家客服、仓管、老板。 于是我写下了一小段话,给我觉得能拿到我五星好评的卖家的宝贝评价里面以示感谢和尊敬! 首先,宝贝是性价比很高的,我每次都会先试用再评价的,虽然宝贝不一定是最好的,但在同等的价位里面绝对是表现最棒的。 其次,在与卖家的沟通中,无论是前期咨询还是后期询问;卖家都能好好解答。 另外,京东物流的速度也是可以接受的,偶尔有比较慢的物流,也希望大家可以耐心等待,毕竟卖家也不能控制物流的速度啊。 相反,卖家比我们更希望能早日到货,我们能早点付款啊! 希望京东能再接再厉。把店铺做得更大更强,提供更多更好的东西给大家。非常感谢你能看完。
评分作为一个电脑爱好者,一直以来就想学习一下linux操作系统,但是因为工作比较忙,同时因为工作中主要还是使用的Windows系统,所以一直就没有去学习linux系统,最近公司网络升级,购买了一台linux系统的服务器,大家都对linux不了解,不会在linux系统服务器上设置共享,不会设置邮件服务器等等,因此这次下定决心要好好的学习一下linux系统,希望自己可以学有所获。
评分在管理学中之,封闭系统是指不受环境影响也不与环境发生相互作用的系统。数理地理学是对地理空间位置测算的地理学分支学科或辅助科学。源于公元前4世纪后期,亚历山大(Alexandros)东达印度河的远征和毕提亚斯(Pytheas)探险于英国与西欧海岸的航行,为地理学打开了新的视野,丰富了地理知识,加之数学、几何学与天文学的进展,促使地理学更新。以古希腊埃拉托色尼的著作《对地球大小的修正》、《地理论著》为代表,内容主要是地球形状大小的推算和对有人居住地方的描述,从而形成了古希腊的数学地理学,以区别于描述地理学。此后形成了以希帕库斯(Hipparchus)为代表的数学地理派。公元2世纪,推罗的马林(Marin de Tyr)、托勒密复兴了数学地理学。托勒密撰写了关于推罗的马林著作的评
评分这个有点磕碰,不影响阅读。宝贝已经收到了,真的是物有所值非常的满意。卖家的服务态度很好发货速度也很快,包裹的严严实实没有任何破损。快递小哥送货速度快,总体来说是一次愉快的购物呀,下次有需要还会再来买买买!与卖家描述的完全一致,非常满意,真的很喜欢,完全超出期望值,发货速度非常快,包装非常仔细、严实,物流公司服务态度很好,运送速度很快,很满意的一次购物。
评分还不错,就是书上强调用的系统。
评分而与外界既有物质交换,又有能量交换的系统会被视为开放系统。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有