getfromcode测试运维 会员免费

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

Linux 系统编程这门课,切入角度比较明确:不是泛泛讲 API 调用,而是从文件系统的底层结构讲起,一路延伸到进程、线程,最后落到一个可以真正跑起来的 shell 解释器。对于已经会写 Linux 应用、但对内核与用户态之间的那条边界只有模糊认识的开发者来说,这套内容的对照价值高于单纯的视频观看价

单课价¥29.90新品 上架
会员价 会员免费开通会员,全站课程按额度无限下载套餐详情
5 人关注 更新于 2026-09-08 永久有效
发货

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

保障

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

客服

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

支付成功后自动发货,可在「我的订单」查看网盘链接;链接失效可联系客服免费补链。

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

Linux 系统编程这门课,切入角度比较明确:不是泛泛讲 API 调用,而是从文件系统的底层结构讲起,一路延伸到进程、线程,最后落到一个可以真正跑起来的 shell 解释器。对于已经会写 Linux 应用、但对内核与用户态之间的那条边界只有模糊认识的开发者来说,这套内容的对照价值高于单纯的视频观看价值。

技术栈与学习前提

课程以 C 语言为主线,运行环境是标准的 Linux 发行版,涉及的系统调用覆盖 open/read/write 系列、fork/exec/wait 家族、pthread 线程库,以及文件系统相关的 stat、mount、inode 操作。看这门课之前,至少需要能独立写 C 程序、编译链接、用 gdb 或 strace 做基本排查,并且对「用户态调用系统调用」这件事有概念。如果此前只写过脚本语言,直接在虚拟机上跑一遍会比较吃力,建议先用 C 写过文件读写和简单的进程创建程序再来。

课程的结构逻辑

整体是沿着「存储 → 文件 → 进程 → 线程 → 解释器」这条线推进的。文件系统部分讲得比一般系统编程课更细:磁盘上的布局、Flash 上的差异、超级块、目录项的存储方式、挂载过程,这些内容在多数教程里会被 skip 掉,但恰恰是理解 inode 与 dentry、理解为什么删除文件后数据可能还在、理解 mount 行为的关键。进程与线程部分没有停在 API 介绍,而是会讲到进程地址空间、fork 的写时复制、线程同步原语在内核侧的支撑。最后一个 shell 解释器实现,是把前面这些机制串起来用的综合性练习,覆盖命令解析、进程创建、作业控制等环节。

几个可以单独拆出来复用的模块

  • 文件在磁盘与 Flash 上的存储对比,适合用来理解不同介质对文件系统设计的影响,做嵌入式存储方向的可以重点看。
  • 超级块、inode、目录项的层级关系,是排查「磁盘满但找不到大文件」「删除后空间未释放」这类问题的底层依据。
  • 磁盘格式化与挂载的实验,能让你对 /etc/fstab、mount 参数、loop 设备有实操层面的印象,而不是只记命令。
  • 恢复删除文件的实验,本质是对文件系统元数据结构的逆向使用,理解之后对数据恢复工具的原理也能有判断力。
  • shell 解释器部分,可以直接抽出来当自己写命令行工具或做作业控制的骨架参考。

适合的用法与自学路径

这门课不适合当背景音放着看。比较有效的方式是:每一节涉及系统调用的内容,都在自己的机器上写一个最小验证程序,用 strace 或 ltrace 观察实际调用序列,再对照课程里讲的机制去解释现象。文件系统那部分建议配合 dumpe2fs、debugfs 这类工具做验证,进程线程部分配合 /proc 下的进程信息看。shell 解释器那部分,可以自己先写一个能跑通简单命令的版本,再看课程的处理方式,对比差异。这样走一遍,比只看视频能留下更多可迁移的经验。

资料本身以视频为主,没有额外配套代码仓库的话,实验环节需要自己动手补齐验证代码,这也是这门课最值得投入时间的地方——机制理解了,代码写出来验证过,才算真正拿到手。

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

深入理解Linux系统编程核心机制

编辑点评

系统深入,理论与实践结合,适合进阶学习者。

⭐ 编辑推荐

从文件系统到进程管理,全面解析Linux内核编程。

✨ 课程亮点

✦文件系统原理
✦进程与线程编程
✦shell解释器实现
✦系统调用深入理解

课程目录

第01期:揭开文件系统的神秘面纱18 集
  • 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解释器18 集
  • 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期:打通进程与终端的任督二脉21 集
  • 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期:多线程编程入门11 集
  • 7.1 多线程编程的概念t.mp4 [14.6 MB]
  • 7.10 线程同步:条件变量(上).mp4 [61.2 MB]
  • 7.12 线程同步:读写锁.mp4 [84.0 MB]
  • 7.11 线程同步:条件变量(下).mp4 [37.9 MB]
  • 7.7 线程的调度与运行.mp4 [79.2 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.8 线程安全.mp4 [46.7 MB]
  • 7.13 线程池的概念.mp4 [24.9 MB]
第05期:进程间通信24 集
  • 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.19 消息队列(中):异步通知.mp4 [88.2 MB]
  • 5.2 无名管道(1):PIPE编程实例5.mp4 [134.3 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.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.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语言实现协程16 集
  • 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]
  • 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编程实战17 集
  • 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缓存与内存映射9 集
  • 3.5 块设备驱动架构.mp4 [76.3 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.4 页高速缓存(下).mp4 [72.6 MB]
  • 3.11 将设备映射到内存.mp4 [88.5 MB]
  • 3.10 文件映射内存的实现.mp4 [45.5 MB]
第08期:时间管理和定时器编程11 集
  • 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.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期:入门篇(免费观看)15 集
  • 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内核编程基础
  • 深入理解系统调用机制
  • 提升系统性能优化能力

🎉 祝您学习愉快!