嵌入式Linux编程 - (EPUB全文下载)
文件大小:0.52 mb。
文件格式:epub 格式。
书籍内容:
嵌入式Linux编程
第1章 概述
1.1 选择合适的操作系统
1.2 参与者
1.3 项目生命周期
1.4 开放源码
1.5 嵌入式Linux系统硬件
1.6 本书使用的硬件
1.7 本书使用的软件
1.8 总结
第2章 学习工具链
2.1 工具链是什么
2.2 工具链类型:本地工具链和交叉工具链
2.3 选择C库
2.4 寻找工具链
2.5 工具链解析
2.6 工具链中的其他工具
2.7 查看C库的组件
2.8 链接库:静态和动态链接
2.9 交叉编译艺术
2.10 交叉编译的问题
2.11 总结
第3章 引导加载程序
3.1 引导加载程序都做了些什么
3.2 引导序列
3.3 使用UEFI固件引导
3.4 从引导加载程序到内核
3.5 设备树介绍
3.6 选择引导加载程序
3.7 U-Boot
3.8 Barebox
3.9 总结
第4章 移植与配置内核
4.1 内核做了什么
4.2 选择内核
4.3 内核构建
4.4 编译
4.5 清理内核源
4.6 启动你的内核
4.7 将Linux移植到新板上
4.8 延伸阅读
4.9 总结
第5章 构建根文件系统
5.1 根文件系统是什么
5.2 根文件系统的程序
5.3 根文件系统库
5.4 设备节点
5.5 proc与sysfs文件系统
5.6 内核模块
5.7 把根文件系统转移到目标
5.8 创建启动内存磁盘
5.9 init程序
5.10 配置用户账号
5.11 启动守护进程
5.12 管理设备节点的更好方法
5.13 配置网络
5.14 借助设备表创建文件系统映像
5.15 使用NFS挂载根文件系统
5.16 使用TFTP加载内核
5.17 延伸阅读
5.18 总结
第6章 选择构建系统
6.1 不再手动创建嵌入式Linux
6.2 构建系统
6.3 包格式和包管理器
6.4 Buildroot
6.5 Yocto项目
6.6 延伸阅读
6.7 总结
第7章 创建存储策略
7.1 存储器选择
7.2 从引导加载程序访问闪存
7.3 从Linux中访问闪存
7.4 闪存文件系统
7.5 NOR和NAND闪存的文件系统
7.6 托管闪存的文件系统
7.7 只读压缩文件系统
7.8 临时文件系统
7.9 使根文件系统为只读
7.10 文件系统选择
7.11 现场更新
7.12 延伸阅读
7.13 总结
第8章 设备驱动程序介绍
8.1 设备驱动程序的作用
8.2 字符设备
8.3 块设备
8.4 网络设备
8.5 在运行时寻找驱动程序
8.6 找到正确的设备驱动程序
8.7 用户空间中的设备驱动程序
8.8 编写内核设备驱动程序
8.9 加载内核模块
8.10 查找硬件配置
8.11 延伸阅读
8.12 总结
第9章 启动初始化程序
9.1 在内核启动后
9.2 初始化程序简介
9.3 BusyBox init
9.4 System V init
9.5 systemd
9.6 延伸阅读
9.7 总结
第10章 学习进程和线程
10.1 进程还是线程
10.2 进程
10.3 线程
10.4 调度
10.5 延伸阅读
10.6 总结
第11章 内存管理
11.1 虚拟内存基础
11.2 内核空间内存布局
11.3 用户空间内存布局
11.4 进程内存映射
11.5 交换
11.6 用mmap映射内存
11.7 我的应用程序使用了多少内存
11.8 每个进程的内存使用情况
11.9 识别内存泄漏
11.10 内存耗尽
11.11 延伸阅读
11.12 总结
第12章 使用GDB调试
12.1 GNU调试器:GDB
12.2 准备调试
12.3 使用GDB调试应用程序
12.4 使用gdbserver远程调试
12.5 开始调试
12.6 调试共享库
12.7 即时调试
12.8 调试分叉和线程
12.9 核心文件
12.10 GDB用户界面
12.11 调试内核代码
12.12 延伸阅读
12.13 总结
第13章 剖析和跟踪
13.1 观察者效应
13.2 开始剖析
13.3 使用top进行剖析
13.4 介绍perf
13.5 其他剖析器:OProfile和gprof
13.6 跟踪事件
13.7 介绍Ftrace
13.8 使用LTTng
13.9 使用Valgrind剖析应用程序
13.10 Callgrind
13.11 Helgrind
13.12 使用strace显示系统调用
13.13 总结
第14章 实时编程
14.1 什么是实时性
14.2 确认非确定性的来源
14.3 理解调度延迟
14.4 内核抢占
14.5 实时Linux内核(PREEMPT_RT)
14.6 线程化中断处理程序
14.7 可抢占的内核锁
14.8 获得PREEMPT_RT补丁
14.9 高精度定时器
14.10 在实时应用中避免页面错误
14.11 中断屏蔽
14.12 测量调度延迟
14.13 延伸阅读
14.14 总结
第1章 概述
如果你即将开始从事你的下一个项目,而这次它将运行在Linux之上。那么在你将手指放在键盘上之前应该思考些什么?让我们首先从高层观察嵌入式Linux并且分析它为何如此流行,开源许可证的含义是什么,以及你需要何种类型的硬件以运行Linux。
Linux最早大约在1999年成为嵌入式设备的一个可行选择。当时,Axis(www.axis.com)发布了它们第一款基于Linux的网络相机,TiVo(www.tivo.com)发布了它们第一款数字摄像机(DVR)。自1999年以来,Linux变得越来越流行,直到今天它已成为许多类型产品所选择的操作系统。就在写作本书的2015年,大约有20亿台设备运行Linux。这包括大量的运行安卓系统(使用Linux内核)的智能手机,以及数以亿计的机顶盒、智能电视和Wi-Fi路由器,更别提各种各样装在更小体积中的设备,如车辆诊断、称重秤、工业设备和医疗监测单元。
那么,为什么你的电视机会运行Linux?乍看起 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 嵌入式Linux编程 - (EPUB全文下载)