《Linux嵌入式设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)BobSmith,JohnHardin,GrahamPhillips,BillPierce著
  • 出 版 社:北京市:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115187475
  • 页数:312 页
图书介绍:与以前单纯讲解如何在嵌入式硬件系统中运行Linux或如何构建嵌入式设备的书籍不同,本书第一次将这两方面内容融合成一个整体,教读者如何创建完整的Linux嵌入式设备。通过阅读本书,读者能够学到如何创建后台daemon程序、处理异步事件、连接不同的用户界面进行远程配置和控制。书中还介绍了运行时访问协议(为用户界面与daemon程序的通信提供了统一机制)。

第1章 产品体系结构 1

1.1用户界面和守护进程 2

1.1.1守护进程 2

1.1.2用户界面 3

1.1.3进程间通信 4

1.2Laddie产品的体系结构 4

小结 5

第2章 管理守护进程 6

2.1管理守护进程的通用方法 7

2.1.1基于文件的管理 7

2.1.2基于守护进程的Web界面 8

2.1.3全能方法 8

2.2控制和状态协议 9

2.2.1控制和状态协议的要求 11

2.2.2通用控制和状态协议 11

小结 15

第3章 使用实时访问 17

3.1RTA产品体系结构 17

3.2RTA守护进程体系结构 18

3.3将列和表告知RTA 19

3.3.1列 19

3.3.2表 22

3.4创建第一个RTA程序 23

3.4.1问题描述 23

3.4.2回顾代码 23

3.4.3安装RTA 28

3.4.4编译和连接 29

3.4.5测试 29

3.5一些SQL命令 31

3.5.1SELECT 31

3.5.2UPDATE 32

3.5.3WHERE 32

3.5.4LIMIT 32

3.6RTA内置表介绍 33

3.6.1rtadbg 33

3.6.2rtastat 34

3.6.3rtatables 34

3.6.4rtacolumns 34

3.7RTA表编辑器 35

小结 37

第4章 创建守护进程和保证守护进程安全 39

4.1如何创建守护进程 39

4.1.1加载守护进程配置数据 40

4.1.2进入后台 40

4.1.3成为进程和会话头(sessionleader) 41

4.1.4设置工作目录 43

4.1.5重定向stdin、stdout和stderr 43

4.1.6创建日志 44

4.1.7设置组ID和用户ID 44

4.1.8检查pidfile 45

4.1.9设置umask 48

4.1.10创建信号处理器 48

4.2如何保证守护进程安全 49

4.2.1设计安全的守护进程 49

4.2.2编写安全的守护进程 50

4.2.3降低攻击的破坏程度 52

4.3原型守护进程 54

小结 54

更多参考书目 55

第5章 范例产品:LADDIE报警系统 56

5.1报警系统简介 57

传感器 57

5.2Laddie功能特征 59

5.2.1ladd的配置和状态 59

5.2.2ladd的警报处理 61

5.3Laddie硬件设计 62

5.4Laddie软件设计 64

5.4.1applnit()回调子程序 64

5.4.2polltimeout()回调子程序 65

5.4.3user_update()回调子程序 67

5.5创建和测试ladd 68

小结 69

第6章 日志 71

6.1是否需要日志 71

6.2日志系统的体系结构 72

6.2.1信息源 73

6.2.2信息路由 73

6.2.3信息目的地 74

6.3syslog 76

6.3.1syslog体系结构 76

6.3.2使用syslog 76

6.3.3syslog协议 78

6.3.4使用syslogd守护进程 79

6.3.5局限、优点和syslogd的替代程序 80

6.4按需定制的日志 81

小结 82

第7章 Laddie事件处理 84

7.1新事件处理系统的基本原理 85

7.2logmuxd的特性和功能 86

7.3配置logmuxd 87

7.3.1logmuxd源 87

7.3.2logmuxd过滤器和重写 88

7.3.3logmuxd目的地 90

7.4使用logmuxd的范例 90

7.4.1范例1:logmuxd示范 90

7.4.2范例2:logmuxd和已接受TCP连接 91

7.4.3范例3:logmuxd和SNMP陷阱 94

小结 96

第8章 设计Web界面 97

8.1Web基础知识 98

