
适用人群
学过《x86汇编语言:从实模式到保护模式》的图书或者视频课程,了解32位x86处理器的保护模式。
课程概述
适用人群
具有计算机的使用经验,学过并熟悉x86处理器保护模式的内容。建议先学习《x86汇编语言:从实模式到保护模式》一书或者本讲师的同名视频课程。
请访问www.lizhongc.com以获得更多优惠。
介绍64位x86处理器的硬件架构、以及与操作系统相关的内容,包括:单处理器的多任务切换、多处理器的多任务切换和多线程切换、数据竞争、信号量、锁、线程同步和内存屏障等。注意:我们是用汇编语言来讲,而不是用高级语言!!!用汇编语言在硬件层级上讲上述内容,更透彻、更清晰!!!
具有计算机的使用经验,学过并熟悉x86处理器保护模式的内容。建议先学习《x86汇编语言:从实模式到保护模式》一书或者本讲师的同名视频课程。
请访问www.lizhongc.com以获得更多优惠。
介绍64位x86处理器的硬件架构、以及与操作系统相关的内容,包括:单处理器的多任务切换、多处理器的多任务切换和多线程切换、数据竞争、信号量、锁、线程同步和内存屏障等。注意:我们是用汇编语言来讲,而不是用高级语言!!!用汇编语言在硬件层级上讲上述内容,更透彻、更清晰!!!
本课程共约300课时,一年内更新完毕,每周内至少更新5个课时。
推荐使用支付宝、微信、银行卡方式支付。购买后在个人电脑(PC)或移动设备(手机、平板电脑等)上均可观看。
目录
连载
章节1:内容提要及课程相关说明试看
课时1视频内容提要及课程相关说明10:30可试看
章节2:X64基本架构和执行环境试看
课时2视频有关本章内容学习的重要提示03:30可试看
课时3视频X64架构的由来10:30可试看
课时4视频物理地址、有效地址和线性地址08:10可试看
课时5视频X64架构的工作模式07:10可试看
课时6视频IA-32e模式及其子模式06:15可试看
课时7视频第一次阶段性巩固和测试09:00可试看
课时8视频X64架构对通用寄存器的扩展08:30可试看
课时9视频X64架构新增加的通用寄存器05:00可试看
课时10视频X64架构的通用寄存器访问规则10:55可试看
课时11视频X86处理器的物理地址空间07:55可试看
课时12视频X64架构下传统模式的内存访问05:10可试看
课时13视频传统模式下的32位4KB分页技术05:55可试看
课时14视频传统模式下如何利用超过4GB的物理内存07:39可试看
课时15视频传统模式下的32位4MB分页技术10:30可试看
课时16视频传统模式下的32位PAE分页技术05:20可试看
课时17视频传统模式下的32位PAE-4KB分页技术13:20可试看
课时18视频传统模式下的32位PAE-2MB分页技术09:15可试看
课时19视频X64架构的线性地址空间11:00
课时20视频扩高地址的特点和处理器检查07:30
课时21视频X64架构下IA-32e模式的内存访问07:10
课时22视频X64架构的段寄存器07:00可试看
课时23视频X64架构下的代码段描述符07:50可试看
课时24视频X64架构下的数据段描述符05:39可试看
课时25视频X64架构下的4级和5级分页简介08:50
课时26视频X64架构下的系统表和系统描述符06:10
课时27视频X64架构下的GDTR05:10可试看
课时28视频X64架构下的IDTR05:30可试看
课时29视频X64架构下的LDT描述符和LDTR06:10可试看
课时30视频X64架构下的TSS描述符和TR06:00
课时31视频X64架构下的标志寄存器和指令指针寄存器13:15
课时32视频X64架构下传统模式的寻址方式07:25
课时33视频X64架构下IA-32e模式的寻址方式05:30
课时34视频64位模式的RIP相对寻址方式09:30
课时35视频64位模式下的指令变化情况09:00
课时36视频IA-32e模式下的中断和异常处理概述07:30
章节3:准备进入IA-32e模式
课时37视频进入IA-32e模式的方法06:10
课时38视频本章的目标及源程序的组织09:50
课时39视频主引导程序和NASM的文件包含功能07:50
课时40视频如何避免文件被重复包含07:55
课时41视频编写主引导程序的一般性建议06:15
课时42视频用BIOS硬盘扩展读加载内核加载器09:10
课时43视频在程序中使用NASM运算符和表达式07:00
课时44视频内核加载器程序的有效标志和长度06:22
课时45视频通过数据段访问栈中的数据结构05:20
课时46视频调用BIOS例程显示字符串10:00
课时47视频读磁盘失败后的错误处理05:30
课时48视频准备读取内核加载器程序的剩余部分10:00
课时49视频转入内核加载器执行09:15
课时50视频检测处理器是否支持IA-32e模式11:20
课时51视频位测试指令BT11:22
课时52视频获取和显示处理器商标信息10:30
课时53视频获取和保存处理器的地址尺寸数据09:00
课时54视频显示处理器的地址尺寸信息13:25
课时55视频为进入保护模式准备全局描述符表07:30
课时56视频进入保护模式09:50
课时57视频在保护模式下显示字符串11:05
课时58视频有关内核程序及其如何加载的说明09:09
课时59视频读取内核程序的第一个扇区06:50
课时60视频将内核程序完全加载到内存中11:20
章节4:为进入IA-32e模式准备4级分页
课时61视频4级分页的结构和原理08:50
课时62视频2MB和1GB页面的4级分页方式07:00
课时63视频4级头表项的格式12:30
课时64视频页目录指针项的格式10:50
课时65视频页目录项和页表项的格式06:20
课时66视频4级头表的创建和初始化05:55
课时67视频创建指向4级头表自身的4级头表项07:25
课时68视频准备映射物理内存的低端2MB空间15:00
课时69视频在4级分页中使用2MB的物理页06:15
课时70视频创建与低端2MB物理内存对应的4级头表项和页目录指针表08:35
课时71视频创建与低端2MB物理内存对应的页目录指针项和页目录表07:07
课时72视频创建与低端2MB物理内存对应的页目录项05:10
课时73视频将物理内存低端的2MB映射到线性地址空间的高端11:55
课时74视频为多任务环境准备必要的4级头表项08:50
课时75视频为内核的4级分页系统预分配254个页目录指针表08:35
课时76视频在内核的4级头表内安装254个表项并清空相关的页目录指针表10:15
课时77视频进程上下文标识PCID09:55
课时78视频控制寄存器CR3的内容格式05:35
课时79视频设置控制寄存器CR3并开启物理地址扩展功能05:10
课时80视频型号专属寄存器IA32_EFER的设置和分页的开启09:50
章节5:进入IA-32e的64位模式执行
课时81视频在IA-32e的兼容模式下显示文本信息08:20
课时82视频通过远返回方式进入64位模式的内核12:59
课时83视频准备让内核工作在线性地址空间的高端09:35
课时84视频启用GDT和栈区的高端线性地址09:30
课时85视频使用RIP相对寻址将内核的起始线性地址改为高端地址09:39
课时86视频让处理器转到内核程序对应的高端位置继续执行06:30
课时87视频IA-32e模式下的中断门和陷阱门09:00
课时88视频IA-32e模式下的中断处理过程07:17
课时89视频内核的文件组织与通用的中断和异常处理策略09:25
课时90视频通用异常服务例程的工作过程11:15
课时91视频加载有效地址指令LEA10:00
课时92视频创建通用中断处理过程的中断门08:55
课时93视频在IDT内安装前32个与异常有关的中断门09:39
课时94视频在IDT内安装剩余的中断门并加载IDTR08:20
课时95视频初始化8259中断控制器06:50
课时96视频打印64位模式下的第一条信息09:39
课时97视频在虚拟机上观察内核的运行情况03:55
章节6:单处理器环境下的多任务管理和调度试看
课时98视频单处理器环境下的多任务概述09:25可试看
课时99视频快速系统调用概述06:25
课时100视频型号专属寄存器IA32_STAR11:05
课时101视频准备在GDT中安装新的描述符08:30
课时102视频为快速系统调用安装段描述符09:50
课时103视频为快速系统调用准备段选择子06:30
课时104视频设置快速系统调用的入口点05:09
课时105视频快速系统调用时的RFLAGS和栈切换06:35
课时106视频动态内存分配和内核空间的分配策略07:27
课时107视频内核可用线性地址的获取和更新09:39
课时108视频立即数在64位模式下的长度限制06:30
课时109视频计算本次内存分配涉及的线性地址范围06:39
课时110视频获取与指定线性地址对应的4级头表项的线性地址12:59
课时111视频页面分配与页映射位串08:50
课时112视频页映射位串的定义和空闲页的查找10:09
课时113视频获取与指定线性地址对应的页目录指针项的线性地址14:25
课时114视频检查与指定线性地址对应的页目录指针项是否存在05:05
课时115视频分配页目录表并安装与线性地址对应的页目录指针项05:25
课时116视频安装与指定线性地址对应的页目录项、页表项和页面08:30
课时117视频64位LDT和TSS描述符的格式07:20
课时118视频创建和安装64位的TSS描述符并加载任务寄存器TR10:50
课时119视频实时时钟中断的安装和系统外壳任务简介08:30
课时120视频准备创建外壳任务06:30
课时121视频为新任务创建任务控制块PCB08:08
课时122视频为新任务创建4级头表09:50
课时123视频将指定的线性地址映射到指定的物理页07:30
课时124视频复制当前活动4级头表的内容给新任务的4级头表07:20
课时125视频切换到新任务的地址空间并清空4级头表的前半部分06:09
课时126视频为新任务分配0特权级使用的栈空间08:39
课时127视频为新任务分配3特权级使用的栈空间07:55
课时128视频从硬盘上加载用户程序08:08
课时129视频生成任务标识09:35
课时130视频双向PCB链表概述09:05
课时131视频将新任务的PCB添加到PCB链表中08:39
课时132视频64位的任务状态段TSS和中断栈表IST10:35
课时133视频以中断返回的方式进入外壳任务的局部空间执行11:39
课时134视频系统调用指令SYSCALL和SYSRET11:09
课时135视频根据功能号计算内核例程的线性地址09:55
课时136视频快速系统调用的返回和指令的REX前缀10:05
课时137视频准备在时钟中断的处理中执行任务切换09:50
课时138视频执行任务切换10:15
课时139视频通过系统调用获取屏幕上可用的显示行坐标10:05
课时140视频通过系统调用获取当前时间09:00
课时141视频在外壳任务中显示当前时间05:39
课时142视频用户任务的结构和功能10:28
课时143视频当前任务标识的获取和用户程序例程库的介绍08:39
课时144视频将64位二进制数转换为十进制字符串08:20
课时145视频在每一轮相加中将结果和加数转换为字符串10:35
课时146视频字符串的连接和显示08:39
课时147视频用户任务的终止10:50
课时148视频任务切换频次对用户体验的影响12:30
章节7:多处理器和APIC的初始化
课时149视频多处理器环境概述08:08
课时150视频同时多线程和INTEL超线程技术09:22
课时151视频高级可编程中断控制器APIC概述10:39
课时152视频中断引脚、中断类型和中断源07:50
课时153视频本地中断源和本地向量表06:30
课时154视频APIC的工作模式和APIC ID10:39
课时155视频组成Local APIC ID的处理器拓扑09:00
课时156视频Local APIC的地址映射08:00
课时157视频I/O APIC的地址映射07:55
课时158视频多处理器的初始化过程和MP规范12:09
课时159视频高级的配置和电源接口(ACPI)规范08:30
课时160视频本章代码清单10:15
课时161视频ACPI的数据结构和表09:50
课时162视频E820功能调用和内存地址范围结构11:15
课时163视频查询和保存物理地址映射数据12:50
课时164视频获取ACPI申领的物理内存地址范围08:35
课时165视频准备映射ACPI申领的内存08:50
课时166视频映射ACPI申领的内存到当前分页系统05:50
课时167视频根系统描述指针结构07:20
课时168视频搜索根系统描述指针结构06:35
课时169视频系统描述表的层次结构和表头格式09:05
课时170视频扩展的系统描述表XSDT08:50
课时171视频通过XSDT搜索多APIC描述表MADT08:20
课时172视频根系统描述表RSDT05:15
课时173视频通过RSDT搜索多APIC描述表MADT10:55
课时174视频多APIC描述表MADT的格式12:15
课时175视频准备遍历中断控制器结构列表09:20
课时176视频从中断控制器结构内提取处理器和APIC信息15:20
课时177视频映射APIC地址12:05
课时178视频Local APIC定时器09:50
课时179视频Local APIC定时器的精度06:06
课时180视频APIC定时器的本地向量表寄存器及其设置08:20
课时181视频设置CMOS RTC以测量Local APIC定时器06:30
课时182视频测量Local APIC定时器在1ms内经历的时钟周期数07:30
课时183视频多处理器的中断机制之虚拟线模式09:50
课时184视频中断输入引脚LINT0的本地向量表寄存器10:10
课时185视频用LINT0的本地向量表寄存器屏蔽8259中断08:39
课时186视频I/O APIC概述09:35
课时187视频I/O APIC的I/O重定向表寄存器07:35
课时188视频用I/O APIC投递的中断实施任务切换15:15
课时189视频使用8253/8254定时器中断切换任务12:59
课时190视频使用Local APIC定时器中断切换任务09:30
课时191视频逻辑目标模式下的中断目标判别机制07:30
课时192视频APIC中断的优先级及其相关的寄存器06:50
课时193视频APIC中断的接受机制07:00
课时194视频最低优先级模式的中断处理05:00
章节8:多处理器环境下的多任务管理和调度试看
课时195视频本章的目标和代码清单09:15可试看
课时196视频高速缓存10:35
课时197视频单处理器环境下的数据竞争12:35
课时198视频多处理器环境下的数据竞争16:00
课时199视频原子操作12:59
课时200视频锁和自旋锁11:00
课时201视频分支预测和PAUSE指令08:00
课时202视频宏定义和宏扩展15:30
课时203视频互斥锁的一般原理11:50
课时204视频本章对内核工具文件的修改15:50
课时205视频开始执行内核的初始化07:00
课时206视频处理器专属存储区(每CPU数据区)07:15
课时207视频为自举处理器BSP分配专属存储区12:30
课时208视频用型号专属寄存器IA32_KERNEL_GS_BASE指向处理器专属存储区11:05
课时209视频多处理器系统的初始化协议算法11:00
课时210视频本章的多处理器多任务调度方案10:30
课时211视频中断命令寄存器ICR11:22
课时212视频本章的AP初始化代码简介07:30
课时213视频将AP初始化代码传送到指定位置09:30
课时214视频向所有应用处理器广播SIPI消息07:07
课时215视频应用处理器AP的初始化:进入保护模式09:00
课时216视频应用处理器AP的初始化:进入64位模式08:50
课时217视频应用处理器AP的初始化:创建数据结构10:30
课时218视频应用处理器AP的初始化:初始化之后的处理器架构状态05:50
课时219视频应用处理器AP的初始化:用SWAPGS指令访问专属存储区12:00
课时220视频应用处理器AP的初始化:开启Local APIC并进入停机待命状态08:30
课时221视频自举处理器BSP:等待所有应用处理器完成初始化09:00
课时222视频自举处理器BSP:创建系统外壳任务并为其指定时间片06:15
课时223视频交换并相加指令XADD和无锁操作11:50
课时224视频自举处理器BSP:广播新任务认领消息并进入预定状态08:50
课时225视频新任务认领中断的处理过程12:30
课时226视频在任务链表中查找就绪任务09:35
课时227视频用比较并交换指令CMPXCHG以无锁方式操作链表节点15:00
课时228视频执行新任务:为新任务指定时间片09:50
课时229视频执行新任务:恢复任务的状态并开始执行07:50
课时230视频时间片到期中断的处理过程07:50
课时231视频处理器专属存储区的必要性12:59
课时232视频外壳任务的执行流程07:30
课时233视频用户任务的执行流程10:35
课时234视频任务的终止07:50
章节9:多处理器环境下的多线程管理和调度
课时235视频任务(进程)和线程07:00
课时236视频任务控制块PCB和线程控制块TCB09:15
课时237视频任务及其主线程的创建19:05
课时238视频新线程认领中断的处理过程09:15
课时239视频查找就绪状态的线程15:00
课时240视频让处理器执行指定的线程07:35
课时241视频时间片到期中断的处理过程07:20
课时242视频系统外壳任务及其主线程的执行10:00
课时243视频准备创建新的线程06:50
课时244视频创建新线程:创建线程控制块TCB和栈07:15
课时245视频创建新线程:例程返回和结束线程的区别06:50
课时247视频创建新线程:在栈中构造结束线程的栈帧10:30
课时248视频创建新线程:将TCB添加到当前任务的TCB链表08:50
课时249视频线程的执行:动态内存分配06:16
课时250视频线程的执行:在栈中保存所有缓冲区的线性地址10:55
课时251视频线程的执行:字符串的生成、连接和打印08:15
课时252视频线程的结束和任务的终止09:20
章节10:数据竞争和互斥锁
课时253视频本章内容提要08:00
课时254视频线程休眠及其实现机制10:30
课时255视频执行线程休眠的系统调用
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)