精通Linux内核开发

精通Linux内核开发
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [印度] (Raghu Bharadwaj) , ,
2021-09
版次: 1
ISBN: 9787115566041
定价: 89.90
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 288页
17人买过
  • 《精通Linux内核开发》介绍了Linux内核、内核的内部编排与设计,以及内核的各个核心子系统等知识。本书分为11章,具体内容包括:进程、地址空间和线程;进程调度器;信号管理;内存管理和分配器;文件系统和文件I/O;进程间通信;虚拟内存管理;内核同步和锁;中断和延迟工作;时钟和时间管理;模块管理。
    《精通Linux内核开发》篇幅短小精悍,通过大量代码辅助介绍Linux内核的相关开发工作。通过学习本书,读者可以深入理解Linux内核的核心服务与机制,了解这个集中了集体智慧的Linux内核在保持其良好设计的同时,是如何保持其优雅特性的。
    《精通Linux内核开发》适合Linux内核开发人员、底层开发人员阅读,还适合希望深入理解Linux内核及其各组成部分的系统开发人员学习。高校软件工程专业的学生也可以将本书当作了解Linux内核设计原理的参考指南。 Raghu Bharadwaj是Linux内核领域的顾问、贡献者兼企业培训师,具有近20年的从业经验。他是一个狂热的内核爱好者,自20世纪90年代后期以来就一直密切关注Linux内核的发展。他还是TECH VEDA公司的创办人,该公司以技术支持、内核贡献和培训的形式,专门从事与Linux内核有关的工程和技能服务。他对Linux有独到的理解和阐述,而且因为对软件设计和操作系统架构的狂热而得到了客户的特别关注。在向从事Linux内核、Linux驱动以及嵌入式Linux等工作的工程团队提供定制的且面向解决方案的培训计划这一方面,Raghu颇有心得。他所服务的客户有Xilinx(赛灵思)、通用、佳能、富士通、UTC(美国联合技术公司)、TCS(印度塔塔咨询服务公司)、博通、Sasken(印度萨斯肯通讯技术公司)、高通、Cognizant(高知特信息技术公司)、意法半导体、Stryker(史赛克)和Lattice(莱迪斯)半导体等公司。 第 1章 进程、地址空间和线程 1

    1.1 进程 1

    1.1.1 所谓地址空间的错觉 2

    1.1.2 内核空间和用户空间 3

    1.2 进程描述符 4

    1.2.1 进程属性:关键元素 5

    1.2.2 进程关系:关键元素 8

    1.2.3 调度属性:关键元素 9

    1.2.4 进程限制:关键元素 9

    1.2.5 文件描述符表:关键元素 11

    1.2.6 信号描述符:关键元素 11

    1.3 内核栈 12

    1.4 栈溢出问题 16

    1.5 进程创建 17

    1.5.1 fork() 17

    1.5.2 写时复制(COW) 18

    1.5.3 exec 18

    1.5.4 vfork() 19

    1.5.5 Linux线程支持 19

    1.6 内核线程 21

    1.7 进程状态和终止 29

    1.7.1 wait 29

    1.7.2 exit 29

    1.8 命名空间和cgroup 30

    1.8.1 挂载命名空间 30

    1.8.2 UTS命名空间 31

    1.8.3 IPC命名空间 31

    1.8.4 PID命名空间 31

    1.8.5 网络命名空间 31

    1.8.6 用户命名空间 31

    1.8.7 cgroup命名空间 32

    1.8.8 控制组(cgroup) 32

    1.9 小结 33

    第 2章 进程调度器 34

    2.1 进程调度器 34

    2.2 Linux进程调度器设计 35

    2.3 运行队列 39

    2.4 调度入口 41

    2.5 进程优先级 43

    2.6 调度类 44

    2.7 完全公平调度类(CFS) 44

    2.7.1 CFS计算优先级和时间片 45

    2.7.2 CFS运行队列 45

    2.7.3 组调度 46

    2.7.4 多核系统下的调度实体 47

    2.7.5 调度策略 48

    2.8 实时调度类 49

    2.8.1 FIFO 49

    2.8.2 RR 49

    2.8.3 实时组调度 50

    2.8.4 deadline调度类(零散任务模型的deadline调度) 50

    2.9 调度相关的系统调用 51

    2.10 进程抢占 53

    2.11 小结 54

    第3章 信号管理 55

    3.1 信号 55

    3.2 信号管理API 58

    3.2.1 程序发出信号 61

    3.2.2 等待排队信号 62

    3.3 信号数据结构 62

    3.3.1 信号描述符 63

    3.3.2 被阻塞和挂起的队列 64

    3.3.3 信号处理程序描述符 65

    3.4 信号生成和传递 66

    3.4.1 信号生成调用 66

    3.4.2 信号传递 69

    3.4.3 执行用户模式处理程序 74

    3.4.4 设置用户模式处理程序帧 75

    3.5 重新启动被中断的系统调用 78

    3.6 小结 80

    第4章 内存管理和分配器 81

    4.1 初始化操作 81

    4.2 区域和节点 87

    4.2.1 内存区域 87

    4.2.2 内存节点 89

    4.3 内存分配 97

    4.3.1 页帧分配器 98

    4.3.2 GFP掩码 105

    4.3.3 slab分配器 110

    4.3.4 vmalloc 122

    4.3.5 连续内存分配器(CMA) 124

    4.4 小结 125

    第5章 文件系统和文件I/O 126

    5.1 文件系统―高层视图 126

    5.1.1 元数据 127

    5.1.2 操作 132

    5.1.3 附加功能 134

    5.2 Linux内核中的文件系统 135

    5.3 通用文件系统接口 138

    5.4 特殊文件系统 153

    5.4.1 procfs 154

    5.4.2 sysfs 156

    5.4.3 debugfs 157

    5.5 小结 157

    第6章 进程间通信 158

    6.1 管道和FIFO 158

    6.2 消息队列 163

    6.2.1 System V消息队列 163

    6.2.2 POSIX消息队列 165

    6.3 共享内存 167

    6.3.1 System V共享内存 167

    6.3.2 POSIX共享内存 170

    6.4 信号量 171

    6.4.1 System V信号量 171

    6.4.2 POSIX信号量 173

    6.5 小结 174

    第7章 虚拟内存管理 175

    7.1 进程地址空间 175

    7.1.1 进程内存描述符 177

    7.1.2 页表 193

    7.2 小结 195

    第8章 内核同步和锁 196

    8.1 原子操作 196

    8.1.1 原子整数操作 197

    8.1.2 原子位操作 198

    8.2 排斥锁 199

    8.2.1 自旋锁 199

    8.2.2 互斥锁 207

    8.2.3 信号量 217

    8.2.4 顺序锁 221

    8.2.5 完成锁 223

    8.3 小结 226

    第9章 中断和延迟工作 227

    9.1 中断信号和向量 227

    9.2 可编程中断控制器 229

    9.2.1 中断控制器操作 230

    9.2.2 IRQ描述符表 232

    9.3 高级中断管理接口 235

    9.3.1 注册一个中断处理程序 235

    9.3.2 注销一个中断处理程序 237

    9.3.3 线程化中断处理程序 237

    9.3.4 控制接口 240

    9.3.5 中断栈 241

    9.4 延迟工作 241

    9.4.1 softirq 242

    9.4.2 tasklet 244

    9.4.3 工作队列 248

    9.5 小结 252

    第 10章 时钟和时间管理 253

    10.1 时间表示 253

    10.2 硬件抽象 257

    10.3 Linux计时数据结构体、宏以及辅助函数 260

    10.3.1 jiffies 260

    10.3.2 timeval和timespec 262

    10.3.3 跟踪和维护时间 264

    10.3.4 节拍和中断处理 265

    10.3.5 节拍设备 267

    10.4 软件定时器和延迟函数 267

    10.4.1 动态定时器 268

    10.4.2 带有动态定时器的竞争条件 270

    10.4.3 动态定时器处理 271

    10.4.4 延迟函数 271

    10.5 POSIX时钟 272

    10.6 小结 273

    第 11章 模块管理 274

    11.1 内核模块 274

    11.1.1 LKM的要素 274

    11.1.2 加载和卸载操作 277

    11.2 小结 288
  • 内容简介:
    《精通Linux内核开发》介绍了Linux内核、内核的内部编排与设计,以及内核的各个核心子系统等知识。本书分为11章,具体内容包括:进程、地址空间和线程;进程调度器;信号管理;内存管理和分配器;文件系统和文件I/O;进程间通信;虚拟内存管理;内核同步和锁;中断和延迟工作;时钟和时间管理;模块管理。
    《精通Linux内核开发》篇幅短小精悍,通过大量代码辅助介绍Linux内核的相关开发工作。通过学习本书,读者可以深入理解Linux内核的核心服务与机制,了解这个集中了集体智慧的Linux内核在保持其良好设计的同时,是如何保持其优雅特性的。
    《精通Linux内核开发》适合Linux内核开发人员、底层开发人员阅读,还适合希望深入理解Linux内核及其各组成部分的系统开发人员学习。高校软件工程专业的学生也可以将本书当作了解Linux内核设计原理的参考指南。
  • 作者简介:
    Raghu Bharadwaj是Linux内核领域的顾问、贡献者兼企业培训师,具有近20年的从业经验。他是一个狂热的内核爱好者,自20世纪90年代后期以来就一直密切关注Linux内核的发展。他还是TECH VEDA公司的创办人,该公司以技术支持、内核贡献和培训的形式,专门从事与Linux内核有关的工程和技能服务。他对Linux有独到的理解和阐述,而且因为对软件设计和操作系统架构的狂热而得到了客户的特别关注。在向从事Linux内核、Linux驱动以及嵌入式Linux等工作的工程团队提供定制的且面向解决方案的培训计划这一方面,Raghu颇有心得。他所服务的客户有Xilinx(赛灵思)、通用、佳能、富士通、UTC(美国联合技术公司)、TCS(印度塔塔咨询服务公司)、博通、Sasken(印度萨斯肯通讯技术公司)、高通、Cognizant(高知特信息技术公司)、意法半导体、Stryker(史赛克)和Lattice(莱迪斯)半导体等公司。
  • 目录:
    第 1章 进程、地址空间和线程 1

    1.1 进程 1

    1.1.1 所谓地址空间的错觉 2

    1.1.2 内核空间和用户空间 3

    1.2 进程描述符 4

    1.2.1 进程属性:关键元素 5

    1.2.2 进程关系:关键元素 8

    1.2.3 调度属性:关键元素 9

    1.2.4 进程限制:关键元素 9

    1.2.5 文件描述符表:关键元素 11

    1.2.6 信号描述符:关键元素 11

    1.3 内核栈 12

    1.4 栈溢出问题 16

    1.5 进程创建 17

    1.5.1 fork() 17

    1.5.2 写时复制(COW) 18

    1.5.3 exec 18

    1.5.4 vfork() 19

    1.5.5 Linux线程支持 19

    1.6 内核线程 21

    1.7 进程状态和终止 29

    1.7.1 wait 29

    1.7.2 exit 29

    1.8 命名空间和cgroup 30

    1.8.1 挂载命名空间 30

    1.8.2 UTS命名空间 31

    1.8.3 IPC命名空间 31

    1.8.4 PID命名空间 31

    1.8.5 网络命名空间 31

    1.8.6 用户命名空间 31

    1.8.7 cgroup命名空间 32

    1.8.8 控制组(cgroup) 32

    1.9 小结 33

    第 2章 进程调度器 34

    2.1 进程调度器 34

    2.2 Linux进程调度器设计 35

    2.3 运行队列 39

    2.4 调度入口 41

    2.5 进程优先级 43

    2.6 调度类 44

    2.7 完全公平调度类(CFS) 44

    2.7.1 CFS计算优先级和时间片 45

    2.7.2 CFS运行队列 45

    2.7.3 组调度 46

    2.7.4 多核系统下的调度实体 47

    2.7.5 调度策略 48

    2.8 实时调度类 49

    2.8.1 FIFO 49

    2.8.2 RR 49

    2.8.3 实时组调度 50

    2.8.4 deadline调度类(零散任务模型的deadline调度) 50

    2.9 调度相关的系统调用 51

    2.10 进程抢占 53

    2.11 小结 54

    第3章 信号管理 55

    3.1 信号 55

    3.2 信号管理API 58

    3.2.1 程序发出信号 61

    3.2.2 等待排队信号 62

    3.3 信号数据结构 62

    3.3.1 信号描述符 63

    3.3.2 被阻塞和挂起的队列 64

    3.3.3 信号处理程序描述符 65

    3.4 信号生成和传递 66

    3.4.1 信号生成调用 66

    3.4.2 信号传递 69

    3.4.3 执行用户模式处理程序 74

    3.4.4 设置用户模式处理程序帧 75

    3.5 重新启动被中断的系统调用 78

    3.6 小结 80

    第4章 内存管理和分配器 81

    4.1 初始化操作 81

    4.2 区域和节点 87

    4.2.1 内存区域 87

    4.2.2 内存节点 89

    4.3 内存分配 97

    4.3.1 页帧分配器 98

    4.3.2 GFP掩码 105

    4.3.3 slab分配器 110

    4.3.4 vmalloc 122

    4.3.5 连续内存分配器(CMA) 124

    4.4 小结 125

    第5章 文件系统和文件I/O 126

    5.1 文件系统―高层视图 126

    5.1.1 元数据 127

    5.1.2 操作 132

    5.1.3 附加功能 134

    5.2 Linux内核中的文件系统 135

    5.3 通用文件系统接口 138

    5.4 特殊文件系统 153

    5.4.1 procfs 154

    5.4.2 sysfs 156

    5.4.3 debugfs 157

    5.5 小结 157

    第6章 进程间通信 158

    6.1 管道和FIFO 158

    6.2 消息队列 163

    6.2.1 System V消息队列 163

    6.2.2 POSIX消息队列 165

    6.3 共享内存 167

    6.3.1 System V共享内存 167

    6.3.2 POSIX共享内存 170

    6.4 信号量 171

    6.4.1 System V信号量 171

    6.4.2 POSIX信号量 173

    6.5 小结 174

    第7章 虚拟内存管理 175

    7.1 进程地址空间 175

    7.1.1 进程内存描述符 177

    7.1.2 页表 193

    7.2 小结 195

    第8章 内核同步和锁 196

    8.1 原子操作 196

    8.1.1 原子整数操作 197

    8.1.2 原子位操作 198

    8.2 排斥锁 199

    8.2.1 自旋锁 199

    8.2.2 互斥锁 207

    8.2.3 信号量 217

    8.2.4 顺序锁 221

    8.2.5 完成锁 223

    8.3 小结 226

    第9章 中断和延迟工作 227

    9.1 中断信号和向量 227

    9.2 可编程中断控制器 229

    9.2.1 中断控制器操作 230

    9.2.2 IRQ描述符表 232

    9.3 高级中断管理接口 235

    9.3.1 注册一个中断处理程序 235

    9.3.2 注销一个中断处理程序 237

    9.3.3 线程化中断处理程序 237

    9.3.4 控制接口 240

    9.3.5 中断栈 241

    9.4 延迟工作 241

    9.4.1 softirq 242

    9.4.2 tasklet 244

    9.4.3 工作队列 248

    9.5 小结 252

    第 10章 时钟和时间管理 253

    10.1 时间表示 253

    10.2 硬件抽象 257

    10.3 Linux计时数据结构体、宏以及辅助函数 260

    10.3.1 jiffies 260

    10.3.2 timeval和timespec 262

    10.3.3 跟踪和维护时间 264

    10.3.4 节拍和中断处理 265

    10.3.5 节拍设备 267

    10.4 软件定时器和延迟函数 267

    10.4.1 动态定时器 268

    10.4.2 带有动态定时器的竞争条件 270

    10.4.3 动态定时器处理 271

    10.4.4 延迟函数 271

    10.5 POSIX时钟 272

    10.6 小结 273

    第 11章 模块管理 274

    11.1 内核模块 274

    11.1.1 LKM的要素 274

    11.1.2 加载和卸载操作 277

    11.2 小结 288
