给大家推荐一个很不错的Linux学习应用程序开发的文章,
只需要关注公众号,后台回复 【Linux系统应用程序设计】即可获取。
目录如下:
第 1 章 Linux 快速入门… 1
1.1 嵌入式 Linux 基础 … 1
1.1.1 Linux 发展概述… 1
1.1.2 Linux 作为嵌入式操作系统的优势 … 2
1.1.3 Linux 发行版本… 3
1.1.4 如何学习 Linux … 4
1.2 Linux 安装… 5
1.2.1 基础概念… 5
1.2.2 硬件需求… 7
1.2.3 安装准备… 7
1.2.4 安装过程… 8
1.3 Linux 文件及文件系统…11
1.3.1 文件类型及文件属性…11
1.3.2 文件系统类型介绍… 13
1.3.3 Linux 目录结构… 14
1.4 实验内容——安装 Linux 操作系统 … 17
本章小结… 17
思考与练习… 18
第 2 章 Linux 基础命令… 19
2.1 Linux 常用操作命令… 19
2.1.1 用户系统相关命令… 20
2.1.2 文件目录相关命令… 27
2.1.3 压缩打包相关命令… 38
2.1.4 比较合并文件相关命令… 40
2.1.5 网络相关命令… 45
A-PDF MERGER DEMO║2 嵌入式 应用程序开发详解
2.2 Linux 启动过程详解… 50
2.2.1 概述… 51
2.2.2 内核引导阶段… 51
2.2.3 init 阶段 … 52
2.3 Linux 系统服务… 54
2.3.1 独立运行的服务… 55
2.3.2 xinetd 设定的服务… 56
2.3.3 设定服务命令常用方法… 56
2.4 实验内容… 57
2.4.1 在 Linux 下解压常见软件… 57
2.4.2 定制 Linux 系统服务 … 58
本章小结… 60
思考与练习… 60
第 3 章 Linux 下的 C 编程基础… 61
3.1 Linux 下 C 语言编程概述… 61
3.1.1 C 语言简单回顾… 61
3.1.2 Linux 下 C 语言编程环境概述… 62
3.2 进入 Vi… 63
3.2.1 Vi 的模式… 63
3.2.2 Vi 的基本流程… 63
3.2.3 Vi 的各模式功能键… 65
3.3 初探 Emacs … 66
3.3.1 Emacs 的基本操作… 67
3.3.2 Emacs 的编译概述… 70
3.4 Gcc 编译器… 71
3.4.1 Gcc 编译流程解析 … 71
3.4.2 Gcc 编译选项分析 … 74
3.5 Gdb 调试器… 77
3.5.1 Gdb 使用流程… 78
3.5.2 Gdb 基本命令… 81
3.6 Make 工程管理器… 86
3.6.1 Makefile 基本结构 … 86
3.6.2 Makefile 变量 … 87
3.6.3 Makefile 规则 … 90
3.6.4 Make 管理器的使用… 91
3.7 使用 autotools … 92
3.7.1 autotools 使用流程… 92
3.7.2 使用 autotools 所生成的 Makefile… 96第 1 章 目录 3║
3.8 实验内容… 98
3.8.1 Vi 使用练习… 98
3.8.2 用 Gdb 调试有问题的程序… 99
3.8.3 编写包含多文件的 Makefile … 101
3.8.4 使用 autotools 生成包含多文件的 Makefile… 103
本章小结… 105
思考与练习… 105
第 4 章 嵌入式系统基础… 106
4.1 嵌入式系统概述… 106
4.1.1 嵌入式系统简介… 106
4.1.2 嵌入式系统发展历史… 107
4.1.3 嵌入式系统的特点… 108
4.1.4 嵌入式系统的体系结构… 108
4.1.5 几种主流嵌入式操作系统分析… 109
4.2 ARM 处理器硬件开发平台…111
4.2.1 ARM 处理器简介…111
4.2.2 ARM 体系结构简介…113
4.2.3 ARM9 体系结构…113
4.2.4 S3C2410 处理器详解…116
4.3 嵌入式软件开发流程… 121
4.3.1 嵌入式系统开发概述… 121
4.3.2 嵌入式软件开发概述… 122
4.4 实验内容——使用 JTAG 烧写 NAND Flash… 128
本章小结… 131
思考与练习… 132
第 5 章 嵌入式 Linux 开发环境的搭建… 133
5.1 嵌入式开发环境的搭建… 133
5.1.1 嵌入式交叉编译环境的搭建… 133
5.1.2 超级终端和 Minicom 配置及使用 … 135
5.1.3 下载映像到开发板… 142
5.1.4 编译嵌入式 Linux 内核 … 145
5.1.5 Linux 内核目录结构… 149
5.1.6 制作文件系统… 149
5.2 U-Boot 移植… 153
5.2.1 Bootloader 介绍… 153
5.2.2 U-Boot 概述… 155
5.2.3 U-Boot 源码导读… 156║4 嵌入式 应用程序开发详解
5.2.4 U-Boot 移植主要步骤… 163
5.2.5 U-Boot 常见命令… 164
5.3 实验内容——移植 Linux 内核… 164
本章小结… 165
思考与练习… 165
第 6 章 文件 I/O 编程… 166
6.1 Linux 系统调用及用户编程接口(API) … 166
6.1.1 系统调用… 166
6.1.2 用户编程接口(API) … 167
6.1.3 系统命令… 167
6.2 Linux 中文件及文件描述符概述… 168
6.3 不带缓存的文件 I/O 操作… 168
6.3.1 open 和 close… 168
6.3.2 read、write 和 lseek … 170
6.3.3 fcntl … 173
6.3.4 select… 178
6.4 嵌入式 Linux 串口应用开发… 183
6.4.1 串口概述… 183
6.4.2 串口设置详解… 184
6.4.3 串口使用详解… 191
6.5 标准 I/O 开发… 194
6.5.1 打开和关闭文件… 194
6.5.2 文件读写… 197
6.5.3 输入输出… 198
6.6 实验内容… 201
6.6.1 文件读写及上锁… 201
6.6.2 多路复用式串口读写… 204
本章小结… 207
思考与练习… 207
第 7 章 进程控制开发… 208
7.1 Linux 下进程概述… 208
7.1.1 进程相关基本概念… 208
7.1.2 Linux 下的进程结构… 210
7.1.3 Linux 下进程的模式和类型 … 210
7.1.4 Linux 下的进程管理…211
7.2 Linux 进程控制编程… 212
7.3 Linux 守护进程… 224第 1 章 目录 5║
7.3.1 守护进程概述… 224
7.3.2 编写守护进程… 224
7.3.3 守护进程的出错处理… 229
7.4 实验内容… 232
7.4.1 编写多进程程序… 232
7.4.2 编写守护进程… 235
本章小结… 238
思考与练习… 239
第 8 章 进程间通信… 240
8.1 Linux 下进程间通信概述… 240
8.2 管道通信… 241
8.2.1 管道概述… 241
8.2.2 管道创建与关闭… 242
8.2.3 管道读写… 244
8.2.4 标准流管道… 246
8.2.5 FIFO… 249
8.3 信号通信… 253
8.3.1 信号概述… 253
8.3.2 信号发送与捕捉… 255
8.3.3 信号的处理… 258
8.4 共享内存… 264
8.4.1 共享内存概述… 264
8.4.2 共享内存实现… 265
8.5 消息队列… 267
8.5.1 消息队列概述… 267
8.5.2 消息队列实现… 268
8.6 实验内容… 272
8.6.1 管道通信实验… 272
8.6.2 共享内存实验… 275
本章小结… 277
思考与练习… 278
第 9 章 多线程编程… 279
9.1 Linux 下线程概述… 279
9.1.1 线程概述… 279
9.1.2 线程分类… 280
9.1.3 Linux 线程技术的发展… 280
9.2 Linux 线程实现… 281║6 嵌入式 应用程序开发详解
9.2.1 线程基本操作… 281
9.2.2 线程访问控制… 288
9.3 实验内容——“生产者消费者”实验… 298
本章小结… 302
思考与练习… 303
第 10 章 嵌入式 Linux 网络编程… 304
10.1 TCP/IP 协议概述… 304
10.1.1 OSI 参考模型及 TCP/IP 参考模型… 304
10.1.2 TCP/IP 协议族… 305
10.1.3 TCP 和 UDP … 306
10.2 网络基础编程… 308
10.2.1 socket 概述… 308
10.2.2 地址及顺序处理… 309
10.2.3 socket 基础编程… 314
10.3 网络高级编程… 322
10.4 ping 源码分析… 326
10.4.1 ping 简介… 326
10.4.2 ping 源码分析… 327
10.5 实验内容——NTP 协议实现 … 345
本章小结… 352
思考与练习… 352
第 11 章 嵌入式Linux 设备驱动开发… 353
11.1 设备驱动概述… 353
11.1.1 设备驱动简介及驱动模块… 353
11.1.2 设备文件分类… 354
11.1.3 设备号… 355
11.1.4 驱动层次结构… 355
11.1.5 设备驱动程序与外界的接口… 355
11.1.6 设备驱动程序的特点… 356
11.2 字符设备驱动编写… 356
11.3 LCD 驱动编写实例… 363
11.3.1 LCD 工作原理… 363
11.3.2 LCD 驱动实例… 365
11.4 块设备驱动编写… 374
11.4.1 块设备驱动程序描述符… 374
11.4.2 块设备驱动编写流程… 375
11.5 中断编程… 381第 1 章 目录 7║
11.6 键盘驱动实现… 382
11.6.1 键盘工作原理… 382
11.6.2 键盘驱动综述… 383
11.6.3 键盘驱动流程… 384
11.7 实验内容——skull 驱动 … 394
本章小结… 398
思考与练习… 399
第 12 章 Qt 图形编程 … 400
12.1 嵌入式 GUI 简介… 400
12.1.1 Qt/Embedded… 401
12.1.2 MiniGUI… 401
12.1.3 Microwindows、Tiny X 等 … 402
12.2 Qt/Embedded 开发入门… 402
12.2.1 Qt/Embedded 介绍… 402
12.2.2 Qt/Embedded 信号和插槽机制… 405
12.2.3 搭建 Qt/Embedded 开发环境… 409
12.2.4 Qt/Embedded 窗口部件… 410
12.2.5 Qt/Embedded 图形界面编程… 414
12.2.6 Qt/Embedded 对话框设计… 416
12.3 实验内容——使用 Qt 编写“Hello,World”程序 … 420
本章小结… 428