找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1886

积分

0

好友

250

主题
发表于 7 小时前 | 查看: 4| 回复: 0

课程简介

本课程是一门深度解析X64架构与操作系统底层原理的专业课程。课程从X64基本架构和工作模式讲起,系统性地讲解了如何从实模式引导,逐步进入保护模式、IA-32e兼容模式,最终抵达64位模式并构建一个具备多任务管理能力的简易操作系统内核。你将深入学习4级分页机制、快速系统调用(SYSCALL/SYSRET)、任务状态段(TSS)、进程控制块(PCB)链表管理、动态内存分配及任务调度等核心机制。通过手把手实现从引导加载器到多任务外壳的完整过程,你将透彻理解现代处理器架构与操作系统任务管理的精髓,为深入内核开发、系统编程及性能优化打下坚实基础。


下载地址

游客,如果您要查看本帖隐藏内容请回复

课程目录

01 内容提要及课程相关说明

第1节:课程内容概述与学习说明。

02 X64基本架构和执行环境

第1–35节:X64架构由来、工作模式、寄存器扩展、分页技术、寻址方式等基础知识。

03 准备进入IA-32e模式

第1–24节:主引导程序编写、内核加载器加载、处理器检测、进入保护模式等启动准备。

04 为进入IA-32e模式准备4级分页

第1–20节:4级分页原理、结构创建、内存映射、控制寄存器设置等分页系统初始化。

05 进入IA-32e的64位模式执行

第1–17节:进入64位模式、中断处理设置、初始化8259控制器、打印第一条信息等。

06 单处理器环境下的多任务管理和调度

第1–51节:多任务概述、快速系统调用、内存分配、任务创建与切换、用户程序加载等。

--- 点击展开详细目录 ---

{1}-内容提要及课程相关说明

  • 🎬 [1.1]-内容提要及课程相关说明-.mp4

{2}-X64基本架构和执行环境

  • 🎬 [2.10]-X86处理器的物理地址空间-.mp4
  • 🎬 [2.11]-X64架构下传统模式的内存访问-.mp4
  • 🎬 [2.12]-传统模式下的32位4KB分页技术-.mp4
  • 🎬 [2.13]-传统模式下如何利用超过4GB的物理内存-.mp4
  • 🎬 [2.14]-传统模式下的32位4MB分页技术-.mp4
  • 🎬 [2.15]-传统模式下的32位PAE分页技术-.mp4
  • 🎬 [2.16]-传统模式下的32位PAE-4KB分页技术-.mp4
  • 🎬 [2.17]-传统模式下的32位PAE-2MB分页技术-.mp4
  • 🎬 [2.18]-X64架构的线性地址空间-.mp4
  • 🎬 [2.19]-扩高地址的特点和处理器检查-.mp4
  • 🎬 [2.1]-有关本章内容学习的重要提示-.mp4
  • 🎬 [2.20]-X64架构下IA-32e模式的内存访问-.mp4
  • 🎬 [2.21]-X64架构的段寄存器-.mp4
  • 🎬 [2.22]-X64架构下的代码段描述符-.mp4
  • 🎬 [2.23]-X64架构下的数据段描述符-.mp4
  • 🎬 [2.24]-X64架构下的4级和5级分页简介-.mp4
  • 🎬 [2.25]-X64架构下的系统表和系统描述符-.mp4
  • 🎬 [2.26]-X64架构下的GDTR-.mp4
  • 🎬 [2.27]-X64架构下的IDTR-.mp4
  • 🎬 [2.28]-X64架构下的LDT描述符和LDTR-.mp4
  • 🎬 [2.29]-X64架构下的TSS描述符和TR-.mp4
  • 🎬 [2.2]-X64架构的由来-.mp4
  • 🎬 [2.30]-X64架构下的标志寄存器和指令指针寄存器-.mp4
  • 🎬 [2.31]-X64架构下传统模式的寻址方式-.mp4
  • 🎬 [2.32]-X64架构下IA-32e模式的寻址方式-.mp4
  • 🎬 [2.33]-64位模式的RIP相对寻址方式-.mp4
  • 🎬 [2.34]-64位模式下的指令变化情况-.mp4
  • 🎬 [2.35]-IA-32e模式下的中断和异常处理概述-.mp4
  • 🎬 [2.3]-物理地址、有效地址和线性地址-.mp4
  • 🎬 [2.4]-X64架构的工作模式-.mp4
  • 🎬 [2.5]-IA-32e模式及其子模式-.mp4
  • 🎬 [2.6]-第一次阶段性巩固和测试-.mp4
  • 🎬 [2.7]-X64架构对通用寄存器的扩展-.mp4
  • 🎬 [2.8]-X64架构新增加的通用寄存器-.mp4
  • 🎬 [2.9]-X64架构的通用寄存器访问规则-.mp4

