《嵌入式Linux系统应用基础与开发范例》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:吴军,周转运编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2007
  • ISBN:7115161232
  • 页数:308 页
图书介绍:本书是一本关于嵌入式Linux系统开发技术的教材,内容涉及嵌入式开发环境、Linux实时扩展、Linux存储子系统、常用文件系统、嵌入式数据库、引导加载程序等。在讲解知识点的同时,本书也特别注重实际操作过程。本书通过网络管理中基于Linux的嵌入式设备,以实例形式向读者介绍和分析了嵌入式Linux系统应用及开发过程。

第1章 绪论 1

第2章 嵌入式操作系统概述 2

2.1 嵌入式系统概念 2

2.2 嵌入式系统演变与嵌入式操作系统 3

2.3 嵌入式操作系统 4

2.3.1 风河VxWorks实时操作系统 4

2.3.2 μC/OS-Ⅱ实时操作系统 6

2.4 嵌入式Linux系统 8

2.4.1 Linux概述 8

2.4.2 嵌入式Linux发展现状与趋势 12

2.4.3 嵌入式Linux的优势 13

2.4.4 嵌入式Linux系统与发行套件 14

2.4.5 嵌入式Linux系统分类 14

2.4.6 嵌入式Linux内核 15

2.4.7 嵌入式Linux系统及其开发流程 16

2.5 嵌入式系统开发环境 16

2.5.1 本地开发环境 17

2.5.2 交叉开发环境 17

2.6 Linux 2.6内核新特性 21

2.6.1 虚拟内存管理 21

2.6.2 内核设备驱动程序 22

2.6.3 Linux进程管理 23

2.6.4 模块子系统 24

2.6.5 Linux线程模型 24

2.6.6 性能改进和扩展性改进 25

2.6.7 文件系统改进 25

2.6.8 内核其他变化 25

小结 26

第3章 Linux的实时扩展 27

3.1 实时系统 27

3.1.1 实时系统概念 27

3.1.2 实时系统组成 28

3.1.3 实时任务调度算法分类 30

3.1.4 Linux系统中的进程调度 31

3.2 Linux的实时扩展 32

3.2.1 MontaVista Linux 32

3.2.2 实时Linux RTLinux 33

3.2.3 实时应用接口(RTAI) 34

3.2.4 Kurt-Linux 34

3.2.5 Linux/RK实时内核 35

3.3 Linux实时扩展实现总结 35

3.4 Linux实时扩展机制比较 36

小结 37

第4章 不支持MMU的uCLinux 38

4.1 无MMU的体系结构与uCLinux计划 38

4.2 uCLinux应用开发 40

4.2.1 uCLinux开发环境建立 41

4.2.2 uCLinux移植 41

4.2.3 编译内核 41

4.2.4 加载内核 42

4.2.5 添加用户应用程序 42

小结 42

第5章 嵌入式Linux系统的存储系统 43

5.1 计算机存储系统 43

5.1.1 存储设备类型 43

5.1.2 存储器层次结构 44

5.1.3 存储映像 44

5.1.4 存储保护 45

5.2 嵌入式系统中的存储设备 46

5.3 闪存、DOC、IDE以及移动存储设备 46

5.3.1 闪存和DOC设备 46

5.3.2 磁盘(IDE)和移动存储设备 48

5.4 嵌入式系统中的存储系统 49

5.5 嵌入式Linux内核MTD子系统 50

5.5.1 存储技术设备模块 50

5.5.2 MTD工具程序 51

5.6 嵌入式Linux内核对热插拔设备的支持 52

5.6.1 热插拔设备 52

5.6.2 Linux对热插拔设备的支持 53

小结 55

第6章 嵌入式Linux系统中的文件系统 56

6.1 虚拟文件系统交换器(VFS) 56

6.2 Ext2文件系统 58

6.2.1 Ext2文件系统体系结构 58

6.2.2Ext2文件系统安全性 59

