这是「YouTube优质内容精选」第2轮,聚焦分类 programming(编程与开发)。
在「Rust系统编程」「编译器与语言实现」「游戏引擎架构」之后,本期选择一个更底层、更"硬核"、却长期被低估的编程子领域——操作系统内核手写实现(Operating System Kernel from Scratch)。它不教你怎么用框架,而是逼你直面一个问题:当没有任何库、没有任何运行时、甚至没有 printf 的时候,计算机究竟是怎么一步步"活"起来的?
本期精选的7个频道/系列,覆盖了从硬件接线到汇编引导、从保护模式与GDT到分页与堆分配、从多任务调度到Rust no_std 现代内核的完整光谱。它们的共同点只有一个字:从零(from scratch)——所有代码都在镜头前一行行敲出来,没有黑盒。
核心发现: - 学习曲线呈"三段式":硬件基础 → 引导与裸机编程 → 内存/中断/调度核心子系统。没有人能跳过第一段直接写内核。 - 语言阵营分化明显:老牌教程以 C + x86 汇编为主(生态成熟、资料多);新锐系列则用 Rust/Zig/C++ 甚至 Jai,强调内存安全与零成本抽象。 - 真正稀缺的不是"怎么做",而是"为什么":最好的频道(Ben Eater、Philipp Oppermann、Casey Muratori)的共同特质,是把 CPU、MMU、中断控制器这些被抽象层遮蔽的硬件,重新摊开给你看。 - 入门门槛仍高,但路径已被前人踩平:现在的初学者不再需要啃 80 年代的 Kernel Tutorial 残篇,7 条成熟路径任选其一即可启程。
| # | 频道/系列 | 语言/平台 | 核心定位 | 订阅量级 | 最适合人群 |
|---|---|---|---|---|---|
| 1 | Daedalus Community | C / x86 汇编 | 完整 x86 OS 教学系列 | ~31.4K | 想手把手做完整OS的实战派 |
| 2 | nanobyte | C / GCC 工具链 | 引导器+内核+工具链全栈 | ~30K | 喜欢"每行都讲清楚"的细节控 |
| 3 | Daniel McCarthy(Dragon Zap) | C / 32位保护模式 | 69小时超长系统课 | 课程类 | 想要一站式完整课程的学习者 |
| 4 | Philipp Oppermann(Writing an OS in Rust) | Rust / no_std | 现代安全内核标杆 | GitHub 万星 | Rust 学习者、现代内核方向 |
| 5 | Molly Rocket(Handmade Hero / Casey Muratori) | C / 手写引擎 | 从零无库的大型系统 | 数十万级 | 想理解"无依赖系统"如何运转 |
| 6 | Tsoding / Tsoding Daily(Alexey Kutepov) | C / Zig / Jai 多语言 | 娱乐化底层编程直播 | ~200K+ | 喜欢边看边玩、抗压能力强的极客 |
| 7 | Ben Eater | 汇编 / 面包板硬件 | 从门电路理解计算机 | ~1.3M | 需要补"硬件直觉"的纯软件背景者 |
频道链接: https://www.youtube.com/@DaedalusCommunity
这是中文圈和英语圈都频频被推荐的"手把手做操作系统"代表作。其标志性系列《Making an OS (x86)》采用章节式结构,从 Chapter 1 的 CPU、汇编、启动过程讲起,一路推进到 保护模式、GDT(全局描述符表)、交叉编译器、引导器、内核入口、动态内存分配器(malloc),几乎覆盖了一个 hobby OS 的全部关键节点。
核心内容与关键洞察: 作者最大的优点是"不跳步"——他会把 GDT、IDT 这类初学者最容易卡住的抽象概念,配合实际代码和寄存器状态逐一拆解。比如 Chapter 6 专门讲"进入保护模式与设置 GDT",把段描述符每一位的含义都画了出来。他还单独做了一个《Making a simple Dynamic Memory Allocator (malloc)》视频,把 malloc/free 的边界标记法(boundary tag)实现讲透,这是很多OS教程语焉不详的部分。
实用价值与应用场景: 如果你只想跟一个系列、做出一个能在真机/虚拟机上跑起来的 x86 多任务内核,这是路径最清晰的选择之一。配套代码可作嵌入式工程师理解 MMU、RTOS、底层调度的绝佳参考。
适合人群: 有 C 语言和基本汇编基础、想动手做一个"能跑的OS"的开发者。
频道链接: https://www.youtube.com/@nanobyte-dev 系列播放列表: https://www.youtube.com/playlist?list=PLFjM7v6KGMpiH2G-kT781ByCNC_0pKpPN
nanobyte 是另一位以"细节控"著称的 OS 开发者。其《Building an OS》系列从环境搭建、交叉编译器(cross-compiler)、freestanding binary 讲起,到 用 C 写引导器(bootloader)、迁移到 GCC 工具链,每一步都配以详细解说与屏幕共享代码。
核心内容与关键洞察: 这个系列的差异化价值在于对工具链的深度讲解。很多初学者卡在第一步——交叉编译环境装不上、链接脚本(linker script)不会写、multiboot header 对不齐。nanobyte 把这些"脏活"讲得明明白白。他还时常穿插"OS开发中无聊但必要的重构"内容,真实呈现了内核开发的真实节奏:80% 时间在搭脚手架,20% 时间才在写"内核"。
实用价值与应用场景: 适合作为 Daedalus 的互补——一个讲概念深,一个讲工程细。看完能独立搭建起一套 x86 裸机开发工具链,这是所有后续内核工作的地基。
适合人群: 工科思维强、喜欢把环境配置彻底搞懂再动手的工程师。
频道链接: https://www.youtube.com/@DragonZapEducation (及 dragonzap.com 课程站)
这是一个体量惊人的系统化课程——整整 69 小时,目标是从零构建一个支持多任务的 32 位内核,并实现 FAT12 文件系统。从公开的短视频片段看,内容覆盖保护模式开发、任务切换、用户态/内核态分离等硬核主题。
核心内容与关键洞察: Daniel McCarthy 的教学风格偏"课堂录制",结构完整、循序渐进,适合不喜欢直播式东敲西打的系统化学习者。其 FAT12 文件系统实现部分尤其有价值——大多数OS教程止步于"能在屏幕上打印字符",而本课程把磁盘I/O、目录结构、文件读写都做了完整闭环,让OS真正"能用"。
实用价值与应用场景: 适合愿意投入数十小时、追求完整知识体系的学习者;也适合想理解文件系统、磁盘驱动如何落地的存储/固件工程师。
适合人群: 偏好付费/系统课程、希望一条龙走完内核+文件系统的开发者。
项目主页: https://os.phil-opp.com/ 代码仓库: https://github.com/phil-opp/blog_os
严格说这是博客系列,但其影响力远超任何单一YouTube频道,是现代 hobby OS 开发的事实标杆。系列从 freestanding Rust binary、VGA 文本模式、内核测试,一路讲到中断、堆分配、分页(paging)、异步内核,每一篇都对应 GitHub 上一个独立分支,可逐步 checkout 复现。
核心内容与关键洞察: 这个系列最大的革命性在于——它证明了 Rust 的内存安全可以在内核态延续。通过 #[no_std]、core 库、alloc crate,作者展示了在没有任何操作系统支持的条件下,如何用 Rust 的所有权与类型系统构建一个内核。后续版本还引入了 async/await 在内核态的应用(基于协作式任务调度),这在传统 C 内核教程里几乎看不到。
实用价值与应用场景: 如果你的目标是现代内核开发(Rust for Linux 风格、嵌入式 RTOS、安全关键系统),这是必读。它也是最好的 Rust 进阶教材之一——理解 no_std 几乎等于理解了 Rust 的所有权模型在最底层的边界。
适合人群: Rust 学习者、对内存安全内核、async runtime 实现感兴趣的开发者。
频道链接: https://www.youtube.com/@MollyRocket 完整播放列表: https://www.youtube.com/playlist?list=PLnuhp3Xd9PYTt6svyQPyRO_AAuMWGxPzU 个人频道: https://www.youtube.com/@caseymuratori
Handmade Hero 是一个传奇项目:Casey Muratori 每天直播、从零开始,用一个游戏引擎+游戏的全过程,演示了"不依赖任何第三方库"的软件开发哲学。虽然主题是游戏,但其对内存管理、平台层抽象、热重载、性能优化、手写渲染的讲解,本质上就是一次大型的系统编程教学。
核心内容与关键洞察: Casey 最著名的论断是 "Data-Oriented Design(面向数据设计)" 与对 OOP 过度抽象的批判(代表作《The Big OOPs: Anatomy of a Thirty-five-year Mistake》在 2025 Better Software Conference 再次引发热议)。他的核心方法论:先想清楚数据如何在内存中布局,再谈代码结构。这种思维方式对内核开发同样适用——缓存命中率、内存对齐、分支预测,都建立在"数据怎么摆放"之上。
实用价值与应用场景: Handmade Hero 是理解"无依赖系统如何从零运转"的最佳教材。完整档案达数百集,是耐心者的宝库。其平台层(platform layer)抽象手法,直接可迁移到 OS 内核的 HAL 设计。
适合人群: 追求极致性能、想理解软件与硬件真实交互、有大量时间投入的资深开发者。
频道链接: https://www.youtube.com/tsoding (主频道) 日志频道: https://www.youtube.com/c/TsodingDaily (~204K–208K 订阅)
Tsoding 自称做的是 "Recreational Programming"(娱乐性编程)——这是一位俄裔程序员以直播形式进行的底层/系统编程"真人秀"。他在频道上用 C、Zig、Jai、Python 等多语言实现各种有趣项目,包括自研语言、模拟器、底层工具,并经常即兴重构。
核心内容与关键洞察: Tsoding 的价值不在于某一条固定教程路径,而在于展示了真实程序员的工作状态:犯傻、调试、推翻重来、吐槽。其播放量最高的视频之一《Writing the Worst Code of My Life》以及《I rewrote my entire project in Jai》都体现了一种反教条的态度——代码先跑通,再谈优雅。对内核学习者的启发是:不必追求一开始就写出完美内核,"丑陋但能跑"也是合法的中间态。
实用价值与应用场景: 适合作为正课之外的"佐餐"——在你被 GDT 搞崩溃时,看 Tsoding 边写边骂,能极大缓解焦虑。他对自研语言/字节码 VM 的实现,对理解内核中的解释器、调度器很有启发。
适合人群: 抗压能力强、喜欢娱乐化学习氛围、对语言实现感兴趣的极客。
频道链接: https://www.youtube.com/@BenEater
Ben Eater 是这套清单里最特别的一位——他不写 OS,却几乎是所有 OS 学习者的"必修前置课"。他的代表作是用面包板(breadboard)从门电路搭建一台 8 位计算机,并讲解 6502 CPU、RAM、ALU、总线、微指令的工作原理;此外还有 TCP/IP 网络协议从底层拆解的系列。
核心内容与关键洞察: 为什么 OS 学习者要看 Ben Eater?因为操作系统本质上是"管理硬件"的程序,而不理解 CPU 怎么取指执行、MMU 怎么做地址翻译、中断引脚怎么触发,"内核"就永远是一团抽象。Ben Eater 用最直观的方式——你能看见每一根线、看见时钟脉冲、看见寄存器变化——把被抽象层掩盖的硬件直觉还给你。他的讲解节奏之慢、之清晰,被公认为计算机科学普及的天花板。
实用价值与应用场景: 强烈建议在动手写内核之前先看完 8-bit computer 系列(约 1–2 周)。它会让你之后理解保护模式、分页、中断向量时,有一种"哦,原来如此"的通透感。
适合人群: 纯软件背景、缺乏硬件直觉的所有开发者——无论是否打算写内核。
下图呈现7个频道与操作系统内核核心知识域的映射关系,以及建议的学习路径分层:
graph TD
Goal["目标:从零写出一个能跑的OS内核"]
subgraph L1["第1层 · 硬件直觉(前置必看)"]
BE["Ben Eater<br/>面包板 8-bit 计算机<br/>6502 / 门电路 / 总线"]
end
subgraph L2["第2层 · 引导与裸机编程"]
DA["Daedalus Community<br/>GDT / IDT / 保护模式"]
NB["nanobyte<br/>交叉编译器 / 引导器 / 工具链"]
DM["Daniel McCarthy<br/>多任务内核 + FAT12"]
end
subgraph L3["第3层 · 现代内核与抽象思想"]
PO["Philipp Oppermann<br/>Rust no_std / 分页 / async"]
MH["Handmade Hero<br/>面向数据设计 / 平台层"]
end
subgraph L4["第4层 · 心态与娱乐佐餐"]
TS["Tsoding<br/>真实编程状态 / 反教条"]
end
Goal --> L1
BE -->|"理解CPU/内存后才能动手"| L2
DA -.互补.-> NB
NB -.互补.-> DM
L2 -->|"概念扎实后升级"| L3
PO -.风格对照.-> MH
L3 --> L4
TS -.全程佐餐.-> L2
TS -.全程佐餐.-> L3
classDef layer1 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px;
classDef layer2 fill:#fff3e0,stroke:#f57c00,stroke-width:2px;
classDef layer3 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px;
classDef layer4 fill:#fce4ec,stroke:#c2185b,stroke-width:2px;
class BE layer1;
class DA,NB,DM layer2;
class PO,MH layer3;
class TS layer4;
内核子系统与频道对照:
graph LR
subgraph Kernel["操作系统内核核心子系统"]
Boot["引导 Boot/Loader"]
Mem["内存管理 MMU/分页/堆"]
IRQ["中断与异常 IDT/ISR"]
Sched["进程/线程调度"]
FS["文件系统与磁盘IO"]
SysC["系统调用 用户/内核态"]
end
BE2["Ben Eater"] --> IRQ
DA2["Daedalus"] --> Boot
DA2 --> Mem
DA2 --> IRQ
NB2["nanobyte"] --> Boot
NB2 --> Mem
DM2["Daniel McCarthy"] --> Sched
DM2 --> FS
PO2["Philipp Oppermann"] --> Mem
PO2 --> IRQ
PO2 --> SysC
MH2["Handmade Hero"] --> Mem
MH2 --> Sched
关键提醒: 写内核最大的敌人不是难度,而是环境配置(交叉编译器、QEMU、GRUB/multiboot、链接脚本)。前两周最容易卡在这一步——不要怀疑自己的智商,这是所有人共同的"新手村"。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
