Skip to main content

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)

匿名管道与命名管道区别

命名管道的打开规则

命名管道示例程序