Getting Started with Virtual Machines

Get familiar with using a virtual machine, hypervisor and paravirtualization technology.
Author

Chuck Nelson

Published

August 26, 2025

1 Virtual Machines

VM Paravirtualization

Virtual machines (VMs) allow you to run an operating system within another operating system. This is useful for testing, development, and learning without affecting your main system.

2 What is a Virtual Machine?

A virtual machine emulates a computer system. It runs on a host operating system and behaves like a separate computer, called the guest.

Image of the guest OS to Host OS stack

3 Understanding Hypervisors

A hypervisor is software that creates and manages virtual machines. It sits between the host OS and the guest OS.

There are two types:

  • Type 1 (Bare Metal): Runs directly on hardware
  • Type 2 (Hosted): Runs on top of a host OS (e.g., VirtualBox)

4 Para-Virtualization

Para-virtualization allows the guest OS to be aware of the virtual environment and interact more efficiently with the hypervisor. It improves performance by reducing the overhead of full virtualization.

5 Creating a Fedora VM

5.1 Windows with VirtualBox

  1. Download and install VirtualBox.
  2. Download Fedora Workstation 42 ISO from Fedora Website.
  3. Open VirtualBox and click New.
  4. Name your VM and select Linux > Fedora (64-bit).
  5. Allocate memory (e.g., 8192 MB or higher).
  6. Create a virtual hard disk (e.g., 40 GB).
  7. Start the VM and select the Fedora ISO.
  8. Follow the Fedora installation steps.

5.2 macOS with VirtualBox

  1. Install VirtualBox for macOS.
  2. Follow the same steps as for Windows.

5.3 Linux with QEMU/KVM

  1. Install QEMU and virt-manager:

    sudo apt install qemu-kvm libvirt-daemon-system virt-manager
  2. Download Fedora Workstation 42 ISO.

  3. Open Virtual Machine Manager.

  4. Click Create a new virtual machine.

  5. Choose Local install media and select the Fedora ISO.

  6. Allocate memory and disk space.

  7. Complete the installation.

6 Summary

Virtual machines are powerful tools for learning and experimentation. Understanding how they work and how to set them up on different platforms will help you become a more versatile developer.

Back to top