图书介绍

嵌入式LINUX基础教程2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

嵌入式LINUX基础教程
  • (美)ChristopherHallinan编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115215222
  • 出版时间:2009
  • 标注页数:341页
  • 文件大小:91MB
  • 文件页数:360页
  • 主题词:Linux操作系统-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式LINUX基础教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 引言1

1.1为什么使用Linux1

1.2嵌入式Linux现状2

1.3开源和GPL2

1.4标准和相关机构3

1.4.1LSB3

1.4.2OSDL3

1.5小结4

参考资源4

第2章 嵌入式初体验5

2.1需要嵌入式系统吗5

2.2嵌入式系统剖析6

2.2.1典型嵌入式Linux系统设置7

2.2.2启动目标板8

2.2.3启动内核9

2.2.4内核初始化概述10

2.2.5第一个用户空间进程:init11

2.3存储的思考12

2.3.1闪存12

2.3.2NAND闪存13

2.3.3闪存的用途14

2.3.4闪存文件系统14

2.3.5存储器空间15

2.3.6运行上下文16

2.3.7进程中的虚拟内存17

2.3.8交叉开发环境19

2.4嵌入式Linux的发行版20

2.4.1Linux商业发行版21

2.4.2Linux自定义发行版21

2.5小结21

参考资源22

第3章 处理器基础23

3.1单机处理器23

3.1.1IBM 970FX24

3.1.2Intel Pentium M24

3.1.3Freescale MPC744825

3.1.4配套芯片组25

3.2集成化处理器:片上系统27

3.2.1PowerPC27

3.2.2AMCC PowerPC27

3.2.3Freescale PowerPC30

3.2.4MIPS33

3.2.5Broadcom MIPS33

3.2.6AMD MIPS34

3.2.7其他类型的MIPS35

3.2.8ARM35

3.2.9TI ARM35

3.2.10Freescale ARM37

3.2.11Intel ARM XScale37

3.2.12其他ARM38

3.2.13其他体系结构38

3.3硬件平台38

3.3.1CompactPCI38

3.3.2ATCA39

3.4小结39

参考资源40

第4章 Linux内核——不同视角41

4.1背景知识41

4.1.1内核的版本42

4.1.2内核源码库43

4.2Linux内核构造44

4.2.1顶层资源目录44

4.2.2编译内核45

4.2.3严格意义上的内核:vmlinux46

4.2.4内核映像组件47

4.2.5子目录结构50

4.3内核构建系统50

4.3.1.config文件51

4.3.2配置编辑器52

4.3.3makefile的目标55

4.3.4内核配置58

4.3.5自定义配置选项59

4.3.6内核makefile62

4.3.7内核文档62

4.4获取Linux内核63

4.5小结64

参考资源64

第5章 内核初始化65

5.1合成内核映像:piggy及其他65

5.1.1工mage目标文件67

5.1.2体系结构相关的目标文件68

5.1.3第二阶段引导装入程序69

5.1.4引导信息69

5.2初始化控制流72

5.2.1内核入口点:head.o73

5.2.2内核启动:main.c74

5.2.3体系结构设置75

5.3内核命令行处理75

5.4子系统初始化80

5.5init线程82

5.5.1通过initcall初始化83

5.5.2引导的最后步骤84

5.6小结85

参考资源85

第6章 系统初始化86

6.1根文件系统86

6.1.1FHS87

6.1.2文件系统布局87

6.1.3最小文件系统88

6.1.4根文件系统带来的挑战89

6.1.5试错法90

6.1.6自动化文件系统构建工具90

6.2内核的最后引导过程90

6.2.1用户空间下第一个程序91

6.2.2解决依赖92

6.2.3定制初始化进程92

6.3init进程92

6.3.1inittab95

6.3.2Web服务器启动脚本示例96

6.4初始RAM磁盘97

6.4.1初始RAM磁盘的目的98

6.4.2使用initrd引导98

6.4.3引导装入程序对于initrd的支持98

6.4.4initrd的奥妙所在:linuxrc文件100

6.4.5initrd探究100

6.4.6构建initrd映像文件101

6.5使用ini tramfs102

6.6关机103

6.7小结103

参考资源104

第7章 引导装入程序105

7.1引导装入程序的作用105

7.2引导装入程序的挑战106

7.2.1DRAM控制器106

7.2.2闪存与RAM106

7.2.3映像的复杂性107

7.2.4执行上下文108

7.3通用的引导装入程序:Das U-Boot109

7.3.1执行上下文109

7.3.2U-Boot命令集111

7.3.3网络操作111

7.3.4存储子系统113

7.3.5从磁盘启动:U-Boot113

7.4移植U-Boot114

7.4.1为EP405开发板移植U-Boot114

7.4.2U-Boot的makefile配置目标115

7.4.3EP405处理器初始化116

7.4.4特定开发板的初始化117

7.4.5移植概要120

7.4.6U-Boot映像格式120

7.5其他引导装入程序122

7.5.1Lilo122

7.5.2GRUB123

7.5.3其他引导装入程序124

7.6小结124

参考资源124

第8章 设备驱动程序基础126

8.1设备驱动程序基本概念126

8.1.1可加载模块127

8.1.2设备驱动程序的体系结构127

8.1.3最小设备驱动程序示例128

8.1.4模块构建的基础设施129

8.1.5安装设备驱动程序131

8.1.6加载设备驱动程序模块132

8.2模块实用程序133

8.2.1insmod133

8.2.2模块参数133

