Skip Ribbon Commands
Skip to main content
Sign In
Last modified at 05/02/2016 05:55 by Ian Milner

Introduction

Emulating computers within other computers started many years ago with cpu emulation, these early emulators were slow.

More recently improved hardware support for new types of emulation using hypervisors has seen a significant increase in performance and led to an explosion in the use of virtualisation technology.

Many companies have realised the consolidation benefits of migrating their (sometime lightly used) physical servers onto virtual servers hosted on a smaller number of physical servers.

This movement has led in turn to the explosion in cloud provisioning - IAAS, PAAS, SAAS and the like.

 

Types of Emulation

 

CPU Emulation

This is where the hardware of a machine is emulated by a software application running on the host machine, as might be imagined performance is poor and so uses have been restriced e.g.:

  • Powerful Unix workstations running Dos emulators to provide the Unix users with access to basic dos apps
  • Modern PCs running Dos emulators to allow the playing of simple legacy games.

Examples: Dos Box

Type 2 Hypervisor - Native Virtualisation

This is where we have virtual machines running on top of a host o/s. The machines do not have full access to the host's hardware and typically use HALs (hardware abstraction layers) to access it.

Performance is fair but the fact there is that extra layer present degrades performance to an extent.

I use this technology to run Window XP, Windows 8.1 Windows 10, Open SUSE and Cent OS on my Windows 7 laptop.

It has an i7 processor, 16GB of RAM and an SSD - response with several of the above running simultaneously is always fast.

Examples: VM Ware Player / Workstation, Windows Virtual PC. 

Type 1 Hypervisor - Paravirtualisation

This is where your virtual machines run directly on the hypervisor and that hypervisor runs directly on the hardware of the host machine (there is no host o/s).

This gives the virtual machines fuller and more direct access to the host's hardware.

Performance for a single virtual machine is comparable to what it would be if it was directly installed on the bare metal host.

This site runs on type 1 hypervisor (Hyper-V) hosted virtual servers - see this page for more detail About

Interestingly with Hyper-V you initially install a conventional o/s on the host machine (Windows Server), you then install Hyper-V and it replaces the original o/s and makes it a client of Hyper-V.

The fact that Hyper-V appears to be installed on top of an existing o/s leads some people to believe (wrongly) that it is a type 2 hypervisor.

Examples: KVM, Xen, Microsoft Hyper-V, VMWare vSphere/ESX Server

 

Management

Virtualisation and the advent of big data and cloud computing has led to the need for system management tools to facilitate the provisioning, management and support of large numbers of virtual and physical servers.

The open source project Open Stack is well supported by the industry and is typically used to manage KVM based servers (everything from bare metal provisioning to network configuration). Microsoft and VMWare have their own management suites to manage servers using their virtualisation technologies.

In addition tools, such as Puppet, Chef and Docker, have been developed to help support /deployment to these virtualised environments (Pupppet even deploys OpenStack) and along with CI tools such as Jenkins and Team City have led companies to move to combining development and operations function -  DevOps.