查看详情
12
相关图书 / 更多
精通Linux内核开发
精通 Power Query
(加拿大)肯·普尔斯
精通Linux内核开发
精通套期保值
李录林 著
精通Linux内核开发
精通STM32F4(HAL库版)(上)
刘军 凌柱宁 徐伟健 江荧
精通Linux内核开发
精通FrontPage XP(中文版)
中国IT培训工程编委会 编
精通Linux内核开发
精通咬合重建——解读牙列不齐、牙周病、多牙缺失
吴松涛 周茂强 译;[日]上田 秀朗
精通Linux内核开发
精通Veeam Backup & Replication(原书第2版)
克里斯·奇尔德霍森(Chris Childerhose)
精通Linux内核开发
精通Shiny(Mastering Shiny)
Hadley Wickham
精通Linux内核开发
精通区块链开发技术(第2版)
[美]伊姆兰·巴希尔 著;王烈征 译
精通Linux内核开发
精通Apache Pulsar:可伸缩云原生事件流实践
[美]Jowanza Joseph(乔万扎·约瑟夫
精通Linux内核开发
精通机器学习算法
[意]朱塞佩·博纳科尔索(Giuseppe Bonaccorso)
精通Linux内核开发
精通嵌入式Linux编程
[美]弗兰克·瓦斯奎兹 著;陈会翔 译
精通Linux内核开发
精通Transformer:从零开始构建最先进的NLP模型
[伊朗]梅萨姆·阿斯加里-切纳格卢 著;江红 余青松 余靖 译;[土耳其]萨瓦斯·伊尔蒂利姆
您可能感兴趣 / 更多
精通Linux内核开发
生如夏花:名家译本;插画版泰戈尔诗集;生如夏花之绚烂,死如秋叶之静美
[印度]泰戈尔著 郑振铎 译;小马过河 出品;有容书邦 发行
精通Linux内核开发
无价的罗摩(梵语文学译丛)
[印度]牟罗利 著
精通Linux内核开发
飞鸟集:泰戈尔诗选(诺贝尔奖得主泰戈尔代表作,郑振铎经典译本,赠精美书签)(创美文库)
[印度]泰戈尔 著;郑振铎 译;创美工厂 出品
精通Linux内核开发
天猫文库:泰戈尔诗选(九年级上推荐阅读)
[印度]泰戈尔 著;王立 译;郑振铎
精通Linux内核开发
短经典精选系列:两次暗杀之间(布克奖作家白老虎作者阿迪加短篇小说,一本书看懂印度前世今生)
[印度]阿拉文德·阿迪加
精通Linux内核开发
简易宫腔镜操作手册
[印度]巴斯卡尔·帕尔 主编;胡元晶 李圃 主译;隋龙 主审;[印度]苏尼特·滕杜尔沃德卡
精通Linux内核开发
广雅·波斯航海史(揭开丝绸、战舰、海港背后五千年的爱恨纠缠,述说一条海路勾连起的繁荣共生。)
[印度]哈迪·哈桑 广雅 出品
精通Linux内核开发
新月集
[印度]泰戈尔
精通Linux内核开发
数控机床可靠性与维修策略优化技术
[印度]布佩什·库马尔·拉德 迪维亚·什里瓦斯塔瓦 马克兰德·斯·库尔卡尼
精通Linux内核开发
行动瑜伽(瑜伽哲学经典丛书)
[印度]斯瓦米·辨喜 著;闻中 译
精通Linux内核开发
管理学精选案例(英文版)
[印度]王中(Prasad Siba BORAH);樊茗·h;[克罗地亚]德拉加纳·奥斯蒂奇(Dragana Ostic)
精通Linux内核开发
记忆博物馆
[印度]阿伦·沃尔夫 编;马淑艳 译