The term “virtual” has been co-opted in so many ways that it’s now more vague and confusing than ever before. Virtual reality. Virtual RAM. Virtual schools. The virtual keyword in programming languages. But the most unclear? Virtualization in the context of PCs.
Virtualization (AKA the use of virtual machines) is when you take one set of physical resources, like CPU and RAM and hard drive space, and allocate them into discrete chunks that are each seen as separate systems. But they aren’t “real” systems. One computer could be divided into many “virtual” systems.
The easiest way to do this is to use the free VirtualBox software. But the biggest question is… why? What’s the point? How can virtualization serve you? Here are some of the more practical ways you can use a virtual machine for your benefit.
1. Try New Operating Systems
Let’s say you’ve been a Windows user all your life but you’re feeling adventurous and want to get a taste of Linux. What are your options? You have several, including a dual boot setup, but one could argue that you’d be happiest with virtualization.
On your Windows system, just install VirtualBox and create a new virtual machine. Then take any Linux installation ISO (I recommend a recent version of Ubuntu or Linux Mint) and install it on the virtual machine. Now you can run Linux (the “guest” OS) in a window within Windows (the “host” OS) like any other program.
This is actually the most secure way to test a new operating system because the virtual machine acts as a sandbox — if something goes wrong in the guest OS, it won’t affect the host OS. If there’s a catastrophic failure, you can simply recreate the virtual machine and reinstall the OS. No bricked computer!
2. Run Old or Incompatible Software
A few years ago, I was working on a novel in my preferred writing app at the time, Scrivener. That happened to be during my Linux phase, and while a Linux version of Scrivener did exist, it was in beta development and didn’t have all of the features of the Windows or Mac versions.
So I installed VirtualBox, created a virtual machine, installed Windows 7 on it, then installed the better version of Scrivener. With Linux as my host OS running Windows as my guest OS, I could conveniently benefit from the best of both worlds and basically emulate software from another platform.
Another example could be running Windows XP-only software on Windows 10 or running Linux-only software on Mac.
3. Deliberately Execute Malware
Due to the sandboxed nature of a virtual machine, you can be reckless with security and do things that you normally should avoid. For example, you should never open unsolicited email attachments because they could be malware in disguise or harmful in other ways.
But a virtual machine can be a great way to test suspicious files for malware. Moreover, you can use virtual machines to deliberately run viruses to see how they play out in real-time, whether out of curiosity, research, or boredom.
Note that there is some risk in doing this: newer malware may be able to detect that your environment is virtualized and seek to break out from the guest OS to the host OS. But if you’re going to test a suspicious file, always do it in a virtual machine anyway — just in case.
4. Tear Apart Your System
If you’re particularly techy, virtual machines allow you to explore and experiment with your system without fear of repercussion. This can be a nifty way to become a practical expert on one or more operating systems.
For example, you can virtualize Windows 10 within Windows 10 and use the guest version to tinker with the registry. If you’re curious about the System32 directory, use the guest OS to open files, edit files, or even delete files. See how far you can go before wrecking your system, then recreate and try again.
I find this especially useful when learning Linux and the command line. While the command line offers lot of power and can do so many cool things, sometimes one mistake can cripple the system. A virtual machine can get you familiarized without any of the risk.
5. Create Backup Snapshots
One excellent reason to start using a virtual machine is the ability to create system-level snapshots that can be instantly restored on demand.
Imagine you want to install a new app that’s untested and possibly unstable. Or maybe you want to uninstall a bunch of software you’ve accumulated over the past few months. Or maybe you just want to tweak some system configurations. But in all cases, you’re hesitant due to uncertainty.
Just take a snapshot before plowing ahead. If something does go wrong, you can restore the snapshot and move on as if nothing happened. These backups are like a more comprehensive System Restore, and best of all, they’re saved as single files that you can move and store elsewhere (like an external drive).
6. Clone a System to Another Machine
Since the entire contents of a virtual machine is stored on a single file, you can easily transfer that file to another computer and load it up without any issues (as long as you use the same virtualization software, of course).
For example, VirtualBox VMs are stored as VDI files. Regardless of which host OS you were using, you can copy that VDI file and load it in as a guest OS on another computer running VirtualBox. This effectively creates a clone of your system that you can carry around with you anywhere you go.
And if you use VMware Player, it gets even better. With VMware vCenter Converter, you can take a current non-virtual installation of Windows or Linux and turn it into a virtual image that can be loaded in by VMware Player on another computer. Quite a nifty way to migrate operating systems!
7. Develop Software for Other Platforms
Despite being last on this list, I consider this the second-most practical use for virtual machines: it simplifies the workflow for testing apps and websites across multiple platforms.
For example, if you’re creating a game that can be played on desktops and mobile devices, you can use virtual emulation to test various executables right on your computer. Instead of ferrying APKs back and forth to your Nexus, you can just emulate it — along with virtual versions of Samsung, HTC, and Moto devices.
Virtualization also lets you compile to other executable types. Even if you use a cross-platform framework, you may only be able to compile APP files on Mac and EXE files on Windows. Instead of dual-booting for every build, virtualization simplifies the process (especially if you’re using source control).
Get Started Using Virtual Machines
Before you dive into virtualization, note that you’ll need a semi-powerful computer to really make use of it (i.e. modern CPU, at least 8 GB RAM, and a large hard drive). Trying to run a virtual machine on a weak computer will be a frustrating experience at best.
To get started, I recommend our guide to using VirtualBox. For a practical step-by-step example, see our post on setting up a Windows VM in Linux. If you’d rather use VMware Player instead, check out our introduction to using VMware Player.
Do you use virtualization at all? If so, what do you use it for? Got any virtualization tips to share with us? Let us know in the comments!