Emulation besides QEMU
Emulation is as old as the theorization of computers. One of the properties of Universal Turing Machines (UTMs) is their capability to simulate any other UTM by getting its description. Without getting into complex philosophical and mathematical theory, we can easily say that with one computer and sufficient resources, we may be able to execute the code of any other. Of course, we may not get native performance, but there are astonishing success cases of emulation, which sometimes makes me think about how beautiful the challenge between humans and machines is. For instance, the survival of arcade games is entirely dependent on emulators, simply because nobody no longer knows how their proprietary hardware was built. But passionate people were able to reverse engineer an executable file and understand the architecture of the machine, and yeah – it starts with a bang! Awesome projects such as MAME, Bleem!, and a few others were born. In this chapter, we...