资料目录:
├─第00期:入门篇
│ 0.1什么是系统编程t?.mp4
│ 0.2一个系统编程的例子(上).mp4
│ 0.3一个系统编程的例子(下).mp4
│ 0.4系统调用与C标准库.mp4
│ 0.5POSIX标准.mp4
│ 0.6系统编程必备技能(上):man命令.mp4
│ 0.7系统编程必备技能(中):info命令.mp4
│ 0.8系统编程必备技能(下):strace命令.mp4
│ 0.9系统调用错误处理.mp4
│ 0.10GNU编码风格.mp4
│ 0.11Linux哲学:一切皆文件.mp4
│ 0.12编程实战:音频播放器(上).mp4
│ 0.13编程实战:音频播放器(下).mp4
│ 0.14后续课程学习路线.mp4
│ 资料.zip
│
├─第01期:揭开文件系统的神秘面纱
│ 1.1本期课程规划.mp4
│ 1.2文件在磁盘上的存储(上).mp4
│ 1.3文件在磁盘上的存储(下).mp4
│ 1.4文件在Flash上的存储(上).mp4
│ 1.5文件在Flash上的存储(下).mp4
│ 1.6文件系统索引节点:inode.mp4
│ 1.7超级块:superblock.mp4
│ 1.8目录和目录项.mp4
│ 1.9文件路径解析.mp4
│ 1.10文件系统的挂载.mp4
│ 1.11文件系统类型.mp4
│ 1.12虚拟文件系统:VFS.mp4
│ 1.13文件描述符.mp4
│ 1.14文件指针.mp4
│ 1.15硬链接和软链接.mp4
│ 1.16一些命令.mp4
│ 1.17实验:磁盘格式化及挂载.mp4
│ 1.18实验:恢复删除的文件.mp4
│ 代码.zip
│
├─第02期:文件IO编程实战
│ 2.1本期课程简介.mp4
│ 2.2文件的打开模式.mp4
│ 2.3文件的读写权限.mp4
│ 2.4文件的读写函数.mp4
│ 2.5文件读写位置与定位.mp4
│ 2.6获取文件的属性信息.mp4
│ 2.7实现shell命令:ll.mp4
│ 2.8读取目录文件内容.mp4
│ 2.9实现ls命令:支持多个目录.mp4
│ 2.10实现ls命令:支持-c参数.mp4
│ 2.11音频播放器:实现循环列表播放.mp4
│ 2.12实现ls命令:支持-l参数.mp4
│ 2.13有关目录的其它操作.mp4
│ 2.14相对路径转绝对路径.mp4
│ 2.15编程实战:实现wc命令(上).mp4
│ 2.16编程实战:实现wc命令(中).mp4
│ 2.17编程实战:实现wc命令(下).mp4
│ 课件代码.zip
│
├─第03期:文件IO缓存与内存映射
│ 3.1缓存的基本概念.mp4
│ 3.2页高速缓存(上).mp4
│ 3.3页高速缓存(中).mp4
│ 3.4页高速缓存(下).mp4
│ 3.5块设备驱动架构.mp4
│ 3.6用户空间的IO缓存.mp4
│ 3.7Scatter_GatherIO.mp4
│ 3.8直接IO.mp4
│ 3.9将文件映射到内存.mp4
│ 3.10文件映射内存的实现.mp4
│ 3.11将设备映射到内存.mp4
│ 代码.zip
│
├─第04期:打通进程与终端的任督二脉
│ 4.1进程:程序运行的“牌照”.mp4
│ 4.2创建一个进程:fork.mp4
│ 4.3子进程的运行:借壳上市.mp4
│ 4.4写时复制与vfork.mp4
│ 4.5进程的退出:exi.mp4
│ 4.6进程的退出:exit与_exi.mp4
│ 4.7进程的退出:vfork与exi.mp4
│ 4.8等待子进程终止:wai.mp4
│ 4.9进程调度.mp4
│ 4.10进程状态.mp4
│ 4.11进程的UID和GID.mp4
│ 4.12通过proc查看进程资源.mp4
│ 4.13与进程通信:信号.mp4
│ 4.14终端与控制台.mp4
│ 4.15进程组与会话.mp4
│ 4.16前台进程和后台进程.mp4
│ 4.17守护进程.mp4
│ 4.18僵尸进程.mp4
│ 4.19孤儿进程.mp4
│ 4.20 0号进程和1号进程.mp4
│ 4.21小结:Linux进程全景图.mp4
│ 第04期资料.zip
│
├─第05期:进程间通信
│ 5.1什么是IPC?.mp4
│ 5.2无名管道(1):PIPE编程实例5.mp4
│ 5.3无名管道(2):shell中的管道实现.mp4
│ 5.4无名管道(3):通过管道与shell命令进行通信.mp4
│ 5.5无名管道(4):通过管道同步进程.mp4
│ 5.6命名管道:FIFO.mp4
│ 5.7FIFO应用:LOG日志系统的实现.mp4
│ 5.8FIFO应用:服务端与客户端通信.mp4
│ 5.9IPC对象和IPCkey.mp4
│ 5.10systemV消息队列.mp4
│ 5.11消息队列应用:点对点通信.mp4
│ 5.12消息队列应用:多人聊天室.mp4
│ 5.13systemV共享内存.mp4
│ 5.14systemV信号量.mp4
│ 5.15信号量编程应用:对共享内存的同步访问.mp4
│ 5.16信号量编程应用:生产者-消费者模型.mp4
│ 5.17POSIXIPC简介.mp4
│ 5.18消息队列(上):API编程实例.mp4
│ 5.19消息队列(中):异步通知.mp4
│ 5.20消息队列(下):内核实现.mp4
│ 5.21POSIX信号量.mp4
│ 5.22POSIX共享内存.mp4
│ 5.23文件锁.mp4
│ 5.24信号机制:signal.mp4
│ 5.25编写安全的信号处理函数.mp4
│ 5.26信号底层API:sigaction函数.mp4
│ 5.27Linux新增API:signalfd.mp4
│ 5.28Linux新增API:timerfd.mp4
│ 5.29Linux新增API:eventfd.mp4
│ 5.30D-BUS总线简介及小结.mp4
│ 课件代码.zip
│
├─第06期:从零实现一个shell解释器
│ 6.1什么是shell解释器.mp4
│ 6.2shell命令的执行过程.mp4
│ 6.3在子进程中运行shell命令.mp4
│ 6.4解析用户输入的命令并执行.mp4
│ 6.5代码优化及封装.mp4
│ 6.6打印彩色命令提示符.mp4
│ 6.7实现shell内建命令:cd.mp4
│ 6.8实现shell内建命令:exi.mp4
│ 6.9增加对信号的处理操作.mp4
│ 6.10支持进程的后台运行.mp4
│ 6.11实现shell的管道命令(上):思路分析.mp4
│ 6.12实现shell的管道命令(下):编码实现.mp4
│ 6.13实现脚本的解析和运行.mp4
│ 6.14实现shell脚本语法:if-else流程控制.mp4
│ 6.15shell变量的实现.mp4
│ 6.16设置shell的环境变量.mp4
│ 6.17实现shell的export命令.mp4
│ 6.18代码优化及小结.mp4
│ 代码.zip
│
├─第07期:多线程编程入门
│ 7.1多线程编程的概念.mp4
│ 7.2多线程学习准备工作.mp4
│ 7.3创建一个新线程:pthread_create.mp4
│ 7.4线程的终止.mp4
│ 7.5等待线程的终止.mp4
│ 7.6线程属性.mp4
│ 7.7线程的调度与运行.mp4
│ 7.8线程安全.mp4
│ 7.9线程同步:互斥锁.mp4
│ 7.10线程同步:条件变量(上).mp4
│ 7.11线程同步:条件变量(下).mp4
│ 7.12线程同步:读写锁.mp4
│ 7.13线程池的概念.mp4
│ 7.14超线程技术.mp4
│ 7.15线程的概念.mp4
│ 代码.zip
│
├─第08期:时间管理和定时器编程
│ 8.1时间的概念5.mp4
│ 8.2时间的计量.mp4
│ 8.3Linux系统中的时间管理.mp4
│ 8.4获取当前的时间.mp4
│ 8.5时间格式转换.mp4
│ 8.6将时间转换为字符串.mp4
│ 8.7用户指定格式的字符串.mp4
│ 8.8获取高精度时间:微秒.mp4
│ 8.9获取高精度时间:纳秒.mp4
│ 8.10Linux中的定时器:alarm.mp4
│ 8.11Linux中的定时器:intervaltimer.mp4
│ 8.12Linux中的定时器:POSIXtimer(上).mp4
│ 8.13Linux中的定时器:POSIXtimer(下).mp4
│ 课件代码.zip
│
└─练手项目:使用C语言实现协程
1.什么是协程?.mp4
2.协程的实现原理.mp4
3.保存和设置当前函数上下文.mp4
4.添加项目的Makefile.mp4
5.继续完善我们的API.mp4
6.使用POSIXAPI:getcontex.mp4
7.使用POSIXAPI:makecontex.mp4
8.使用POSIXAPI:swapcontex.mp4
9.使用swapcontext切换func1和func2.mp4
10.实现协程的API:coroutine_create.mp4
11.实现协程的API:coroutine_yield.mp4
12.实现协程的API:coroutine_resume.mp4
13.优化coroutine_yield的参数.mp4
14.支持给协程传递参数.mp4
15.修改协程栈为动态内存.mp4
16.支持用户指定协程栈大小.mp4
17.一个测试应用程序.mp4
代码.zip