Virtualization/Hypervisor blog series Part 1 of 6: Introduction to Virtualization, Type Definitions, and Support Testing

In this article we’re going to introduce virtualization, the various forms of virtualization, terminology, and a high level view of the abstraction that is virtualization. We’ll also be building out a test function for support of virtual machine instructions, followed by defining structures to represent various architectural registers and components. The reason for using structures to represent these things is because it’s common for people to use preprocessor macros, however, I find the abuse of preprocessor macros to be vague, ugly and bad practice overall. Preprocessor macros have their place, and we will use them in our project, but sparingly. All types, flags, bits, etc., will be defined using structures or unions. In the type definition section I’ll discuss a common problem seen among driver developers and encountered by other hypervisor developers. After all type definitions are created we’ll write a quick test to determine if our machine supports VMX and then we’ll close with recommended reading before the big article that is heavy on implementation details.[…]

Day 1: Introduction to Virtualization, Type Definitions, and Support Testing

One thought on “Virtualization/Hypervisor blog series Part 1 of 6: Introduction to Virtualization, Type Definitions, and Support Testing

Leave a comment