6.3 日志文件系统 60

6.4 Ext3文件系统 60

6.5 JFFS文件系统 61

6.5.1 JFFS物理组织结构 62

6.5.2 垃圾回收 63

6.6 JFFS2文件系统 63

6.6.1 兼容性扩展 64

6.6.2 新的节点类型 64

6.6.3 损耗均衡和数据压缩 65

6.6.4 垃圾收集 65

6.6.5 可量测性问题 65

6.7 JFFS3文件系统 66

6.8 YAFFS文件系统 66

6.8.1 YAFFS文件系统的物理组织 67

6.8.2 YAFFS擦除块和页面分配 67

6.8.3 YAFFS垃圾收集机制 68

6.8.4 YAFFS接口结构 68

6.8.5 YAFFS文件系统性能比较 68

6.9 CRAMFS文件系统 69

6.10 各种文件系统比较 70

6.10.1 文件系统特性 70

6.10.2 性能分析 71

6.11 嵌入式Linux根文件系统 71

6.11.1 根文件系统基本结构 71

6.11.2 根文件系统中的软件组件 72

6.11.3 使用基于RAMDISK的根文件系统 73

6.11.4 使用基于JFFS2的根文件系统 76

小结 77

第7章 嵌入式数据库系统 79

7.1 嵌入式数据库 79

7.2Berkely数据库 80

7.2.1 Berkely数据库计划 80

7.2.2 Berkely数据库的系统结构 80

7.3 eXtrmeDB内存式实时数据库 82

7.4 RDM数据库 83

7.5 UltraLite数据库 85

7.5.1 UltraLite嵌入式数据库 85

7.5.2 UltraLite功能特征 86

7.5.3 UltraLite体系结构 86

7.5.4 UltraLite编程接口 88

7.5.5 C/C++应用程序的支持平台 89

7.5.6 MobiLink同步 90

7.5.7 MobiLink同步服务器 90

7.5.8 开发用于VxWorks的应用程序 91

7.6 嵌入式数据库在通信设备中的应用 91

小结 92

第8章 嵌入式Linux系统中引导加载程序 93

8.1 引导加载程序 93

8.2 引导加载程序Vivi 95

8.2.1 Vivi启动模式 95

8.2.2 Vivi编译和使用 95

8.2.3 常用Vivi命令 96

8.3 引导加载程序PPCBoot 97

8.4 通用引导加载程序U-Boot 97

8.4.1 U-Boot可支持的主要功能列表 98

8.4.2 使用U-Boot 98

8.5 U-Boot MTD和JFFS2支持 109

8.5.1 目标板配置文件 109

8.5.2 初始化NAND与读操作 111

8.5.3 函数原型声明及其他 113

8.5.4 MTD和JFFS2命令使用 113

8.6 引导加载程序启动过程 116

8.6.1 汇编代码start.S文件 116

8.6.2 第二阶段board.c文件 121

小结 128

第9章 嵌入式Linux开发工具 130

9.1 嵌入式开发工具 130

9.1.1 嵌入式Linux开发工具简介 130

9.1.2 开发工具选择 130

9.1.3 嵌入式Linux开发环境 131

9.2 嵌入式Linux发行套件 132

9.3 嵌入式Linux开发工具(ELDK) 132

9.3.1 ELDK简介 132

9.3.2 ELDK的安装、配置和使用 133

9.3.3 ELDK上的gdb调试 134

9.4 MontaVista Linux集成开发环境 135

9.4.1 Pro3.1概述 135

9.4.2 Pro3.1安装和使用 136

9.4.3 图形化集成开发环境 136

9.5 建立交叉编译工具 138

9.5.1 下载源文件、补丁和建立工作目录 138

9.5.2 准备内核头文件 140

9.5.3 编译binutils工具 141

9.5.4 建立gcc初始编译器 142

9.5.5 建立glibc链接库 143

