getfromcode后端开发 会员免费

网易云课堂-李述铜从0手写自己的Linux x86操作系统

这门课的主题很明确:在 x86 实机/虚拟机环境下,从引导扇区开始,逐步写出一个能跑起来、能进保护模式、能加载程序、能读写磁盘的小型操作系统内核。它不讲 Linux 源码怎么读,而是把操作系统里那些抽象概念——GDT、IDT、分页、任务切换、中断处理、文件系统——落到能编译、能运行、能调试的代码上。

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

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

保障

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

客服

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

购买方式开通会员 · 全站免费下单课购买 · 仅本课

支付成功后自动显示网盘下载链接;链接失效可联系客服免费补链,永久有效。

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

这门课的主题很明确:在 x86 实机/虚拟机环境下,从引导扇区开始,逐步写出一个能跑起来、能进保护模式、能加载程序、能读写磁盘的小型操作系统内核。它不讲 Linux 源码怎么读,而是把操作系统里那些抽象概念——GDT、IDT、分页、任务切换、中断处理、文件系统——落到能编译、能运行、能调试的代码上。

技术栈与运行环境

课程围绕 x86 汇编与 C 语言混合开发展开,工具链是典型的裸机组合:汇编器、C 编译器、链接器、镜像写入工具,加上 QEMU 之类的虚拟机做验证。这种组合的好处是依赖少、可复现,不需要真实硬件就能把引导流程跑通。开发过程中会反复用到反汇编、内存查看和断点调试,这些手段在处理保护模式切换、页表建立这类问题时几乎是必须的。

对读者来说,值得关注的是它如何处理 C 与汇编的边界:栈的建立、调用约定、结构体在内存中的布局、内联汇编的写法。这些细节在应用层开发里往往被编译器屏蔽,但写内核时绕不开,也是这份资料最有工程参考价值的部分。

项目结构与可复用模块

整个工程不是一次性写完的大文件,而是按功能切分成若干可独立验证的模块。引导部分负责从实模式过渡到保护模式;描述符表模块管理 GDT 与 IDT;内存管理模块涉及物理页分配和虚拟地址映射;中断与异常模块挂接处理程序;任务模块实现上下文切换;再往上才是系统调用接口、进程模型和简单的命令行交互。

这种分层方式让每个模块都能单独编译、单独测试。比如调中断时,可以先只挂一个时钟中断打印计数,确认 PIC 配置和 IDT 项无误,再去接键盘和磁盘。磁盘与 FAT16 文件系统那一块尤其如此:先识别磁盘、解析分区表,再实现读取、创建文件、复制命令,最后才把文件操作暴露给用户态命令。这条链路完整走一遍,等于把块设备驱动、文件系统解析和系统调用串起来了。

值得对照实践的细节

  • 引导扇区的加载地址、栈指针设置、跳转到 C 入口前的准备,是排查“为什么一进保护模式就重启”的关键。
  • GDT 描述符的段基址与界限计算,以及平坦模型下如何简化分段。
  • 分页开启前后地址空间的变化,页目录与页表的填写顺序。
  • 中断门与陷阱门的区别,以及中断处理中保存和恢复现场的完整过程。
  • FAT16 的目录项解析、簇链遍历和文件读写缓冲,适合作为文件系统入门的实操样本。

这些点如果只看视频很容易“看懂但写不出”,建议的做法是每看完一个模块就自己从零实现一遍,再和课程代码对比差异。差异往往集中在初始化顺序和边界条件上,而这正是调试耗时最多的地方。

自学路径建议

比较稳妥的节奏是:先用课程环境把引导和打印跑通,确认工具链没问题;接着依次完成保护模式、中断、内存管理;有了这些基础再进入磁盘和文件系统;最后做进程与命令行。每一步都以“能运行并观察到预期输出”为完成标准,而不是以看完视频为标准。

如果中途卡住,优先检查链接脚本、段对齐和栈空间,这三处是裸机开发里最常见的故障源。把课程代码当作可运行的参考实现,边改边验证,比单纯跟着敲一遍更接近真实工程中的做法。

网易云课堂-李述铜从0手写自己的Linux x86操作系统

从零开始,深入理解操作系统原理

编辑点评

深入浅出,手把手教学,适合对操作系统原理感兴趣的学习者。

