这门课解决什么问题

本课程聚焦于解决学习者从零构建操作系统的实际痛点。传统操作系统课程偏重理论,缺乏工程实践指导,而市面上相关资料分散且深度不足。课程以X86架构为载体,从机器加电自检到内核引导这一核心流程,展示了如何使用C语言和汇编语言,配合调试工具(如GDB、QEMU)完成开发。它填补了理论到实践的鸿沟,帮助学习者理解硬件与软件交互的底层逻辑,为后续学习更复杂的系统编程(如进程管理、文件系统)奠定基础。

适合什么基础

课程要求学习者具备C语言基础和一定的汇编语言概念,熟悉计算机组成原理(如CPU工作方式、内存分层)。具备Linux/Linux环境使用经验会更有帮助,但课程会同步介绍必要的开发工具配置。对于想深入理解操作系统的学习者,即使有课程《C语言核心编程》的背景,也建议先学习一遍,通过直接编译运行源码体会开发流程。

学完能独立做什么与资料配合练习

学成后,学习者能独立完成一个基于保护模式的小型内核,包括加电自检、中断处理、内存管理基础、内核与外围设备交互等模块。资料包提供了完整的代码框架和调试指南,建议采用“两遍学习法”:第一遍严格跟随视频步骤,编译运行验证每个阶段的功能(如8259A中断控制器初始化、GDT/IDT设置);第二遍根据理解重构代码逻辑,例如更换内存分配策略或优化中断响应流程,配合GDB单步调试加深理解。补充练习可尝试在代码中添加字符屏幕输出或简单的命令行解析功能。

课程目录

