Virtual Machines

Virtual Machines

It is nothing more than software capable of loading another operating system inside it, making it believe that it is a real PC. As its name suggests, the concept is as simple as creating a machine (PC, console, mobile or whatever) that instead of being physical is virtual or emulated using the host’s resources.

System VM


A virtual system machine is one that emulates a complete computer. In plain words, it is software that can impersonate another device so that you can run another operating system inside it. It has its own hard disk, memory, graphics card and other hardware components, but they are all virtual.

It may have reserved resources of 2 GB of RAM and 20 GB of hard disk, which obviously come from somewhere: from the PC where the virtual machine is installed, also sometimes called the hypervisor, the host. Other devices might actually be physically non-existent, such as a CD-ROM that is actually the contents of an ISO image instead of a real CD drive.

Virtualization can be by software or with hardware support, in which case better performance is obtained. Since 2005 it is common for processors to have hardware virtualization technology, although it is not always enabled by default in the BIOS.

Process VM


A processing virtual machine is less ambitious than a system virtual machine. Instead of emulating a PC entirely, it runs a particular process, such as an application, in its runtime environment. It sounds a bit esoteric, but you use it every time you run a Java-based or .NET Framework-based application.

Process virtual machines allow you to enjoy applications that behave the same on platforms as different as Windows, Mac or Linux, but you as a user will usually not pay much attention to them. That’s why, unless you are a programmer, when we talk about virtual machines we are generally referring to system virtual machines.


Advantages of VMs

Virtual machines have a wide variety of uses in both professional and consumer environments, these are their main advantages and uses:

  • Try other operating systems. Installing an operating system on your PC is a long, tedious process and difficult to reverse if you are not satisfied with the results. So, when there is a new version of Windows it is easier and safer to test it by installing it in a virtual machine than on your hard drive. If something goes wrong, you delete it and that’s it, without risking to lose a lot of time or your data.
  • To run older programs. What happens when your business depends on software that hasn’t been updated for 20 years? If you can’t modernize the software you have no choice but to keep loading it on a legacy operating system. With a virtual machine this old system can run on current hardware instead of on a junk PC. The same applies to old games that no longer run on modern hardware or software.
  • Use applications available for other systems. You may also need a virtual machine to run applications that have been developed for another operating system than the one you are using. For example, to use a Linux application from Windows, or the opposite.
  • For testing of an application on different systems. As an application developer you want them to work correctly in as many configurations as possible, and that includes different versions of operating systems. One option is to have half a dozen PCs installed with different versions and different systems or just one with virtual machines.
  • As additional security. Being isolated from the rest, a virtual machine provides you with additional security in precise tasks where you want to be sure that an application will not have access to the rest of your data. That is why they are often used to do such dangerous things as installing viruses and malware to study them.
  • Its great dynamism. By their nature virtual machines are very useful in occasions where you need extreme dynamism in the system. You can save states (exact copies of your data), extend them, move them to a totally different hardware and they will continue working without problems. This is why they are essential for example in companies with web servers that host a multitude of machines with their clients’ web pages.

There are many advantages that we could mention when talking about virtual machines, but there is always a disadvantage, and this is the performance. As expected, if your PC hardware is used to run two operating systems at the same time instead of one, performance suffers. Although applications for creating virtual machines are becoming more efficient and the hardware more powerful, emulating a system always requires extra effort that is not necessary if the software could communicate directly with the hardware, without intermediaries.


How to create a VM?

To use a virtual machine the first thing you need is to install an application on your PC capable of creating or at least reproducing it. There are several well known applications capable of doing this, although the most famous ones are:

Software SO
VMware Windows - Linux
VirtualBox Windows - Linux - MacOs
Parallels MacOs

Besides being able to create virtual machines by means of these applications, Windows counts on Hyper-v, this one has as function manage the access and operation of the virtual systems, as well as the resources of the physical hardware of the host computer. Like other applications such as VMware or VirtualBox it will allow us to work simultaneously with an operating system installed on another physical system and to be able to perform tests on it without at any time our physical computer being modified in any way.

Hyper-v provides support for hardware virtualization which means that each virtual machine we run will run on virtual hardware composed of the typical devices a computer needs: hard disk, network card, CPU, RAM and others.