Emulation is the process of making an incompatible subsystem aware of a desired supersystem in such a way that the supersystem is completely compatible and interactible with the subsystem, thereby allowing all possible renderings of the digital objects in the subsystem with reesspect to the supersystem. The intended environment is the target platform and the emulated environment is the host platform.
Emulation has a close competitor which right now has the upper hand provided the investment and research made by variuos IT giants in the sector-migration. Migration, is always a better option than emulation, but again,migration takes us to a new level of a possibly obsolete die-out. Emulation nowadays, has moved over the level of running local subsystems to survival of objects in the digital world, and has succeded to coexist with migration.
With newer technologies supersedeng each other rapidly, existing technology is fast becomming obsolete. In this fast changing dynamic world, emulation provides for a certain level of digital preservation.
Emulaion is seen as a possible and seemingly better alternative to migration where the object under consideration itself is shifted to a compatible form, which is a resource consuming task, as each platform needs a different version of the object with continuous support. Thus creating a universaly acceptable platform protects the user from surging investments with redefinition of objects.
Emulators have a number of benifits ::
1.Provide cost-effective alternatives.
2.Provide scope for testing of new technologies without risky investments.
3.ovide a new scope for R&D.
4.provide a unified local platform with all-round compatibility.
5.Reduce costs for after-sale services and customer service-resources.
6.Emulators are also being written under the GNU, allowing a wider collaboration and coverage.
Emulation is of two types ::
1. Full emulation ::
In this method a system is made to behave like it is another hardware alltogether. This requires a redefinition on the initializers, the current hardware profile and the emulation of a parallal UI of the emulated profile along with the original UI. Although the emulation of the first two is easy, a full emulation of the GUI or multithreading capabiities is hard to achieve. As hardware specifications are properly documented, they are easy to recreate(Eg. Playstations) over a software than emulating a software(Eg. MS-DOS) over another software.
2.Hardware emulation ::
Not so popular, hardware emulation is another type of emulation, where a hardware piece is used to create a virtual environment for another software in another hardware. This process is costly, needs comtinuous servicing and is hard to maintain. Also, there is every chance of the hardware becoming obsolete. Thus hardware emulation is not a good option for the common people, although with expert modification, a hardware added to the present has capabilities of delivering better(Eg. Parallal processing).
An important component of an emulator is an live interpreter. It continuously waits for any process from the subsystem to interpret and mask it to a modified version matching the supersystem’s profile. This process, also referred to as dynamic recompilation is widely used by the JAVA JIT compiler. The JVM creates a code catch for the interpreted codes and allows a smooth emulation for java applications on any platform giving java it’s portability.
Types of emulators ::
Emulators are of basically fou types-
1.Game platform emulators
2.Historic computing emulators
3.Business efficiency emulators
4.Cross platform emulators
1. Game platform emulators ::
Since the innovation of game consoles, the area has seen a rapid growth in it’s own perspective. With the advent of newer consoles, the need to play older games lives on. Here emulation comes into play. With emulation we can play games from older consoles which are quite obsolete now. The legend of pacman lives on…
SEGA, Atari, Nintendo all have been succesfully emulated by the MAME emulator.
2. Historic computing emulator ::
Sometimes, older computer platforms are needed for R&D purpose. They, being no more avaiable, need to be emulated afterall.
Commodre, PDP and similarly older platforms are emulated by SIMH.
3. Business efficiency ::
eEmulation in business is the second most popular emulation market after game emulation. With this, we can safely test the success and bugs of our applications on different platforms. Commonly, operating systems are emulated.
Mac OS can emulate Windows using MS Virtual PC.
4.Cross platform emulation ::
Emulaors are also specially designed to hostdiferent platforms on each other. This is famous with the open source community where Linux compatibility is often desired in other operating systems.
The linux platform can be emulated by the Bochs.
Popular emulators ::
1. The DOSBOX emulator is very famous for it’s emulation of 16 bit subsystems into non-compatible newer systems like Windows Vista.
2. Playonlinux is a good emulator for playing a wide array of windows games on linux. (Home)
3. MAME is an emulator for playing playstation games on PC. (Home)
4. MS Virtual PC allows running Windows on a MAC. (Home)
5. Cygwin can emulate the UNIX environment on a windows based PC. (Home)
6. QEMU is an emulator under the GNU allowing linux emulation. (Home)
7. JVM emulates a java compatible environment on various systems. (Home)