8.1.1DNS和TCP 98

8.1.2webserver 99

8.1.3CGI 99

8.1.4JavaScript 99

8.1.5发展中的技术 99

8.2确定产品Web界面的需求 99

8.3选择webserver 100

8.3.1选择 100

8.3.2使用PHP 100

8.3.3个案研究:LinksysWRT54G无线路由器 101

8.3.4个案研究:TUXwebserver 101

8.3.5webserver比较 101

8.4UI设计 105

8.4.1菜单系统 105

8.4.2对话框 106

8.4.3错误信息 107

8.4.4使用Ajax提高响应速度 109

8.5实现 109

8.5.1与守护进程交互 110

8.5.2报警状态网页 112

8.5.3报警设置网页 113

8.5.4网页版面设计和菜单系统 114

8.5.5webserver无关性 115

8.5.6使用Ajax进行异步更新 116

8.6改进我们的设计 121

8.7资源 122

小结 122

第9章 设计命令行界面 124

9.1为什么需要CLI 124

9.1.1安全性 125

9.1.2实用性 125

9.1.3带宽 125

9.1.4脚本化能力 125

9.1.5配置备份和恢复 126

9.2CLI的类型 126

9.2.1句子 127

9.2.2向导 127

9.2.3菜单 128

9.2.4有状态的 128

9.2.5字符界面与线界面的比较 129

9.3让用户可以访问CLI 129

9.4LaddieCLI 129

9.4.1Laddie命令汇总 130

9.4.2setlogson 130

9.4.3dump 131

9.4.4help 131

9.5测试命令的代码研究 132

9.5.1CLI词汇表:token.1 132

9.5.2CLI语法:syntax.y 133

9.5.3C代码 133

9.5.4代码研究注解 134

小结 134

第10章 创建前端面板界面 135

10.1按钮、LED和LCD 135

10.1.1按钮 136

10.1.2LED 138

10.1.3LCD 138

10.2设计前端面板UI 139

10.2.1简单化 140

10.2.2尝试、失败、再次尝试 140

10.2.3使用LCD菜单和模式 141

10.2.4快速响应 142

10.3Laddie前端面板 144

10.3.1Laddie的LCD菜单系统 145

10.3.2Laddie前端面板硬件 146

10.3.3Laddie前端面板UI 149

10.4改进我们的设计 152

小结 152

第11章 设计帧缓存界面 154

11.1视频内存的工作原理 155

11.1.1视频内存中的字节是如何被解释的 155

11.1.2视频内存是如何被映射到显示屏上的 157

11.2Linux帧缓存设备驱动程序 158

11.2.1使用open、read、write和close操作帧缓存 158

11.2.2使用ioctl命令配置帧缓存 159

11.2.3一个简单帧缓存图形程序 161

11.3图形库 165

11.4使用SDL创建“Hello,world!”范例 166

11.4.1初始化库 167

11.4.2初始化帧缓存 167

11.4.3创建一个surface 168

11.4.4显示surface 168

11.4.5处理事件 168

11.5图形工具包 169

11.5.1使用STBmenu创建简单UI 170

11.5.2使用STBmenu创建“Hello,world!”范例 173

11.6Laddie帧缓存UI 176

小结 178

第12章 红外遥控器 180

12.1使用红外线进行通信 180

12.1.1编码遥控命令的协议 181

12.1.2通过调制减少对红外线信号的干扰 182

12.1.3使用红外线控制产品 183

12.2遥控接收器的硬件 183

12.2.1探测和解调红外线信号 183

12.2.2解码遥控波形 184

12.2.3Laddie产品的红外线遥控硬件 186

12.3为Laddie产品安装和配置LIRC 189

12.3.1安装LIRC软件 190

12.3.2配置lircserial内核设备驱动程序 191

12.3.3测试lircserial驱动程序 193

12.3.4配置lircd守护进程 195

12.3.5测试lircd守护进程 197

12.3.6配置应用程序的LIRC工具 198

12.3.7控制Laddic产品 199

小结 200

第13章 SNMP实践概述 202

13.1快速浏览术语 203

13.2软件 204

13.3安装SNMP 204

13.3.1下载和安装 204

13.3.2检查安装 205

13.3.3配置代理 205