课程目录61 集
  • 【资源介绍】: 如果你想自己写一个小的操作系统,一定会发现无从下手,因为在传统的学历教育中,操作系统课程过于关注理论,不会告诉你要用什么工具, 什么语言,如何写代码。本门课程是《 C语言 核心编程》的姊妹篇,正如C和Unix是孪生兄弟一般,本门课程向K & R致敬,探索计算机装置的本身原理。本课程基于X86架构,实现了从机器加电自检开始,到一个内建命令操作系统(内核雏形)的实现。建议操作系统内核开发的入门学员,学习两遍。第一遍,完全按照视频内容,将开发环境保持一致,将提供的源码直接编译运行获得感性认识。第二遍,根据理解,自己改写内容,调试运行以强化知识的理解。本门课程没有包含进程实现、文件管理等内容,有待后续其他课程进行扩展。 课程目标 : 1.从裸机出发,理解计算机装置本身原理,直到内核加载的过程。 2.介绍了保护模式的基本特征,为现代桌面形式操作系统的实现提供实验环境。 3.本门课程是操作系统后续学习的铺路石和垫脚石。 【资源目录】: ├──1-1 从零开发操作系统课程介绍.mp4
  • 33.63M ├──1-2 开发环境配置与第一个启动程序.mp4
  • 34.81M ├──1-3 操作系统的基础知识:CPU、内存和指令(基础理论).mp4
  • 35.40M ├──1-4 CS,DS寄存器:代码段,数据段究竟是什么?.mp4
  • 24.27M ├──1-5 逻辑地址与物理地址:为什么是段+偏移(分段机制详解).mp4
  • 24.13M ├──2-1 加电自检与计算机的启动过程.mp4
  • 14.49M ├──2-10 从硬盘引导(四):Loader编码完成.mp4
  • 4.73M ├──2-11 从硬盘引导(五):突破512字节与寄存器段寻址再认识.mp4
  • 27.49M ├──2-2 7C00解析和主引导扇区魔数.mp4
  • 34.06M ├──2-3 验证性编程:引导区与BIOS下实模式编程.mp4
  • 71.70M ├──2-4 实验总结:为什么可以用附加段寄存器ES不用DS数据段寄存器.mp4
  • 28.39M ├──2-5 CPU寄存器梳理:CSDSES究竟是什么用途.mp4
  • 18.68M ├──2-6 CPU的寻址基础知识与栈段寄存器初解.mp4
  • 25.23M ├──2-7 从硬盘引导(一):硬盘原理介绍.mp4
  • 27.22M ├──2-8 从硬盘引导(二):MBR与loader分块.mp4
  • 36.72M ├──2-9 从硬盘引导(三):MBR编码完成.mp4
  • 29.10M ├──3-1 保护模式入门:内核态与用户态的由来.mp4
  • 26.88M ├──3-10 TSS解析:特权级切换实战(一).mp4
  • 24.23M ├──3-11 CPL、DPL、RPL与门的概念:特权级切换实战(二).mp4
  • 18.36M ├──3-12 调用门与权限切换:特权级切换实战(三).mp4
  • 53.98M ├──3-13 从ring0到ring3:特权级切换实战(四).mp4
  • 85.46M ├──3-14 时钟中断:进程时间片轮转的基础.mp4
  • 34.65M ├──3-15 保护模式下的中断编程实战(8259A).mp4
  • 61.18M ├──3-16 时钟中断编程与本章小结.mp4
  • 29.92M ├──3-2 保护模式(一):线性地址、逻辑地址、物理地址.mp4
  • 18.61M ├──3-3 保护模式(二):IA32架构、线性地址、逻辑地址、物理地址.mp4
  • 51.67M ├──3-4 保护模式(三):全局描述符GDT和线性地址.mp4
  • 103.66M ├──3-5 实验环境搭建:保护模式实战(一).mp4
  • 18.50M ├──3-6 jmp $再认识,GDT、选择子与寄存器匹配:保护模式实战.mp4
  • 165.87M ├──3-7 突破1M的寻址:保护模式实战(三).mp4
  • 13.10M ├──3-8 多任务的由来:LDT(局部描述符表)理论与实战.mp4
  • 90.61M ├──3-9 ring0和ring3的由来:内核态与用户态切换入门.mp4
  • 38.17M ├──4-1 操作系统是用C写的.mp4
  • 11.05M ├──4-10 用C写内核(五):用C改写占位Kernel.mp4
  • 36.41M ├──4-2 C库与操作系统:C库是建立在操作系统之上的.mp4
  • 22.54M ├──4-3 内核是常驻内存的(一):kenel的内存规划由来.mp4
  • 8.90M ├──4-4 图示kenel与loader的内存分布关系.mp4
  • 19.52M ├──4-5 从mbr加载loader再到loader加载kernel.mp4
  • 44.95M ├──4-6 用C写内核(一):elf文件格式透视.mp4
  • 23.91M ├──4-7 用C写内核(二):用elf生成占位Kernel.mp4
  • 37.01M ├──4-8 用C写内核(三):bochs调试出错的Kernel.mp4
  • 75.77M ├──4-9 用C写内核(四):C和汇编的联合编程.mp4
  • 47.01M ├──5-1 自己的操作系统系统:Tiny OS的演示.mp4
  • 12.41M ├──5-10 shell提示符与内建命令help的实现.mp4
  • 35.48M ├──5-11 关机命令poweroff的实现.mp4
  • 22.55M ├──5-12 时间命令time的实现——兼论rn.mp4
  • 69.26M ├──5-13 独立内核的操作系统完成.mp4
  • 48.62M ├──5-2 Tiny OS的编码文件划分:C库、kernel与汇编.mp4
  • 13.92M ├──5-3 C库中输入输出系统的实现:liba.asm.mp4
  • 45.11M ├──5-4 C库中字符串的实现(上):print.mp4
  • 26.99M ├──5-5 C库中字符串的实现(下):readtoBuf.mp4
  • 43.07M ├──5-6 C扩充内核的实现:libc.c.mp4
  • 32.84M ├──5-7 启动内核入口的实现osKernel.asm.mp4
  • 7.23M ├──5-8 交互实验完成.mp4
  • 63.10M ├──5-9 清屏函数与内建命令clear的实现.mp4
  • 36.64M ├──6-1 从实模式内核到保护模式加载.mp4
  • 71.56M ├──6-2 从清屏命令再认识保护模式下的访问控制.mp4
  • 35.80M ├──6-3 从cmos时间获取认识保护模式下的时钟中断.mp4
  • 23.97M ├──6-4 保护模式下多任务的形式浅析.mp4
  • 13.24M ├──6-5 从加电自检到保护模式加载全部完成.mp4
  • 34.26M ├──6-6 课程结束与展望.mp4
  • 11.81M └──资料代码.exe 15.89M 声明: 本站所有资料均来源于网络以及用户发布,如对资源有争议请联系微信客服我们可以安排下架!