《精通嵌入式Linux编程》[82M]百度网盘|pdf下载|亲测有效
《精通嵌入式Linux编程》[82M]百度网盘|pdf下载|亲测有效

精通嵌入式Linux编程 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2023-06
页数 390页
装帧 精装
评分 9.1(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供精通嵌入式Linux编程电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

本书的每一章都介绍嵌入式Linux的一个主要领域。它描述知识背景,以便你可以了解一般原则,它还包括详细的有效示例来说明这些领域中的操作。

内容简介

  《精通嵌入式Linux编程》详细阐述了与嵌入式Linux开发相关的基本解决方案,主要包括初识嵌入式Linux开发、关于工具链、引导加载程序详解、配置和构建内核、构建根文件系统、选择构建系统、使用Yocto进行开发、Yocto技术内幕、创建存储策略、现场更新软件、连接设备驱动程序、使用分线板进行原型设计、init程序、使用BusyBoX nunit启动、管理电源、打包Python程序、了解进程和线程、管理内存、使用GDB进行调试、性能分析和跟踪、实时编程等内容。此外,该书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
  《精通嵌入式Linux编程》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。

作者简介

弗兰克·瓦斯奎兹是一位专注于消费电子产品的独立软件顾问。他在设计和构建嵌入式Linux系统方面拥有十多年的经验。在此期间,他完成了许多设备的开发,包括机架式DSP音频服务器、潜水员手持式声纳摄像机和消费者物联网热点。在成为嵌入式Linux开发工程师之前,Frank曾经是IBM的数据库内核开发人员,他在该公司主要从事DB2方面的工作。他目前住在硅谷。

内页插图

目录

第1篇 嵌入式Linux的要素
第1章 初识嵌入式Linux开发
1.1 选择Linux的原因
1.2 不选择Linux的原因
1.3 找到合适的玩家
1.4 穿越项目生命周期
1.4.1 篇章内容概述
1.4.2 嵌入式Linux的4个基本要素
1.5 开源的意义
1.5.1 开源和免费有区别
1.5.2 开源许可机制
1.6 为嵌入式Linux开发选择硬件
1.7 获取本书所需硬件
1.7.1 Raspberry Pi 4
1.7.2 BeagleBone Black
1.7.3 QEMU
1.8 配置开发环境
1.9 小结

第2章 关于工具链
2.1 技术要求
2.2 工具链简介
2.2.1 工具链的类型
2.2.2 CPU架构
2.2.3 选择C库
2.3 寻找工具链
2.4 使用crosstool-NG构建工具链
2.4.1 安装crosstool-NG
2.4.2 为BeagleBone Black构建工具链
2.4.3 为QEMU构建工具链
2.5 工具链剖析
2.5.1 了解你的交叉编译器
2.5.2 sysroot、库和头文件
2.5.3 工具链中的其他工具
2.5.4 查看C库的组件
2.6 与库链接——静态和动态链接
2.6.1 静态库
2.6.2 共享库
2.6.3 了解共享库版本号
2.7 交叉编译的技巧
2.7.1 相对简单的makefile
2.7.2 Autotools
2.7.3 编译示例——SQLite
2.7.4 包配置
2.7.5 交叉编译带来的问题
2.7.6 CMake
2.8 小结
2.9 延伸阅读

第3章 引导加载程序详解
3.1 技术要求
3.2 引导加载程序的作用
3.3 引导顺序
3.3.1 阶段1——ROM代码
3.3.2 阶段2——SPL
3.3.3 阶段3——TPL
3.4 从引导加载程序转移到内核中
3.5 设备树简介
3.5.1 有关设备树的基础知识
3.5.2 reg属性
3.5.3 标签和中断
……
第2篇 系统架构和设计决策
第3篇 编写嵌入式应用程序
第4篇 调试和优化性能

前言/序言

  嵌入式Linux对于开发人员的知识面要求非常广,并且要具有一定的深度。本书为了适应这种需求,在软硬件开发的多方面均有涉猎,并提供了丰富的理论解释和操作示例。
  以硬件开发为例(不接触硬件的嵌入式Linux开发人员不是一个好的开发者),本书在第1章既介绍目前最为流行的Raspberry Pi 4开发板,也介绍低成本的BeagleBone Black 开发板,还介绍QEMU模拟器(你可以认为它是无成本的);在第3章介绍设备树及其编译;在第9章介绍各种类型的闪存、字符设备和块设备等;在第1 1章介绍硬件中断、GPIO接口、LED、I2C、SPI总线,以及设备驱动程序的开发等;在第12章介绍如何阅读硬件原理图和数据表,使用分线板进行原型设计,使用逻辑分析仪探测SPI信号等。熟练掌握这些内容和相关操作示例无疑将加深开发人员对于硬件原理的了解,并有助于通过软硬件结合技术解决问题。
  在软件开发方面,本书从多个层面强化了读者对于嵌入式Linux开发的理解。
  第一个层面是Linux内核开发和管理。第1章解释开源许可机制:第2章介绍CPU架构和C库,工具链的构建和交叉编译技巧等,并演示crosstool-NG、makefle,Autotools 和CMake等工具的应用;第3章介绍引导加载程序和引导顺序,还介绍U-Boot工具;第4章演示内核配置机制Kconfig和内核构建系统Kbuild的操作:第5章介绍根文件系统的目录布局、程序和库、设备节点以及proc和sysfs伪文件系统等,并演示创建引导initramfs、配置用户账户、管理设备节点、配置网络、使用NFS挂载根文件系统、使用TFTP加载内核等操作;第6章介绍Buildroot和Yocto Project两个构建系统;第7章和第8章则继续深化对Yocto的讲解,并介绍devtool和BitBake的应用。掌握这些内容无疑能加深开发人员对处理器、操作系统和编译器的理解,也使他们对各种构建和配置工具的应用更加熟练。
  第二个层面是具体实现技术。在第9章介绍如何从引导加载程序和Linux中访问闪存;第10章讨论软件更新机制,并演示使用Mender和balena进行更新的操作;第13章和第14章详细介绍和比较BusyBox init、System V init、systemd、BusyBox runit 4个初始化程序;第15章探讨电源管理技术;第16章介绍Python程序打包技术,并演示pip、venv、conda和Docker操作;第17章阐释进程和线程的区别,并介绍进程间通信和线程间通信技术、调度策略等;第18章阐释内核空间和用户空间的内存布局,并介绍如何使用mmap分配、共享和访问内存;第21章讨论实时编程的本质特点,阐释了内核抢占、线程化中断处理程序、可抢占内核锁技术和高分辨率定时器等。掌握这些内容能使开发人员真正发挥出自己的设计能力,面对具体开发任务时做到胸有成竹。
  第三个层面是调试和优化。在进行嵌入式Linux开发时,出现错误在所难免。第18章演示如何使用top、ps和smem查看每个进程的内存使用情况,以及如何使用mtrace和Valgrind识别内存泄漏等;第19章介绍Linux平台最常见的GDB调试器和广受欢迎的Visual Studio Code开源代码编辑器,并演示本机调试和远程调试流程,以及使用kgdb调试内核代码的操作;第20章介绍top、穷人的性能分析器(这是一个名称怪异的性能分析工具)、perf、 Ftrace、LTTng、BPF、Valgrind和strace等多种性能分析工具;第21章演示如何使用cyclictest和Ftrace测量调度延迟。掌握这些内容对提升开发人员分析和解决问题的能力,培养开发人员面对复杂局面时的自信都有很大的帮助。
  在翻译本书的过程中,为了更好地帮助读者理解和学习,本书对大量的术语以中英文对照的形式给出,这样的安排不但方便读者理解书中的代码,而且也有助于读者通过网络查找和利用相关资源。
  本书由陈会翔翻译,黄进青也参与了部分内容的翻译工作。由于译者水平有限,难免有疏漏和不妥之处,在此诚挚欢迎读者提出意见和建议。