Introduction to Virtual Machines for Personal Use

In this post we take a look at what virtual machines are and how they can be used to facilitate development, education and product evaluation.

This post focuses on using virtualization software for educational and/or self-development purposes. It does not cover commercial grade or production ready virtualization solutions.

Introduction

There are a few things that software developers often need to do:

  • Evaluate products.

    • It’s helpful to have ways to evaluate products you may be considering for your tech stack.
  • Create development environments.

    • Creating isolated development environments helps keep your main system free from clutter.
  • Test software that uses multiple nodes.

    • Some software is designed to run using multiple nodes—meaning more than one instance of a server can be spun up to run the software. Sometimes, it’s helpful to have virtual machines to learn about this type of software.
  • Try out new things just for fun.

    • Most developers are curious and just want to learn new things.

There are a few options available to facilitate the tasks listed above. Which one is right for you depends on your specific needs.

One way is to sign up for a free account on a cloud service, such as Microsoft Azure or Amazon AWS. Many cloud providers allow you to use their cloud at a free or reduced cost for evaluation or even small scale commercial development. Many developers do use this option very effectively. The downside to using a cloud account is that making a mistake could end up costing you thousands of dollars. Sometimes, cloud providers will refund the charges, if the error was made in good faith. This isn’t always the case though. So, in this post we’re going to look at a more limited, but safer option: Using local virtual machines.

Virtual Machines

Most readers of this blog are probably going to know what a virtual machine is. If you’re new to the concept and want a deeper dive, then you can read this introduction to virtual machines from Microsoft.

In the simplest possible terms, a virtual machine is a computer that runs using the resources of another host computer.

In fact, most cloud infrastructures use virtualization in some way. The services provided by the cloud use virtual machines to run using the physical infrastructure at the cloud provider’s data centers.

Using special virtualization software, we can do something similar, running directly on our own computers.

Virtual Machine Software

There are several software vendors that offer software that can be used to create and work with virtual machines. I’m just going to talk about the most well-known and, as far as I am aware, most commonly used virtualization software.

NOTE: Make sure you understand the licensing for any virtualization software you may download and use. Most of the products mentioned here can be used for personal or non-commercial use. While some can be used for commercial uses, they still may not be the best choice for running real-world software applications beyond demos, education, or proof of concept projects. Whether the virtualization software will work beyond personal use is outside of the scope of this blog post. You will need to carefully consider your specific needs and consult a professional if needed to help you determine if the software is right for you.

Oracle VirtualBox

Oracle VirtualBox is my personal favorite of the virtualization software products currently available. This is largely due to my existing familiarity with it. The base version is free and open source. This greatly lowers the cost barrier for anyone needing a virtual machine just to try things out. It’s also cross-platform, meaning it can run Windows, macOS, and Linux operating systems. VirtualBox is not as fast as some of the other options available, but I find that isn’t really an issue for my needs.

One caveat: While Oracle VirtualBox is free and open source, the extension pack is not. The base version is licensed under the GPLv3 license . If you download and install the extension pack, then you are subject to Oracle’s Personal Use and Evaluation License. , so be aware of that distinction.

VMware

Another widely used virtualization software product is VMware . VMware offers two versions: VMware Fusion, which runs on Mac OS hosts, and VMware Workstation Pro, which runs on Windows hosts. The host is the PC you will be running the virtualization software on. So, if you’re running a computer with MacOS, you would download and install VMware Fusion. If you’re running a Windows OS, you would download VMware Workstation Pro.

On November 11, 2024, it was announced that VMware Fusion and VMware Workstation Pro would be made free for all users . This includes commercial, educational, and personal users. This blog post is really meant to provide readers with options for trying out new software on a limited budget. I won’t really comment on using these products commercially here. Again, if you’re going to use these beyond trying them out and using them for educational or proof-of-concept reasons, please consult a professional for advice.

Microsoft Hyper-V

Microsoft Hyper-V is a hardware virtualization solution built directly into Windows Server and Windows. This is a great solution for anyone who is already running a Windows installation that includes the feature. It’s currently available on Windows Server and Windows 11 Pro, Enterprise or Education editions.

If you have one of the Windows versions listed above, then you don’t have to download any extra software to start using the feature. This is a convenient option if you are already a Windows user.

MacOS Options

There are a couple of options if you run a Mac and want to try virtual machines. I’m not a Mac user, so I’m not going to go into great detail on these options. However, I am listing them here for anyone who might be looking for ways to run Windows or Linux VMs on a Mac.

UTM

UTM is virtualization software that lets you run Windows or Linux VMs on your Mac. It’s free if you download it from the linked web site. You can also buy it from the Mac App Store. According to the UTM web site, the only advantage to buying it through the app store is you can get automatic updates. Also, purchasing UTM from the app store funds development of UTM, if you want to support efforts to continue development of the software.

Parallels Desktop

Parallels Desktop is virtualization software designed for Mac users that want to run Windows VMs on their Mac desktops. It’s not free software like some of the others and does require a license. You can download a 14-day free trial if you want to try it out.

Final Thoughts

We looked at several options for virtualization software that can be used to evaluate or even run one operating system on top of another host OS. It’s important to note that any operating system that you install using one of the virtualization products listed here is still subject to licensing. For example, if you want to run a Windows 11 VM using UTM on a Mac, you either need a license for Windows 11 or must use a temporary copy through a Windows Evaluation VM, such as the Windows 11 Enterprise Evaluation VM available from Microsoft. This isn’t an issue for operating systems like Linux, which are licensed with open-source licenses and are freely available to download and use.

 
 


The content on this blog is for informational and educational purposes only and represents my personal opinions and experience. While I strive to provide accurate and up-to-date information, I make no guarantees regarding the completeness, reliability, or accuracy of the information provided.

By using this website, you acknowledge that any actions you take based on the information provided here are at your own risk. I am not liable for any losses, damages, or issues arising from the use or misuse of the content on this blog.

Please consult a qualified professional or conduct your own research before implementing any solutions or advice mentioned here.