In
computing, an
emulator is hardware or software that enables one computer system (called the
host) to behave like another computer system (called the
guest). An emulator typically enables the host system to run software or use peripheral devices designed for the guest system.
Emulation refers to the ability of a
computer program in an electronic device to emulate (or imitate) another program or device. Many
printers, for example, are designed to emulate
Hewlett-Packard LaserJet
printers because so much software is written for HP printers. If a
non-HP printer emulates an HP printer, any software written for a real
HP printer will also run in the non-HP printer emulation and produce
equivalent printing. Since at least the 1990s, many
video game enthusiasts have used emulators to play classic (and/or forgotten)
arcade games from the 1980s using the games' original 1980s machine code and data, which is interpreted by a current-era system.
A hardware emulator is an emulator which takes the form of a
hardware device. Examples include the DOS-compatible card installed in
some 1990s-era
Macintosh computers like the
Centris 610 or
Performa 630 that allowed them to run
personal computer (PC) software programs and
FPGA-based
hardware emulators. In a theoretical sense, the
Church-Turing thesis
implies that (under the assumption that enough memory is available) any
operating environment can be emulated within any other environment.
However, in practice, it can be quite difficult, particularly when the
exact behavior of the system to be emulated is not documented and has to
be deduced through
reverse engineering.
It also says nothing about timing constraints; if the emulator does not
perform as quickly as the original hardware, the emulated software may
run much more slowly than it would have on the original hardware,
possibly triggering timer interrupts that alter behavior.
0 Comments