1. 什么是虚拟机 (Virtual Machine, VM)¶
虚拟机是用软件方式在物理计算机上模拟一台完整的计算机。它拥有自己的“虚拟硬件”(CPU、内存、磁盘、网卡等),可以安装和运行操作系统与应用,就像真实的机器一样。 - 宿主机 (Host):运行虚拟化平台的真实物理计算机。 - 客户机 (Guest):运行在虚拟机里的操作系统。
2. 什么是虚拟化 (Virtualization)¶
虚拟化是一种技术,它把物理资源(CPU、内存、硬盘、网络等)抽象出来,通过软件(称为虚拟机管理程序或 Hypervisor)把这些资源划分给不同的虚拟机使用。 - 核心点:虚拟化不是单个虚拟机,而是一种技术或机制,让一台物理机“变成”多台逻辑机。 - 虚拟化层(Hypervisor):管理所有虚拟机,调度硬件资源。 常见的虚拟化类型: 1. 全虚拟化:完全模拟硬件环境,客户机无需修改(例:VMware)。 2. 半虚拟化:客户机需做适配优化(例:Xen)。 3. 硬件辅助虚拟化:借助 CPU 指令集支持(Intel VT-x, AMD-V)。
通过实现小型的虚拟机, 自定义一些操作码(opcode), 通过解释操作码来实现调用函数
正向实现¶
- 定义一套指令集
- 实现对应的解释器
结构体定义¶
VM中通常可以用于保存虚拟机的状态
opcode定义¶
自定义指令, 区分定长还是变长
初始化虚拟机¶
编写解释器¶
解题¶
- 分析VM结构
- 结构体的大小
- 字段(内存和寄存器)
- 分析指令集
- 指令集长度是否可变¶
- 编写解释器, 分析伪汇编代码
- 阅读伪代码, 分析程序流程, 还原代码
- python解题脚本(Error)
实现用例¶
挖坑