24、虚拟化技术深入解析:从管理程序启动到动态内存管理

虚拟化技术深入解析:从管理程序启动到动态内存管理

1. 管理程序启动

管理程序启动流程始于 HvLoader 模块。它会根据 CPU 制造商加载正确版本的管理程序二进制映像,并创建管理程序加载器块。同时,捕获管理程序启动首个虚拟处理器所需的最小处理器上下文。之后,切换到新创建的地址空间,并通过调用管理程序映像入口点 KiSystemStartup 将执行权转移给管理程序。

KiSystemStartup 仅针对引导处理器调用,它会为运行管理程序准备处理器,并初始化 CPU_PLS 数据结构。而真正的初始化工作则交由 BmpInitBootProcessor 函数完成。该函数会执行一系列复杂操作:
- 检查系统并查询 CPU 支持的所有虚拟化特性,如 EPT 和 VPID。
- 确定管理程序调度器,不同系统类型默认调度器不同,可通过 BCD 选项手动覆盖。
- 初始化嵌套优化,使管理程序能在嵌套配置中执行。
- 初始化多个组件,包括内存管理器、硬件抽象层、进程和线程子系统、VMX 虚拟化抽象层、合成中断控制器和 I/O 内存管理单元、地址管理器等。

最后,管理程序通过分配初始硬件相关的虚拟机控制结构并启用虚拟化操作,完成与引导处理器关联的 CPU_PLS 数据结构的构建,并初始化每个处理器的中断映射数据结构。

2. 连接管理程序调试器

若要分析管理程序的启动序列,可连接管理程序调试器。调试器仅支持通过串行或网络传输,且只能在物理机或启用“嵌套虚拟化”功能的虚拟机上使用。具体操作步骤如下:
1. 准备一个支持虚拟化扩展并安装启用 Hyper - V 角色的物理机作为调试系统,或设置嵌套 VM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值