跳转至

1. 什么是虚拟机 (Virtual Machine, VM)

虚拟机是用软件方式在物理计算机上模拟一台完整的计算机。它拥有自己的“虚拟硬件”(CPU、内存、磁盘、网卡等),可以安装和运行操作系统与应用,就像真实的机器一样。 - 宿主机 (Host):运行虚拟化平台的真实物理计算机。 - 客户机 (Guest):运行在虚拟机里的操作系统。


2. 什么是虚拟化 (Virtualization)

虚拟化是一种技术,它把物理资源(CPU、内存、硬盘、网络等)抽象出来,通过软件(称为虚拟机管理程序或 Hypervisor)把这些资源划分给不同的虚拟机使用。 - 核心点:虚拟化不是单个虚拟机,而是一种技术或机制,让一台物理机“变成”多台逻辑机。 - 虚拟化层(Hypervisor):管理所有虚拟机,调度硬件资源。 常见的虚拟化类型: 1. 全虚拟化:完全模拟硬件环境,客户机无需修改(例:VMware)。 2. 半虚拟化:客户机需做适配优化(例:Xen)。 3. 硬件辅助虚拟化:借助 CPU 指令集支持(Intel VT-x, AMD-V)。


通过实现小型的虚拟机, 自定义一些操作码(opcode), 通过解释操作码来实现调用函数

正向实现

  1. 定义一套指令集
  2. 实现对应的解释器

结构体定义

VM中通常可以用于保存虚拟机的状态

opcode定义

自定义指令, 区分定长还是变长

初始化虚拟机

编写解释器

解题

  1. 分析VM结构
    • 结构体的大小
    • 字段(内存和寄存器)
  2. 分析指令集

    - 指令集长度是否可变

  3. 编写解释器, 分析伪汇编代码
  4. 阅读伪代码, 分析程序流程, 还原代码
  5. python解题脚本(Error)

实现用例

挖坑