Dell explained exactly what the difference between emulators and virtual machines is.
Emulation or virtualization: What’s the difference?
Emulation and virtualization carry many similarities, yet they have
distinct operational differences. If you’re looking to access an older
operating system within a newer architecture, emulation would be your
preferred route. Conversely, virtualized systems act independent of
the underlying hardware. We’ll look to separate these often confused
terms, and describe what each of them mean for business IT operations.
What’s the difference?
Emulation, in short, involves making one system imitate another. For
example, if a piece of software runs on system A and not on system B,
we make system B “emulate” the working of system A. The software then
runs on an emulation of system A.
In this same example, virtualization would involve taking system A and
splitting it into two servers, B and C. Both of these “virtual”
servers are independent software containers, having their own access
to software based resources – CPU, RAM, storage and networking – and
can be rebooted independently. They behave exactly like real hardware,
and an application or another computer would not be able to tell the
difference.
Each of these technologies have their own uses, benefits and
shortcomings.
Emulation
In our emulation example, software fills in for hardware – creating an
environment that behaves in a hardware-like manner. This takes a toll
on the processor by allocating cycles to the emulation process –
cycles that would instead be utilized executing calculations. Thus, a
large part of the CPU muscle is expended in creating this environment.
Interestingly enough, you can run a virtual server in an emulated
environment. So, if emulation is such a waste of resources, why
consider it?
Emulation can be effectively utilized in the following scenarios:
• Running an operating system meant for other hardware (e.g., Mac
software on a PC; console-based games on a computer)
• Running software meant for another operating system (running
Mac-specific software on a PC and vice versa)
• Running legacy software after comparable hardware become obsolete
Emulation is also useful when designing software for multiple systems.
The coding can be done on a single machine, and the application can be
run in emulations of multiple operating systems, all running
simultaneously in their own windows.
Virtualization
In our virtualization example, we can safely say that it utilizes
computing resources in an efficient, functional manner – independent
of their physical location or layout. A fast machine with ample RAM
and sufficient storage can be split into multiple servers, each with a
pool of resources. That single machine, ordinarily deployed as a
single server, could then host a company’s web and email server.
Computing resources that were previously underutilized can now be used
to full potential. This can help drastically cut down costs.
While emulated environments require a software bridge to interact with
the hardware, virtualization accesses hardware directly. However,
despite being the overall faster option, virtualization is limited to
running software that was already capable of running on the underlying
hardware. The clearest benefits of virtualization include:
•Wide compatibility with existing x86 CPU architecture
•Ability to appear as physical devices to all hardware and software
•Self-contained in each instance
Between emulation and virtualization, your business can perform most
virtual systems functions. While both services sound alike, it all
revolves around how you utilize the software. If you want the software
to get out of the way, virtualization allows guest code to run
directly on the CPU. Conversely, emulators will run the guest code
themselves, saving the CPU for other tasks.