Linux系统编程
简介
Linux系统编程围绕Linux操作系统的三大抽象展开讲解(文件、虚拟存储、进程)。并配合一个小型的Shell程序minishell做为教学项目。分以下几个篇章:
Linux系统编程之文件篇
Linux系统编程之进程篇
Linux系统编程之信号与管道篇
B站播放地址:https://www.bilibili.com/video/BV1gF411J7zH
章节
01认识计算机系统(上)
计算机系统组成
计算机系统硬件组成
总线
I/O设备
内存
处理器(运算器+控制器)
02认识计算机系统(下)
什么是操作系统
Linux内核模块
操作系统管理硬件
操作系统三个基本抽象
进程上下文切换
进程虚地址空间
虚拟文件系统(VFS)
03系统编程介绍
系统编程与应用编程
系统资源
系统调用
系统调用与C库关系
错误处理
04文件与I/O(1)
什么是I/O
文件描述符
文件相关系统调用
05文件与I/O(2)
read、write
lseek
目录访问(opendir、readdir、closedir)
06文件与I/O(3)
stat
stat结构体
stat示例
07文件与I/O(4)
文件共享
打开文件内核数据结构
一个进程两次打开同一个文件
两个进程打开同一个文件
复制文件描述符(dup、dup2、fcntl)
08文件与I/O(5)
fcntl函数
fcntl常用操作
文件锁
Linux系统编程之进程篇
09进程(1)
什么是程序
什么是进程
进程数据结构
进程与程序区别与联系
10进程(2)
进程状态变迁
进程控制块
进程创建
进程撤消
终止进程的五种方法
11进程(3)
复制进程映像
fork系统调用
孤儿进程、僵尸进程
写时复制
12进程(4)
fork之后父子进程共享文件
fork与vfork
exit与_exit
atexit
execve替换进程映像(加载程序)
13进程(5)
exec替换进程映像
exec关联函数组(execl、execlp、execle、execv、execvp)
14进程(6)
SIGCHLD
wait
waitpid
僵进程
system
15进程(7)
什么是守护进程
守护进程的创建步骤
daemon
Linux系统编程之信号与管道篇
16信号(一)
中断
信号
信号与中断
signal
17信号(二)
信号分类
可靠信号与不可靠信号
信号发送
pause
18信号(三)
更多信号发送函数
可重入函数与不可重入函数
不可重入函数示例
19信号(四)
信号在内核中的表示
信号阻塞与未诀
信号集操作函数
sigprocmask
20信号(五)
sigaction函数
sigaction结构体
sigaction示例
21信号(六)
sigqueue函数
sigval联合体
sigqueue示例
22信号(七)
三种不同精度的睡眠
三种时间结构
setitimer
getitimer
23管道(一)
管道
匿名管道pipe
管道示例程序
24管道(二)
管道读写规则
25管道(三)
命名管道(FIFO)
匿名管道与命名管道区别
命名管道的打开规则
命名管道示例程序