上篇 Linux编程实战之基础编程实战 2
第1章 Linux下Shell脚本编程 2
1.1 Linux Shell简介 2
1.2 Bash编程基础 4
1.2.1 术语定义 4
1.2.2 环境变量 4
1.2.3 命令替换 6
1.2.4 ${}变量替换 6
1.2.5 数组array 8
1.2.6 if语句 8
1.2.7 位置参数 9
1.2.8 条件表达式 10
1.2.9 Bash命令 12
1.2.10 命令组合 13
1.2.11 循环结构 13
1.2.12 算术运算 16
1.2.13 case语句 16
1.2.14 函数与名称空间 17
1.3 Bash编程实例 18
1.3.1 #!符号 18
1.3.2 赋可执行权限 19
1.3.3 脚本实例 19
习题 20
第2章 Linux下C语言编程基础 21
2.1 C语言的编译和执行 21
2.1.1 预处理阶段 22
2.1.2 编译阶段 22
2.1.3 汇编阶段 23
2.1.4 链接阶段 23
2.2 GCC及主要运行参数介绍 24
2.2.1 预处理 25
2.2.2 编译 25
2.2.3 汇编 27
2.2.4 链接 29
2.2.5 其他参数 30
2.3 Makefile文件语法及示例 30
2.3.1 概述 30
2.3.2 目标 31
2.3.3 前置条件 32
2.3.4 命令 32
2.3.5 Makefile举例 33
2.4 调试及gdb的使用 34
2.4.1 启动gdb 34
2.4.2 gdb交互命令 35
习题 37
第3章 多进程编程 38
3.1 进程管理基础 38
3.1.1 进程在Linux内核中的表示 38
3.1.2 进程在Linux内存中的表示 39
3.2 进程间通信相关函数简介 40
3.3 进程间通信编程实例 44
3.3.1 信号 44
3.3.2 管道 47
习题 50
中篇 Linux编程实战之内核编程实战 52
第4章 内核模块编程 52
4.1 内核模块简介 52
4.2 内核模块管理及相关函数 53
4.2.1 模块的组织结构 53
4.2.2 模块的加载 54
4.2.3 模块的卸载 54
4.3 Linux 2.6版本内核模块的编译 55
4.4 内核模块编程示例 56
4.4.1 模块程序设计思想 56
4.4.2 模块程序结构分析 57
4.4.3 Makefile文件的设计 62
4.4.4 程序执行过程 63
4.4.5 程序执行结果分析 64
习题 65
第5章 字符设备编程 66
5.1 字符设备简介 66
5.2 字符设备管理及相关函数 66
5.2.1 设备编号 66
5.2.2 处理dev_t类型 67
5.2.3 分配和释放设备编号 67
5.3 字符设备编程实践 68
5.3.1 入口函数流程图 68
5.3.2 字符设备的结构 71
5.3.3 字符设备驱动程序入口点 71
5.3.4 字符设备驱动程序的安装 73
5.3.5 测试程序 74
习题 75
第6章 块设备编程 76
6.1 块设备简介 76
6.2 块设备管理及相关函数 77
6.2.1 块设备的表示 77
6.2.2 块设备的基本入口点 79
6.2.3 自旋锁 80
6.2.4 块设备的注册 81
6.3 块设备编程实践 82
6.3.1 块设备的结构 82
6.3.2 块设备的注册 83
6.3.3 块设备的操作 85
6.3.4 请求处理 87
6.3.5 编译并安装设备 90
6.3.6 测试块设备 91
习题 94
下篇 Linux编程实战之并行编程实战 96
第7章 并行计算与并行程序设计 96
7.1 并行计算简介 96
7.2 串行程序与并行程序 96
7.3 并行程序设计简介 97
7.4 并行计算前沿技术简介 98
第8章 OpenMP程序设计基础 100
8.1 OpenMP概述 100
8.2 一个基于OpenMP的并行程序 102
8.3 OenpMP兼容性检查 105
8.4 OpenMP最常用的三个库函数简介 106
8.5 parallel语句 107
8.6 critical语句 110
8.7 变量作用域 111
8.8 reduction语句 113
8.9 parallel for语句 114
第9章 OpenMP程序设计进阶 116
9.1 single和master语句 116
9.2 barrier语句 117
9.3 atomic、锁和critical进阶 117
9.4 schedule子句 120
9.5 循环依赖 120
习题 123
第10章 MPI程序设计基础 126
10.1 分布式内存模型 126
10.2 MPI简介 126
10.3 环境安装 126
10.4 环境测试 127
10.5 典型的MPI程序 128
10.6 MPI消息 131
10.7 MPI_ANY_SOURCE和MPI_ANY_TAG 135
10.8 消息状态 138
第11章 MPI程序设计进阶 140
11.1 集合通信 140
11.2 广播 140
11.3 归约 141
11.4 全局归约 142
11.5 散射 143
11.6 聚集 145
11.7 全局聚集 147
习题 148