lovewh 发表于 2024-2-18 13:18:48

李忠X64架构汇编语言和操作系统基础(前6章)


适合人群:
学过《x86汇编语言:从实模式到保护模式》的图书或者视频课程,了解32位x86处理器的保护模式。

课程概述:
介绍64位x86处理器的硬件架构、以及与操作系统相关的内容,包括:单处理器的多任务切换、多处理器的多任务切换和多线程切换、数据竞争、信号量、锁、线程同步和内存屏障等。注意:我们是用汇编语言来讲,而不是用高级语言!!!用汇编语言在硬件层级上讲上述内容,更透彻、更清晰!!!
本课程共约300课时,一年内更新完毕,每周内至少更新5个课时。
推荐使用支付宝、微信、银行卡方式支付。购买后在个人电脑(PC)或移动设备(手机、平板电脑等)上均可观看。在校学生凭学生证明享受8折优惠。

课程目录:
├──{1}--内容提要及课程相关说明   
   └──--内容提要及课程相关说明.mp410.44M
├──{2}--X64基本架构和执行环境   
   ├──--X86处理器的物理地址空间.mp419.79M
   ├──--X64架构下传统模式的内存访问.mp48.35M
   ├──--传统模式下的32位4KB分页技术.mp49.28M
   ├──--传统模式下如何利用超过4GB的物理内存.mp411.70M
   ├──--传统模式下的32位4MB分页技术.mp434.40M
   ├──--传统模式下的32位PAE分页技术.mp49.18M
   ├──--传统模式下的32位PAE-4KB分页技术.mp446.83M
   ├──--传统模式下的32位PAE-2MB分页技术.mp417.15M
   ├──--X64架构的线性地址空间.mp418.70M
   ├──--扩高地址的特点和处理器检查.mp415.73M
   ├──--有关本章内容学习的重要提示.mp420.35M
   ├──--X64架构下IA-32e模式的内存访问.mp415.89M
   ├──--X64架构的段寄存器.mp413.84M
   ├──--X64架构下的代码段描述符.mp414.07M
   ├──--X64架构下的数据段描述符.mp49.52M
   ├──--X64架构下的4级和5级分页简介.mp416.92M
   ├──--X64架构下的系统表和系统描述符.mp412.91M
   ├──--X64架构下的GDTR.mp418.29M
   ├──--X64架构下的IDTR.mp419.36M
   ├──--X64架构下的LDT描述符和LDTR.mp411.14M
   ├──--X64架构下的TSS描述符和TR.mp410.13M
   ├──--X64架构的由来.mp416.53M
   ├──--X64架构下的标志寄存器和指令指针寄存器.mp429.54M
   ├──--X64架构下传统模式的寻址方式.mp414.41M
   ├──--X64架构下IA-32e模式的寻址方式.mp423.38M
   ├──--64位模式的RIP相对寻址方式.mp415.61M
   ├──--64位模式下的指令变化情况.mp418.89M
   ├──--IA-32e模式下的中断和异常处理概述.mp416.04M
   ├──--物理地址、有效地址和线性地址.mp412.99M
   ├──--X64架构的工作模式.mp411.67M
   ├──--IA-32e模式及其子模式.mp49.91M
   ├──--第一次阶段性巩固和测试.mp447.60M
   ├──--X64架构对通用寄存器的扩展.mp417.97M
   ├──--X64架构新增加的通用寄存器.mp49.38M
   └──--X64架构的通用寄存器访问规则.mp420.69M
