李述铜从0手写自己的Linux x86操作系统
├─{1}--课前准备│ --课程简介.mp4
│ (1.2)--资料下载链接.pdf[失效]
│ (1.4)--常见问题.pdf
│ --资料下载说明.mp4
│
├─{2}--开发环境准备
│ --开发工具总览.mp4
│ (2.2)--注意事项(必看!!!).pdf
│ --Windows平台.mp4
│ --Linux平台(ubuntu).mp4
│ --Mac平台.mp4
│
├─{3}--前置课(选学,介绍x86保护模式下的编程)
│ (3.1)--课程说明.pdf
│ --课程简介.mp4
│ --开发环境安装(与前面部分内容有重复).mp4
│ --工程组织结构.mp4
│ --让计算机跑我们的操作系统.mp4
│ --x86处理器编程模型.mp4
│ --x86处理器编程模型(2).mp4
│ --加载自己的剩余部分.mp4
│ --加载自己的剩余部分(2).mp4
│ --进入保护模式.mp4
│ --进入保护模式(2).mp4
│ --进入保护模式(3).mp4
│ --打开分页机制.mp4
│ --打开分页机制(2).mp4
│ --打开分页机制(3).mp4
│ --开启定时中断.mp4
│ --开启定时中断(2).mp4
│ --开启定时中断(3).mp4
│ --切换至低特权级.mp4
│ --切换至低特权级(2).mp4
│ --切换至低特权级(3).mp4
│ --两个任务的切换.mp4
│ --两个任务的切换(2).mp4
│ --两个任务的切换(3).mp4
│ --增加系统调用..mp4
│ --增加系统调用(2)..mp4
│ --增加系统调用(3)..mp4
│ --使用LDT.mp4
│ --使用LDT(2).mp4
│ --使用LDT(3).mp4
│ --课程总结.mp4
│
├─{4}--引导程序:接管控制权
│ --计算机启动流程简介.mp4
│ --接管运行控制权.mp4
│ --创建可引导的启动程序.mp4
│ --初始化引导程序.mp4
│ --初始化引导程序(2).mp4
│ --使用BIOS中断显示字符.mp4
│ --使用BIOS中断读取磁盘.mp4
│ --进入C语言环境并跳到loader.mp4
│ --进入C语言环境并跳到loader(2).mp4
│
├─{5}--加载器loader的实现
│ --利用内联汇编显示字符串.mp4
│ --检测内存容量.mp4
│ --检测内存容量(2).mp4
│ --切换进保护模式-1.mp4
│ --切换进保护模式-2.mp4
│ --切换进保护模式-3.mp4
│ --切换进保护模式(2)-1.mp4
│ --切换进保护模式(2)-2.mp4
│ --使用LBA模式读取磁盘.mp4
│ --创建内核工程.mp4
│ --向内核传递启动信息.mp4
│ --向内核传递启动信息(2).mp4
│ --代码段数据段与链接脚本.mp4
│ --代码段数据段与链接脚本(2).mp4
│ --加载内核映像文件.mp4
│ --加载内核映像文件(2).mp4
│
├─{6}--中断与异常处理
│ --创建GDT表及其表项.mp4
│ --创建GDT表及其表项(2).mp4
│ --保护模式下的内存管理简介.mp4
│ --重新加载GDT.mp4
│ --重新加载GDT(2).mp4
│ --触发异常与异常简介.mp4
│ --添加中断门描述符.mp4
│ --初始化IDT表.mp4
│ --捕获除0异常.mp4
│ --捕获除0异常(2).mp4
│ --解析异常栈信息.mp4
│ --解析异常栈信息(2).mp4
│ --利用宏重用异常处理代码.mp4
│ --利用宏重用异常处理代码(2).mp4
│ --处理其它类型的异常.mp4
│ --处理其它类型的异常(2).mp4
│ --初始化中断控制器.mp4
│ --初始化中断控制器(2).mp4
│ --中断的打开与关闭.mp4
│ --启动定时器并开中断.mp4
│ --启动定时器并开中断(2).mp4
│ --启动定时器并开中断(3).mp4
│
├─{7}--日志与printf格式化输出
│ --创建日志输出接口.mp4
│ --实现基本的信息输出.mp4
│ --实现基本的信息输出.mp4
│ --实现基本的信息输出(2).mp4
│ --若干字符串和内存操作函数实现.mp4
│ --实现字符串的格式化输出.mp4
│ --实现字符串的格式化输出(2).mp4
│ --支持整数的格式化.mp4
│ --支持整数的格式化(2).mp4
│ --在异常处理程序中打印信息..mp4
│ --利用assert辅助调试.mp4
│
├─{8}--实现简单的进程切换
│ --创建两个小任务.mp4
│ --添加任务状态段.mp4
│ --添加任务状态段(2).mp4
│ --任务的简单初始化.mp4
│ --任务的简单初始化(2)-1.mp4
│ --任务的简单初始化(2)-2.mp4
│ --简单双任务相互切换.mp4
│ --简单双任务相互切换(2).mp4
│ --简单双任务相互切换(3).mp4
│ --另一种任务切换方法.mp4
│ --另一种任务切换方法(2).mp4
│
├─{9}--实现链表数据结构
│ --定义结点和链表.mp4
│ --实现链表的查询函数.mp4
│ --链表的两种插入.mp4
│ --链表的两种删除.mp4
│ --获取结点所在的结构.mp4
│ --获取结点所在的结构(2).mp4
│
│
├─{10}--进程的管理与延时
│ --添加任务管理器.mp4
│ --将任务加入就绪队列.mp4
│ --进程主动放弃CPU.mp4
│ --让进程按时间片运行.mp4
│ --让进程按时间片运行(2).mp4
│ --临界资源及简单的保护.mp4
│ --临界资源及简单的保护(2).mp4
│ --临界资源及简单的保护(3).mp4
│ --让进程能够延时运行.mp4
│ --让所有进程都能延时.mp4
│
├─{11}--进程间的同步与互斥
│ --计数信号量及其初始化.mp4
│ --发送和等待信号.mp4
│ --使用计数信号量.mp4
│ --互斥锁及其初始化.mp4
│ --互斥锁的加解锁.mp4
│ --应用互斥锁.mp4
│
├─{12}--虚拟内存管理和保护模式
│ --内存管理问题.mp4
│ --位图数据结构与初始化.mp4
│ --位图位的分配.mp4
│ --位图位的分配(2).mp4
│ --创建地址分配结构.mp4
│ --创建地址分配结构(2).mp4
│ --规划内存空间的分配.mp4
│ --规划内存空间的分配(2).mp4
│ --规划内存空间的分配(3).mp4
│ --内存分页机制介绍.mp4
│ --开启内存分页机制.mp4
│ --开启内存分页机制(2)-1.mp4
│ --开启内存分页机制(2)-2.mp4
│ --开启内存分页机制(2)-3.mp4
│ --创建内核页表-建立映射表(1).mp4
│ --创建内核页表-建立映射表(2).mp4
│ --创建内核页表(2)-页目录和页表结构.mp4
│ --创建内核页表(3)-建立映射表.mp4
│ --创建内核页表(3)-建立映射表(2).mp4
│ --创建内核页表(3)-建立映射表(3).mp4
│ --创建内核页表(4)-添加权限处理.mp4
│ --为进程创建页表.mp4
│ --为进程创建页表(2).mp4
│
├─{13}--隔离操作系统与进程
│ --隔离操作系统与进程-代码分离.mp4
│ --隔离操作系统与进程(2)-地址分离.mp4
│ --隔离操作系统与进程(3)-搬运代码.mp4
│ --调整应用的特权级.mp4
│ --调整应用的特权级(2).mp4
│ --调整异常处理函数.mp4
│ --调整异常处理函数(2).mp4
│ --修改空闲任务的特权级.mp4
│ --切换至应用进程的特权级为最低.mp4
│ --为进程添加特权级0的栈空间.mp4
│
├─{14}--建立系统调用
│ --创建调用门.mp4
│ --实现系统调用的调用和返回.mp4
│ --实现系统调用的调用和返回(2).mp4
│ --实现msleep系统调用.mp4
│ --实现msleep系统调用(2).mp4
│ --实现getid系统调用.mp4
│ --实现pint_msg调用.mp4
│ --使用int$0x80实现系统调用.mp4
│
├─{15}--新进程的加载与创建
│ --实现fork系统调用-添加调用接口.mp4
│ --实现fork系统调用(2)-分配任务块.mp4
│ --实现fork系统调用(3)-初始化任务块.mp4
│ --实现fork系统调用(4)-复制进程地址空间.mp4
│ --实现exec系统调用-创建一个空应用.mp4
│ --实现exec系统调用(2)-增加空的exec调用.mp4
│ --实现exec系统调用(3)-添加虚似文件访问接口.mp4
│ --实现exec系统调用(4)-解析并加载elf文件.mp4
│ --实现exec系统调用(5)-分配栈并进入进程执行.mp4
│ --实现exec系统调用(6)-为进程传递参数.mp4
│ --实现exec系统调用(6)-为进程传递参数(2).mp4
│ --添加sys_yield()系统调用.mp4
│
├─{16}--使用c标准库中的printf输出
│ --增加文件系统调用.mp4
│ --增加文件系统调用(2).mp4
│ --导入newlibc并调用printf.mp4
│ --为malloc实现sys_brk调用.mp4
│ --为malloc实现sys_brk调用(2).mp4
│ --简单的printf调用实现.mp4
│
├─{17}--使用控制台与键盘进行输入输出
│ --控制台简介与初始化.mp4
│ --控制台简介与初始化(2).mp4
│ --在控制台上显示字符串.mp4
│ --处理换行和清屏.mp4
│ --设置光标并重定向日志输出到显示器.mp4
│ --有趣的转义字符串以及删除字符.mp4
│ --保存并恢复光标位置.mp4
│ --更新显示字体的颜色.mp4
│ --移动光标位置及清屏.mp4
│ --键盘初始化.mp4
│ --借助按键映射表进行键值转换.mp4
│ --借助按键映射表进行键值转换(2).mp4
│ --处理caplock键.mp4
│ --处理其它特殊功能键.mp4
│
├─{18}--设备管理与文件系统
│ --设备管理框架简介.mp4
│ --增加tty设备.mp4
│ --实现dev层接口操作.mp4
│ --为tty设备添加结构描述.mp4
│ --实现tty设备的打开.mp4
│ --通过tty设备写显示数据.mp4
│ --通过tty设备写显示数据(2).mp4
│ --文件系统简介及初始化.mp4
│ --为进程添加文件打开表.mp4
│ --打开tty设备并向其写入数据.mp4
│ --从tty读取键值字符串并显示.mp4
│ --打开标准输出及错误输出文件.mp4
│ --允许切换tty窗口.mp4
│ --允许切换tty窗口(2).mp4
│ --为每个tty窗口创建进程并保护.mp4
│
├─{19}--实现一个命令行解释器
│ --初始化命令行解释器.mp4
│ --实现help命令的解析.mp4
│ --执行echo命令并给输出加点颜色.mp4
│ --执行echo命令并给输出加点颜色(2).mp4
│ --为进程增加exit接口.mp4
│ --为进程增加wait接口.mp4
│ --为进程增加wait接口(2).mp4
│ --为进程增加wait接口(3).mp4
│ --让子进程继承父进程已打开的文件.mp4
│
├─{20}--使用文件系统管理硬件设备
│ --描述一个文件系统.mp4
│ --挂载设备文件系统.mp4
│ --挂载设备文件系统(2).mp4
│ --挂载设备文件系统(3).mp4
│ --打开devtty0文件-只打开devfs中的文件.mp4
│ --打开devtty0文件(2)-更通用的打开方式.mp4
│ --往devtty0读写数据.mp4
│
├─{21}--磁盘与fat16文件系统
│ --磁盘基本特性简介.mp4
│ --识别系统中已有的磁盘.mp4
│ --识别系统中已有的磁盘(2).mp4
│ --识别系统中已有的磁盘(3).mp4
│ --识别系统中已有的磁盘(4).mp4
│ --解析磁盘分区表.mp4
│ --解析磁盘分区表(2).mp4
│ --增加磁盘设备管理.mp4
│ --实现磁盘的读取和写入.mp4
│ --实现磁盘的读取和写入(2).mp4
│ --FAT16文件系统简介.mp4
│ --FAT16文件系统简介(2).mp4
│ --挂载FAT16文件系统.mp4
│ --挂载FAT16文件系统(2).mp4
│ --挂载FAT16文件系统(3).mp4
│ --遍历目录命令ls的实现-添加系统调用接口.mp4
│ --遍历目录命令ls的实现(2)-列出虚假的目录内容.mp4
│ --遍历目录命令ls的实现(3)-列出真实的目录内容.mp4
│ --遍历目录命令ls的实现(3)-列出真实的目录内容(2).mp4
│ --遍历目录命令ls的实现(3)-列出真实的目录内容(3).mp4
│ --文件查看命令less的实现-打开文件.mp4
│ --文件查看命令less的实现(2)-显示部分文件内容.mp4
│ --文件查看命令less的实现(3)-显示全部文件内容.mp4
│ --文件查看命令less的实现(4)-逐行显示文件内容.mp4
│ --通过文件系统加载shell.mp4
│ --让shell加载应用程序运行.mp4
│ --应用运行异常时强制中断运行.mp4
│ --文件复制命令cp的实现-创建新文件.mp4
│ --文件复制命令cp的实现(2)-删除文件.mp4
│ --文件复制命令cp的实现(3)-文件写入.mp4
│ --文件复制命令cp的实现(4)-文件写入(2).mp4
│ --最后的调整.mp4
│
└─{22}--课程总结
--设计总结.mp4
下载地址: bli&*(2023
**** Hidden Message ***** 可以的 最后的调整 111111111 666666666666666666666666 6b 可以的
6666 感谢论坛分享
666