8.2.3lsmod134

8.2.4modprobe135

8.2.5depmod136

8.2.6rmmod136

8.2.7modinfo137

8.3驱动程序方法137

8.3.1驱动程序文件系统操作138

8.3.2设备节点与mknod140

8.4汇总141

8.5设备驱动程序与GPL143

8.6小结143

参考资源144

第9章 文件系统145

9.1Linux文件系统的概念146

9.2ext2文件系统147

9.2.1挂载文件系统148

9.2.2文件系统完整性检查149

9.3ext3文件系统150

9.4ReiserFS文件系统152

9.5JFFS2文件系统153

9.6cramfs文件系统155

9.7NFS文件系统156

9.8伪文件系统160

9.8.1proc文件系统160

9.8.2sysfs文件系统162

9.9其他文件系统164

9.10构建简单的文件系统165

9.11小结166

参考资源166

第10章 MTD子系统168

10.1启用MTD服务168

10.2MTD基础知识170

10.3MTD分区172

10.3.1Redboot分区表173

10.3.2内核命令行分区176

10.3.3映射驱动程序177

10.3.4闪存芯片驱动程序178

10.3.5特定开发板的初始化179

10.4MTD实用程序180

10.5小结184

参考资源184

第11章 BusyBox186

11.1BusyBox简介186

11.2BusyBox配置187

11.3BusyBox操作189

11.3.1BusyBox之init191

11.3.2rcS初始化脚本示例193

11.3.3在目标平台安装BusyBox193

11.3.4BusyBox命令195

11.4小结196

参考资源196

第12章 嵌入式开发环境197

12.1交叉开发环境197

12.2主机系统需求200

12.3为目标板提供服务201

12.3.1TFTP服务器201

12.3.2BOOTP/DHCP服务器202

12.3.3NFS服务器204

12.3.4使用NFS为目标板挂载根文件系统205

12.3.5U-Boot NFS根挂载示例206

12.4小结208

参考资源208

第13章 开发工具209

13.1GDB209

13.1.1调试核心转储210

13.1.2调用GDB211

13.1.3GDB调试会话213

13.2DDD214

13.3cbrowser/cscope216

13.4追踪和程序分析工具217

13.4.1strace217

13.4.2strace的变体220

13.4.3ltrace221

13.4.4ps222

13.4.5top224

13.4.6mtrace225

13.4.7dmalloc226

13.4.8内核oops228

13.5二进制实用程序230

13.5.1readelf230

13.5.2使用readelf检查调试信息232

13.5.3objdump233

13.5.4obj copy234

13.6其他二进制实用程序234

13.6.1strip234

13.6.2addr2line235

13.6.3strings235

13.6.4ldd235

13.6.5nm236

13.6.6prelink236

13.7小结237

参考资源237

第14章 内核调试技术238

14.1内核调试的难点238

14.2使用KGDB调试内核239

14.2.1KGDB内核配置240

14.2.2支持KGDB的内核启动241

14.2.3有用的内核断点243

14.3Linux内核的调试244

14.3.1gdb远程串口协议244

14.3.2调试优化后的内核代码247

14.3.3gdb用户定义命令251

14.3.4有用的内核gdb宏252

14.3.5调试可加载模块258

14.3.6printk调试262

14.3.7Magic SysReq键263

14.4硬件辅助调试263

14.4.1使用JTAG探测器对闪存编程265

14.4.2用JTAG探测器进行调试266

14.5无法启动时268

14.5.1早期串口调试输出269

14.5.2转储printk日志缓冲区270

14.5.3KGDB捕捉崩溃271

14.6小结272

参考资源272

第15章 调试嵌入式Linux应用程序274

15.1目标机调试274

15.2远程(交叉)调试274

15.3使用共享库进行调试278

15.4多任务调试282

15.4.1多进程的调试282

15.4.2多线程应用程序的调试284

15.4.3引导装入程序/闪存代码的调试286

15.5远程调试的附加选项287

15.5.1串行端口调试287

15.5.2绑定到正在运行的进程287

15.6小结288

参考资源288

第16章 移植Linux289

16.1Linux源代码的组织289

16.2为开发板定制Linux291

16.2.1前提和假设291

16.2.2定制内核初始化292

16.2.3静态内核命令行294

16.3平台初始化295

16.3.1早期变量访问298

16.3.2开发板信息结构299

16.3.3机器相关的调用301

16.4汇总302

16.5小结304

参考资源304

第17章 Linux与实时305

17.1什么是实时305

17.1.1软实时305

17.1.2硬实时306

17.1.3Linux调度306

17.1.4中断延迟306

17.2内核抢占307

17.2.1抢占的缺陷307

17.2.2抢占模型308

17.2.3SMP内核309

17.2.4抢占延迟源310

17.3实时内核补丁310

17.3.1实时的特性311

17.3.2O(1)调度器313

17.3.3创建实时进程313

17.3.4临界区管理314

17.4调试实时内核314

17.4.1软锁检测314

17.4.2抢占调试315

17.4.3调试唤醒时间315

17.4.4唤醒延迟历史315

17.4.5中断响应时间316

17.4.6中断响应历史316

17.4.7延迟跟踪317

17.4.8调试死锁环境318

17.4.9锁模式的运行时控制权319

17.5小结319

参考资源319

附录A 可配置的U-Boot命令320

附录B BusyBox命令322

附录C SDRAM接口的注意事项328

附录D 开源项目资源334

附录E BDI-2000配置文件示例336

热门推荐