GXemul


GXemul is a computer architecture
emulator being developed by Anders Gavare. It is
available as free software under a revised BSD-style license.
In 2005, Gavare changed the name of the software project
from mips64emul to GXemul. This was to avoid giving the impression that the emulator
was confined to the MIPS architecture, which was the
only architecture being emulated initially.
Although development of the emulator is still 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 include
ARM, MIPS, M88K, PowerPC, and SuperH.
Guest operating systems that have been verified to work inside the emulator
are NetBSD, OpenBSD, Linux, HelenOS, Ultrix, and
Sprite.
Apart from running entire guest operating systems, the emulator can also be used
for experiments on a smaller scale, such as hobby operating system
development, or it can be used as a general debugger.

Dynamic Translation

GXemul's processor emulation uses dynamic translation, to convert the
emulated processor's instructions into an intermediate representation.
The IR is in a format which can be executed by the host. In other words, it
should be possible to port the emulator to new host architectures with just
a recompilation; there is no need to implement a native code generation backend
for each host architecture to get it running.

Usage Example

Assuming you have downloaded a NetBSD/pmax 5.0 CD-ROM ISO image,
the following commands will let you install NetBSD onto an
emulated DECstation 5000 Model 200 :
dd if=/dev/zero of=nbsd_pmax.img bs=1024 count=1 seek=3000000
gxemul -e 3max -d nbsd_pmax.img -d b:pmaxcd-5.0.iso
The first command creates an empty disk image, and the second
command launches GXemul. The -e option specifies the machine to
emulate, and the -d options add disk images. The first disk image
is the newly created disk image where NetBSD will be installed. The
second is the CD-ROM ISO image; the b: modifier flag means that
the system should boot from the ISO image, instead of the first
available disk image.
Installing NetBSD within the emulator should be very similar to installing
it on real hardware. Once the installation has completed, the following
command should start NetBSD from the disk image:
gxemul -e 3max -d nbsd_pmax.img