A little history first. It used to be if you wanted to use more than one operating system on your computer, you had to do what is known as dual or multi-boot. You had more than one operating system you could use, but only one at a time. Remembering when I was a tech, the college I was working for wanted to get rid of their unix server. They wanted each student to have their own 'nix system to work with. So we took a machine with already installed Microsoft product and squeezed in Linux operating system install. Linux was going to be taught to get to know Unix. When the students started up the computer for their access, you had a choice of Redhat 7 (original version prior to Fedora) and the Microsoft product. Dual boot systems can be a bear to support, though now it is a lot easier with Grub2 (booting software).
One real killer in this is that Microsoft is requiring software on newer equipment to boot the computer that will severely hamper running other operating systems. They say it will make the system more secure. Microsoft software seems to be the only software that needs it so far. Linux and other operating systems are robust enough not to need it so far. Many people think this is just a ploy to lockout competitors. If an operating system worked correctly to begin with, the special boot software would not be needed.
Moving ahead, operating systems developers saw the need to run more than one operating system (virtual machine) at once and avoid all the dual booting. Newer more powerful computing equipment aided in making virtual machines much easier. There are a quite a few products such as VirtualBox and Qemu to accomplish this. General you will have a program that acts as a director. That means your computer will be a host to other operating systems.
One advantage of having the virtual machines is that you can experiment with new software. You might want want to experiment with Linux without having to redo or reinstall your computer. The director allows you to use a file as if it was a disk partition on your system. That way can make multiple copies of the file. If you destroy one copy for what ever reason, you can easy just use another copy. As for my self I will set up a virtual machine of a new version of Linux or a Microsoft So see how well they work with existing software. As a tech, I had to install software for students to use. Every time a new version of Microsoft operating system came out, quite a bit of the existing software no longer worked. With a virtual machine software could have been tested before installing the new operating system for production, And on the other hand we could of used the virtual machine to keep using the existing software running till updates could be installed to solve problems.
Another advantage of having virtual machines along the same lines is that you can set up a sandbox. A sort of virtual machine play area where you can experiment installing software. See what the issues are. You can use them for dealing with testing and finding solutions for malware. In fact a lot of people use a sand box to get on the internet. On servers , they are also known as jails. So if malware destroys the virtual machine, the host system is not affected. They also can be done for computer forensics. You want to know what has been done to a machine by a specific person or persons. A picture or copy if you will of a users hard drive is loaded into a virtual machine to collect evidence of a possible crime. That leaves the original machine undisturbed and intact in case other investigation work needs to be done.
Where some real advantage can come into place is with servers. You do not have to have all the software on one server. Sometimes software can cause conflict, so if I can have a virtual machine for specific purposes such as one for a mail server, one for a web server, one for a media server, and etc. You can update fix issues on an individual servers without affecting the rest.That means less downtime. On big issue with running virtual machines is the amount of memory you need. The fancy mouse environments (GUI - graphical user interface) take up a lot of space (aka ram). If you can run a server well as any computer without the GUI, you are at an advantage, You can then run more virtual machines on the same amount of hardware! More return on investment.
Sometimes the gui-less environment is called the command line. Linux, Unix, BSD, Novell, and a host of other operating systems have done this all along in being able to run without a gui. The command line makes remote access so much easier. You can control a computer from half way around the world with just a keyboard. Microsoft prided themselves on having an environment for using the mouse. Even they have allegedly relented and their new servers will be able to be operated from the keyboard only. System administrators have a joke about the gui-ed environment when they want people to become part of their team. "Mouse jockeys need not apply!"
We have no problem with the gui environment, but it is so much easier to document, let computers control themselves with batch/shell files, and the ability to use reduced resources. Ironically, not so long ago when the gui environment first became available, people screamed bloody murder about have to use a mouse and how it slowed them down. Here we come full circle again. Reminds me of the dos days.
In any case, have talked too much. Just wanted to give a blurb about virtual machines. By the way, you can combine the gui and the command line to make things so much easier. Cut from a web page and paste in right into the command line. Heaven.