├──{3}--准备进入IA-32e模式   
   ├──--调用BIOS例程显示字符串.mp420.12M
   ├──--读磁盘失败后的错误处理.mp424.81M
   ├──--准备读取内核加载器程序的剩余部分.mp420.66M
   ├──--转入内核加载器执行.mp480.36M
   ├──--检测处理器是否支持IA-32e模式.mp424.89M
   ├──--位测试指令BT.mp435.02M
   ├──--获取和显示处理器商标信息.mp425.63M
   ├──--获取和保存处理器的地址尺寸数据.mp418.93M
   ├──--显示处理器的地址尺寸信息.mp4142.90M
   ├──--为进入保护模式准备全局描述符表.mp417.90M
   ├──--进入IA-32e模式的方法.mp410.48M
   ├──--进入保护模式.mp446.41M
   ├──--在保护模式下显示字符串.mp482.57M
   ├──--有关内核程序及其如何加载的说明.mp421.62M
   ├──--读取内核程序的第一个扇区.mp420.29M
   ├──--将内核程序完全加载到内存中.mp426.75M
   ├──--本章的目标及源程序的组织.mp425.58M
   ├──--主引导程序和NASM的文件包含功能.mp425.38M
   ├──--如何避免文件被重复包含.mp423.41M
   ├──--编写主引导程序的一般性建议.mp410.71M
   ├──--用BIOS硬盘扩展读加载内核加载器.mp416.55M
   ├──--在程序中使用NASM运算符和表达式.mp416.23M
   ├──--内核加载器程序的有效标志和长度.mp414.36M
   └──--通过数据段访问栈中的数据结构.mp48.94M
├──{4}--为进入IA-32e模式准备4级分页   
   ├──--创建与低端2MB物理内存对应的4级头表项和页目录指针表.mp418.94M
   ├──--创建与低端2MB物理内存对应的页目录指针项和页目录表.mp415.04M
   ├──--创建与低端2MB物理内存对应的页目录项.mp410.18M
   ├──--将物理内存低端的2MB映射到线性地址空间的高端.mp420.25M
   ├──--为多任务环境准备必要的4级头表项.mp414.07M
   ├──--为内核的4级分页系统预分配254个页目录指针表.mp415.65M
   ├──--在内核的4级头表内安装254个表项并清空相关的页目录指针表.mp422.36M
   ├──--进程上下文标识PCID.mp420.80M
   ├──--控制寄存器CR3的内容格式.mp410.59M
   ├──--设置控制寄存器CR3并开启物理地址扩展功能.mp49.77M
   ├──--4级分页的结构和原理.mp416.55M
   ├──--型号专属寄存器IA32_EFER的设置和分页的开启.mp425.42M
   ├──--2MB和1GB页面的4级分页方式.mp412.03M
   ├──--4级头表项的格式.mp421.10M
   ├──--页目录指针项的格式.mp417.43M
   ├──--页目录项和页表项的格式.mp410.00M
   ├──--4级头表的创建和初始化.mp412.94M
   ├──--创建指向4级头表自身的4级头表项.mp414.20M
   ├──--准备映射物理内存的低端2MB空间.mp433.21M
   └──--在4级分页中使用2MB的物理页.mp49.54M
├──{5}--进入IA-32e的64位模式执行   
   ├──--通用异常服务例程的工作过程.mp424.81M
   ├──--加载有效地址指令LEA.mp418.25M
   ├──--创建通用中断处理过程的中断门.mp420.55M
   ├──--在IDT内安装前32个与异常有关的中断门.mp423.06M
   ├──--在IDT内安装剩余的中断门并加载IDTR.mp418.09M
   ├──--初始化8259中断控制器.mp417.01M
   ├──--打印64位模式下的第一条信息.mp422.09M
   ├──--在虚拟机上观察内核的运行情况.mp412.70M
   ├──--在IA-32e的兼容模式下显示文本信息.mp426.72M
   ├──--通过远返回方式进入64位模式的内核.mp435.80M
   ├──--准备让内核工作在线性地址空间的高端.mp415.67M
   ├──--启用GDT和栈区的高端线性地址.mp422.69M
   ├──--使用RIP相对寻址将内核的起始线性地址改为高端地址.mp419.16M
   ├──--让处理器转到内核程序对应的高端位置继续执行.mp415.54M
   ├──--IA-32e模式下的中断门和陷阱门.mp415.31M
   ├──--IA-32e模式下的中断处理过程.mp417.22M
   └──--内核的文件组织与通用的中断和异常处理策略.mp422.55M
