TECHNOLOGY 

Published on
KembaraXtra- Computer Science -Virtualization and Emulation
I. Introduction
  • Virtualization: Creating a virtual representation of a computer using software.
  • Emulation: Enabling applications designed for one type of device to run on a different type of device.
II. Virtualization
  • Virtual Machine (VM): A virtual computer that runs an operating system and applications, similar to a physical computer.
    • Applications running on a VM perceive the virtualized hardware as a physical computer.
  • Benefits of Virtualization:
    • Run multiple operating systems on a single physical machine.
    • Datacenters can host multiple virtual servers on one physical server.
    • Easy to back up, restore, and deploy VMs.
  • Hypervisors: Software platforms that run virtual machines.
    • Type 1 Hypervisor: Interacts directly with the underlying hardware, sitting below the kernel.
      • Examples: Microsoft's Hyper-V, VMware ESX.
    • Type 2 Hypervisor: Runs as an application on an operating system.
      • Examples: VMware Player, VirtualBox.
  • Containers: Provide an isolated user mode environment for running applications.
    • Share the kernel with the host OS and other containers.
    • Processes in a container can only access a subset of the host's resources (e.g., isolated filesystem).
    • Provide isolation similar to VMs but without the overhead of a separate kernel.
    • Typically limited to running the same OS as the host.
    • Examples: OpenVZ (virtualizes the entire user mode), Docker (runs individual applications).
III. Emulation
  • Definition: Using software to make one type of device behave like another.
  • Key Difference from Virtualization:
    • Virtualization offers a slice of the underlying hardware.
    • Emulation presents virtual hardware that is unlike the physical hardware.
  • Example: Running software compiled for a Sega Genesis (Motorola 68000 processor) on an x86 machine.
  • Process: The emulator translates CPU instructions from the original system to instructions that the host system can understand.
  • Overhead: Emulation introduces significant overhead because each instruction must be translated.
  • Applications of Emulation:
    • Preserving software designed for obsolete platforms.
    • Enabling old software to run on modern platforms without modification (when source code is lost or modernization is too difficult).
IV. Process Virtual Machines
  • Definition: Run an application within an execution environment that abstracts away details of the underlying OS.
  • Similarity to Emulators: Provides a platform decoupled from the hardware and OS.
  • Difference from Emulators: Does not simulate real hardware.
  • Purpose: Designed for running platform-independent software.
  • Examples: Java and .NET use process virtual machines that run bytecode.
V. Key Differences Summarized
Feature
Virtualization
Emulation

Picture
Feature	Virtualization	Emulation Hardware	Virtualized hardware is similar to actual hardware	Virtualized hardware is unlike actual hardware Purpose	Run multiple OSs, isolate environments	Run software for different platforms Performance	Generally lower overhead than emulation	Higher overhead due to instruction translation OS Requirement	Often requires same or similar OS	Can run software designed for different OSs
0 Comments