The force driving server
virtualization is similar to that which led to the development of
time-sharing and
multiprogramming in the past. Although the resources are still shared, as under the time-sharing model, virtualization provides a higher level of security, dependent on the type of virtualization used, as the individual virtual servers are mostly isolated from each other and may run their own full-fledged
operating system which can be independently rebooted as a virtual instance. Partitioning a single server to appear as multiple servers has been increasingly common on
microcomputers since the release of
VMware ESX Server in 2001. VMware later replaced ESX Server with VMware ESXi, a more lightweight hypervisor architecture that eliminated the Linux-based Console Operating System (COS) used in the original ESX. The physical server typically runs a
hypervisor which is tasked with creating, releasing, and managing the resources of "guest" operating systems, or
virtual machines. These guest operating systems are allocated a share of resources of the physical server, typically in a manner in which the guest is not aware of any other physical resources except for those allocated to it by the hypervisor. As a VPS runs its own copy of its operating system, customers have
superuser-level access to that operating system instance, and can install almost any software that runs on the OS; however, due to the number of virtualization clients typically running on a single machine, a VPS generally has limited processor time,
RAM, and disk space. There are several approaches to virtualization. In
hardware virtualization, a
hypervisor such as the
Kernel-based Virtual Machine allows each virtual machine (VM) to run its own independent kernel, providing greater isolation from the host system. By contrast,
container-based virtualization—for example
OpenVZ—shares the host kernel among multiple containers. This can improve resource efficiency, but usually offers less isolation and fewer customization options for each instance. == Hosting ==