getfromcode后端开发 会员免费

现代操作系统: 原理与实现作者录制的视频

这门课程的主题是现代操作系统的原理与实现,作者本人录制的视频讲解,配合一套实验环境。它不是那种把概念念一遍就完事的概论课,而是沿着「硬件抽象—内核结构—内存管理—进程与同步—文件与设备—虚拟化与安全—测试与调优」这条主线,一层一层把设计动机和工程取舍讲清楚。对于已经写过一些用户态程序、但对内核里到底

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

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

保障

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

客服

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

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

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

这门课程的主题是现代操作系统的原理与实现,作者本人录制的视频讲解,配合一套实验环境。它不是那种把概念念一遍就完事的概论课,而是沿着「硬件抽象—内核结构—内存管理—进程与同步—文件与设备—虚拟化与安全—测试与调优」这条主线,一层一层把设计动机和工程取舍讲清楚。对于已经写过一些用户态程序、但对内核里到底发生了什么只有模糊印象的开发者来说,这类内容的密度刚好卡在一个能落地对照的位置:每一块原理后面,大致都能对应到一段可以动手验证的机制。

这门课到底解决什么问题

多数人学操作系统的痛点不是「听不懂」,而是「接不上」。教材上讲分页、讲中断、讲调度,看上去都懂,一旦要自己写驱动、调内核参数、看性能火焰图,或者面试被追问一句「为什么这里要用写时复制」,脑子里就空了。根本原因在于知识是以章节为单位输入的,而系统是以调用链和状态机的方式运行的。这门课在结构上试图弥合的正是这条裂缝:先讲清楚体系结构侧的前置条件,比如 AArch64 的寄存器约定、异常级别与中断向量,再往上叠加内核如何利用这些硬件设施构建抽象。

另一个它着力处理的问题是「过度简化」。很多入门材料会把调度讲成一个优先级队列,把内存讲成一张页表,把锁讲成一个互斥量。但真实系统里,调度要考虑多核负载均衡和 NUMA 亲和,内存要处理分配器的碎片与可扩展性,锁在缓存一致性协议下会退化成总线上的争用。课程在同步与多核这一块专门展开了缓存一致性、可扩展性、MCS 锁等内容,说明它并不满足于给出一个能跑通的最小模型,而是想让读者理解为什么生产级内核的代码长成那样。

适合什么基础的人看

前置要求可以分成三档来判断。必要的是 C 语言能力,尤其是结构体、指针、位运算和函数指针这几块,因为内核代码里大量使用不透明句柄、回调注册和位图操作。其次是对计算机组成原理的基本认知,知道寄存器、栈、地址空间、缓存层级这些概念是什么,不要求你手写过汇编,但要能看懂一段简单的汇编在做什么。最后是基本的 Linux 使用经验,会用命令行、编译、跑程序、看日志,否则实验环节会很吃力。

如果你的目标只是应付考试或者了解名词,这门课的深度是过剩的。它更适合两类人:一类是准备往系统方向走的学生,想在大三之前把内核的骨架搭起来;另一类是做后端或基础架构的工程师,日常在跟性能、并发、内存打交道,但底层细节一直是黑盒。这两类人看同一份内容,关注点会不同,前者需要按顺序把体系结构和内存管理打牢,后者可以先把进程、同步、文件系统这几块捡起来,再回头补硬件部分。

建议先看哪几块

如果时间有限,我建议的判断顺序是:先花一点时间过一遍导论性质的章节,把「为什么学」「面临什么挑战」这类问题当作给自己定锚,明确后面每一块知识是为了解决哪一类矛盾。紧接着直接进入体系结构与中断异常这两部分,这是后面所有内容的公共底座——不理解异常级别和中断处理流程,后面看进程上下文切换和系统调用入口就会一头雾水。

之后就分两条线推进。一条是内存线:从虚拟内存的功能和基于分页的机制入手,理解地址翻译、缺页处理,再到物理内存的分配与管理,看分配器如何在性能和碎片之间取舍。另一条是执行线:进程的基本操作接口、进程与线程调度、进程间通信。这两条线看似独立,但在页表切换、内核栈、上下文保存这些点上会交汇。文件系统与设备这两块可以放在后面,因为它们依赖前面建立的抽象,虚拟文件系统、驱动模型、设备树这些内容单独看会觉得零散,放到整体结构里就顺了。

