图书目录

目录Contents

第1章绪论1

1.1Linux系统简介1

1.1.1早期操作系统的发展1

1.1.2Linux系统的发展过程2

1.1.3Linux的版权2

1.2Linux操作系统特点3

1.2.1Linux系统特性3

1.2.2Linux与其他操作系统的比较5

1.3Linux内核组成7

1.3.1进程管理8

1.3.2内存管理9

1.3.3虚拟文件系统9

1.3.4网络子系统11

1.4Linux在嵌入式系统中的应用12

1.4.1嵌入式Linux系统优势12

1.4.2嵌入式Linux交叉编译过程13

1.4.3嵌入式Linux的不足及改进14

习题16

第2章嵌入式系统概述17

2.1计算机系统发展及分类17

2.1.1计算机的主要应用领域17

2.1.2计算机系统分类20

2.2嵌入式系统简介21

2.2.1嵌入式系统定义21

2.2.2嵌入式系统的分类与特点22

2.2.3嵌入式系统发展历史23◆嵌入式Linux程序设计目录2.2.4嵌入式系统组成24

2.3ARM简介27

2.3.1ARM体系结构特点27

2.3.2ARM系列微处理器28

2.3.3ARM编程模型33

2.4嵌入式操作系统36

2.4.1嵌入式Linux36

2.4.2VxWorks37

2.4.3QNX37

2.4.4Windows CE37

2.4.5Palm OS37

2.5嵌入式系统开发过程38

2.5.1嵌入式系统整体开发过程38

2.5.2嵌入式硬件开发流程41

2.5.3嵌入式软件开发流程43

习题44

第3章Linux系统安装与配置45

3.1Linux系统版本45

3.1.1Linux 内核版本45

3.1.2Linux系统发行版本49

3.2Linux的安装过程51

3.2.1系统最低配置与推荐配置51

3.2.2安装前准备工作51

3.2.3硬盘分区52

3.2.4安装系统52

3.3Linux系统目录结构及基本配置60

3.3.1Linux目录结构60

3.3.2系统启动过程61

3.3.3登录切换64

3.3.4安装程序65

习题67

第4章Linux系统操作基础68

4.1Shell与命令行68

4.1.1Shell概述68

4.1.2Shell命令的分类69

4.1.3Shell命令使用技巧69

4.2文件管理70

4.2.1什么是文件70

4.2.2Linux文件系统70

4.2.3Linux文件系统相关命令71

4.3用户管理82

4.3.1用户类型82

4.3.2用户账号管理83

4.3.3组管理86

4.4网络管理87

4.4.1网络的基本配置87

4.4.2网络状态命令89

4.5进程管理93

4.5.1什么是进程93

4.5.2进程管理命令93

4.5.3进程查看命令95

习题97

第5章Linux系统C语言程序设计98

5.1C语言概述98

5.1.1C语言发展过程98

5.1.2C语言的特点99

5.1.3C语言与Linux系统100

5.2Linux系统C语言程序设计过程102

5.2.1Linux系统C语言程序流程102

5.2.2gcc的编译选项103

5.3GDB调试器用法105

5.3.1gdb使用流程105

5.3.2gdb基本命令109

5.4make工程管理器113

5.4.1makefile基本结构114

5.4.2makefile变量115

5.4.3makefile规则118

5.5模块化程序设计119

5.5.1静态库的实现119

5.5.2动态库的实现121

5.6ARM平台Linux交叉编译环境121

5.6.1源码编译方式122

5.6.2二进制解压安装123

5.7集成开发环境124

5.7.1Qt Creator125

5.7.2KDevelop125

5.7.3Code::Blocks125

5.7.4NetBeans126

5.7.5Eclipse127

习题128

第6章Linux系统移植129

6.1UBoot移植129

6.1.1BootLoader简介129

6.1.2UBoot介绍133

6.1.3UBoot装载过程133

6.1.4OK6410开发板UBoot的移植149

6.2Linux内核移植150

6.2.1计算机处理器架构150

6.2.2Linux内核及源码结构153

6.2.3Linux内核移植155

6.3根文件系统移植163

6.3.1虚拟文件系统164

6.3.2文件系统分类165

6.3.3根文件系统的挂载过程167

6.3.4根文件系统制作170

习题173

第7章Linux并发程序设计174

7.1Linux进程174

7.2进程控制175

7.2.1获取进程ID176

7.2.2创建进程176

7.2.3进程调度179

7.2.4进程终止180

7.2.5等待进程结束181

7.2.6守护进程183

7.3进程之间的通信186

7.3.1管道186

7.3.2信号193

7.3.3消息队列203

7.3.4信号量208

7.3.5共享内存213

7.4线程216

7.4.1创建轻量级进程217

7.4.2POSIX线程218

7.4.3线程属性222

7.4.4线程之间的同步与互斥226

习题237

第8章Linux网络编程238

8.1网络编程的基本知识238

8.2套接字239

8.2.1套接字函数239

8.2.2本地套接字243

8.2.3网络套接字246

8.3TCP程序设计253

8.4UDP程序设计257

8.5套接字属性设置261

习题265

第9章Linux文件编程266

9.1底层文件I/O266

9.1.1文件描述符267

9.1.2底层文件I/O函数267

9.2高级文件操作270

9.2.1文件加锁270

9.2.2多路复用276

9.3标准文件I/O285

9.3.1打开和关闭文件286

9.3.2文件读写288

习题291

第10章Linux设备驱动程序设计292

10.1设备驱动模型简介292

10.1.1底层数据模型292

10.1.2上层设备模型297

10.1.3字符设备驱动模型应用接口302

10.2platform设备驱动程序设计306

10.2.1platform_device注册306

10.2.2platform_driver注册307

10.2.3platform设备驱动框架源码310

10.3设备驱动程序编译及加载313

10.3.1编译Linux设备驱动程序313

10.3.2驱动程序的加载314

10.4设备驱动程序硬件访问317

10.4.1内存与I/O设备317

10.4.2中断320

10.5驱动程序设计实例分析321

10.5.1蜂鸣器驱动程序设计321

10.5.2中断驱动程序333

10.5.3混杂设备驱动程序336

习题339

第11章用户界面程序设计340

11.1Qt简介及安装340

11.1.1Qt简介340

11.1.2Qt安装341

11.2Qt程序设计入门343

11.2.1命令行方式编程343

11.2.2Qt Creator方式345

11.2.3Qt程序的运行机制353

11.3Qt常用类介绍357

11.3.1Qt分组类库357

11.3.2Qt类库介绍359

习题382