Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Topic on Talk:Virtualization

So.. Putting aside fancy solutions like Cooperative VMs, paravirtualization and containers there are several levels to the thing.

If we are just caring for x86, once upon a time there were just full architecture emulator/simulators like Bochs, I guess. Not very differently from any modern console emulator you could say.

Then VMware came in 1999 with binary translation and performance became a thing. Not that the technique itself is fast (QEMU also has a nice JIT recompiler, but that's far from the native speed you can otherwise get), but because it allowed to overcome the x86 insidiousnesses and use direct execution in most other places people actually cared for (i.e. normal applications).

As a fun fact this could not have been used on Intel CPUs to virtualize 64 bit efficiently. And since VirtualBox 6.1 and Workstation 14 it is not even supported anymore.

Thankfully between 2005 and 2006 Intel and AMD made trap-and-emulate possible in hardware, and that's what VT-X and AMD-V are all about eventually. It is more about lessening the burden to have a smart hypervisor (and perhaps some edge case) than performance though. And for historical reason, I'm not sure if solutions other than VMware's ever supported "64 bit at all" without it. It is also needed for 64/32 and 32/64 bit mixed host and guests (KVM doesn't support the latter [Bug+596106\%22&o=oldest&f=1 for reasons])

Note: when Hyper-V is enabled, it pretends "Hardware Virtual Machine"s not to be supported.

And then it came SLAT. Which simplified as much as possible memory management (not to be confused with the previous handling of just the instruction set) and it is becoming a hard requirement in a lot of modern products, from Hyper-V, to HAXM, and Workstation ≥14. It is known as RVI on the AMD front and EPT on the Intel one. Even though in the later case, depending on the mood of a hypervisor (or maybe the key difference is being Type-2 rather than Type-1?), they may actually be required to support "Unrestricted guests" too. Aka leaving Bloomfield in the dirt.

Tangential to all of this, last but not least, VT-d/AMD-Vi/IOMMU is the magic allowing passing through of physical hardware devices to guests. It requires support in the motherboard chipset and bios, in addition to the usual one by the CPU.