{3}-准备进入IA-32e模式

  • 🎬 [3.10]-调用BIOS例程显示字符串-.mp4
  • 🎬 [3.11]-读磁盘失败后的错误处理-.mp4
  • 🎬 [3.12]-准备读取内核加载器程序的剩余部分-.mp4
  • 🎬 [3.13]-转入内核加载器执行-.mp4
  • 🎬 [3.14]-检测处理器是否支持IA-32e模式-.mp4
  • 🎬 [3.15]-位测试指令BT-.mp4
  • 🎬 [3.16]-获取和显示处理器商标信息-.mp4
  • 🎬 [3.17]-获取和保存处理器的地址尺寸数据-.mp4
  • 🎬 [3.18]-显示处理器的地址尺寸信息-.mp4
  • 🎬 [3.19]-为进入保护模式准备全局描述符表-.mp4
  • 🎬 [3.1]-进入IA-32e模式的方法-.mp4
  • 🎬 [3.20]-进入保护模式-.mp4
  • 🎬 [3.21]-在保护模式下显示字符串-.mp4
  • 🎬 [3.22]-有关内核程序及其如何加载的说明-.mp4
  • 🎬 [3.23]-读取内核程序的第一个扇区-.mp4
  • 🎬 [3.24]-将内核程序完全加载到内存中-.mp4
  • 🎬 [3.2]-本章的目标及源程序的组织-.mp4
  • 🎬 [3.3]-主引导程序和NASM的文件包含功能-.mp4
  • 🎬 [3.4]-如何避免文件被重复包含-.mp4
  • 🎬 [3.5]-编写主引导程序的一般性建议-.mp4
  • 🎬 [3.6]-用BIOS硬盘扩展读加载内核加载器-.mp4
  • 🎬 [3.7]-在程序中使用NASM运算符和表达式-.mp4
  • 🎬 [3.8]-内核加载器程序的有效标志和长度-.mp4
  • 🎬 [3.9]-通过数据段访问栈中的数据结构-.mp4

{4}-为进入IA-32e模式准备4级分页

  • 🎬 [4.10]-创建与低端2MB物理内存对应的4级头表项和页目录指针表-.mp4
  • 🎬 [4.11]-创建与低端2MB物理内存对应的页目录指针项和页目录表-.mp4
  • 🎬 [4.12]-创建与低端2MB物理内存对应的页目录项-.mp4
  • 🎬 [4.13]-将物理内存低端的2MB映射到线性地址空间的高端-.mp4
  • 🎬 [4.14]-为多任务环境准备必要的4级头表项-.mp4
  • 🎬 [4.15]-为内核的4级分页系统预分配254个页目录指针表-.mp4
  • 🎬 [4.16]-在内核的4级头表内安装254个表项并清空相关的页目录指针表-.mp4
  • 🎬 [4.17]-进程上下文标识PCID-.mp4
  • 🎬 [4.18]-控制寄存器CR3的内容格式-.mp4
  • 🎬 [4.19]-设置控制寄存器CR3并开启物理地址扩展功能-.mp4
  • 🎬 [4.1]-4级分页的结构和原理-.mp4
  • 🎬 [4.20]-型号专属寄存器IA32_EFER的设置和分页的开启-.mp4
  • 🎬 [4.2]-2MB和1GB页面的4级分页方式-.mp4
  • 🎬 [4.3]-4级头表项的格式-.mp4
  • 🎬 [4.4]-页目录指针项的格式-.mp4
  • 🎬 [4.5]-页目录项和页表项的格式-.mp4
  • 🎬 [4.6]-4级头表的创建和初始化-.mp4
  • 🎬 [4.7]-创建指向4级头表自身的4级头表项-.mp4
  • 🎬 [4.8]-准备映射物理内存的低端2MB空间-.mp4
  • 🎬 [4.9]-在4级分页中使用2MB的物理页-.mp4

{5}-进入IA-32e的64位模式执行

  • 🎬 [5.10]-通用异常服务例程的工作过程-.mp4
  • 🎬 [5.11]-加载有效地址指令LEA-.mp4
  • 🎬 [5.12]-创建通用中断处理过程的中断门-.mp4
  • 🎬 [5.13]-在IDT内安装前32个与异常有关的中断门-.mp4
  • 🎬 [5.14]-在IDT内安装剩余的中断门并加载IDTR-.mp4
  • 🎬 [5.15]-初始化8259中断控制器-.mp4
  • 🎬 [5.16]-打印64位模式下的第一条信息-.mp4
  • 🎬 [5.17]-在虚拟机上观察内核的运行情况-.mp4
  • 🎬 [5.1]-在IA-32e的兼容模式下显示文本信息-.mp4
  • 🎬 [5.2]-通过远返回方式进入64位模式的内核-.mp4
  • 🎬 [5.3]-准备让内核工作在线性地址空间的高端-.mp4
  • 🎬 [5.4]-启用GDT和栈区的高端线性地址-.mp4
  • 🎬 [5.5]-使用RIP相对寻址将内核的起始线性地址改为高端地址-.mp4
  • 🎬 [5.6]-让处理器转到内核程序对应的高端位置继续执行-.mp4
  • 🎬 [5.7]-IA-32e模式下的中断门和陷阱门-.mp4
  • 🎬 [5.8]-IA-32e模式下的中断处理过程-.mp4
  • 🎬 [5.9]-内核的文件组织与通用的中断和异常处理策略-.mp4

{6}-单处理器环境下的多任务管理和调度

  • 🎬 [6.10]-内核可用线性地址的获取和更新-.mp4
  • 🎬 [6.11]-立即数在64位模式下的长度限制-.mp4
  • 🎬 [6.12]-计算本次内存分配涉及的线性地址范围-.mp4
  • 🎬 [6.13]-获取与指定线性地址对应的4级头表项的线性地址-.mp4
  • 🎬 [6.14]-页面分配与页映射位串-.mp4
  • 🎬 [6.15]-页映射位串的定义和空闲页的查找-.mp4
  • 🎬 [6.16]-获取与指定线性地址对应的页目录指针项的线性地址-.mp4
  • 🎬 [6.17]-检查与指定线性地址对应的页目录指针项是否存在-.mp4
  • 🎬 [6.18]-分配页目录表并安装与线性地址对应的页目录指针项-.mp4
  • 🎬 [6.19]-安装与指定线性地址对应的页目录项、页表项和页面-.mp4
  • 🎬 [6.1]-单处理器环境下的多任务概述-.mp4
  • 🎬 [6.20]-64位LDT和TSS描述符的格式-.mp4
  • 🎬 [6.21]-创建和安装64位的TSS描述符并加载任务寄存器TR-.mp4
  • 🎬 [6.22]-实时时钟中断的安装和系统外壳任务简介-.mp4
  • 🎬 [6.23]-准备创建外壳任务-.mp4
  • 🎬 [6.24]-为新任务创建任务控制块PCB-.mp4
  • 🎬 [6.25]-为新任务创建4级头表-.mp4
  • 🎬 [6.26]-将指定的线性地址映射到指定的物理页-.mp4
  • 🎬 [6.27]-复制当前活动4级头表的内容给新任务的4级头表-.mp4
  • 🎬 [6.28]-切换到新任务的地址空间并清空4级头表的前半部分-.mp4
  • 🎬 [6.29]-为新任务分配0特权级使用的栈空间-.mp4
  • 🎬 [6.2]-快速系统调用概述-.mp4
  • 🎬 [6.30]-为新任务分配3特权级使用的栈空间-.mp4
  • 🎬 [6.31]-从硬盘上加载用户程序-.mp4
  • 🎬 [6.32]-生成任务标识-.mp4
  • 🎬 [6.33]-双向PCB链表概述-.mp4
  • 🎬 [6.34]-将新任务的PCB添加到PCB链表中-.mp4
  • 🎬 [6.35]-64位的任务状态段TSS和中断栈表IST-.mp4
  • 🎬 [6.36]-以中断返回的方式进入外壳任务的局部空间执行-.mp4
  • 🎬 [6.37]-系统调用指令SYSCALL和SYSRET-.mp4
  • 🎬 [6.38]-根据功能号计算内核例程的线性地址-.mp4
  • 🎬 [6.39]-快速系统调用的返回和指令的REX前缀-.mp4
  • 🎬 [6.3]-型号专属寄存器IA32_STAR-.mp4
  • 🎬 [6.40]-准备在时钟中断的处理中执行任务切换-.mp4
  • 🎬 [6.41]-执行任务切换-.mp4
  • 🎬 [6.42]-通过系统调用获取屏幕上可用的显示行坐标-.mp4
  • 🎬 [6.43]-通过系统调用获取当前时间-.mp4
  • 🎬 [6.44]-在外壳任务中显示当前时间-.mp4
  • 🎬 [6.45]-用户任务的结构和功能-.mp4
  • 🎬 [6.46]-当前任务标识的获取和用户程序例程库的介绍-.mp4
  • 🎬 [6.47]-将64位二进制数转换为十进制字符串-.mp4
  • 🎬 [6.48]-在每一轮相加中将结果和加数转换为字符串-.mp4
  • 🎬 [6.49]-字符串的连接和显示-.mp4
  • 🎬 [6.4]-准备在GDT中安装新的描述符-.mp4
  • 🎬 [6.50]-用户任务的终止-.mp4
  • 🎬 [6.51]-任务切换频次对用户体验的影响-.mp4
  • 🎬 [6.5]-为快速系统调用安装段描述符-.mp4
  • 🎬 [6.6]-为快速系统调用准备段选择子-.mp4
  • 🎬 [6.7]-设置快速系统调用的入口点-.mp4
  • 🎬 [6.8]-快速系统调用时的RFLAGS和栈切换-.mp4
  • 🎬 [6.9]-动态内存分配和内核空间的分配策略-.mp4





上一篇:进击的编程思想!小马哥带你学Spring AOP核心编程思想教程 从基础到源码,全面掌握Spring AOP与设计模式
下一篇:深入解析Android音频输出链路:从PCM到多路扬声器的映射与混音机制
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-28 23:41 , Processed in 0.387198 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表