这门课到底解决什么工作场景 多数人想学操作系统,是被「面试要问」或「想搞懂底层」推着来的,但真打开教材又容易停在进程、线程、页表这些名词上。这门手写操作系统实战课的价值在于:它不要求你先啃完一本理论书再动手,而是把内存管理、进程调度、文件系统、IO 这几块拆成可运行的代码片段,让你在一个能跑起来的小内核里看到每个机制实际长什么样。学完之后,你至少能读懂一段…
多数人想学操作系统,是被「面试要问」或「想搞懂底层」推着来的,但真打开教材又容易停在进程、线程、页表这些名词上。这门手写操作系统实战课的价值在于:它不要求你先啃完一本理论书再动手,而是把内存管理、进程调度、文件系统、IO 这几块拆成可运行的代码片段,让你在一个能跑起来的小内核里看到每个机制实际长什么样。学完之后,你至少能读懂一段内核代码在做什么,面试里被追问「缺页中断怎么处理」「进程切换时保存了哪些寄存器」时,心里有具体的执行路径,而不是背下来的定义。
这是判断一门体系课值不值得投入的关键。按课程覆盖的范围,学完之后你应当能独立完成这几件事:
注意,这里的「操作系统」是教学用的简化内核,不是能替代 Linux 的东西。它的作用是让抽象概念落地,而不是让你去做发行版。带着这个预期学,收获会更实在。
从目录结构看,光页面置换就铺了最优算法、先进先出、最近最久未使用、时钟置换、最不常用,再到工作集置换、缺页率置换,最后收在抖动和负载控制上。这条线不是随便排的:先讲单页怎么换,再讲整个系统怎么避免频繁换页,最后落到负载这个真实系统里绕不开的问题。如果你之前死在「各种置换算法记混了」这一步,按这个顺序走一遍,会比刷题背结论清楚得多。其他几块——进程、文件、IO——也是同样的思路,先给机制,再给取舍。
这门课不适合完全没写过 C 的人。涉及指针、结构体、内存布局的地方很多,汇编部分虽然量不大,但至少要能看懂寄存器操作和栈的变化。如果你写过几百行 C、了解基本的计算机组成(知道 CPU、内存、总线大概怎么协作),跟起来会比较顺。反过来,如果你已经做过内核相关的项目,这门课的大部分内容会显得偏基础,更适合当参考而不是主线。
别把它当刷剧。视频一集不长,但真正花时间的是自己把代码敲一遍、跑一遍、改坏再修好。建议按模块推进:内存、进程、文件、IO 各成一段,每段结束后合上视频,自己从空白文件复现一遍关键逻辑。卡住的地方再回去看对应章节,比顺着看一遍效果好得多。如果你时间有限,优先吃透内存管理和进程管理这两块,面试和日常排查问题用到的频率最高。
深入理解操作系统原理,实战掌握内核开发
从内存管理到文件系统,从进程管理到IO系统,全面覆盖操作系统核心知识,实战项目让你亲手搭建操作系统。
本课程通过手写操作系统的方式,深入浅出地讲解操作系统原理,带你从零开始,亲手搭建一个简单的操作系统。
9.5 工作集置换算法_72662_6820.mp4 [117.2 MB] 9.6 缺页率置换算法_72662_5725.mp4 [59.5 MB] 9.7 抖动和负载控制_72662_2078.mp4 [34.6 MB] 9.3 时钟置换算法和最不常用算法_72662_7433.mp4 [154.8 MB] 9.2 最优算法、先进先出算法和最近最久未使用算法_72662_1141.mp4 [167.2 MB] 9.4 Belady现象和局部置换算法比较_72662_6863.mp4 [97.5 MB] 8.6 缂洪〉寮傚父_72662_5760.mp4 [69.2 MB] 9.1 页面置换算法的概念_72662_6413.mp4 [66.4 MB] 8.5 虚拟页式存储_72662_7671.mp4 [98.7 MB] 8.4 虚拟存储概念_72662_7867.mp4 [38.7 MB] 8.3 局部性原理_72662_4057.mp4 [71.1 MB] 8.2 瑕嗙洊鍜屼氦鎹72662_9269.mp4 [88.0 MB] 7.5 演示lab2实验环节_72662_9786.mp4 [113.2 MB] 8.1 虚拟存储的需求背景_72662_6606.mp4 [71.6 MB] 7.4 了解ucore建立段_页表_72662_2402.mp4 [103.1 MB] 7.3 浜嗚В娈礯椤佃〃_72662_7256.mp4 [66.6 MB] 7.2 了解特权级切换过程_72662_4939.mp4 [134.4 MB] 7.1 了解x86保护模式中的特权级_72662_3623.mp4 [96.7 MB] 学堂在线-手写操作系统实战课程文档.png [493.5 KB] 6.7 段页式存储管理_72662_3119.mp4 [40.1 MB] 6.5 快表和多级页表_72662_9880.mp4 [52.2 MB] 6.4 椤佃〃姒傝堪_72662_2681.mp4 [62.1 MB] 6.3 页式存储管理_72662_2042.mp4 [59.4 MB] 6.2 段式存储管理_72662_7471.mp4 [42.5 MB] 6.1 非连续内存分配的需求背景_72662_4074.mp4 [62.8 MB] 5.5 伙伴系统_72662_3383.mp4 [80.1 MB] 5.3 连续内存分配_72662_2391.mp4 [109.5 MB] 5.2 地址空间和地址生成_72662_1501.mp4 [110.2 MB] 5.4 纰庣墖鏁寸悊_72662_5454.mp4 [50.5 MB] 5.1 计算机体系结构和内存层次_72662_9919.mp4 [92.9 MB] 4.8 练习四 练习五_72662_3416.mp4 [20.6 MB] 4.5 缁冧範涓€_72662_8565.mp4 [26.5 MB] 4.4 X86中断处理过程_72662_7462.mp4 [75.0 MB] 4.3 GCC鍐呰仈姹囩紪_72662_1289.mp4 [28.8 MB] 4.2 C函数调用的实现_72662_5598.mp4 [29.8 MB] 3.6 ucore+系统调用代码_72662_6654.mp4 [17.6 MB] 3.5 系统调用示例_72662_3834.mp4 [29.1 MB] 3.3 中断、异常和系统调用比较_72662_7949.mp4 [63.3 MB] 3.4 系统调用_72662_8697.mp4 [39.1 MB] 3.2 系统启动流程_72662_8621.mp4 [60.1 MB] 23.4 磁盘调度_72662_1907.mp4 [104.1 MB] 23.5 磁盘缓存_72662_5178.mp4 [64.9 MB] 23.3 IO数据传输_72662_8399.mp4 [61.6 MB] 23.2 IO结构_72662_2595.mp4 [63.8 MB] 22.6 执行流程分析_72662_5634.mp4 [59.3 MB] 22.5 IO设备接口分析_72662_6622.mp4 [44.4 MB] 22.1 鎬讳綋浠嬬粛_72662_4215.mp4 [86.2 MB] 22.2 ucore 文件系统架构_72662_1527.mp4 [70.0 MB] 21.6 文件分配_72662_7163.mp4 [115.4 MB] 21.7 空闲空间管理和冗余磁盘阵列RAID_72662_1520.mp4 [113.3 MB] 21.5 文件缓存和打开文件_72662_6699.mp4 [77.4 MB] 21.3 目录、文件别名和文件系统种类_72662_5307.mp4 [109.0 MB] 21.2 文件描述符_72662_4613.mp4 [104.1 MB] 21.4 虚拟文件系统_72662_9592.mp4 [48.8 MB] 21.1 文件系统和文件_72662_9514.mp4 [52.1 MB] 20.6 信号和管道_72662_9916.mp4 [65.1 MB] 20.7 消息队列和共享内存_72662_4107.mp4 [55.0 MB] 20.4 姝婚攣妫€娴媉72662_7369.mp4 [73.6 MB] 20.3 閾惰瀹剁畻娉昣72662_8039.mp4 [80.6 MB] 20.5 进程通信概念_72662_7230.mp4 [64.5 MB] 2.7 演示实验操作过程_72662_8113.mp4 [32.0 MB] 20.1 姝婚攣姒傚康_72662_7562.mp4 [86.4 MB] 20.2 死锁处理方法_72662_1544.mp4 [100.8 MB] 2.6 ucore部分编程技巧_72662_4587.mp4 [38.2 MB] 2.4 实验环境搭建_72662_2605.mp4 [82.1 MB] 2.3 8涓狾S瀹為獙姒傝堪_72662_7445.mp4 [32.8 MB] 2.1 前言和国内外现状_72662_7513.mp4 [63.3 MB] 2.2 OS瀹為獙鐩爣_72662_2759.mp4 [32.2 MB] 19.4 管程和条件变量设计实现_72662_4117.mp4 [186.6 MB] 19.3 信号量设计实现_72662_4326.mp4 [70.5 MB] 19.5 哲学家就餐问题_72662_3062.mp4 [34.9 MB] 19.2 搴曞眰鏀拺_72662_7242.mp4 [69.9 MB] 18.5 读者-写者问题_72662_2763.mp4 [88.4 MB] 19.1 鎬讳綋浠嬬粛_72662_8670.mp4 [37.2 MB] 18.4 哲学家就餐问题_72662_4914.mp4 [95.9 MB] 18.2 信号量使用_72662_4570.mp4 [151.8 MB] 17.5 高级抽象的同步方法_72662_2465.mp4 [99.6 MB] 17.3 临界区和禁用硬件中断同步方法_72662_9074.mp4 [121.5 MB] 17.4 基于软件的同步方法_72662_3139.mp4 [71.7 MB] 17.2 现实生活中的同步问题_72662_7853.mp4 [104.4 MB] 16.4 Stride璋冨害绠楁硶_72662_2791.mp4 [89.3 MB] 16.3 时间片轮转调度算法_72662_1298.mp4 [45.0 MB] 16.2 调度算法支撑框架_72662_1749.mp4 [65.7 MB] 15.5 实时调度和多处理器调度_72662_7544.mp4 [80.5 MB] 16.1 总体介绍和调度过程_72662_6685.mp4 [83.2 MB] 15.3 先来先服务、短进程优先和最高响应比优先调度算法_72662_3842.mp4 [116.9 MB]
学有所成,前程似锦!