虚拟化和安全这两部分,属于「有余力再看」的范畴,但含金量不低。CPU 虚拟化的软件与硬件方法、QEMU 与 KVM 的分工、IO 虚拟化和性能隔离,这些是云计算基础设施的核心命题,理解之后再看容器和虚拟机的关系会清楚很多。安全部分从访问控制到侧信道,覆盖面比较宽,适合当作专题去啃,不必强求一次贯通。

学完能独立做什么

一个比较现实的预期是:你能独立读懂一个中小规模内核或 hypervisor 的关键路径代码,能定位系统调用从用户态陷入到内核处理再返回的完整链路,能解释一次缺页中断从触发到页表更新发生了什么。在调试层面,你会具备看内核日志、理解 Oops 信息、使用调试器支持来分析问题的能力,而不是遇到内核问题就束手无策。

更进一步,你可以尝试做一些小型但完整的改造:实现一个自定义的系统调用并打通调用链,写一个字符设备驱动把设备树里的节点和自己的驱动挂上,调整调度参数观察多核下的行为变化,或者在虚拟化环境下验证 CPU 虚拟化的两种方法在性能上的差异。这些都不是玩具级的练习,而是真实系统里会出现的任务,区别只在于规模。做到这一步,你对操作系统的理解就不再是「看过」,而是「动过手、踩过坑、知道边界在哪」。

资料怎么配合练习

实验环境是这套资料里价值最高的部分,别把它当成可选项。正确的用法是「边看边改」:看完一个机制的原理,立刻到实验环境里找到对应的代码路径,改一行、加一个打印、跑一遍、观察输出变化。比如看完中断处理,就去数一数一次系统调用到底经过了多少层封装;看完物理内存分配,就去统计一段时间内的分配请求分布,看看分配器的行为是否符合预期。这种带着问题去读代码的方式,效率远高于被动观看。

节奏上不建议追求一次看完。这套内容跨度大,从体系结构一直铺到侧信道和持久性内存,一次性消化很容易中途掉线。可以按主题切成若干轮:第一轮只求建立整体结构,把各模块之间的关系理清楚;第二轮挑一到两个方向深入,配合实际编码;第三轮再回到那些当时跳过的专题,比如性能隔离、测试方法、新型应用接口。每一轮结束后,用自己的话把这条链路的因果写下来,写不出来就说明还没真的理解。资料里的实验环境和讲解视频是配套的,缺了动手这一环,剩下的就只是概念记忆,而概念记忆恰恰是这门课最不稀缺的东西。

课程目录

