李述铜:从0手写自己的Linux x86操作系统,深入理解计算机体系结构 价值798元

李述铜:从0手写自己的Linux x86操作系统,深入理解计算机体系结构

本套课程从0手写自己的Linux x86操作系统,深入理解计算机体系,课程官方售价798元,由多年开发经验,熟悉ARM体系结构,从事过嵌入式调试工具的开发的李述铜老师主讲,课程共分为22个章节,文件大小共计12.27G。

课程采用从0行代码编写的方式,教你如何写一个类似(非相同)Linux 0.11的x86操作系统,从而深入掌握操作系统的工作原理,文章底部附下载地址。

课程适合学员:

1.对操作系统内部工作机制感兴趣;
2.想要设计操作系统的大学生;
3.软件开发人员。

从0手写自己的Linux x86操作系统 视频截图

从0手写自己的Linux x86操作系统 视频截图

从0手写自己的Linux x86操作系统 视频截图

从0手写自己的Linux x86操作系统 视频截图

课程文件目录:V-4456:李述铜从0手写自己的Linux x86操作系统 [12.27G]

{1}–课前准备

(1.2)–无资料,链接已失效.pdf

(1.4)–常见问题.pdf

[1.1]–课程简介.mp4

[1.3]–资料下载说明.mp4

{10}–进程的管理与延时

[10.1]–添加任务管理器.mp4

[10.10]–让所有进程都能延时.mp4

[10.2]–将任务加入就绪队列.mp4

[10.3]–进程主动放弃cpu.mp4

[10.4]–让进程按时间片运行.mp4

[10.5]–让进程按时间片运行(2).mp4

[10.6]–临界资源及简单的保护.mp4

[10.7]–临界资源及简单的保护(2).mp4

[10.8]–临界资源及简单的保护(3).mp4

[10.9]–让进程能够延时运行.mp4

{11}–进程间的同步与互斥

[11.1]–计数信号量及其初始化.mp4

[11.2]–发送和等待信号.mp4

[11.3]–使用计数信号量.mp4

[11.4]–互斥锁及其初始化.mp4

[11.5]–互斥锁的加解锁.mp4

[11.6]–应用互斥锁.mp4

{12}–虚拟内存管理和保护模式

[12.1]–内存管理问题.mp4

[12.10]–内存分页机制介绍.mp4

[12.11]–开启内存分页机制.mp4

[12.12]–开启内存分页机制(2)-1.mp4

[12.13]–开启内存分页机制(2)-2.mp4

[12.14]–开启内存分页机制(2)-3.mp4

[12.15]–创建内核页表-建立映射表(1).mp4

[12.16]–创建内核页表-建立映射表(2).mp4

[12.17]–创建内核页表(2)-页目录和页表结构.mp4

[12.18]–创建内核页表(3)-建立映射表.mp4

[12.19]–创建内核页表(3)-建立映射表(2).mp4

[12.2]–位图数据结构与初始化.mp4

[12.20]–创建内核页表(3)-建立映射表(3).mp4

[12.21]–创建内核页表(4)-添加权限处理.mp4

[12.22]–为进程创建页表.mp4

[12.23]–为进程创建页表(2).mp4

[12.3]–位图位的分配.mp4

[12.4]–位图位的分配(2).mp4

[12.5]–创建地址分配结构.mp4

[12.6]–创建地址分配结构(2).mp4

[12.7]–规划内存空间的分配.mp4

[12.8]–规划内存空间的分配(2).mp4

[12.9]–规划内存空间的分配(3).mp4

{13}–隔离操作系统与进程

[13.1]–隔离操作系统与进程-代码分离.mp4

[13.10]–为进程添加特权级0的栈空间.mp4

[13.2]–隔离操作系统与进程(2)-地址分离.mp4

[13.3]–隔离操作系统与进程(3)-搬运代码.mp4

[13.4]–调整应用的特权级.mp4

[13.5]–调整应用的特权级(2).mp4

[13.6]–调整异常处理函数.mp4

[13.7]–调整异常处理函数(2).mp4

[13.8]–修改空闲任务的特权级.mp4

[13.9]–切换至应用进程的特权级为最低.mp4

{14}–建立系统调用

[14.1]–创建调用门.mp4

[14.2]–实现系统调用的调用和返回.mp4

