| • Science | • People | • Locations | • Timeline |
An emulator, in the most general sense, duplicates (provide an emulation of) the functions of one system with a different system, so that the second system appears to behave like the first system. (Contrast with simulation).
In a technical sense, the Church-Turing thesis implies that any operating environment can be emulated within any other. In practice, it can be quite difficult, particularly when the exact behaviour 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.
The most common form of emulation is that of a software emulator, a piece of computer software that allows certain computer programs to run on a platform ( computer architecture and/or operating system) other than the one they were originally written for. It does this by "emulating", or reproducing, the behavior of one type of computer on another by accepting the same data, executing the same programs, and achieving the same results.
Most emulators just emulate a hardware architecture — if a specific operating system is required for the desired software, it must be provided as well (and may itself be emulated). Both the OS and the software will then be interpreted by the emulator, rather than being run by native hardware. Apart from this interpreter for the emulated machine's language, some other hardware (such as input or output devices) must be provided in virtual form as well: if writing to a specific memory location should influence the screen, for example, this will have to be emulated as well.
Instead of full emulation of the hardware, a compatibility layer may suffice. This translates system calls for the emulated system into system calls for the host system.
A popular use of emulators is to run software and games, often referred to as Roms, written for hardware that is no longer sold or readily available, such as the Commodore 64 or early AmigaAmiga ( Spanish, "female friend") is the name of a range of home/ personal computers whose development started in 1982. The original Amiga Inc. company was bought out in 1984 by Commodore, who marketed the Amiga as their intended successor to the Commodor models. Emulating these on modern desktop computers is usually less cumbersome than relying on the original machine, which may be inoperational. However, software licensing issues may require emulator authors to write original software that duplicates the functionality of the original computer's bootstrap ROM and BIOSIn computing, the Basic Input-Output System or BIOS is computer interface code that locates and loads the operating system into RAM. It provides low-level communication, operation and configuration to the hardware of a system, which at a minimum drives th.
Developers of software for embedded systemsAn embedded system is a special-purpose computer system usually built into a smaller device. An embedded system is required to meet very different requirements than a general-purpose personal computer. Examples of embedded systems automatic teller machine or video game consoleA video game console is a dedicated electronic device designed to play video games. Often the output device is a separate television or a computer monitor. Once, video game consoles were easily distinguishable from personal computers: consoles used a stans often design their software on especially accurate emulator called a simulator before trying it on the real hardware. This is so that software can be produced and tested before the final hardware exists in large quantities, so that it can be tested without taking the time to copy the program to the hardware, or so that it can be debugged at a low level without introducing the side effects of a debuggerA debugger is a computer program that is used to debug (and sometimes test) other programs. When the program crashes, the debugger shows the position in the original code if it is a source-level debugger or symbolic debugger commonly seen in integrated de.