在操作系统内核开发的浩瀚领域中,手写一个从磁盘启动到用户态应用运行的完整闭环,是检验开发者底层功力的“试金石”。网易云课堂李述铜老师的《从0手写自己的Linux x86操作系统》系列课程,正是这样一份极具份量的实战指南。本期聚焦的两大核心模块——磁盘与FAT16文件系统、以及新进程的加载与创建,构成了操作系统从“裸机”走向“可用”最关键的阶梯。
首先,课程带领学习者深入硬件底层,完成了对磁盘设备的识别与管理。这一步并非简单的API调用,而是要求开发者直接操作BIOS中断及硬盘控制器寄存器,解析磁盘分区表(MBR),从而在内存中建立磁盘设备的映射关系。在此基础上,课程详细剖析了FAT16文件系统的结构原理,从引导扇区(BS)到文件分配表(FAT),再到根目录区和数据区,构建了一套完整的文件系统解析逻辑。开发者将亲手实现文件的创建、删除、读取及复制(cp)命令,以及目录遍历(ls)和文件查看(less)功能。这一过程不仅涉及复杂的块设备I/O调度,更让学习者在二进制层面理解“文件”在硬盘上的真实存在形式,打通了从物理存储到逻辑文件的认知壁垒。
其次,课程无缝衔接至进程管理领域,重点讲解并实现了Linux中最为经典的fork与exec系统调用。这部分内容极具挑战性:fork不仅要复制父进程的地址空间、文件描述符等上下文,更需精心设计任务控制块(TCB)以支持多任务切换;而exec则要求能够解析ELF可执行文件格式,将其加载到虚拟内存中,并处理段表、符号表等细节,最终完成参数的传递与执行入口的跳转。通过实现这两个系统调用,学习者将明白一个普通的“./runme”命令背后,内核究竟经历了怎样的资源分配、代码注入与环境构建过程。
值得注意的是,课程并未止步于理论推演,而是通过编写Shell加载应用程序、实现应用运行异常中断等实战环节,将文件系统与进程管理紧密结合。当Shell从FAT16磁盘读取命令解释器,并通过exec加载用户程序时,整个操作系统的脉络才真正贯通。对于希望深入理解Linux内核机制、提升系统编程能力的开发者而言,这门课程提供了极其稀缺的“从零构建”视角,帮助你在排除Bug的过程中,真正掌握操作系统的核心命脉。
课程目录
📁 {21}--磁盘与fat16文件系统
[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}--新进程的加载与创建
[15.8]--实现exec系统调用(4)-解析并加载elf文件.mp4 [144.2 MB]
[15.1]--实现fork系统调用(1)-添加调用接口.mp4 [38.4 MB]
[15.2]--实现fork系统调用(2)-分配任务块.mp4 [33.2 MB]
[15.7]--实现exec系统调用(3)-添加虚似文件访问接口.mp4 [78.8 MB]
[15.6]--实现exec系统调用(2)-增加空的exec调用【资源精选‖更多关注:CunworkNotes】.mp4 [25.0 MB]
[15.10]--实现exec系统调用(6)-为进程传递参数(1).mp4 [19.9 MB]
[15.3]--实现fork系统调用(3)-初始化任务块.mp4 [121.5 MB]
[15.5]--实现exec系统调用(1)-创建一个空应用【资源精选‖更多关注:CunworkNotes】.mp4 [69.5 MB]
[15.11]--实现exec系统调用(6)-为进程传递参数(2).mp4 [110.6 MB]
[15.12]--添加sys_yield()系统调用【整理不易‖记得关注:CunWorKNotes】.mp4 [55.2 MB]
[15.9]--实现exec系统调用(5)-分配栈并进入进程执行【资源精选‖更多关注:CunworkNotes】.mp4 [62.4 MB]
[15.4]--实现fork系统调用(4)-复制进程地址空间.mp4 [107.8 MB]
📁 {6}--中断与异常处理
[6.1]--创建GDT表及其表项(1)【更多精选‖公众号:CunWorknotes】 .mp4 [37.0 MB]
[6.20]--启动定时器并开中断(1)【持续更新‖免费提供:CunworknoteS】.mp4 [18.7 MB]
[6.6]--触发异常与异常简介.mp4 [20.7 MB]
[6.7]--添加中断门描述符.mp4 [36.0 MB]
[6.8]--初始化IDT表【持续更新‖免费提供:CunworknoteS】.mp4 [29.8 MB]
[6.4]--重新加载GDT(1)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [77.7 MB]
[6.5]--重新加载GDT(2).mp4 [45.2 MB]
[6.22]--启动定时器并开中断(3)【不易整理‖请关注:CunWorkNoteS】.mp4 [39.4 MB]
[6.9]--捕获除0异常(1)【资源精选‖更多关注:CunworkNotes】.mp4 [42.3 MB]
[6.3]--保护模式下的内存管理简介.mp4 [41.9 MB]
[6.21]--启动定时器并开中断(2)【公重号:CunWorkNotes】.mp4 [46.5 MB]
[6.2]--创建GDT表及其表项(2).mp4 [51.1 MB]
[6.19]--中断的打开与关闭.mp4 [23.2 MB]
[6.12]--解析异常栈信息(2).mp4 [39.7 MB]
[6.11]--解析异常栈信息(1).mp4 [24.9 MB]
[6.14]--利用宏重用异常处理代码(2).mp4 [43.8 MB]
[6.15]--处理其它类型的异常(1)【公重号:CunWorkNotes】.mp4 [34.6 MB]
[6.10]--捕获除0异常(2).mp4 [36.1 MB]
[6.16]--处理其它类型的异常(2).mp4 [67.8 MB]
[6.13]--利用宏重用异常处理代码(1).mp4 [39.4 MB]
[6.18]--初始化中断控制器(2).mp4 [49.4 MB]
[6.17]--初始化中断控制器(1).mp4 [31.6 MB]
📁 {3}--前置课(选学,介绍x86保护模式下的编程)
[3.11]--进入保护模式(2).mp4 [67.0 MB]
[3.12]--进入保护模式(3).mp4 [47.4 MB]
[3.10]--进入保护模式(1).mp4 [53.8 MB]
[3.14]--打开分页机制(2)【持续更新‖免费提供:CunworknoteS】.mp4 [52.6 MB]
[3.16]--开启定时中断(1).mp4 [48.7 MB]
[3.20]--切换至低特权级(2)【整理不易‖记得关注:CunWorKNotes】.mp4 [68.5 MB]
[3.15]--打开分页机制(3)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [72.6 MB]
[3.21]--切换至低特权级(3)【整理不易‖记得关注:CunWorKNotes】.mp4 [40.1 MB]
[3.13]--打开分页机制(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [51.9 MB]
[3.24]--两个任务的切换(3)【持续更新‖免费提供:CunworknoteS】.mp4 [57.8 MB]
[3.18]--开启定时中断(3).mp4 [68.8 MB]
[3.25]--增加系统调用(1).【优质资源‖关注:cunWorkNotes 解锁】.mp4 [25.7 MB]
[3.23]--两个任务的切换(2)【持续更新‖免费提供:CunworknoteS】.mp4 [104.1 MB]
[3.17]--开启定时中断(2)【持续更新‖免费提供:CunworknoteS】.mp4 [50.8 MB]
[3.26]--增加系统调用(2)..mp4 [64.9 MB]
[3.19]--切换至低特权级(1)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [30.3 MB]
[3.2]--课程简介【持续更新‖免费提供:CunworknoteS】.mp4 [34.7 MB]
[3.22]--两个任务的切换(1)【更多精选‖公众号:CunWorknotes】 .mp4 [29.7 MB]
[3.3]--开发环境安装(与前面部分内容有重复).mp4 [47.3 MB]
[3.4]--工程组织结构.mp4 [20.5 MB]
[3.31]--课程总结【不易整理‖请关注:CunWorkNoteS】.mp4 [56.6 MB]
[3.8]--加载自己的剩余部分(1)【资源精选‖更多关注:CunworkNotes】.mp4 [15.2 MB]
[3.7]--x86处理器编程模型(2).mp4 [20.5 MB]
[3.30]--使用LDT(3).mp4 [16.7 MB]
[3.28]--使用LDT(1).mp4 [57.3 MB]
[3.6]--x86处理器编程模型(1).mp4 [41.4 MB]
[3.29]--使用LDT(2)【整理不易‖记得关注:CunWorKNotes】.mp4 [83.8 MB]
[3.9]--加载自己的剩余部分(2).mp4 [29.3 MB]
[3.27]--增加系统调用(3)..mp4 [96.8 MB]
[3.5]--让计算机跑我们的操作系统.mp4 [33.3 MB]
(3.1)--课程说明.pdf [951.4 KB]
📁 {12}--虚拟内存管理和保护模式
[12.12]--开启内存分页机制(2)-1.mp4 [14.8 MB]
[12.10]--内存分页机制介绍【优质资源‖关注:cunWorkNotes 解锁】.mp4 [24.7 MB]
[12.11]--开启内存分页机制(1)【公重号:CunWorkNotes】.mp4 [26.9 MB]
[12.13]--开启内存分页机制(2)-2.mp4 [41.6 MB]
[12.1]--内存管理问题.mp4 [36.7 MB]
[12.21]--创建内核页表(4)-添加权限处理.mp4 [38.2 MB]
[12.20]--创建内核页表(3)-建立映射表(3).mp4 [50.1 MB]
[12.3]--位图位的分配(1)【持续更新‖免费提供:CunworknoteS】.mp4 [6.0 MB]
[12.14]--开启内存分页机制(2)-3.mp4 [20.7 MB]
[12.2]--位图数据结构与初始化.mp4 [28.7 MB]
[12.15]--创建内核页表(1)-建立映射表(1)【更多精选‖公众号:CunWorknotes】 .mp4 [16.5 MB]
[12.22]--为进程创建页表(1)【更多精选‖公众号:CunWorknotes】 .mp4 [26.0 MB]
[12.16]--创建内核页表(1)-建立映射表(2).mp4 [47.5 MB]
[12.18]--创建内核页表(3)-建立映射表(1).mp4 [22.0 MB]
[12.17]--创建内核页表(2)-页目录和页表结构.mp4 [50.8 MB]
[12.19]--创建内核页表(3)-建立映射表(2).mp4 [50.0 MB]
[12.7]--规划内存空间的分配(1).mp4 [8.2 MB]
[12.6]--创建地址分配结构(2).mp4 [33.8 MB]
[12.23]--为进程创建页表(2)【持续更新‖免费提供:CunworknoteS】.mp4 [76.7 MB]
[12.9]--规划内存空间的分配(3)【整理不易‖记得关注:CunWorKNotes】.mp4 [33.5 MB]
[12.8]--规划内存空间的分配(2)【公重号:CunWorkNotes】.mp4 [34.5 MB]
[12.4]--位图位的分配(2)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [39.4 MB]
[12.5]--创建地址分配结构(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [24.9 MB]
📁 {22}--课程总结
[22.1]--设计总结.mp4 [35.3 MB]
📁 {11}--进程间的同步与互斥
[11.1]--计数信号量及其初始化【更多精选‖公众号:CunWorknotes】 .mp4 [31.8 MB]
[11.3]--使用计数信号量.mp4 [40.0 MB]
[11.5]--互斥锁的加解锁.mp4 [28.7 MB]
[11.4]--互斥锁及其初始化【优质资源‖关注:cunWorkNotes 解锁】.mp4 [16.6 MB]
[11.6]--应用互斥锁【优质资源‖关注:cunWorkNotes 解锁】.mp4 [31.0 MB]
[11.2]--发送和等待信号.mp4 [33.2 MB]
📁 {2}--开发环境准备
[2.1]--开发工具总览.mp4 [11.9 MB]
[2.3]--Windows平台【资源精选‖更多关注:CunworkNotes】.mp4 [129.3 MB]
[2.4]--Linux平台(ubuntu).mp4 [74.3 MB]
[2.5]--Mac平台.mp4 [49.4 MB]
(2.2)--注意事项(必看!!!).pdf [1.2 MB]
📁 {10}--进程的管理与延时
[10.5]--让进程按时间片运行(2).mp4 [43.6 MB]
📁 {19}--实现一个命令行解释器
[19.7]--为进程增加wait接口(2).mp4 [77.3 MB]
[19.3]--执行echo命令并给输出加点颜色(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [52.7 MB]
[19.4]--执行echo命令并给输出加点颜色(2).mp4 [57.1 MB]
[19.2]--实现help命令的解析.mp4 [79.7 MB]
[19.1]--初始化命令行解释器【公重号:CunWorkNotes】.mp4 [66.3 MB]
[19.9]--让子进程继承父进程已打开的文件.mp4 [51.7 MB]
[19.5]--为进程增加exit接口.mp4 [69.8 MB]
[19.6]--为进程增加wait接口(1).mp4 [39.4 MB]
[19.8]--为进程增加wait接口(3)【不易整理‖请关注:CunWorkNoteS】.mp4 [22.6 MB]
📁 {16}--使用c标准库中的printf输出
[16.4]--为malloc实现sys_brk调用(1)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [8.9 MB]
[16.2]--增加文件系统调用(2).mp4 [32.8 MB]
[16.5]--为malloc实现sys_brk调用(2)【持续更新‖免费提供:CunworknoteS】.mp4 [114.5 MB]
[16.1]--增加文件系统调用(1).mp4 [77.6 MB]
[16.6]--简单的printf调用实现.mp4 [33.9 MB]
[16.3]--导入newlibc并调用printf.mp4 [70.7 MB]
📁 {1}--课前准备
[1.3]--资料下载说明.mp4 [27.3 MB]
[1.1]--课程简介【公重号:CunWorkNotes】.mp4 [35.8 MB]
(1.4)--常见问题.pdf [4.1 MB]
(1.2)--资料下载链接.pdf [795.4 KB]
📁 {5}--加载器loader的实现
[5.14]--代码段数据段与链接脚本(2)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [26.7 MB]
[5.5]--切换进保护模式(1)-2【资源精选‖更多关注:CunworkNotes】.mp4 [24.8 MB]
[5.13]--代码段数据段与链接脚本(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [44.3 MB]
[5.4]--切换进保护模式(1)-1.mp4 [23.4 MB]
[5.2]--检测内存容量(1).mp4 [29.0 MB]
[5.6]--切换进保护模式(1)-3.mp4 [22.3 MB]
[5.1]--利用内联汇编显示字符串【更多精选‖公众号:CunWorknotes】 .mp4 [53.3 MB]
[5.8]--切换进保护模式(2)-2【不易整理‖请关注:CunWorkNoteS】.mp4 [31.4 MB]
[5.10]--创建内核工程.mp4 [58.0 MB]
[5.15]--加载内核映像文件(1).mp4 [40.4 MB]
[5.7]--切换进保护模式(2)-1.mp4 [23.2 MB]
[5.12]--向内核传递启动信息(2).mp4 [38.8 MB]
[5.9]--使用LBA模式读取磁盘.mp4 [51.8 MB]
[5.16]--加载内核映像文件(2).mp4 [83.7 MB]
[5.11]--向内核传递启动信息(1).mp4 [34.6 MB]
[5.3]--检测内存容量(2)【不易整理‖请关注:CunWorkNoteS】.mp4 [43.9 MB]
📁 {10}--进程的管理与延时
[10.3]--进程主动放弃CPU.mp4 [45.3 MB]
[10.10]--让所有进程都能延时.mp4 [45.6 MB]
[10.9]--让进程能够延时运行.mp4 [68.8 MB]
[10.2]--将任务加入就绪队列【更多精选‖公众号:CunWorknotes】 .mp4 [37.9 MB]
[10.8]--临界资源及简单的保护(3)【不易整理‖请关注:CunWorkNoteS】.mp4 [24.0 MB]
[10.1]--添加任务管理器【不易整理‖请关注:CunWorkNoteS】.mp4 [48.5 MB]
[10.6]--临界资源及简单的保护(1).mp4 [20.5 MB]
[10.4]--让进程按时间片运行(1).mp4 [8.5 MB]
[10.7]--临界资源及简单的保护(2).mp4 [32.1 MB]
📁 {17}--使用控制台与键盘进行输入输出
[17.13]--处理caplock键【不易整理‖请关注:CunWorkNoteS】.mp4 [43.4 MB]
[17.14]--处理其它特殊功能键.mp4 [56.0 MB]
[17.2]--控制台简介与初始化(2).mp4 [42.0 MB]
[17.7]--保存并恢复光标位置.mp4 [94.3 MB]
[17.3]--在控制台上显示字符串.mp4 [83.5 MB]
[17.10]--键盘初始化.mp4 [44.9 MB]
[17.9]--移动光标位置及清屏.mp4 [66.5 MB]
[17.4]--处理换行和清屏【更多精选‖公众号:CunWorknotes】 .mp4 [91.9 MB]
[17.11]--借助按键映射表进行键值转换(1)【资源精选‖更多关注:CunworkNotes】.mp4 [29.8 MB]
[17.1]--控制台简介与初始化(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [24.7 MB]
[17.12]--借助按键映射表进行键值转换(2).mp4 [80.1 MB]
[17.5]--设置光标并重定向日志输出到显示器.mp4 [47.1 MB]
[17.6]--有趣的转义字符串以及删除字符.mp4 [46.8 MB]
[17.8]--更新显示字体的颜色.mp4 [91.5 MB]
📁 {8}--实现简单的进程切换
[8.8]--简单双任务相互切换(2).mp4 [47.2 MB]
[8.7]--简单双任务相互切换(1)【更多精选‖公众号:CunWorknotes】 .mp4 [19.1 MB]
[8.9]--简单双任务相互切换(3).mp4 [29.9 MB]
[8.10]--另一种任务切换方法(1).mp4 [35.3 MB]
[8.3]--添加任务状态段(2)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [28.4 MB]
[8.11]--另一种任务切换方法(2).mp4 [44.9 MB]
[8.4]--任务的简单初始化(1).mp4 [29.1 MB]
[8.5]--任务的简单初始化(2)-1.mp4 [25.6 MB]
[8.2]--添加任务状态段(1).mp4 [33.8 MB]
[8.1]--创建两个小任务【资源精选‖更多关注:CunworkNotes】.mp4 [24.6 MB]
[8.6]--任务的简单初始化(2)-2【持续更新‖免费提供:CunworknoteS】.mp4 [45.7 MB]
📁 {20}--使用文件系统管理硬件设备
[20.6]--打开devtty0文件(2)-更通用的打开方式.mp4 [74.2 MB]
[20.3]--挂载设备文件系统(2)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [41.0 MB]
[20.2]--挂载设备文件系统(1)【公重号:CunWorkNotes】.mp4 [12.5 MB]
[20.7]--往devtty0读写数据.mp4 [77.4 MB]
[20.1]--描述一个文件系统【公重号:CunWorkNotes】.mp4 [57.8 MB]
[20.4]--挂载设备文件系统(3)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [72.6 MB]
[20.5]--打开devtty0文件(1)-只打开devfs中的文件【更多精选‖公众号:CunWorknotes】 .mp4 [108.5 MB]
📁 {18}--设备管理与文件系统
[18.13]--允许切换tty窗口(1).mp4 [9.3 MB]
[18.5]--实现tty设备的打开【持续更新‖免费提供:CunworknoteS】.mp4 [51.6 MB]
[18.1]--设备管理框架简介.mp4 [37.5 MB]
[18.2]--增加tty设备.mp4 [26.6 MB]
[18.3]--实现dev层接口操作.mp4 [54.2 MB]
[18.11]--从tty读取键值字符串并显示【资源精选‖更多关注:CunworkNotes】.mp4 [94.6 MB]
[18.15]--为每个tty窗口创建进程并保护.mp4 [66.3 MB]
[18.6]--通过tty设备写显示数据(1)【公重号:CunWorkNotes】.mp4 [18.1 MB]
[18.4]--为tty设备添加结构描述【公重号:CunWorkNotes】.mp4 [36.8 MB]
[18.10]--打开tty设备并向其写入数据.mp4 [86.7 MB]
[18.12]--打开标准输出及错误输出文件【优质资源‖关注:cunWorkNotes 解锁】.mp4 [63.9 MB]
[18.14]--允许切换tty窗口(2)【不易整理‖请关注:CunWorkNoteS】.mp4 [83.1 MB]
[18.8]--文件系统简介及初始化【公重号:CunWorkNotes】.mp4 [43.6 MB]
[18.7]--通过tty设备写显示数据(2)【整理不易‖记得关注:CunWorKNotes】.mp4 [102.0 MB]
[18.9]--为进程添加文件打开表.mp4 [30.8 MB]
📁 {4}--引导程序:接管控制权
[4.6]--使用BIOS中断显示字符.mp4 [16.3 MB]
[4.7]--使用BIOS中断读取磁盘.mp4 [38.9 MB]
[4.8]--进入C语言环境并跳到loader(1)【资源精选‖更多关注:CunworkNotes】.mp4 [23.4 MB]
[4.9]--进入C语言环境并跳到loader(2)【持续更新‖免费提供:CunworknoteS】.mp4 [31.4 MB]
[4.3]--创建可引导的启动程序.mp4 [53.2 MB]
[4.1]--计算机启动流程简介【整理不易‖记得关注:CunWorKNotes】.mp4 [33.3 MB]
[4.4]--初始化引导程序(1)【公重号:CunWorkNotes】.mp4 [19.6 MB]
[4.5]--初始化引导程序(2).mp4 [14.5 MB]
[4.2]--接管运行控制权.mp4 [30.7 MB]
📁 {7}--日志与printf格式化输出
[7.3]--实现基本的信息输出(1).mp4 [13.1 MB]
[7.5]--若干字符串和内存操作函数实现.mp4 [46.6 MB]
[7.2]--实现基本的信息输出.mp4 [51.0 MB]
[7.8]--支持整数的格式化(1).mp4 [38.9 MB]
[7.1]--创建日志输出接口【优质资源‖关注:cunWorkNotes 解锁】.mp4 [38.6 MB]
[7.10]--在异常处理程序中打印信息.【更多精选‖公众号:CunWorknotes】 .mp4 [43.5 MB]
[7.4]--实现基本的信息输出(2).mp4 [37.9 MB]
[7.7]--实现字符串的格式化输出(2).mp4 [22.2 MB]
[7.11]--利用assert辅助调试.mp4 [50.7 MB]
[7.9]--支持整数的格式化(2).mp4 [40.2 MB]
[7.6]--实现字符串的格式化输出(1)【公重号:CunWorkNotes】.mp4 [49.3 MB]
📁 {14}--建立系统调用
[14.3]--实现系统调用的调用和返回(2)【更多精选‖公众号:CunWorknotes】 .mp4 [26.7 MB]
[14.2]--实现系统调用的调用和返回(1)【优质资源‖关注:cunWorkNotes 解锁】.mp4 [56.3 MB]
[14.1]--创建调用门【资源精选‖更多关注:CunworkNotes】.mp4 [60.4 MB]
[14.6]--实现getid系统调用【优质资源‖关注:cunWorkNotes 解锁】.mp4 [63.6 MB]
[14.4]--实现msleep系统调用(1).mp4 [54.2 MB]
[14.5]--实现msleep系统调用(2).mp4 [19.4 MB]
[14.7]--实现pint_msg调用.mp4 [22.8 MB]
[14.8]--使用int$0x80实现系统调用.mp4 [62.8 MB]
📁 {13}--隔离操作系统与进程
[13.10]--为进程添加特权级0的栈空间.mp4 [86.4 MB]
[13.1]--隔离操作系统与进程(1)-代码分离.mp4 [75.2 MB]
[13.2]--隔离操作系统与进程(2)-地址分离【优质资源‖关注:cunWorkNotes 解锁】.mp4 [71.4 MB]
[13.9]--切换至应用进程的特权级为最低.mp4 [54.8 MB]
[13.4]--调整应用的特权级(1).mp4 [36.7 MB]
[13.6]--调整异常处理函数(1).mp4 [37.1 MB]
[13.8]--修改空闲任务的特权级.mp4 [28.5 MB]
[13.3]--隔离操作系统与进程(3)-搬运代码【更多精选‖公众号:CunWorknotes】 .mp4 [70.9 MB]
[13.7]--调整异常处理函数(2).mp4 [78.3 MB]
[13.5]--调整应用的特权级(2).mp4 [45.2 MB]
📁 {9}--实现链表数据结构
[9.2]--实现链表的查询函数【整理不易‖记得关注:CunWorKNotes】.mp4 [13.8 MB]
[9.1]--定义结点和链表.mp4 [47.2 MB]
[9.4]--链表的两种删除【更多精选‖公众号:CunWorknotes】 .mp4 [45.1 MB]
[9.6]--获取结点所在的结构(2).mp4 [40.9 MB]
[9.5]--获取结点所在的结构(1)【整理不易‖记得关注:CunWorKNotes】.mp4 [10.3 MB]
[9.3]--链表的两种插入.mp4 [36.7 MB]