[14.3]–实现系统调用的调用和返回(2).mp4

[14.4]–实现msleep系统调用.mp4

[14.5]–实现msleep系统调用(2).mp4

[14.6]–实现getid系统调用.mp4

[14.7]–实现pint_msg调用.mp4

[14.8]–使用int$0x80实现系统调用.mp4

{15}–新进程的加载与创建

[15.1]–实现fork系统调用-添加调用接口.mp4

[15.10]–实现exec系统调用(6)-为进程传递参数.mp4

[15.11]–实现exec系统调用(6)-为进程传递参数(2).mp4

[15.12]–添加sys_yield系统调用.mp4

[15.2]–实现fork系统调用(2)-分配任务块.mp4

[15.3]–实现fork系统调用(3)-初始化任务块.mp4

[15.4]–实现fork系统调用(4)-复制进程地址空间.mp4

[15.5]–实现exec系统调用-创建一个空应用.mp4

[15.6]–实现exec系统调用(2)-增加空的exec调用.mp4

[15.7]–实现exec系统调用(3)-添加虚似文件访问接口.mp4

[15.8]–实现exec系统调用(4)-解析并加载elf文件.mp4

[15.9]–实现exec系统调用(5)-分配栈并进入进程执行.mp4

{16}–使用c标准库中的printf输出

[16.1]–增加文件系统调用.mp4

[16.2]–增加文件系统调用(2).mp4

[16.3]–导入newlibc并调用printf.mp4

[16.4]–为malloc实现sys_brk调用.mp4

[16.5]–为malloc实现sys_brk调用(2).mp4

[16.6]–简单的printf调用实现.mp4

{17}–使用控制台与键盘进行输入输出

[17.1]–控制台简介与初始化.mp4

[17.10]–键盘初始化.mp4

[17.11]–借助按键映射表进行键值转换.mp4

[17.12]–借助按键映射表进行键值转换(2).mp4

[17.13]–处理caplock键.mp4

[17.14]–处理其它特殊功能键.mp4

[17.2]–控制台简介与初始化(2).mp4

[17.3]–在控制台上显示字符串.mp4

[17.4]–处理换行和清屏.mp4

[17.5]–设置光标并重定向日志输出到显示器.mp4

[17.6]–有趣的转义字符串以及删除字符.mp4

[17.7]–保存并恢复光标位置.mp4

[17.8]–更新显示字体的颜色.mp4

[17.9]–移动光标位置及清屏.mp4

{18}–设备管理与文件系统

[18.1]–设备管理框架简介.mp4

[18.10]–打开tty设备并向其写入数据.mp4

[18.11]–从tty读取键值字符串并显示.mp4

[18.12]–打开标准输出及错误输出文件.mp4

[18.13]–允许切换tty窗口.mp4

[18.14]–允许切换tty窗口(2).mp4

[18.15]–为每个tty窗口创建进程并保护.mp4

[18.2]–增加tty设备.mp4

[18.3]–实现dev层接口操作.mp4

[18.4]–为tty设备添加结构描述.mp4

[18.5]–实现tty设备的打开.mp4

[18.6]–通过tty设备写显示数据.mp4

[18.7]–通过tty设备写显示数据(2).mp4

[18.8]–文件系统简介及初始化.mp4

[18.9]–为进程添加文件打开表.mp4

{19}–实现一个命令行解释器

[19.1]–初始化命令行解释器.mp4

[19.2]–实现help命令的解析.mp4

[19.3]–执行echo命令并给输出加点颜色.mp4

[19.4]–执行echo命令并给输出加点颜色(2).mp4

[19.5]–为进程增加exit接口.mp4

[19.6]–为进程增加wait接口.mp4

[19.7]–为进程增加wait接口(2).mp4

[19.8]–为进程增加wait接口(3).mp4

[19.9]–让子进程继承父进程已打开的文件.mp4

{2}–开发环境准备

(2.2)–注意事项(必看!!!).pdf

[2.1]–开发工具总览.mp4

[2.3]–windows平台.mp4

[2.4]–linux平台(ubuntu).mp4

[2.5]–mac平台.mp4

{20}–使用文件系统管理硬件设备

[20.1]–描述一个文件系统.mp4

[20.2]–挂载设备文件系统.mp4

[20.3]–挂载设备文件系统(2).mp4

