A virtual machine (VM) is a virtual environment which functions as a virtual computer system with its own CPU, memory, network interface, and storage, created on a physical hardware system.
VMs are isolated from the rest of the system, and multiple VMs can exist on a single piece of hardware, like a server. That means, it as a simulated image of application software and operating system which is executed on a host computer or a server.
It has its own operating system and software that will facilitate the resources to virtual computers.
The characteristics of the virtual machines are as follows −
Multiple OS systems use the same hardware and partition resources between virtual computers.
Separate Security and configuration identity.
Ability to move the virtual computers between the physical host computers as holistically integrated files.
The below diagram shows you the difference between the single OS with no VM and Multiple OS with VM −
Let us see the major benefits of virtual machines for operating-system designers and users which are as follows −
The multiple Operating system environments exist simultaneously on the same machine, which is isolated from each other.
Virtual machine offers an instruction set architecture which differs from real computer.
Using virtual machines, there is easy maintenance, application provisioning, availability and convenient recovery.
Virtual Machine encourages the users to go beyond the limitations of hardware to achieve their goals.
The operating system achieves virtualization with the help of a specialized software called a hypervisor, which emulates the PC client or server CPU, memory, hard disk, network and other hardware resources completely, enabling virtual machines to share resources.
The hypervisor can emulate multiple virtual hardware platforms that are isolated from each other allowing virtual machines to run Linux and window server operating machines on the same underlying physical host.
Create the illusion of having one or more objects to emulate the real object. It is closely related to abstraction. In developing the OS, abstraction provides simplification by combining multiple simple objects into a single complex object
Virtualization provides diversification and replication by creating the illusion of objects with desired characteristics.