This page has moved. Click here to go to the new page.

So, what is a virtual machine anyway?

Author   Ethan Estrada
Date Thu 02 March 2017
Tags      tech, explainer

We use the term “Virtual Machine” (or “VM”) a lot here at MetaPipe, but you might not know what that means. This short explaination should help clear things up a bit.

First, the obtuse, opaque answer: a virtual machine is a computer within a computer. But I figure that answer is about as clear as mud, right? So let’s try using something else that we can relate to. You can think of virtual machines as something like a russian nesting doll. Or better yet, you can think of virtual machines like Christopher Nolan’s Inception. But unlike Inception, you won’t need to pretend like you know what the heck is going on. ¯\_(ツ)_/¯

Originally posted by Dazed

So in the same way that Inception hangs on the idea of a dream within a dream, virtual machines hang on the idea of a computer within a computer. When people talk about a virtual machine what they generally mean is a piece of software that exposes only certain parts of the underlying hardware to a “guest” operating system (or OS). By doing this, a computer running, say Linux, can simultaneously run Microsoft Windows as an application on the desktop. All the features of Microsoft Windows are then available to you, without the need to run a separate physical machine or needing to reboot your system into another Operating System.

Because virtual machine software only exposes limited parts of the underlying hardware, it wasn’t until recently that advanced graphics workloads could be run on a virtual machine. The VM software running on the host operating system would only show the guest OS the few parts that were safe to expose. For instance, CPUs from Intel and AMD have long supported special extensions to make VM computing both safe and fast. Within the past few years, GPU makers like Nvidia and AMD/ATI have done the same with their datacenter video cards, adding specific extensions to make exposing the GPU to VM guests both safe and fast. With these new cards available, the last puzzle pieces have now been put in place to virtualize all the most critical aspects of general purpose computing.

So, now we have defined what a virtual machine is, but what is the point of virtual computing? At first glance, it just sounds like a way to further complicate the Gordian Knot that is modern computing. But never fear; there are some distinct advantages to virtual computing that make it well worth my (and your) time to understand and use. Let’s enumerate them as bullet points:

  • Virtual Machines are software.
    • This doesn’t seem like much of a point, but I promise that it is. As we go down this list I hope you’ll see why.
  • Software is easier to modify than hardware.
    • Modifying hardware takes months or years of design and fabrication. Software on the other hand, can be modified, recompiled and delivered in as little as minutes. When software has a bug, it can be fixed and turned around in relatively little time. When hardware has a bug, companies often need to go back to the drawing board to fix the problem next time.
  • Software is easier to control programmatically than hardware.
    • Software can often have a simple scripting interface that makes it easy to control from the outside, like a marionette with strings. With raw hardware, it can be difficult to externally script things like “turn on”, “turn off”, “grab another harddrive, install it, get the required drivers and then mount it so that the operating system can see it.” You get the picture.
  • Software is easier to “move” than hardware.
    • To move a piece of physical hardware, you need to, well, physically move it. To move software (or in our case, a virtual machine), you simply need to copy some files around. Much easier, much less error prone, and much easier to repeat over and over.
  • Software can be “ephemeral” at almost no cost. Not so with hardware.
    • We can’t all go around smashing our hardware at the end of each performance like Jimi Hendrix. Or can we? Using virtual machines, we can create computers that can be created from scratch almost as quickly as it takes to boot up the machine. In fact, that is exactly what we try to do at MetaPipe: each time you start a machine, it is completely fresh.

      Originally posted by Reverb

And this (#shamelessplug) is where MetaPipe comes into the picture. We are trying to democratize Virtual Machine computing and make it easy and accessible to everyone, most especially to creative professionals who have some of the most extreme computing needs on the face of the planet.