图书介绍
嵌入式Linux编程PDF|Epub|txt|kindle电子书版本网盘下载
![嵌入式Linux编程](https://www.shukui.net/cover/52/30417820.jpg)
- (英)克里斯·西蒙兹著;王春雷,梁洪亮,朱华译 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111561286
- 出版时间:2017
- 标注页数:274页
- 文件大小:41MB
- 文件页数:292页
- 主题词:Linux操作系统-程序设计
PDF下载
下载说明
嵌入式Linux编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1 选择合适的操作系统2
1.2 参与者3
1.3 项目生命周期4
1.4 开放源码5
1.5 嵌入式Linux系统硬件6
1.6 本书使用的硬件7
1.7 本书使用的软件9
1.8 总结9
第2章 学习工具链10
2.1 工具链是什么10
2.2 工具链类型:本地工具链和交叉工具链11
2.3 选择C库13
2.4 寻找工具链14
2.5 工具链解析17
2.6 工具链中的其他工具20
2.7 查看C库的组件21
2.8 链接库:静态和动态链接21
2.9 交叉编译艺术24
2.10 交叉编译的问题28
2.11 总结29
第3章 引导加载程序30
3.1 引导加载程序都做了些什么30
3.2 引导序列31
3.3 使用UEFI固件引导32
3.4 从引导加载程序到内核33
3.5 设备树介绍34
3.6 选择引导加载程序38
3.7 U-Boot39
3.8 Barebox49
3.9 总结51
第4章 移植与配置内核52
4.1 内核做了什么52
4.2 选择内核53
4.3 内核构建55
4.4 编译60
4.5 清理内核源63
4.6 启动你的内核63
4.7 将Linux移植到新板上66
4.8 延伸阅读69
4.9 总结69
第5章 构建根文件系统71
5.1 根文件系统是什么71
5.2 根文件系统的程序75
5.3 根文件系统库78
5.4 设备节点79
5.5 proc与sysfs文件系统80
5.6 内核模块81
5.7 把根文件系统转移到目标81
5.8 创建启动内存磁盘82
5.9 init程序85
5.10 配置用户账号86
5.11 启动守护进程87
5.12 管理设备节点的更好方法88
5.13 配置网络89
5.14 借助设备表创建文件系统映像90
5.15 使用NFS挂载根文件系统92
5.16 使用TFTP加载内核94
5.17 延伸阅读95
5.18 总结95
第6章 选择构建系统96
6.1 不再手动创建嵌入式Linux96
6.2 构建系统96
6.3 包格式和包管理器98
6.4 Buildroot98
6.5 Yocto项目104
6.6 延伸阅读116
6.7 总结116
第7章 创建存储策略117
7.1 存储器选择117
7.2 从引导加载程序访问闪存121
7.3 从Linux中访问闪存122
7.4 闪存文件系统127
7.5 NOR和NAND闪存的文件系统128
7.6 托管闪存的文件系统134
7.7 只读压缩文件系统138
7.8 临时文件系统138
7.9 使根文件系统为只读139
7.10 文件系统选择140
7.11 现场更新140
7.12 延伸阅读142
7.13 总结143
第8章 设备驱动程序介绍144
8.1 设备驱动程序的作用144
8.2 字符设备145
8.3 块设备147
8.4 网络设备147
8.5 在运行时寻找驱动程序149
8.6 找到正确的设备驱动程序153
8.7 用户空间中的设备驱动程序153
8.8 编写内核设备驱动程序158
8.9 加载内核模块163
8.10 查找硬件配置163
8.11 延伸阅读166
8.12 总结167
第9章 启动初始化程序168
9.1 在内核启动后168
9.2 初始化程序简介169
9.3 BusyBox init169
9.4 System V init171
9.5 systemd176
9.6 延伸阅读181
9.7 总结181
第10章 学习进程和线程182
10.1 进程还是线程182
10.2 进程183
10.3 线程191
10.4 调度196
10.5 延伸阅读200
10.6 总结200
第11章 内存管理201
11.1 虚拟内存基础201
11.2 内核空间内存布局202
11.3 用户空间内存布局205
11.4 进程内存映射206
11.5 交换207
11.6 用mmap映射内存208
11.7 我的应用程序使用了多少内存209
11.8 每个进程的内存使用情况210
11.9 识别内存泄漏213
11.10 内存耗尽215
11.11 延伸阅读217
11.12 总结217
第12章 使用GDB调试218
12.1 GNU调试器:GDB218
12.2 准备调试218
12.3 使用GDB调试应用程序219
12.4 使用gdbserver远程调试219
12.5 开始调试221
12.6 调试共享库224
12.7 即时调试225
12.8 调试分叉和线程226
12.9 核心文件226
12.10 GDB用户界面228
12.11 调试内核代码230
12.12 延伸阅读237
12.13 总结237
第13章 剖析和跟踪238
13.1 观察者效应238
13.2 开始剖析239
13.3 使用top进行剖析240
13.4 介绍perf241
13.5 其他剖析器:OProfile和gprof245
13.6 跟踪事件247
13.7 介绍Ftrace247
13.8 使用LTTng252
13.9 使用Valgrind剖析应用程序256
13.10 Callgrind256
13.11 Helgrind256
13.12 使用strace显示系统调用257
13.13 总结259
第14章 实时编程260
14.1 什么是实时性260
14.2 确认非确定性的来源262
14.3 理解调度延迟263
14.4 内核抢占263
14.5 实时Linux内核(PREEMPT_RT)264
14.6 线程化中断处理程序264
14.7 可抢占的内核锁266
14.8 获得PREEMPT_RT补丁266
14.9 高精度定时器267
14.10 在实时应用中避免页面错误268
14.11 中断屏蔽269
14.12 测量调度延迟269
14.13 延伸阅读273
14.14 总结273