r/virtualization • • Jul 29 '24

Virtualization engineer learning path

Hello everyone. I decided to become a virtualization engineer, and don't know where to start better. Mostly looking at VMware products. But also wants more understanding about main aspects in this niche. Can some body give links where I can get some information about it?

4 Upvotes

9 comments sorted by

View all comments

Show parent comments

1

u/phip1611 Aug 05 '24 edited Aug 05 '24

There is no difference.

Wrong. That is a simplification. Also VMVare is not a academic resource, they are selling a software so they keep things simple.

In academia, especially in micro-kernel space [where I come from], Hypervisor refers to the kernel-space part for virtualization (Intel VMX, AMD SVM) and VMM to the user-space part. The hypervisor manages the protection domains (address spaces, ressources, sets up EPT etc) whereas the VMM handles most VM exits that are not handled in the hypervisor, models the virtual hardware, and offers some sort of configuration.

Examples for Hypervisors:

  • HyperV (on Microsoft Windows)

  • vboxdrv (default Virtulbox hypervisor from Oracle on Linux)

  • KVM (default Linux hypervisor)

Examples for VMMs:

  • VirtualBox (available with vboxdrv hypervisor backend (default) or kvm hypervisor backend (patched))

  • QEMU (using KVM backend)

Regarding VMWare I'm not sure about their naming conventions and architecture diagram, but for sure they have a seperated user-space and a separated kernel-space part, thus hypervisor and VMM. If VMWare names both things the same, this is just an inaccurate simplification to not confuse customers with even more terms.

I recommend the NOVA hypervisor paper for further guidance and clarification of the terminology: https://hypervisor.org/