您的位置:首页 > 运维架构 > Linux

Linux环境高级编程

2012-06-27 15:24 197 查看
Linux环境高级编程

Linux环境高级编程


2011-08-20 14:09

一、课程目标

本次课程涵盖Linux系统编程的几个主要方面,通过本次课程的学习,学员将具备以下能力:

了解Linux系统调用和类库的区别;
熟悉文件I/O、文件和目录、进程管理、进程间通信(IPC)、信号、时间与定时器的编程。

二、参训要求

参加本次课程的学员须具备以下能力:

本次课程使用 C语言 教学,所以学员需拥有较好的C语言基础;
能熟练使用常用的Linux命令;
能熟练使用gcc、gdb、熟练撰写makefile;
最好熟练使用vi、emacs等文本编辑器其中的一种。

三、课程实践环境

学员自备电脑
操作系统:GNU/Linux 2.6+(建议使用Redhat AS 5+或Ubuntu、Fedora)
编译器:GCC v4.1+、GDB v7.0+
可选IDE:Eclipse CDT

四、课程大纲

本次课程由以下几个部分构成:

1、预备知识

UNIX历史和标准

UNIX; BSD & System V
GNU project; Linux Kernel
POSIX, SUSv3, SUSv4

Linux系统相关概念

系统调用和库函数
错误处理
特性测试宏
系统数据类型
系统限制和选项 (sysconf(), pathconf())
系统参数: /proc文件系统

2、文件I/O

Linux I/O系统调用与C标准库stdio的比较
I/O系统调用: open(), close(), read(), write()
控制I/O的Buffer
读写指针的定位:lseek()
I/O控制:ioctl()
原子操作和数据竞态
文件控制: fcntl()
文件打开的状态标志(status flags)
文件描述符
复制文件描述符:dup(), dup2()

3、文件和目录

文件属性

获取文件的属性:stat()
文件的时间戳
文件的所有权:chown()
文件的操作权限:chmod()

目录和连接文件

硬连接和软连接 (符号连接)
目录
迭代目录树
当前工作目录(CWD)
路径名

监控文件系统的事件:inotify

inotify API
inotify事件
inotify限制

4、进程控制

进程属性

进程ID(PID)和父进程ID(PPID)
进程内存布局
栈 (Stack)
堆 (Heap)
命令行参数和环境变量列表
非局部goto (nonlocal goto):setjmp() 和 longjmp()

创建和终止进程

创建进程:fork()
fork() 后的多进程数据竞态
进程终止:exit(3) 和 _exit(2)
退出处理器:atexit()
等待子进程的退出:wait(), waitpid(), waitid()
SIGCHLD 信号

执行程序

execve()
exec() 系列库函数
解释脚本
文件描述符和 exec()
信号和 exec()
执行Shell命令:system()

守护进程 (Daemons)

创建守护进程的几个步骤
使用 SIGHUP 信号使一个进程变成守护进程
系统中守护进程的示例:syslog

进程权限相关

文件 /etc/passwd 和 /etc/group
User ID, and Group ID
Real, effective, and saved set IDs
其它 group IDs
Set-user-ID and set-group-ID programs
获取或修改进程权限


5、信号 (Signals)

信号类型和默认动作
信号处理方式
信号处理器
发送信号
信号集
阻塞信号(signal mask)
系统调用的中断和重新执行
等待信号

6、时间和定时器(Timers)

时间相关的数据类型
POSIX Clock
获取当前时间
设置当前时间
C标准库 时间函数
Sleep
定时器(Timers)

简单的定时器:alarm()
interval Timers
高级定时器


7、进程间通信 (Interprocess Communication, IPC)

传统UNIX IPC

管道和优先队列 (Pipe and FIFO)
SYSV 消息队列 (SYSV Message Queue)
SYSV 信号量 (SYSV Semaphore)
SYSV 共享内存 (SYSV Shared Memory Segments)
内存映射文件 (Memory Mapping Files)

POSIX IPC

POSIX IPC的优势
POSIX 消息队列 (POSIX Message Queue)
POSIX 信号量 (POSIX Semaphore)
POSIX 共享内存 (POSIX Shared Memory Segments)

五、时间安排

课程时间:3天,以每天6小时计,具体安排如下:

Day1

1 - 预备知识
2 - 文件I/O
3 - 文件与目录

Day2

4 - 进程控制
5 - 信号
6 - 定时器

Day3

7 - 进程间通信
课程回顾与总结

六、课程资源

可获取的课程资源见:教学资源

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: