
网易云 - X64架构汇编语言和操作系统基础
来自 网络整理·免费领取学习资源
8,283 领取 · 7,654 收藏更新于 2026年9月20日
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《网易云 - X64架构汇编语言和操作系统基础》。官网需要单独购买,有集上可以免费领取。
资源介绍:
适用人群
具有计算机的使用经验,学过并熟悉x86处理器保护模式的内容。建议先学习《x86汇编语言:从实模式到保护模式》一书或者本讲师的同名视频课程
介绍64位x86处理器的硬件架构、以及与操作系统相关的内容,包括:单处理器的多任务切换、多处理器的多任务切换和多线程切换、数据竞争、信号量、锁、线程同步和内存屏障等。注意:我们是用汇编语言来讲,而不是用高级语言!!!用汇编语言在硬件层级上讲上述内容,更透彻、更清晰!!!
课程目录
- {1}–内容提要及课程相关说明
- [1.1]–内容提要及课程相关说明
- {2}–X64基本架构和执行环境
- [2.10]–X86处理器的物理地址空间
- [2.11]–X64架构下传统模式的内存访问
- [2.12]–传统模式下的32位4KB分页技术
- [2.13]–传统模式下如何利用超过4GB的物理内存
- [2.14]–传统模式下的32位4MB分页技术
- [2.15]–传统模式下的32位PAE分页技术
- [2.16]–传统模式下的32位PAE-4KB分页技术
- [2.17]–传统模式下的32位PAE-2MB分页技术
- [2.18]–X64架构的线性地址空间
- [2.19]–扩高地址的特点和处理器检查
- [2.1]–有关本章内容学习的重要提示
- [2.20]–X64架构下IA-32e模式的内存访问
- [2.21]–X64架构的段寄存器
- [2.22]–X64架构下的代码段描述符
- [2.23]–X64架构下的数据段描述符
- [2.24]–X64架构下的4级和5级分页简介
- [2.25]–X64架构下的系统表和系统描述符
- [2.26]–X64架构下的GDTR
- [2.27]–X64架构下的IDTR
- [2.28]–X64架构下的LDT描述符和LDTR
- [2.29]–X64架构下的TSS描述符和TR
- [2.2]–X64架构的由来
- [2.30]–X64架构下的标志寄存器和指令指针寄存器
- [2.31]–X64架构下传统模式的寻址方式
- [2.32]–X64架构下IA-32e模式的寻址方式
- [2.33]–64位模式的RIP相对寻址方式
- [2.34]–64位模式下的指令变化情况
- [2.35]–IA-32e模式下的中断和异常处理概述
- [2.3]–物理地址、有效地址和线性地址
- [2.4]–X64架构的工作模式
- [2.5]–IA-32e模式及其子模式
- [2.6]–第一次阶段性巩固和测试
- [2.7]–X64架构对通用寄存器的扩展
- [2.8]–X64架构新增加的通用寄存器
- [2.9]–X64架构的通用寄存器访问规则
- {3}–准备进入IA-32e模式
- [3.10]–调用BIOS例程显示字符串
- [3.11]–读磁盘失败后的错误处理
- [3.12]–准备读取内核加载器程序的剩余部分
- [3.13]–转入内核加载器执行
- [3.14]–检测处理器是否支持IA-32e模式
- [3.15]–位测试指令BT
- [3.16]–获取和显示处理器商标信息
- [3.17]–获取和保存处理器的地址尺寸数据
- [3.18]–显示处理器的地址尺寸信息
- [3.19]–为进入保护模式准备全局描述符表
- [3.1]–进入IA-32e模式的方法
- [3.20]–进入保护模式
- [3.21]–在保护模式下显示字符串
- [3.22]–有关内核程序及其如何加载的说明
- [3.23]–读取内核程序的第一个扇区
- [3.24]–将内核程序完全加载到内存中
- [3.2]–本章的目标及源程序的组织
- [3.3]–主引导程序和NASM的文件包含功能
- [3.4]–如何避免文件被重复包含
- [3.5]–编写主引导程序的一般性建议
- [3.6]–用BIOS硬盘扩展读加载内核加载器
- [3.7]–在程序中使用NASM运算符和表达式
- [3.8]–内核加载器程序的有效标志和长度
- [3.9]–通过数据段访问栈中的数据结构
- {4}–为进入IA-32e模式准备4级分页
- [4.10]–创建与低端2MB物理内存对应的4级头表项和页目录指针表
- [4.11]–创建与低端2MB物理内存对应的页目录指针项和页目录表
- [4.12]–创建与低端2MB物理内存对应的页目录项
- [4.13]–将物理内存低端的2MB映射到线性地址空间的高端
- [4.14]–为多任务环境准备必要的4级头表项
- [4.15]–为内核的4级分页系统预分配254个页目录指针表
- [4.16]–在内核的4级头表内安装254个表项并清空相关的页目录指针表
- [4.17]–进程上下文标识PCID
- [4.18]–控制寄存器CR3的内容格式
- [4.19]–设置控制寄存器CR3并开启物理地址扩展功能
- [4.1]–4级分页的结构和原理
- [4.20]–型号专属寄存器IA32_EFER的设置和分页的开启
- [4.2]–2MB和1GB页面的4级分页方式
- [4.3]–4级头表项的格式
- [4.4]–页目录指针项的格式
- [4.5]–页目录项和页表项的格式
- [4.6]–4级头表的创建和初始化
- [4.7]–创建指向4级头表自身的4级头表项
- [4.8]–准备映射物理内存的低端2MB空间
- [4.9]–在4级分页中使用2MB的物理页
- {5}–进入IA-32e的64位模式执行
- [5.10]–通用异常服务例程的工作过程
- [5.11]–加载有效地址指令LEA
- [5.12]–创建通用中断处理过程的中断门
- [5.13]–在IDT内安装前32个与异常有关的中断门
- [5.14]–在IDT内安装剩余的中断门并加载IDTR
- [5.15]–初始化8259中断控制器
- [5.16]–打印64位模式下的第一条信息
- [5.17]–在虚拟机上观察内核的运行情况
- [5.1]–在IA-32e的兼容模式下显示文本信息
- [5.2]–通过远返回方式进入64位模式的内核
- [5.3]–准备让内核工作在线性地址空间的高端
- [5.4]–启用GDT和栈区的高端线性地址
- [5.5]–使用RIP相对寻址将内核的起始线性地址改为高端地址
- [5.6]–让处理器转到内核程序对应的高端位置继续执行
- [5.7]–IA-32e模式下的中断门和陷阱门
- [5.8]–IA-32e模式下的中断处理过程
- [5.9]–内核的文件组织与通用的中断和异常处理策略
- {6}–单处理器环境下的多任务管理和调度
- [6.10]–内核可用线性地址的获取和更新
- [6.11]–立即数在64位模式下的长度限制
- [6.12]–计算本次内存分配涉及的线性地址范围
- [6.13]–获取与指定线性地址对应的4级头表项的线性地址
- [6.14]–页面分配与页映射位串
- [6.15]–页映射位串的定义和空闲页的查找
- [6.16]–获取与指定线性地址对应的页目录指针项的线性地址
- [6.17]–检查与指定线性地址对应的页目录指针项是否存在
- [6.18]–分配页目录表并安装与线性地址对应的页目录指针项
- [6.19]–安装与指定线性地址对应的页目录项、页表项和页面
- [6.1]–单处理器环境下的多任务概述
- [6.20]–64位LDT和TSS描述符的格式
- [6.21]–创建和安装64位的TSS描述符并加载任务寄存器TR
- [6.22]–实时时钟中断的安装和系统外壳任务简介
- [6.23]–准备创建外壳任务
- [6.24]–为新任务创建任务控制块PCB
- [6.25]–为新任务创建4级头表
- [6.26]–将指定的线性地址映射到指定的物理页
- [6.27]–复制当前活动4级头表的内容给新任务的4级头表
- [6.28]–切换到新任务的地址空间并清空4级头表的前半部分
- [6.29]–为新任务分配0特权级使用的栈空间
- [6.2]–快速系统调用概述
- [6.30]–为新任务分配3特权级使用的栈空间
- [6.31]–从硬盘上加载用户程序
- [6.32]–生成任务标识
- [6.33]–双向PCB链表概述
- [6.34]–将新任务的PCB添加到PCB链表中
- [6.35]–64位的任务状态段TSS和中断栈表IST
- [6.36]–以中断返回的方式进入外壳任务的局部空间执行
- [6.37]–系统调用指令SYSCALL和SYSRET
- [6.38]–根据功能号计算内核例程的线性地址
- [6.39]–快速系统调用的返回和指令的REX前缀
- [6.3]–型号专属寄存器IA32_STAR
- [6.40]–准备在时钟中断的处理中执行任务切换
- [6.41]–执行任务切换
- [6.42]–通过系统调用获取屏幕上可用的显示行坐标
- [6.43]–通过系统调用获取当前时间
- [6.44]–在外壳任务中显示当前时间
- [6.45]–用户任务的结构和功能
- [6.46]–当前任务标识的获取和用户程序例程库的介绍
- [6.47]–将64位二进制数转换为十进制字符串
- [6.48]–在每一轮相加中将结果和加数转换为字符串
- [6.49]–字符串的连接和显示
- [6.4]–准备在GDT中安装新的描述符
- [6.50]–用户任务的终止
- [6.51]–任务切换频次对用户体验的影响
- [6.5]–为快速系统调用安装段描述符
- [6.6]–为快速系统调用准备段选择子
- [6.7]–设置快速系统调用的入口点
- [6.8]–快速系统调用时的RFLAGS和栈切换
- [6.9]–动态内存分配和内核空间的分配策略
包含内容
- · {1}–内容提要及课程相关说明
- · [1.1]–内容提要及课程相关说明
- · {2}–X64基本架构和执行环境
- · [2.10]–X86处理器的物理地址空间
- · [2.11]–X64架构下传统模式的内存访问
- · [2.12]–传统模式下的32位4KB分页技术
- · [2.13]–传统模式下如何利用超过4GB的物理内存
- · [2.14]–传统模式下的32位4MB分页技术
贡献者
小宇
白银