└──{6}--单处理器环境下的多任务管理和调度   
   ├──--内核可用线性地址的获取和更新.mp423.81M
   ├──--立即数在64位模式下的长度限制.mp413.63M
   ├──--计算本次内存分配涉及的线性地址范围.mp414.09M
   ├──--获取与指定线性地址对应的4级头表项的线性地址.mp427.09M
   ├──--页面分配与页映射位串.mp417.28M
   ├──--页映射位串的定义和空闲页的查找.mp423.66M
   ├──--获取与指定线性地址对应的页目录指针项的线性地址.mp426.83M
   ├──--检查与指定线性地址对应的页目录指针项是否存在.mp411.64M
   ├──--分配页目录表并安装与线性地址对应的页目录指针项.mp415.03M
   ├──--安装与指定线性地址对应的页目录项、页表项和页面.mp420.36M
   ├──--单处理器环境下的多任务概述.mp424.38M
   ├──--64位LDT和TSS描述符的格式.mp415.63M
   ├──--创建和安装64位的TSS描述符并加载任务寄存器TR.mp427.18M
   ├──--实时时钟中断的安装和系统外壳任务简介.mp429.93M
   ├──--准备创建外壳任务.mp420.94M
   ├──--为新任务创建任务控制块PCB.mp418.12M
   ├──--为新任务创建4级头表.mp423.92M
   ├──--将指定的线性地址映射到指定的物理页.mp427.19M
   ├──--复制当前活动4级头表的内容给新任务的4级头表.mp416.13M
   ├──--切换到新任务的地址空间并清空4级头表的前半部分.mp415.35M
   ├──--为新任务分配0特权级使用的栈空间.mp422.05M
   ├──--快速系统调用概述.mp412.74M
   ├──--为新任务分配3特权级使用的栈空间.mp422.76M
   ├──--从硬盘上加载用户程序.mp419.54M
   ├──--生成任务标识.mp419.76M
   ├──--双向PCB链表概述.mp418.52M
   ├──--将新任务的PCB添加到PCB链表中.mp415.96M
   ├──--64位的任务状态段TSS和中断栈表IST.mp422.33M
   ├──--以中断返回的方式进入外壳任务的局部空间执行.mp422.22M
   ├──--系统调用指令SYSCALL和SYSRET.mp424.77M
   ├──--根据功能号计算内核例程的线性地址.mp427.96M
   ├──--快速系统调用的返回和指令的REX前缀.mp419.22M
   ├──--型号专属寄存器IA32_STAR.mp425.51M
   ├──--准备在时钟中断的处理中执行任务切换.mp431.38M
   ├──--执行任务切换.mp422.94M
   ├──--通过系统调用获取屏幕上可用的显示行坐标.mp420.27M
   ├──--通过系统调用获取当前时间.mp417.18M
   ├──--在外壳任务中显示当前时间.mp411.53M
   ├──--用户任务的结构和功能.mp423.01M
   ├──--当前任务标识的获取和用户程序例程库的介绍.mp420.43M
   ├──--将64位二进制数转换为十进制字符串.mp415.01M
   ├──--在每一轮相加中将结果和加数转换为字符串.mp423.08M
   ├──--字符串的连接和显示.mp418.22M
   ├──--准备在GDT中安装新的描述符.mp424.68M
   ├──--用户任务的终止.mp432.08M
   ├──--任务切换频次对用户体验的影响.mp440.36M
   ├──--为快速系统调用安装段描述符.mp425.62M
   ├──--为快速系统调用准备段选择子.mp413.84M
   ├──--设置快速系统调用的入口点.mp414.27M
   ├──--快速系统调用时的RFLAGS和栈切换.mp413.13M
   └──--动态内存分配和内核空间的分配策略.mp414.98M

下载地址:
**** Hidden Message *****

wu8726 发表于 2024-2-18 13:24:44

啥也不说了,感谢楼主分享哇!

csa 发表于 2024-2-18 14:44:58

啥也不说了,感谢楼主分享哇!

qae3000 发表于 2024-2-18 19:15:59

这个帖一般般,还可以哦。

sakura_dmz 发表于 2024-2-18 22:44:41

啥也不说了,感谢楼主分享哇!

sxx111 发表于 2024-2-19 00:47:07

啥也不说了,感谢楼主分享哇!

dragon_fly 发表于 2024-2-19 04:46:20

正需要,支持楼主大人了!

bai615 发表于 2024-2-19 09:38:23

啥也不说了,感谢楼主分享哇!

suzilong0 发表于 2024-2-19 11:07:45

啥也不说了,感谢楼主分享哇!

1611765574 发表于 2024-2-19 13:33:44

这个帖一般般,还可以哦。
页: [1] 2 3 4 5
查看完整版本: 李忠X64架构汇编语言和操作系统基础(前6章)