[20.4]–挂载设备文件系统(3).mp4

[20.5]–打开devtty0文件-只打开devfs中的文件.mp4

[20.6]–打开devtty0文件(2)-更通用的打开方式.mp4

[20.7]–往devtty0读写数据.mp4

{21}–磁盘与fat16文件系统

[21.1]–磁盘基本特性简介.mp4

[21.10]–实现磁盘的读取和写入(2).mp4

[21.11]–fat16文件系统简介.mp4

[21.12]–fat16文件系统简介(2).mp4

[21.13]–挂载fat16文件系统.mp4

[21.14]–挂载fat16文件系统(2).mp4

[21.15]–挂载fat16文件系统(3).mp4

[21.16]–遍历目录命令ls的实现-添加系统调用接口.mp4

[21.17]–遍历目录命令ls的实现(2)-列出虚假的目录内容.mp4

[21.18]–遍历目录命令ls的实现(3)-列出真实的目录内容.mp4

[21.19]–遍历目录命令ls的实现(3)-列出真实的目录内容(2).mp4

[21.2]–识别系统中已有的磁盘.mp4

[21.20]–遍历目录命令ls的实现(3)-列出真实的目录内容(3).mp4

[21.21]–文件查看命令less的实现-打开文件.mp4

[21.22]–文件查看命令less的实现(2)-显示部分文件内容.mp4

[21.23]–文件查看命令less的实现(3)-显示全部文件内容.mp4

[21.24]–文件查看命令less的实现(4)-逐行显示文件内容.mp4

[21.25]–通过文件系统加载shell.mp4

[21.26]–让shell加载应用程序运行.mp4

[21.27]–应用运行异常时强制中断运行.mp4

[21.28]–文件复制命令cp的实现-创建新文件.mp4

[21.29]–文件复制命令cp的实现(2)-删除文件.mp4

[21.3]–识别系统中已有的磁盘(2).mp4

[21.30]–文件复制命令cp的实现(3)-文件写入.mp4

[21.31]–文件复制命令cp的实现(4)-文件写入(2).mp4

[21.32]–最后的调整.mp4

[21.4]–识别系统中已有的磁盘(3).mp4

[21.5]–识别系统中已有的磁盘(4).mp4

[21.6]–解析磁盘分区表.mp4

[21.7]–解析磁盘分区表(2).mp4

[21.8]–增加磁盘设备管理.mp4

[21.9]–实现磁盘的读取和写入.mp4

{22}–课程总结

[22.1]–设计总结.mp4

{3}–前置课(选学,介绍x86保护模式下的编程)

(3.1)–课程说明.pdf

[3.10]–进入保护模式.mp4

[3.11]–进入保护模式(2).mp4

[3.12]–进入保护模式(3).mp4

[3.13]–打开分页机制.mp4

[3.14]–打开分页机制(2).mp4

[3.15]–打开分页机制(3).mp4

[3.16]–开启定时中断.mp4

[3.17]–开启定时中断(2).mp4

[3.18]–开启定时中断(3).mp4

[3.19]–切换至低特权级.mp4

[3.2]–课程简介.mp4

[3.20]–切换至低特权级(2).mp4

[3.21]–切换至低特权级(3).mp4

[3.22]–两个任务的切换.mp4

[3.23]–两个任务的切换(2).mp4

[3.24]–两个任务的切换(3).mp4

[3.25]–增加系统调用..mp4

[3.26]–增加系统调用(2)..mp4

[3.27]–增加系统调用(3)..mp4

[3.28]–使用ldt.mp4

[3.29]–使用ldt(2).mp4

[3.3]–开发环境安装(与前面部分内容有重复).mp4

[3.30]–使用ldt(3).mp4

[3.31]–课程总结.mp4

[3.4]–工程组织结构.mp4

[3.5]–让计算机跑我们的操作系统.mp4

[3.6]–x86处理器编程模型.mp4

[3.7]–x86处理器编程模型(2).mp4

[3.8]–加载自己的剩余部分.mp4

[3.9]–加载自己的剩余部分(2).mp4

{4}–引导程序:接管控制权

[4.1]–计算机启动流程简介.mp4

[4.2]–接管运行控制权.mp4

[4.3]–创建可引导的启动程序.mp4

[4.4]–初始化引导程序.mp4