实验环境78 集
  • 2.2 AArch64体系结构.mp4 [138.7 MB]
  • 6.1 进程_线程调度.mp4 [63.5 MB]
  • 4.3 虚拟内存功能【更多精选‖公众号:CunWorknotes】 .mp4 [17.9 MB]
  • 2.4 中断与异常的概念【优质资源‖关注:cunWorkNotes 解锁】.mp4 [149.7 MB]
  • 3.2 微内核架构.mp4 [98.7 MB]
  • 4.2 基于分页的虚拟内存(第二部分)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [103.6 MB]
  • 4.4 物理内存分配与管理.mp4 [44.9 MB]
  • 5.2 进程的基本操作接口(上).mp4 [46.1 MB]
  • 15.8 操作系统新型测试方法.mp4 [23.4 MB]
  • 5.3 进程的基本操作接口(下).mp4 [19.2 MB]
  • 7.1 进程间通信背景和基础.mp4 [29.4 MB]
  • 12.6 不同架构网络对比.mp4 [10.7 MB]
  • 15.4 多核同步原语.mp4 [20.7 MB]
  • 14.2 操作系统的调试器支持【资源精选‖更多关注:CunworkNotes】.mp4 [22.4 MB]
  • 14.5 测试的基本原则和方法【不易整理‖请关注:CunWorkNoteS】.mp4 [45.0 MB]
  • 13.9 侧信道攻击与防御.mp4 [22.1 MB]
  • 15.5 持久性内存【整理不易‖记得关注:CunWorKNotes】.mp4 [21.7 MB]
  • 15.3 新的应用接口.mp4 [24.7 MB]
  • 13.8 侧信道与隐秘信道【整理不易‖记得关注:CunWorKNotes】.mp4 [38.1 MB]
  • 7.7 轻量级远程方法调用LRPC.mp4 [27.2 MB]
  • 9.5 文件系统高级功能.mp4 [39.6 MB]
  • 9.4 虚拟文件系统(VFS).mp4 [52.7 MB]
  • 8.8 缓存一致性【整理不易‖记得关注:CunWorKNotes】.mp4 [94.0 MB]
  • 8.7 性能可扩展性【更多精选‖公众号:CunWorknotes】 .mp4 [39.4 MB]
  • 1.3 操作系统面临的挑战.mp4 [69.0 MB]
  • 1.2 为什么学习操作系统【整理不易‖记得关注:CunWorKNotes】.mp4 [126.9 MB]
  • 10.1 璁惧姒傝堪.mp4 [124.2 MB]
  • 10.6 设备树【更多精选‖公众号:CunWorknotes】 .mp4 [24.8 MB]
  • 10.5 驱动模型【不易整理‖请关注:CunWorkNoteS】.mp4 [110.5 MB]
  • 11.10 IO虚拟化(下)【持续更新‖免费提供:CunworknoteS】.mp4 [34.5 MB]
  • 11.4 基于软件的CPU虚拟化方法.mp4 [36.2 MB]
  • 11.6 虚拟机与虚拟处理器.mp4 [57.4 MB]
  • 12.3 Linux协议栈总结.mp4 [22.0 MB]
  • 11.8 内存虚拟化.mp4 [50.8 MB]
  • 11.9 IO虚拟化(上).mp4 [60.8 MB]
  • 11.3 如何实现系统虚拟化.mp4 [26.6 MB]
  • 11.5 硬件虚拟化.mp4 [45.2 MB]
  • 11.2 什么是系统虚拟化.mp4 [41.2 MB]
  • 11.16 妗堜緥锛歋erverless骞冲彴.mp4 [24.0 MB]
  • 11.15 Linux容器(下).mp4 [35.2 MB]
  • 11.14 Linux容器(上).mp4 [59.0 MB]
  • 11.12 轻量级虚拟化-综述.mp4 [39.0 MB]
  • 11.11 中断虚拟化.mp4 [24.6 MB]
  • 10.7 Linux上下部.mp4 [74.1 MB]
  • 11.1 系统虚拟化的优势.mp4 [25.3 MB]
  • 10.3 中断管理.mp4 [128.1 MB]
  • 10.4 璁惧椹卞姩.mp4 [16.3 MB]
  • 1.1 操作系统的定义.mp4 [301.0 MB]
  • 10.2 系统与设备的交互方式.mp4 [21.5 MB]
  • 1.4 案例:Apple操作系统技术演进.mp4 [40.7 MB]
  • 9.7 日志.mp4 [120.2 MB]
  • 9.1 基于inode的文件系统.mp4 [68.3 MB]
  • 9.9 日志文件系统.mp4 [41.2 MB]
  • 9.8 鍐欐椂澶嶅埗.mp4 [56.4 MB]
  • 9.2 基于inode文件系统的基本操作.mp4 [26.5 MB]
  • 大纲.txt [10.9 KB]
  • 9.11 新型文件系统:瓦式磁盘.mp4 [149.8 MB]
  • 9.10 新型文件系统:闪存.mp4 [192.2 MB]
  • 9.3 基于Table的文件系统.mp4 [41.0 MB]
  • 7.8 ChCore进程间通信.mp4 [10.7 MB]
  • 8.2 互斥锁的软件实现与硬件实现.mp4 [89.2 MB]
  • 8.11 内存模型.mp4 [83.1 MB]
  • 8.10 非一致内存访问.mp4 [88.0 MB]
  • 7.4 消息传递的问题与解决方法.mp4 [46.1 MB]
  • 7.5 Unix管道.mp4 [55.3 MB]
  • 15.1 操作系统研究.mp4 [22.6 MB]
  • 14.1 调试器的基本原理.mp4 [67.1 MB]
  • 15.6 鏅鸿兘缃戝崱.mp4 [20.8 MB]
  • 15.7 系统安全隔离.mp4 [12.8 MB]
  • 15.2 异构操作系统.mp4 [44.4 MB]
  • 13.6 操作系统内部安全.mp4 [41.8 MB]
  • 14.6 Linux安全漏洞修复流程.mp4 [23.3 MB]
  • 13.11 不可信操作系统与Enclave.mp4 [26.6 MB]
  • 13.7 案例-IOS的系统安全.mp4 [25.1 MB]
  • 12.1 Linux网络收包概述.mp4 [63.8 MB]
  • 13.3 访问控制(下).mp4 [40.1 MB]
  • 13.2 访问控制(上).mp4 [32.4 MB]
  • 12.2 Linux网络包管理.mp4 [68.5 MB]