飞豹客 · 课能看,资料也能带走
飞豹客测试运维 会员免费

【CSDN-王利涛】Linux 系统编程

如果你已经会写 Linux 命令、能看懂基本的 C 代码,但一遇到「文件为什么读不到」「进程卡住不退出」「共享内存怎么用」这类问题只能靠搜索和试错,那这门课值得花时间。它讲的是 Linux 系统编程,也就是程序怎么通过系统调用跟内核打交道——这是运维排查底层问题、测试写工具脚本、后端做性能优化都绕不

单课价¥29.90新品 上架
会员价 会员免费开通会员后本篇可直接下载套餐详情
112 人关注 更新于 2026-09-01 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

会员可免费下载本篇月会员可免费领取。

开通会员 ›
购买本课销量 0 · 永久有效
会员价 · 单课标价 ¥29.90

会员 · 按档位

永久免费可领
年免费可领
月免费可领

游客按标价购买,不享受上表折扣。

支付成功后自动发放网盘链接,链接失效可找客服免费补

正版保障 极速发货 售后无忧

如果你已经会写 Linux 命令、能看懂基本的 C 代码,但一遇到「文件为什么读不到」「进程卡住不退出」「共享内存怎么用」这类问题只能靠搜索和试错,那这门课值得花时间。它讲的是 Linux 系统编程,也就是程序怎么通过系统调用跟内核打交道——这是运维排查底层问题、测试写工具脚本、后端做性能优化都绕不开的一块。

它解决的是哪些具体场景

日常工作中几类反复出现的麻烦,正好落在这门课的范围内:磁盘空间没满但写入失败,需要从 inode、超级块、目录项这些概念去定位;程序跑着跑着变成僵尸进程,得弄清楚 fork、exec、wait 的配合关系;做压测或并发验证时,要自己写多线程、进程间通信的小工具;还有排查文件被删却仍占空间、挂载点异常这类问题,靠的是对文件系统布局的理解,而不是背命令。

课程把这些场景拆成了文件系统和进程两条主线,前者从文件在磁盘、Flash 上的存储讲起,一路到挂载、目录结构,还包含恢复被删文件、磁盘格式化与挂载这类动手实验;后者覆盖进程与线程编程、系统调用的使用方式,最后落到自己实现一个 shell 解释器。这个收尾比较实在——能把进程创建、输入解析、命令执行串起来,说明前面学的不是孤立知识点。

学完能独立做什么

  • 读懂并写出使用 open、read、write、mmap、fork、exec、pthread 等接口的 C 程序,而不是只会调用封装好的库。
  • 遇到文件读写异常、进程状态异常时,能从系统调用返回值、errno、内核数据结构的角度判断原因。
  • 动手实现一个可运行的简易 shell,理解命令行程序背后的执行流程。
  • 完成磁盘挂载、格式化、文件恢复这类实验操作,对文件系统在真实设备上的行为有直观认识。

需要说明的是,这门课偏向机制和原理,不是速查手册。学完不会立刻让你变成内核开发者,但会让你在排查和写工具时少一些「不知道为什么」。

资料适合什么基础

前置要求有三个:能熟练使用 Linux 命令行,会写基础 C(指针、结构体、函数),了解进程和文件的基本概念。如果 C 还不熟,直接看进程和内存部分会比较吃力,建议先把 C 补到能独立写小程序的水平。

课程内容偏进阶,纯新手或只想学几条运维命令的人不合适;反过来,已经做过一两年运维或测试、想往底层走的人,收获会更明显。视频按主题分期组织,文件系统部分概念密集,进程部分代码量大,建议按顺序看,不要跳着刷。

怎么用这套资料

比较有效的做法是「看一节、敲一节」。文件系统和进程的接口,光看讲解印象很浅,自己把示例代码跑一遍、改几个参数观察结果,理解会扎实很多。每期的实验环节别跳过,磁盘格式化和文件恢复这类操作,亲手做过一次比看十遍讲解有用。

