GXemul

From Wikipedia, the free encyclopedia

GXemul

Ultrix running in GXemul
Developer: Anders Gavare
Latest release: 0.4.4.1 / March 18, 2007
Use: Emulator
License: BSD-style license
Website: gavare.se/gxemul

GXemul (formerly known as mips64emul) is a computer architecture emulator originally written to emulate computer systems using the MIPS instruction set, and is available as free software under a revised BSD-style license. The emulator was originally written by Anders Gavare, a graduate student in Sweden, around August, 2003. In 2005, Gavare changed the name of the software project from mips64emul to GXemul, to avoid giving the impression that the emulator is confined to the MIPS64 instruction set.

Although the emulator is still very much a work-in-progress, since 2004 it has been stable enough to let various unmodified guest operating systems run as if they were running on real hardware. Currently emulated processor architectures are ARM, MIPS, PowerPC, and SuperH. Supported guest operating systems are NetBSD, OpenBSD, Linux, Ultrix, and Sprite. The GXemul documentation contains a list of tested combinations of emulated machine types and guest operating systems.

The emulator does not have to run entire guest operating systems; it can also be used for hobby OS development, or as a general debugger.

Older releases (up to and including 0.3.8) used dynamic binary translation, which translated the emulated machine code into native code on the host. This worked for DEC Alpha and i386 hosts. The binary translation mode was removed in release 0.4.0, and nowadays GXemul's processor emulation uses dynamic translation into an intermediate representation (IR). The translation step which would translate this IR into native code on the host has not been implemented. This step is not really necessary, because the IR is already in a format which can be executed. In other words, the emulator should be possible to port to new host architectures with just a recompilation, and there is no need to implement a native code generation backend to get it running.


[edit] See also

[edit] External links

In other languages