Skip the navigation

Emulation or virtualization?

Don't be confused! Virtualization and emulation aren't the same. Here's how they differ.

June 22, 2009 12:01 AM ET

Computerworld - Emulation is what we do when we try to make one system behave like or imitate a different system. We want to take System A (something we already have) and give it the inputs we would normally use for System B (which we may not have) and have System A produce the same results as System B.

Definition

Virtualization is a buzzword applied to many different technologies: servers, storage, communications, networks. An older, seemingly related term is emulation, but it's not the same thing. Here, we'll sort out the differences.

What's involved is more than a simple translation of commands or machine instructions; compilers and interpreters have done that for years. No, we're taking complete operating systems, APIs and functions, and we're having them work on a machine they were never designed for -- a machine that may use totally different methods and commands. That this is even possible is sometimes miraculous, but it nearly always carries a high performance price. Emulation entails a high overhead, and it significantly reduces throughput.

If emulation takes such a toll, why bother? Because we might want to do one of the following:

  • Run an OS on a hardware platform for which it was not designed.
  • Run an application on a device other than the one it was developed for (e.g., run a Windows program on a Mac).
  • Read data that was written onto storage media by a device we no longer have or that no longer works.

Emulation is important in fighting obsolescence and keeping data available. Emulation lets us model older hardware and software and re-create them using current technology. Emulation lets us use a current platform to access an older application, operating system or data while the older software still thinks it's running in its original environment.

The term emulator was coined at IBM in 1957. Before 1980, it referred only to hardware; the term simulation was preferred when talking of software. For example, a computer built specifically to run programs designed for a different architecture would be called an emulator, whereas we'd use the word simulator to describe a PC program that lets us run an older program (designed for a different platform) on a modern machine. Today emulation refers to both hardware and software.

Virtualization

Virtualization is a technique for using computing resources and devices in a completely functional manner regardless of their physical layout or location. This includes splitting a single physical computer into multiple "virtual" servers, making it appear as though each virtual machine is running on its own dedicated hardware and allowing each to be rebooted independently. In storage virtualization, on the other hand, the server regards multiple physical devices as a single logical unit.



Our Commenting Policies