Surely we all have a computer in our house, either desktop or laptop. When we turn it on, the state of the hardware is checked in the POST, and then the operating system (usually Windows) is started from the hard disk or drive that we have active. Everything we do on the computer will affect the entire operating system, programs and data. A computer can run a single operating system at the same time, on which all the programs that we open are executed. However, many times we have talked about a concept called “virtual machine”. Do we know what this is?
What is a virtual machine
A virtual machine is, broadly speaking, a virtual environment on which we can install other operating systems to use on top of our main operating system. These virtualized environments emulate a hardware leaning on the real hardware of our PC, and this virtual hardware behaves like a physical computer, with the difference that it all runs inside our PC. The virtual machine operating system is just another program that runs on our computer.
Therefore, when we talk about virtual machines we must be very clear about the following two concepts:
- Host machine, or host: our computer and main operating system.
- Guest machine, or guest: the virtual machine as such, running on top of the host.
The hypervisor, the engine of the VM
The most important thing about a virtual machine is the hypervisor. This is in charge of controlling the virtual hardware and accessing the physical resources of our PC, such as the CPU, memory, graphics, sound card, etc. The hard disk of virtual machines is usually a very large file that is stored inside our real hard disk.
While we can only have one operating system running at the same time on a PC, virtual machines do not have these limitations. We can create, start and use at the same time all the virtual machines that we want, both Windows and Linux and macOS, as long as we have hardware (RAM, especially) available.
When to use virtual machines
There are many reasons why we should use virtual machines. One of the most common is to test new operating systems without having to alter our computer. We can test any Linux distro inside a virtual machine, and use its programs, as if we had it installed on our real PC. We can also use these virtual machines to test macOS without having to buy a Mac. We can also install the Insider versions of Windows 10 to test the new features of the Microsoft operating system before anyone else.
Another very frequent use of virtual machines is to safely reuse old operating systems . We can look back and install Windows XP on our computer, and even go back even more, until Windows 98, or 3.1. We can also install MS-DOS, FreeDOS and other similar systems. Why do it? Very simple, to be able to re-run old applications and games that, with current operating systems, do not work.
It is also possible to use these virtual machines to test unreliable programs and configurations . If a program breaks Windows, or installs a virus, this will affect only the virtual machine, and our host PC will continue to be safe and smooth. This will help us not to spoil our computer every so often, and will allow us to save time by not having to format and configure Windows 10 from scratch. In addition, thanks to Snapshots and the cloning functions of virtual machines, we will be able to undo changes and configurations in seconds, always having virtual machines ready.
Finally, virtual machines are very useful for programmers. Thanks to them we can assemble a complete client-server infrastructure to check first hand how the application works, audit it and improve it. This will also allow us to test how our application or program works in other operating systems.
Disadvantages of virtual machines
A virtual machine is very useful and has many advantages as we have explained. But it also has a lot of drawbacks. The first of them is that in order to use them we have to have relatively high-end hardware. Otherwise, these machines will run very slow. In addition, the RAM expense is very high.
Also, the performance of virtual machines is nowhere near the performance of an operating system physically installed on a PC. These machines tend to be much slower than a natively installed operating system and, above all, they will have many limitations when it comes to running 3D applications, such as games.
Requirements for using virtual machines
There are no minimum requirements to be able to create virtual machines. Even if our processor does not have native virtualization instructions we will still be able to create these virtual machines, although with some limitations (for example, only 32-bit systems).
The best thing to do to create a virtual machine is, first, to have a mid-range or high-end processor (Intel i5 or higher) with virtualization instructions. It is also recommended to have enough RAM memory so that the virtual machine can work without problems and, in addition, so that our host operating system does not run out of memory. 8 GB of RAM can be enough for virtual machines to work well (even Windows 10, using 4 GB of memory) and for the host system to have enough memory to keep running. We need a hard disk to store the virtual hard disks that we create for these virtual machines. If we have an SSD, we will get much better performance than if we use a normal hard drive.
A keyboard, mouse, monitor, sound card and other peripherals are also necessary to be able to work seamlessly with these virtual machines.
Programs (or hypervisors) to create a virtual machine
Having clarified what virtual machines are and how they work, we will find out what software we need to be able to create and use them. There are several free and paid programs that act as hypervisors to create virtual machines. In addition, each operating system (Windows, Linux and macOS) have exclusive programs for this task. We are going to focus on alternatives for Windows.
Hyper-V is the Microsoft hypervisor included in Windows, specifically in professional versions, such as Windows 10 Pro. This hypervisor is specialized in emulating other versions of Windows, but it is not characterized by being simple or intuitive to use.
Hyper-V is also the hypervisor used by Windows for WSL, the Windows subsystem for Linux, or to use Windows Sandbox. All options and functions that involve virtualizing in Windows use this hypervisor by default. It is well integrated into the system and is one of the ones that works best, as we have said, as long as we do not leave Windows.
The problem with Hyper-V is that this hypervisor is not compatible with any other. If we enable it and try to use VMware or VirtualBox, these will return error messages, blue screenshots and we will not be able to use them. Even if we don’t have anything open in Hyper-V. Simply having it enabled causes problems, and we will have to disable it in order to use other virtualization programs.
Secondly we will find VMware . This is one of the most complete virtualization programs that we can find for Windows. Although it is intended for business and advanced users, any user, even without advanced knowledge, will be able to use VMware without problems to install and test all kinds of operating systems.
VMware has a much more complete and advanced paid version for users who need additional functions and features, and a free version, the Player, which is much simpler, for users who want something free without sacrificing the performance offered by this program.
Last but not least, we have VirtualBox . The main difference of this program with respect to the previous ones is that it is totally free for all users and open source. Also, we can find it for Windows, Linux and macOS.
VirtualBox has excellent support, and although its performance and advanced functions may be somewhat inferior to those of VMware, it becomes one of the best alternatives for those users who do not want complications. It works perfectly together with VMware installed at the same time on the same computer.
How to install an operating system and programs on a virtual machine
One question many users ask is how the operating system and applications are installed inside the virtual machine. When we create a new VM within the program, we have to indicate an installation medium. This can be an ISO image or a CD or DVD that we physically insert into the computer. Just as if we were to install a system from scratch on our real PC.
The virtual machine will boot, POST and load the operating system installation wizard. We must follow the installation wizard to the end, just as if we installed it on any physical PC, to leave Windows, Linux or macOS installed and ready to go. After restarting the virtual machine, the operating system will be installed and will be fully functional. Although we may have to install VMware Tools or VirtualBox Guest Additions, in order for them to work at full capacity.
As for the applications, the same. From the virtual operating system we can download the installers of applications that we want and install them on the virtual machine as if it were a real computer. Everything is installed and used just like a real computer.