13.3.4启动代理 206

13.4探索SNMP 206

13.4.1可读性强的MIB文件名 208

13.4.2联网打印机 209

13.4.3snmptable命令 209

13.4.4MIB-2:TCP连接表 210

13.4.5MIB-2:UDP表 211

13.4.6MIB-2内容 212

13.5使用SNMP写入值 213

13.5.1设置sysContact 13

13.5.2设置sysName 215

13.6SNMP陷阱 216

13.6.1使用snmptrapd接收陷阱 216

13.6.2携带数据的陷阱:linkUp和linkDown 218

小结 220

第14章 设计SNMPMIB 221

14.1我们的目标 221

14.2企业编号 222

14.3MIB文件 223

14.4LADDIE-GROUP-SMI 224

14.5创建LAD-MIB 227

14.5.1模块定义 228

14.5.2版本号和防区数 230

14.5.3警报表 232

14.5.4陷阱 234

14.6验证M1B 235

小结 236

第15章 实现你的SNMPMIB 237

15.1Net-SNMP代理 238

15.2MIB框架——mib2c 241

15.3头文件——ladProject.h 242

15.4代码文件——ladProject.c 243

15.4.1包含 243

15.4.2基准OID 244

15.4.3MIB对象定义 244

15.4.4RTA访问函数 247

15.4.5初始化函数 249

15.4.6标量 250

15.4.7读警报表 252

15.4.8写警报表 255

15.5重访Makefile 258

15.6调试 259

15.7陷阱 260

小结 260

附录A RTA参考资料 262

A.1RTA概述 263

A.2RTA常量 264

A.3数据结构 264

A.4API子程序 268

A.4.1dbcommand()子程序 268

A.4.2rta-add_tableQ子程序 269

A.4.3SQLstring()子程序 270

A.4.4rta_config_dir()子程序 270

A.4.5rta_save()子程序 271

A.4.6rtaload()子程序 271

A.5SELECT和UPDATE语法 272

A.5.1SELECT命令 272

A.5.2UPDATE命令 273

A.6内部RTA表 274

A.6.1rtatables表 274

A.6.2rtacolumns表 275

A.7调试配置 275

A.8错误信息 276

A.8.1SQL请求信息 276

A.8.2内部调试信息 277

A.9回调函数 278

A.9.1读回调函数 278

A.9.2写回调函数 279

附录B SNMP综述 280

B.1为什么使用SNMP 280

B.2代理和管理器 281

B.3名字空间、语法和协议 281

B.4MIB 281

B.5OID 282

B.6MIB-2 283

B.7SMI 285

B.8SNMP协议 286

B.8.1基本命令:GET、SET和GETNEXT 286

B.8.2使用GETNEXT遍历MIB 286

B.8.3陷阱和通告 287

B.8.4命令行工具:范例 287

B.9SNMPvl、SNMPv2和SNMPv3 288

B.10SNMP数据类型 289

B.11SNMP表 290

B.12定义新类型 291

B.13MIB文件的结构 292

小结 294

附录C 安装帧缓存设备驱动程序 295

C.1为你的视频卡寻找帧缓存设备驱动程序 295

C.1.1vesafb驱动程序 296

C.1.2硬件相关驱动程序 296

C.1.3没有包含在Laddie光盘中的驱动程序 297

C.2配置帧缓存设备驱动程序 297

C.2.1vesafb驱动程序 298

C.2.2硬件相关驱动程序 299

附录D DB-To-File工具 301

D.1概述 301

D.2表定义 302

D.2.1tbl2file表 302

D.2.2tbl2field表 303

D.3tbl2filed范例 304

D.4安全注意事项 305

附录E Laddie产品可启动光盘 306

E.1运行Laddie产品 306

E.1.1启动光盘 307

E.1.2操作帧缓存用户界面 307

E.1.3访问Web界面 307

E.1.4体验Linuxshell和其他用户界面 308

E.1.5关闭Laddie产品 308

E.2了解光盘内容 308

E.2.1Laddie产品源代码 309

E.2.2Laddie产品库 310

E.2.3启动脚本 310

E.2.4LinuxFrom-Scratch发行版及附加软件包 310

E.3重新编译Laddie产品 311