A virtual machine (VM) is an image file managed by the hypervisor that exhibits the behavior of a separate computer, capable of performing tasks such as running applications and programs like a separate computer.
In other words, a VM is a software application that performs most functions of a physical computer, actually behaving as a separate computer system.
A virtual machine, usually known as a guest, is created within another computing environment referred as a "host." Multiple virtual machines can exist within a single host at one time.
Techopedia Explains Virtual Machine (VM)
Virtual machines are becoming more common with the evolution of virtualization technology. Virtual machines are often created to perform certain tasks that are different than tasks performed in a host environment.
They are also widely implemented as a sandboxed environment that are separated from the rest of the network. For example, they can be used for testing purposes, especially to perform risky tasks such as running malicious software, testing operating systems, and accessing malware-infected data.
VMs are also used in production and as back-ups.
Virtual machines are implemented by software emulation methods or hardware virtualization techniques. A lightweight software known as hypervisor allocates the computing resources (RAM, CPU power, memory, storage, etc.) of the server or host to each VM, keeping all of them separate to avoid interference.
The computer’s operating system and applications are separated from its hardware so that each new virtual machine can access the physical resources of the original server, which are managed by the hypervisor.
The VM has virtual hardware resources that map to the physical hardware on the server (host). This allows for load balancing of resources across VMs on a single host.
Depending on their use and level of correspondence to any physical computer, virtual machines can be divided into two categories:
System Virtual Machines
A system platform that supports the sharing of the host computer's physical resources between multiple virtual machines, each running with its own copy of the operating system.
The virtualization technique is provided by the hypervisor, which can run either on bare hardware or on top of an operating system.
Process Virtual Machine
Also known as application VM, a process virtual machine is designed to provide a platform-independent programming environment that supports a single process. It is created when the process is started, and destroyed upon exit.
A process VM is used to mask the information of the underlying hardware or operating system, and allows program execution to take place in the same way on any given platform.
Pros and Cons of Virtual Machines
Some of the advantages of a virtual machine include:
Allows multiple operating system environments on a single physical computer without any intervention.
Virtual machines are widely available and are easy to manage and maintain.
Offers application provisioning and disaster recovery options.
A VM can be created or replicated very quickly by cloning it with an OS already installed, rather than installing a new OS on a physical server.
VMs are offer high availability since they can be moved from one server to another for maintenance purposes, even whilst running.
Some of the drawbacks of virtual machines include:
They are not as efficient as a physical computer because the hardware resources are distributed in an indirect way.
Multiple VMs running on a single physical machine can deliver unstable performance.