Sat. Jan 21st, 2023

Use and application of emulation

Emulation is the process of imitating something; on a computer, this can include software or hardware.

The easiest examples to give are:

  • Console emulators – many old consoles ran on custom CPUs, which were powerful at the time of release. Once those consoles stop working, the vast library of software available for them becomes obsolete, as there is no specialised hardware left. However, an emulator (a piece of software) can be used to enable code written for one type of CPU to be run on a different type of CPU. There is always a large performance penalty as every instruction must be read and converted at run-time, but it is a viable option for emulation of older games consoles.
  • Software development – when developing software for Android phones, it is common to test the software on the development machine using an emulated Android machine, rather than having real devices for all tests. Although the emulated device can’t perform as well as a real one, emulation can simulate different device types, meaning the developer does not need access to a wide range of devices.

Emulation is not the same as virtualisation; virtualisation commonly allows running x86 / x64 code within a virtual environment, running on physical x86/x64 hardware, whereas emulation may allow running ARM code on an x86/x64 CPU.