时间安排上,可以按周推进:一周吃透文件系统的存储与挂载,一周做恢复和格式化实验,再用两到三周啃进程、线程和系统调用,最后留时间把 shell 解释器自己实现一遍。过程中遇到不懂的接口,配合 man 手册查,比反复回看视频效率高。

最后提醒一句:这门课的价值在于帮你建立「程序如何与内核交互」的框架,学完之后仍需要在实际项目和故障排查中反复用,才能真正变成自己的能力。如果只是想收藏一份资料求安心,它大概率会一直躺在硬盘里。

课程目录

第01期:揭开文件系统的神秘面纱187 集
  • 1.10 文件系统的挂载.mp4
  • [76.5 MB] 1.7 超级块:superblock【资源精选‖更多关注:CunworkNotes】.mp4
  • [95.8 MB] 1.3 文件在磁盘上的存储(下).mp4
  • [44.2 MB] 1.5 文件在Flash上的存储(下).mp4
  • [60.1 MB] 1.8 目录和目录项.mp4
  • [71.7 MB] 1.18 实验:恢复删除的文件t.mp4
  • [87.5 MB] 1.17 实验:磁盘格式化及挂载.mp4
  • [81.4 MB] 1.15 硬链接和软链接.mp4
  • [84.8 MB] 1.4 文件在Flash上的存储(上).mp4
  • [173.8 MB] 1.9 文件路径解析.mp4
  • [79.0 MB] 1.2 文件在磁盘上的存储(上)t.mp4
  • [64.8 MB] 1.6 文件系统索引节点:inode.mp4
  • [72.4 MB] 1.12 虚拟文件系统:VFS.mp4
  • [48.3 MB] 1.16 一些命令.mp4
  • [76.5 MB] 1.1 本期课程规划t.mp4
  • [66.9 MB] 1.13 文件描述符.mp4
  • [57.9 MB] 1.11 文件系统类型.mp4
  • [63.6 MB] 1.14 文件指针.mp4
  • [71.6 MB] 📁 第06期:从零实现一个shell解释器 6.4 解析用户输入的命令并执行.mp4
  • [145.5 MB] 6.7 实现shell内建命令:cd【整理不易‖记得关注:CunWorKNotes】.mp4
  • [125.6 MB] 6.15 shell变量的实现.mp4
  • [149.7 MB] 6.3 在子进程中运行shell命令.mp4
  • [82.1 MB] 6.8 实现shell内建命令:exit.mp4
  • [98.1 MB] 6.13 实现脚本的解析和运行.mp4
  • [85.8 MB] 6.10 支持进程的后台运行.mp4
  • [131.0 MB] 6.16 设置shell的环境变量.mp4
  • [249.8 MB] 6.11 实现shell的管道命令(上):思路分析.mp4
  • [87.9 MB] 6.17 实现shell的export命令.mp4
  • [106.0 MB] 6.12 实现shell的管道命令(下):编码实现.mp4
  • [148.8 MB] 6.6 打印彩色命令提示符.mp4
  • [142.6 MB] 6.18 代码优化及小结.mp4
  • [98.7 MB] 6.2 shell命令的执行过程t.mp4
  • [28.7 MB] 6.14 实现shell脚本语法:if-else流程控制.mp4
  • [259.0 MB] 6.5 代码优化及封装.mp4
  • [143.8 MB] 6.1 什么是shell解释器t.mp4
  • [46.1 MB] 6.9 增加对信号的处理操作.mp4
  • [82.1 MB] 📁 第04期:打通进程与终端的任督二脉 4.4 写时复制与vfork【持续更新‖免费提供:CunworknoteS】.mp4
  • [96.5 MB] 4.8 等待子进程终止:wait【优质资源‖关注:cunWorkNotes 解锁】.mp4
  • [84.2 MB] 4.20 0号进程和1号进程【不易整理‖请关注:CunWorkNoteS】.mp4
  • [171.1 MB] 4.13 与进程通信:信号【整理不易‖记得关注:CunWorKNotes】.mp4
  • [107.3 MB] 4.14 终端与控制台.mp4
  • [133.6 MB] 4.12 通过proc查看进程资源【更多精选‖公众号:CunWorknotes】 .mp4
  • [143.2 MB] 4.7 进程的退出:vfork与exit.mp4
  • [36.6 MB] 4.5 进程的退出:exit.mp4
  • [179.2 MB] 4.21 小结:Linux进程全景图.mp4
  • [163.5 MB] 4.11 进程的UID和GID.mp4
  • [188.2 MB] 4.2 创建一个进程:fork t.mp4
  • [79.3 MB] 4.19 孤儿进程.mp4
  • [88.6 MB] 4.3 子进程的运行:借壳上市.mp4
  • [245.4 MB] 4.16 前台进程和后台进程.mp4
  • [71.5 MB] 4.10 进程状态.mp4
  • [84.1 MB] 4.15 进程组与会话.mp4
  • [193.6 MB] 4.1 进程:程序运行的“牌照”t.mp4
  • [78.1 MB] 4.17 守护进程.mp4
  • [147.6 MB] 4.6 进程的退出:exit与_exit.mp4
  • [108.1 MB] 4.18 僵尸进程.mp4
  • [49.9 MB] 4.9 进程调度.mp4
  • [171.6 MB] 📁 第07期:多线程编程入门 7.1 多线程编程的概念t.mp4
  • [14.6 MB] 7.10 线程同步:条件变量(上).mp4
  • [61.2 MB] 7.6 线程属性.mp4
  • [61.5 MB] 7.12 线程同步:读写锁.mp4
  • [84.0 MB] 7.11 线程同步:条件变量(下).mp4
  • [37.9 MB] 7.7 线程的调度与运行.mp4
  • [79.2 MB] 7.4 线程的终止.mp4
  • [49.1 MB] 7.9 线程同步:互斥锁.mp4
  • [61.1 MB] 7.2 多线程学习准备工作t.mp4
  • [19.6 MB] 7.5 等待线程的终止.mp4
  • [67.7 MB] 7.3 创建一个新线程:pthread_create.mp4
  • [53.0 MB] 7.14 超线程技术.mp4
  • [66.6 MB] 7.8 线程安全.mp4
  • [46.7 MB] 7.15 线程的概念.mp4
  • [57.2 MB] 7.13 线程池的概念.mp4
  • [24.9 MB] 📁 第05期:进程间通信 5.5 无名管道(4):通过管道同步进程.mp4
  • [144.6 MB] 5.29 Linux新增API:eventfd【整理不易‖记得关注:CunWorKNotes】.mp4
  • [109.6 MB] 5.28 Linux新增API:timerfd【资源精选‖更多关注:CunworkNotes】.mp4
  • [108.3 MB] 5.30 D-BUS总线简介及小结【整理不易‖记得关注:CunWorKNotes】.mp4
  • [118.5 MB] 5.16 信号量编程应用:生产者-消费者模型【持续更新‖免费提供:CunworknoteS】.mp4
  • [93.4 MB] 5.12 消息队列应用:多人聊天室【更多精选‖公众号:CunWorknotes】 .mp4
  • [165.2 MB] 5.1 什么是IPC?t【资源精选‖更多关注:CunworkNotes】.mp4
  • [102.5 MB] 5.20 消息队列(下):内核实现.mp4
  • [185.4 MB] 5.
  • 21 POSIX 信号量.mp4
  • [114.2 MB] 5.
  • 17 POSIX IPC简介.mp4
  • [28.3 MB] 5.19 消息队列(中):异步通知.mp4
  • [88.2 MB] 5.2 无名管道(1):PIPE编程实例5.mp4
  • [134.3 MB] 5.
  • 14 system V 信号量.mp4
  • [179.1 MB] 5.18 消息队列(上):API编程实例.mp4
  • [186.4 MB] 5.
  • 13 system V 共享内存.mp4
  • [147.1 MB] 5.11 消息队列应用:点对点通信.mp4
  • [72.6 MB] 5.15 信号量编程应用:对共享内存的同步访问.mp4
  • [88.6 MB] 5.
  • 10 system V 消息队列.mp4
  • [219.0 MB] 5.
  • 22 POSIX 共享内存.mp4
  • [183.1 MB] 5.27 Linux新增API:signalfd.mp4
  • [110.0 MB] 5.7 FIFO应用:LOG日志系统的实现.mp4
  • [71.1 MB] 5.26 信号底层API:sigaction函数.mp4
  • [267.0 MB] 5.4 无名管道(3):通过管道与shell命令进行通信.mp4
  • [61.2 MB] 5.25 编写安全的信号处理函数.mp4
  • [87.2 MB] 5.24 信号机制:signal.mp4
  • [141.0 MB] 5.9 IPC 对象和 IPC key.mp4
  • [114.2 MB] 5.23 文件锁.mp4
  • [158.2 MB] 5.6 命名管道:FIFO.mp4
  • [91.9 MB] 5.8 FIFO应用:服务端与客户端通信.mp4
  • [207.7 MB] 5.3 无名管道(2):shell中的管道实现.mp4
  • [140.5 MB] 📁 练手项目:使用C语言实现协程 10. 实现协程的API:coroutine_create.mp4
  • [91.4 MB] 15. 修改协程栈为动态内存.mp4
  • [39.4 MB] 7. 使用POSIX API:makecontext【不易整理‖请关注:CunWorkNoteS】.mp4
  • [62.7 MB] 16. 支持用户指定协程栈大小.mp4
  • [36.2 MB] 8. 使用POSIX API:swapcontext.mp4
  • [45.1 MB] 11. 实现协程的API:coroutine_yield.mp4
  • [79.3 MB] 1. 什么是协程?t【公重号:CunWorkNotes】.mp4
  • [19.5 MB] 9. 使用swapcontext切换func1和func2.mp4
  • [63.2 MB] 14. 支持给协程传递参数.mp4
  • [72.1 MB] 17. 一个测试应用程序.mp4
  • [69.1 MB] 13. 优化coroutine_yield的参数.mp4
  • [40.0 MB] 6. 使用POSIX API:getcontext.mp4
  • [40.9 MB] 4.添加项目的Makefile.mp4
  • [20.9 MB] 5. 继续完善我们的API.mp4
  • [36.9 MB] 12. 实现协程的API:coroutine_resume.mp4
  • [39.3 MB] 2.协程的实现原理t.mp4
  • [17.4 MB] 3. 保存和设置当前函数上下文.mp4
  • [125.2 MB] 📁 第02期:文件IO编程实战 2.6 获取文件的属性信息.mp4
  • [121.4 MB] 2.3 文件的读写权限t【更多精选‖公众号:CunWorknotes】 .mp4
  • [131.8 MB] 2.7 实现shell命令:ll.mp4
  • [265.3 MB] 2.13 有关目录的其它操作.mp4
  • [30.5 MB] 2.
  • 15 编程实战:实现 wc 命令(上).mp4
  • [119.6 MB] 2.
  • 16 编程实战:实现 wc 命令(中).mp4
  • [102.4 MB] 2.1 本期课程简介t.mp4
  • [109.3 MB] 2.10 实现ls命令:支持-c参数.mp4
  • [152.8 MB] 2.14 相对路径转绝对路径.mp4
  • [37.6 MB] 2.12 实现ls命令:支持-l参数.mp4
  • [257.8 MB] 2.11 音频播放器:实现循环列表播放.mp4
  • [147.5 MB] 2.
  • 17 编程实战:实现 wc 命令(下).mp4
  • [234.5 MB] 2.2 文件的打开模式t.mp4
  • [195.1 MB] 2.4 文件的读写函数.mp4
  • [98.9 MB] 2.9 实现ls命令:支持多个目录.mp4
  • [61.7 MB] 2.5 文件读写位置与定位.mp4
  • [99.5 MB] 2.8 读取目录文件内容.mp4
  • [94.8 MB] 📁 第03期:文件IO缓存与内存映射 3.5 块设备驱动架构.mp4
  • [76.3 MB] 3.7 Scatter_Gather IO.mp4
  • [61.1 MB] 3.9 将文件映射到内存【资源精选‖更多关注:CunworkNotes】.mp4
  • [61.8 MB] 3.3 页高速缓存(中).mp4
  • [113.7 MB] 3.1 缓存的基本概念t.mp4
  • [36.9 MB] 3.6 用户空间的IO缓存.mp4
  • [86.1 MB] 3.2 页高速缓存(上)t.mp4
  • [107.0 MB] 3.8 直接IO.mp4
  • [47.0 MB] 3.4 页高速缓存(下).mp4
  • [72.6 MB] 3.11 将设备映射到内存.mp4
  • [88.5 MB] 3.10 文件映射内存的实现.mp4
  • [45.5 MB] 📁 第08期:时间管理和定时器编程 8.1 时间的概念5.mp4
  • [11.0 MB] 8.
  • 13 Linux中的定时器:POSIX timer(下)【资源精选‖更多关注:CunworkNotes】.mp4
  • [50.5 MB] 8.4 获取当前的时间【资源精选‖更多关注:CunworkNotes】.mp4
  • [24.0 MB] 8.5 时间格式转换【优质资源‖关注:cunWorkNotes 解锁】.mp4
  • [57.8 MB] 8.7 用户指定格式的字符串.mp4
  • [49.9 MB] 8.9 获取高精度时间:纳秒.mp4
  • [53.9 MB] 8.8 获取高精度时间:微秒.mp4
  • [28.5 MB] 8.6 将时间转换为字符串.mp4
  • [31.1 MB] 8.3 Linux系统中的时间管理.mp4
  • [25.6 MB] 8.2 时间的计量.mp4
  • [40.4 MB] 8.10 Linux中的定时器:alarm.mp4
  • [39.0 MB] 8.
  • 11 Linux中的定时器:interval timer.mp4
  • [44.0 MB] 8.
  • 12 Linux中的定时器:POSIX timer(上).mp4
  • [67.9 MB] 📁 第00期:入门篇(免费观看) 0.5 POSIX标准【更多精选‖公众号:CunWorknotes】 .mp4
  • [43.2 MB] 0.7 系统编程必备技能(中):info命令.mp4
  • [35.8 MB] 0.14 后续课程学习路线t.mp4
  • [16.4 MB] 0.2 一个系统编程的例子(上)t.mp4
  • [91.9 MB] 0.3 一个系统编程的例子(下)t.mp4
  • [51.9 MB] 0.13 编程实战:音频播放器(下)t.mp4
  • [48.0 MB] 0.10 GNU编码风格.mp4
  • [58.5 MB] 0.12 编程实战:音频播放器(上).mp4
  • [78.3 MB] 0.1 什么是系统编程t?.mp4
  • [66.2 MB] 0.11 Linux哲学:一切皆文件.mp4
  • [47.2 MB] 0.9 系统调用错误处理.mp4
  • [50.5 MB] 0.4 系统调用与C标准库.mp4
  • [98.1 MB] 0.8 系统编程必备技能(下):strace命令.mp4
  • [70.8 MB] 0.6 系统编程必备技能(上):man命令.mp4
  • [73.8 MB] Linux系统编程视频教程配套文档代码.rar [37.8 MB] 适合人群 Linux系统爱好者 系统编程开发者 计算机专业学生 学习收获 掌握Linux内核编程基础 深入理解系统调用机制 提升系统性能优化能力 祝您学习愉快! 学有所成,前程似锦!