A virtual machine enables you to simulate a computing hardware in the form of a software.
A virtual machine is usually not just geared towards simulating a particular hardware with a particular software, but it commonly imitates a type of processor and the relevant execution of instructions.