⭐ 编辑推荐

跟随李述铜老师,从零开始,一步步手写Linux x86操作系统,深入理解操作系统原理。

✨ 课程亮点

✦手写操作系统
✦深入原理
✦实战教学

课程目录

{21}--磁盘与fat16文件系统32 集
  • [21.4]--识别系统中已有的磁盘(3).mp4 [41.3 MB]
  • [21.28]--文件复制命令cp的实现(1)-创建新文件.mp4 [87.0 MB]
  • [21.6]--解析磁盘分区表(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [13.7 MB]
  • [21.7]--解析磁盘分区表(2)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [75.8 MB]
  • [21.5]--识别系统中已有的磁盘(4).mp4 [55.5 MB]
  • [21.8]--增加磁盘设备管理.mp4 [66.4 MB]
  • [21.2]--识别系统中已有的磁盘(1).mp4 [17.0 MB]
  • [21.31]--文件复制命令cp的实现(4)-文件写入(2)【资源精选‖更多关注:CunworkNotes】.mp4 [109.5 MB]
  • [21.9]--实现磁盘的读取和写入(1).mp4 [67.1 MB]
  • [21.32]--鏈€鍚庣殑璋冩暣.mp4 [40.6 MB]
  • [21.30]--文件复制命令cp的实现(3)-文件写入(1).mp4 [67.0 MB]
  • [21.29]--文件复制命令cp的实现(2)-删除文件【不易整理‖请关注:CunWorkNoteS】.mp4 [68.5 MB]
  • [21.19]--遍历目录命令ls的实现(3)-列出真实的目录内容(2).mp4 [41.5 MB]
  • [21.12]--FAT16文件系统简介(2).mp4 [39.8 MB]
  • [21.3]--识别系统中已有的磁盘(2).mp4 [27.7 MB]
  • [21.27]--应用运行异常时强制中断运行【公重号:CunWorkNotes】.mp4 [47.1 MB]
  • [21.13]--挂载FAT16文件系统(1)【更多精选‖公众号:CunWorknotes】 .mp4 [58.6 MB]
  • [21.23]--文件查看命令less的实现(3)-显示全部文件内容.mp4 [68.6 MB]
  • [21.21]--文件查看命令less的实现(1)-打开文件.mp4 [90.9 MB]
  • [21.16]--遍历目录命令ls的实现(1)-添加系统调用接口.mp4 [63.7 MB]
  • [21.26]--让shell加载应用程序运行.mp4 [62.1 MB]
  • [21.24]--文件查看命令less的实现(4)-逐行显示文件内容【更多精选‖公众号:CunWorknotes】 .mp4 [87.8 MB]
  • [21.14]--挂载FAT16文件系统(2).mp4 [58.2 MB]
  • [21.11]--FAT16文件系统简介(1).mp4 [40.3 MB]
  • [21.1]--磁盘基本特性简介.mp4 [47.9 MB]
  • [21.22]--文件查看命令less的实现(2)-显示部分文件内容.mp4 [80.8 MB]
  • [21.10]--实现磁盘的读取和写入(2)【持续更新‖免费提供:CunworknoteS】.mp4 [42.6 MB]
  • [21.18]--遍历目录命令ls的实现(3)-列出真实的目录内容(1)【更多精选‖公众号:CunWorknotes】 .mp4 [39.5 MB]
  • [21.20]--遍历目录命令ls的实现(3)-列出真实的目录内容(3)【公重号:CunWorkNotes】.mp4 [82.7 MB]
  • [21.25]--通过文件系统加载shell.mp4 [82.6 MB]
  • [21.15]--挂载FAT16文件系统(3).mp4 [36.8 MB]
  • [21.17]--遍历目录命令ls的实现(2)-列出虚假的目录内容.mp4 [61.2 MB]
{15}--新进程的加载与创建1 集
  • [15.8]--实现exec系统调用(4)-解析并加载elf文件.mp4 [144.2 MB]
  • …(已达 35 条上限,后续省略)
  • …(已达 35 条上限,后续省略)

适合人群

  • 操作系统爱好者
  • 计算机专业学生
  • 软件工程师

🎯 学习收获

  • 掌握操作系统原理
  • 提升编程能力
  • 深入理解计算机体系结构

🎉 祝您学习愉快!