Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
A virtual machine (VM) is a software program or operating system that not only exhibits the behavior of a separate computer, but is also 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.
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. They are used for testing purposes, especially to perform risky tasks such as running malicious software, testing operating systems or creating backups, and accessing malware-infected data.
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.
Depending on their use and level of correspondence to any physical computer, virtual machines can be divided into two categories:
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.
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.
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.