- Published on
KembaraXtra- Computer Science -Virtualization and Emulation
I. Introduction
Feature
Virtualization
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.
- 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.
- Type 1 Hypervisor: Interacts directly with the underlying hardware, sitting below the kernel.
- 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).
- 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).
- 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.
Feature
Virtualization
Emulation
0 Comments