网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 嵌入式Linux编程/Linux\Unix技术丛书 |
分类 | 计算机-操作系统 |
作者 | (英)克里斯·西蒙兹 |
出版社 | 机械工业出版社 |
下载 | ![]() |
简介 | 内容推荐 里斯·西蒙兹著王春雷、梁洪亮、朱华译的《 嵌入式Linux编程/Linux\\Unix技术丛书》引导你遍历 整个嵌入式Linux产品的周期,并提供在每个阶段可 用组件和选项的深入描述。作者首先介绍工具链、引 导加载程序、Linux内核和配置根文件系统的相关知 识,然后讲解如何使用两个很常用的构建系统,即 Buildroot和Yocto项目,以加快和简化开发过程,接 着介绍如何充分使用raw NAND/NOR闪存和托管闪存 eMMC芯片,包括增加器件寿命的机制以及进行可靠的 现场*新,探讨POSIX线程的使用,这对很终设备的 响应能力和性能有着很大的影响。本书的结尾部分探 讨使用perf与Ftrace剖析和跟踪应用程序以及内核代 码的技术。 作者简介 里斯·西蒙兹,软件咨询顾问、培训师。自20世纪90年代末以来,他一直在嵌入式系统中使用Linux,从事过许多有趣的项目,包括立体相机、智能称重秤、各种机顶盒和家用路由器,甚至大型的步行机器人。 他经常主持各种开源和嵌入式会议,包括Embedded Linux Conference、EmbeddedWorld以及Android Builders' Sumrnit。而且他还一直在指导嵌入式Linux和嵌入式Android方面的培训课程和研讨会。 目录 译者序 推荐序 审校者简介 前言 第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-Boot 39 3.8 Barebox 49 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 不再手动创建嵌入式Linux 96 6.2 构建系统 96 6.3 包格式和包管理器 98 6.4 Buildroot 98 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 init 169 9.4 System V init 171 9.5 systemd 176 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调试器:GDB 218 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 介绍perf 241 13.5 其他剖析器:OProf?ile和gprof 245 13.6 跟踪事件 247 13.7 介绍Ftrace 247 13.8 使用LTTng 252 13.9 使用Valgrind剖析应用程序 256 13.10 Callgrind 256 13.11 Helgrind 256 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 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。