9.5.6 建立gcc全套编译器 144

小结 145

第10章 嵌入式系统在网络管理中的应用 146

10.1 网络管理的概念 146

10.2 基于SNMP的网络管理体系结构 146

10.2.1 简单网络管理协议(SNMP) 146

10.2.2 SNMP网络管理体系结构 147

10.2.3 网络管理协议环境 149

10.2.4 公用区和安全控制 150

10.2.5 SNMP存在的缺点和问题 151

10.2.6 SNMP在家庭网关网管中的应用 151

10.3 TMN网络管理体系结构 155

10.4 基于TMN的传输网网管 157

10.4.1 电信网中的传输网络 157

10.4.2 传输系统与传输网 158

10.4.3 传输网的主要技术 159

10.4.4 传输网网管 162

10.5 网元管理系统中的嵌入式M/A设计 164

10.5.1 网元管理系统功能模型 164

10.5.2 嵌入式软件设计 165

小结 167

第11章 用于网络管理的路由器范例 169

11.1 范例路由器介绍 169

11.1.1 传输网网管系统安全需求 169

11.1.2 路由器在传输网网管中的使用 169

11.2 范例路由器硬件平台 171

11.2.1 嵌入式Linux系统目标板平台 171

11.2.2 基于嵌入式PowerPC核的PowerQUICC处理器 172

11.2.3 目标板单元电路描述 173

11.2.4 目标板主要接口描述 175

11.3 范例路由器软件模型 182

11.4 开发环境和项目设置 183

11.4.1 主机系统环境配置 183

11.4.2 项目目录设置 186

小结 187

第12章 范例路由器的嵌入式Linux实现 188

12.1 引导加载程序PPCBoot 188

12.1.1 板配置文件修改 188

12.1.2 板验证和RAM初始化 198

12.1.3 Flash设备初始化与设计方法 200

12.1.4 PPCBoot交叉编译 214

12.2 部分接口设备Linux驱动程序 216

12.2.1 SCC以太网驱动程序 217

12.2.2 Flash的MTD映射驱动程序 240

12.2.3 SCC HDLC驱动程序 247

12.3 Linux内核编译 248

12.3.1 Linux内核选项配置 248

12.3.2 内核交叉编译与内核映像 257

12.4 根文件系统 258

12.5 网络服务 264

12.6 基本应用配置 264

12.6.1 网络配置 264

12.6.2 系统时间同步和校准 266

小结 266

第13章 基于嵌入式Linux的网元管理单元范例 267

13.1 网元管理单元 267

13.2 网元管理单元主要功能和用途 267

13.3 目标板的硬件平台 268

13.3.1 目标板硬件结构 268

13.3.2 单元电路的功能与设计 269

13.3.3 部分接口介绍 270

13.4 基于嵌入式Linux的网元管理单元 272

13.5 PCI设备支持 273

13.5.1 PCI总线规范 273

13.5.2 网元管理单元PCI总线扩展 274

13.5.3 Linux PCI设备驱动程序 275

小结 279

第14章 嵌入式Linux下的NET.SNMP应用 280

14.1 NET-SNMP软件包简介 280

14.2 NET-SNMP软件包的安装 281

14.3 NET-SNMP软件包的配置 282

14.3.1 snmp.conf配置 282

14.3.2 snmpd.conf配置 283

14.3.3 snmptrapd.conf配置 283

14.4 软件包运行和使用 284

14.5 软件包的应用编程 285

14.5.1 MIB文件的编写 285

14.5.2 Agent的扩展机制 287

14.5.3 扩展代理实例 291

14.6 NET-SNMP软件包的交叉编译和移植 297

14.6.1 代理的交叉编译 297

14.6.2 代理的基于视图访问控制模型(VACM)配置 299

小结 300

附录A SNMP网管的代码说明 301

附录B LXR项目代码查看工具 302

附录C CVSWEB CVS版本管理Web界面 305

参考文献 308