[4.5]–初始化引导程序(2).mp4

[4.6]–使用bios中断显示字符.mp4

[4.7]–使用bios中断读取磁盘.mp4

[4.8]–进入c语言环境并跳到loader.mp4

[4.9]–进入c语言环境并跳到loader(2).mp4

{5}–加载器loader的实现

[5.1]–利用内联汇编显示字符串.mp4

[5.10]–创建内核工程.mp4

[5.11]–向内核传递启动信息.mp4

[5.12]–向内核传递启动信息(2).mp4

[5.13]–代码段数据段与链接脚本.mp4

[5.14]–代码段数据段与链接脚本(2).mp4

[5.15]–加载内核映像文件.mp4

[5.16]–加载内核映像文件(2).mp4

[5.2]–检测内存容量.mp4

[5.3]–检测内存容量(2).mp4

[5.4]–切换进保护模式-1.mp4

[5.5]–切换进保护模式-2.mp4

[5.6]–切换进保护模式-3.mp4

[5.7]–切换进保护模式(2)-1.mp4

[5.8]–切换进保护模式(2)-2.mp4

[5.9]–使用lba模式读取磁盘.mp4

{6}–中断与异常处理

[6.1]–创建gdt表及其表项.mp4

[6.10]–捕获除0异常(2).mp4

[6.11]–解析异常栈信息.mp4

[6.12]–解析异常栈信息(2).mp4

[6.13]–利用宏重用异常处理代码.mp4

[6.14]–利用宏重用异常处理代码(2).mp4

[6.15]–处理其它类型的异常.mp4

[6.16]–处理其它类型的异常(2).mp4

[6.17]–初始化中断控制器.mp4

[6.18]–初始化中断控制器(2).mp4

[6.19]–中断的打开与关闭.mp4

[6.2]–创建gdt表及其表项(2).mp4

[6.20]–启动定时器并开中断.mp4

[6.21]–启动定时器并开中断(2).mp4

[6.22]–启动定时器并开中断(3).mp4

[6.3]–保护模式下的内存管理简介.mp4

[6.4]–重新加载gdt.mp4

[6.5]–重新加载gdt(2).mp4

[6.6]–触发异常与异常简介.mp4

[6.7]–添加中断门描述符.mp4

[6.8]–初始化idt表.mp4

[6.9]–捕获除0异常.mp4

{7}–日志与printf格式化输出

[7.1]–创建日志输出接口.mp4

[7.10]–在异常处理程序中打印信息..mp4

[7.11]–利用assert辅助调试.mp4

[7.2]–实现基本的信息输出.mp4

[7.3]–实现基本的信息输出.mp4

[7.4]–实现基本的信息输出(2).mp4

[7.5]–若干字符串和内存操作函数实现.mp4

[7.6]–实现字符串的格式化输出.mp4

[7.7]–实现字符串的格式化输出(2).mp4

[7.8]–支持整数的格式化.mp4

[7.9]–支持整数的格式化(2).mp4

{8}–实现简单的进程切换

[8.1]–创建两个小任务.mp4

[8.10]–另一种任务切换方法.mp4

[8.11]–另一种任务切换方法(2).mp4

[8.2]–添加任务状态段.mp4

[8.3]–添加任务状态段(2).mp4

[8.4]–任务的简单初始化.mp4

[8.5]–任务的简单初始化(2)-1.mp4

[8.6]–任务的简单初始化(2)-2.mp4

[8.7]–简单双任务相互切换.mp4

[8.8]–简单双任务相互切换(2).mp4

[8.9]–简单双任务相互切换(3).mp4

{9}–实现链表数据结构

[9.1]–定义结点和链表.mp4

[9.2]–实现链表的查询函数.mp4

[9.3]–链表的两种插入.mp4

[9.4]–链表的两种删除.mp4

[9.5]–获取结点所在的结构.mp4

[9.6]–获取结点所在的结构(2).mp4


资源下载

您需要先后,才能查看下载地址

资源来源于网络,仅限购买正版前临时了解,版权归原作者所有,请下载后24小时内自行删除。如有需要,请购买正版。 如有侵权,请联系删除(邮箱:vipresc@outlook.com)。
未经允许不得转载:VIP课程/资源网 » 李述铜:从0手写自己的Linux x86操作系统,深入理解计算机体系结构