CDIO工程教育是面向产品、过程、系统生命周期的工程教育方法。它以工程职业实践环境作为工程教育环境 :培养学生的工程能力、职业道德、学术知识和运用知识解决问题能力、终生学习能力、团队工作能力、交流能力和大系统掌控能力 ;使其能够在现代团队的环境下 ,构思、设计、实施、运行複杂和具有高附加值的工程产品、过程和系统。在基于 CDIO的工程教育中 ,不仅注重知识的学习 ,更加强调以项目为核心的全方位能力的培养。 本教材以一个基于 Linux的网路传输系统项目为例 ,作为主线贯穿始终 ,介绍了 Linux系统开发的相关知识以及完成该工程项目的技能。本教材主要针对具有一定的 C语言编程基础,并了解 Linux基本操作的读者 ,可供本科高年级学生自学使用 ,也可以作为相关工程技术人员和计算机爱好者学习 Linux系统编程的参考教材。
基本介绍
- 书名:linux系统程式设计
- 作者:孙斌(主编),王凯,杨光,杨俊伟,于新桥
- ISBN:978-7-98436-196-7
- 页数:304页
- 定价:39.00元
- 出版社:东软电子出版社
- 出版时间:2013.7
- 装帧:王慧英
目录:
第1章 Linux作业系统基础
1.1 UNIX/Linux作业系统简介
1.1.1 UNIX发展历史
1.1.2 UNIX体系结构
1.1.3 Linux作业系统发展历史
1.1.4 Linux的版本
1.1.5 Linux作业系统特点
1.2 相关术语
1.2.1 作业系统
1.2.2 多用户系统
1.2.3 用户和组
1.2.4 进程
1.2.5 档案
1.2.6 硬连结和符号连结
1.2.7 档案类型
1.2.8 档案描述符与索引节点
1.3 库函式与系统调用
1.4 Linux常用命令
1.4.1 用户和用户组
1.4.2 档案和目录
1.4.3 进程
1.4.4 获取帮助信息
1.5 项目:SSH终端及登录
1.5.1 项目分析及设计
1.5.2 项目实施
1.5.3 项目运行
第2章 Linux平台项目开发环境
2.1 编辑器 Vi
2.1.1 Vi的工作模式
2.1.2 Vi的基本用法
2.1.3 Vi的高级用法
2.2 编译器 GCC
2.2.1 GCC编译器介绍
2.2.2 GCC编译器基本用法
2.3 make及 Makefile
2.3.1 Makefile
2.3.2 Makefile档案的命名
2.3.3 Makefile档案的调用
2.3.4 Makefile档案的内容
2.3.5 make命令的特殊用法
2.4 调试器 GDB
2.4.1 输出语句调试方法
2.4.2 GDB工具调试
2.5 库
2.5.1 库的基本概念
2.5.2 静态库和共享库的创建与使用
2.6 项目:Linux系统 C编程实践
2.6.1 项目分析及设计
2.6.2 项目实施
2.6.3 项目编译及运行
第3章 Linux程式设计初步
3.1 程式及进程的存储结构
3.2 变数的类型修饰符
3.3 命令行参数
3.4 环境变数
3.4.1 Shel变数
3.4.2 环境变数访问命令
3.4.3 环境变数访问函式
3.5 时间管理
3.6 错误代码
3.7 项目:设定环境变数
3.7.1 项目设计
3.7.2 项目实施
3.7.3 项目编译与运行
第4章 档案I/O
4.1 档案系统简介
4.1.1 UNIX/Linux档案系统概述
4.1.2 VFS虚拟档案系统
4.1.3 索引节点 inode
4.1.4 档案的类型
4.1.5 档案的访问许可权
4.2 访问档案的核心数据结构
4.3 档案基本I/O操作
4.3.1 打开/创建档案open/creat
4.3.2 读档案
4.3.3 写档案
4.3.4 档案定位
4.3.5 关闭档案
4.3.6 档案操作举例
4.4 档案访问的同步
4.5 项目 :档案複製命令的实现
4.5.1 项目分析与设计
4.5.2 项目实施
4.5.3 项目编译与运行
第5章 档案属性管理
5.1 获取档案属性
5.2 用户/组ID与名字的转换
5.3 硬连结与符号连结
5.3.1 硬连结与符号连结的区别
5.3.2 相关的系统调用函式
5.4 dup/dup2
5.4.1 输入输出重定向
5.4.2 dup/dup2函式
5.5 档案属性的修改
5.5.1 修改档案属性
5.5.2 改变档案属主及组 chown/fchown/lchown
5.5.3 改变档案访问许可权 chmod/fchmod
5.5.4 改变档案时间 utime
5.5.5 改变档案长度 truncate/ftruncate
5.6 项目 :显示档案长格式信息
5.6.1 项目分析与设计
5.6.2 项目实施
5.6.3 项目编译与运行
第6章 目录档案管理
6.1 目录基本操作
6.1.1 打开目录
6.1.2 读目录
6.1.3 关闭目录
6.2 目录其他操作
6.2.1 改变前目录
6.2.2 创建目录
6.2.3 删除目录
6.2.4 目录指针定位
6.3 项目:显示指定目录下档案列表
6.3.1 项目分析与设计
6.3.2 项目实施
6.3.3 项目编译与运行
第7章 进程控制
7.1 什幺是Shel
7.1.1 用户登录 Shel
7.1.2 Shel执行命令
7.2 进程基本概念
7.2.1 进程标识(ProcesID)
7.2.2 用户标识
7.3 进程控制相关函式
7.3.1 创建进程
7.3.2 exec*函式
7.3.3 进程终止
7.3.4 等待进程结束
7.3.5 system函式
7.4 项目:实现简单的Shel
7.4.1 项目分析与设计
7.4.2 项目实施
7.4.3 项目编译与运行
第8章 执行绪
8.1 执行绪概念
8.2 执行绪基本操作
8.3 执行绪间通信
8.4 项目:执行绪实例
8.4.1 项目分析与设计
8.4.2 项目实施
8.4.3 项目编译与运行
第9章 信号与管道
9.1信号
9.1.1 信号的概念
9.1.2 信号的产生
9.1.3 信号的回响方式
9.1.4 slep和 pause
9.1.5 信号集
9.2 管道
9.2.1 管道基本概念
9.2.2 FIFO
第10章 进程间通信(IPC)
10.1 System VIPC介绍
10.2 System V信号量
10.3 System V共享记忆体
10.4 System V讯息伫列
第11章 网路编程
11.1 网路编程基本概念
11.1.1 常用网路相关命令和配置档案
11.1.2 软体体系结构
11.1.3 网路协定及 OSI参考模型
11.1.4 IP位址和连线埠
11.1.5 位元组顺序
11.1.6 网路数据传输方式
11.2 套接字编程基础
11.2.1 套接字简介
11.2.2 套接字地址结构
11.2.3 面向连线套接字通信过程
11.2.4 面向无连线套接字通信过程
11.3 套接字编程相关函式
11.3.1 socket
11.3.2 bind
11.3.3 listen
11.3.4 acept
11.3.5 connect
11.3.6 send
11.3.7 recv
11.3.8 close
11.3.9 sendto
11.3.10 recvfrom
11.4 项目:基于网路的进程间通信
11.4.1 项目分析与设计
11.4.2 项目实施
11.4.3 项目运行
11.5 基于 UDP的网路编程
11.6 域名解析
11.6.1 域名概述
11.6.2 IP位址形式转换
11.6.3 IP位址与主机名
第12章 Linux网路传输系统
12.1 项目构思
12.2 项目设计
12.3 项目实施
12.4 项目运行
附录A Linux主要的系统调用
附录B 标準
附录C ASCI码
附录D 教学建议
参考文献
1.1.1 UNIX发展历史
1.1.2 UNIX体系结构
1.1.3 Linux作业系统发展历史
1.1.4 Linux的版本
1.1.5 Linux作业系统特点
1.2 相关术语
1.2.1 作业系统
1.2.2 多用户系统
1.2.3 用户和组
1.2.4 进程
1.2.5 档案
1.2.6 硬连结和符号连结
1.2.7 档案类型
1.2.8 档案描述符与索引节点
1.3 库函式与系统调用
1.4 Linux常用命令
1.4.1 用户和用户组
1.4.2 档案和目录
1.4.3 进程
1.4.4 获取帮助信息
1.5 项目:SSH终端及登录
1.5.1 项目分析及设计
1.5.2 项目实施
1.5.3 项目运行
第2章 Linux平台项目开发环境
2.1 编辑器 Vi
2.1.1 Vi的工作模式
2.1.2 Vi的基本用法
2.1.3 Vi的高级用法
2.2 编译器 GCC
2.2.1 GCC编译器介绍
2.2.2 GCC编译器基本用法
2.3 make及 Makefile
2.3.1 Makefile
2.3.2 Makefile档案的命名
2.3.3 Makefile档案的调用
2.3.4 Makefile档案的内容
2.3.5 make命令的特殊用法
2.4 调试器 GDB
2.4.1 输出语句调试方法
2.4.2 GDB工具调试
2.5 库
2.5.1 库的基本概念
2.5.2 静态库和共享库的创建与使用
2.6 项目:Linux系统 C编程实践
2.6.1 项目分析及设计
2.6.2 项目实施
2.6.3 项目编译及运行
第3章 Linux程式设计初步
3.1 程式及进程的存储结构
3.2 变数的类型修饰符
3.3 命令行参数
3.4 环境变数
3.4.1 Shel变数
3.4.2 环境变数访问命令
3.4.3 环境变数访问函式
3.5 时间管理
3.6 错误代码
3.7 项目:设定环境变数
3.7.1 项目设计
3.7.2 项目实施
3.7.3 项目编译与运行
第4章 档案I/O
4.1 档案系统简介
4.1.1 UNIX/Linux档案系统概述
4.1.2 VFS虚拟档案系统
4.1.3 索引节点 inode
4.1.4 档案的类型
4.1.5 档案的访问许可权
4.2 访问档案的核心数据结构
4.3 档案基本I/O操作
4.3.1 打开/创建档案open/creat
4.3.2 读档案
4.3.3 写档案
4.3.4 档案定位
4.3.5 关闭档案
4.3.6 档案操作举例
4.4 档案访问的同步
4.5 项目 :档案複製命令的实现
4.5.1 项目分析与设计
4.5.2 项目实施
4.5.3 项目编译与运行
第5章 档案属性管理
5.1 获取档案属性
5.2 用户/组ID与名字的转换
5.3 硬连结与符号连结
5.3.1 硬连结与符号连结的区别
5.3.2 相关的系统调用函式
5.4 dup/dup2
5.4.1 输入输出重定向
5.4.2 dup/dup2函式
5.5 档案属性的修改
5.5.1 修改档案属性
5.5.2 改变档案属主及组 chown/fchown/lchown
5.5.3 改变档案访问许可权 chmod/fchmod
5.5.4 改变档案时间 utime
5.5.5 改变档案长度 truncate/ftruncate
5.6 项目 :显示档案长格式信息
5.6.1 项目分析与设计
5.6.2 项目实施
5.6.3 项目编译与运行
第6章 目录档案管理
6.1 目录基本操作
6.1.1 打开目录
6.1.2 读目录
6.1.3 关闭目录
6.2 目录其他操作
6.2.1 改变前目录
6.2.2 创建目录
6.2.3 删除目录
6.2.4 目录指针定位
6.3 项目:显示指定目录下档案列表
6.3.1 项目分析与设计
6.3.2 项目实施
6.3.3 项目编译与运行
第7章 进程控制
7.1 什幺是Shel
7.1.1 用户登录 Shel
7.1.2 Shel执行命令
7.2 进程基本概念
7.2.1 进程标识(ProcesID)
7.2.2 用户标识
7.3 进程控制相关函式
7.3.1 创建进程
7.3.2 exec*函式
7.3.3 进程终止
7.3.4 等待进程结束
7.3.5 system函式
7.4 项目:实现简单的Shel
7.4.1 项目分析与设计
7.4.2 项目实施
7.4.3 项目编译与运行
第8章 执行绪
8.1 执行绪概念
8.2 执行绪基本操作
8.3 执行绪间通信
8.4 项目:执行绪实例
8.4.1 项目分析与设计
8.4.2 项目实施
8.4.3 项目编译与运行
第9章 信号与管道
9.1信号
9.1.1 信号的概念
9.1.2 信号的产生
9.1.3 信号的回响方式
9.1.4 slep和 pause
9.1.5 信号集
9.2 管道
9.2.1 管道基本概念
9.2.2 FIFO
第10章 进程间通信(IPC)
10.1 System VIPC介绍
10.2 System V信号量
10.3 System V共享记忆体
10.4 System V讯息伫列
第11章 网路编程
11.1 网路编程基本概念
11.1.1 常用网路相关命令和配置档案
11.1.2 软体体系结构
11.1.3 网路协定及 OSI参考模型
11.1.4 IP位址和连线埠
11.1.5 位元组顺序
11.1.6 网路数据传输方式
11.2 套接字编程基础
11.2.1 套接字简介
11.2.2 套接字地址结构
11.2.3 面向连线套接字通信过程
11.2.4 面向无连线套接字通信过程
11.3 套接字编程相关函式
11.3.1 socket
11.3.2 bind
11.3.3 listen
11.3.4 acept
11.3.5 connect
11.3.6 send
11.3.7 recv
11.3.8 close
11.3.9 sendto
11.3.10 recvfrom
11.4 项目:基于网路的进程间通信
11.4.1 项目分析与设计
11.4.2 项目实施
11.4.3 项目运行
11.5 基于 UDP的网路编程
11.6 域名解析
11.6.1 域名概述
11.6.2 IP位址形式转换
11.6.3 IP位址与主机名
第12章 Linux网路传输系统
12.1 项目构思
12.2 项目设计
12.3 项目实施
12.4 项目运行
附录A Linux主要的系统调用
附录B 标準
附录C ASCI码
附录D 教学建议
参考文献