What is emulation?
Emulation is a sophisticated technique for running software on a system called a host, which normally does not support the software we want to run. It’s executed using a support program called an emulator. This emulator executes the unsupported software as a guest. The emulator can make the software we want to execute understand that it is running on its original platform, by translating its original code into the host’s equivalent. Though it’s not just a matter of translation – embedded devices have dedicated peripherals, timers, accelerators, and sensors. Depending on our scope, we will need to make choices and decide what we want to keep, implement, and execute, as well as what we won’t.