Copyright (C) 2003-2010 Anders Gavare
GXemul is a framework for full-system computer architecture emulation.
Several processor architectures and machine types have been implemented.
It is working well enough to allow unmodified
"guest" operating systems to run inside the emulator,
as if they were running on real hardware.
The emulator emulates (networks of) real machines. The machines may consist of ARM, MIPS, Motorola 88K, PowerPC, and SuperH processors, and various surrounding hardware components such as framebuffers, busses, interrupt controllers, ethernet controllers, disk controllers, and serial port controllers.
The documentation lists the machines and guest operating systems that can be regarded as "working" in GXemul. The best working guest operating system is NetBSD/pmax.
The main change between release 0.4.7.2 and 0.6.0 is:
In other words: For most emulation modes, 0.6.0 will be exactly like 0.4.7.2.
The new testm88k mode is much less complete than the old testm88k; the reason for concentrating on this mode is to be able to make an initial release of the new framework within a reasonable time frame.
Compared to the other emulation modes, there are lots of things left to do before the new framework can be considered working: There are no lookup tables for fast loads/stores, no fast pc-to-pointer lookups, no interrupt/trap/exception handling, no timers, no breakpoint support, no general expression parsing, no I/O (serial controllers nor graphical output handlers), no disk or ethernet support, no MMU/virtual memory translation, and snapshotting (for reverse debugging) isn't implemented yet. Still, it is probably better to make many smaller releases (0.6.x) than to wait until everything is in place.
There is also a (bogus) testmips machine which will be implemented using the new framework. To use the old testmips machine, please use the name oldtestmips instead.
In addition to the new framework, a couple of other changes are worth mentioning:
Please read the HISTORY file for more details.
Files included in this release are:
HISTORY Detailed revision history / changelog. LICENSE Copyright message / license. README Quick start instructions, for the impatient. configure, Makefile.skel sh and make scripts for building GXemul. demos/ Tutorial-like demos of testmachine functionality. doc/ Documentation. (*) doc/RELEASE.html This file. doc/TODO TODO notes. experiments/ Experimental code. (Usually not needed.) man/ Man page. src/ Source code. test/ Files used for testing.
(*) Note: In general, the documentation refers to how things worked in pre-0.6.0 releases.
To build the emulator, run the configure script, and then run make. This should hopefully work on most Unix-like systems, with few or no modifications to the source code.
Regarding files in the src/include/ directory: only some of these are written by me, the rest are from other sources (such as NetBSD). The license text says that "All advertising materials mentioning features or use of this software" must display acknowledgements. Even though I do not feel that I mention features or use of the header files (the "software") in any advertising materials, I am still very grateful for the fact that these people have made their files available for re-use, as Free software, so regardless of legal requirements, I guess thanking them like this is in order:
This product includes software developed by the University of California, Berkeley and its contributors. This product includes software developed for the NetBSD Project. See http://www.netbsd.org/ for information about NetBSD. This product includes software developed by Jonathan Stone for the NetBSD Project. This product includes software developed for the NetBSD Project by Matthias Drochner. This product includes software developed by the NetBSD Foundation, Inc. and its contributors. This product includes software developed by Christopher G. Demetriou. [for the NetBSD Project.] This product includes software developed by Adam Glass. This product includes software developed by the PocketBSD project and its contributors. This product includes software developed by Peter Galbavy. Carnegie Mellon University (multiple header files, no specific advertisement text required) This product includes software developed by Charles M. Hannum. This product includes software developed under OpenBSD by Per Fogelström. This product includes software developed by Per Fogelström. This product includes software developed at Ludd, University of Luleå, Sweden and its contributors. This product includes software developed by Hellmuth Michaelis and Joerg Wunsch The font(s) in devices/fonts are Copyright (c) 1992, 1993, 1994 by Hellmuth Michaelis and Joerg Wunsch. ("This product includes software developed by Hellmuth Michaelis and Joerg Wunsch", well, the font is maybe not software, but still...) impactsr-bsd.h is Copyright (C) 2004 by Stanislaw Skowronek. This product includes software developed for the NetBSD Project by Wasabi Systems, Inc. [by Simon Burge] arcbios_other.h is Copyright (c) 1996 M. Warner Losh. This product includes software developed by Marc Horowitz. This product includes software developed by Brini. This product includes software developed by Mark Brinicombe for the NetBSD Project. This product includes software developed by TooLs GmbH. This product includes software developed by Manuel Bouyer. This product includes software developed by the Alice Group. This product includes software developed by Ichiro FUKUHARA. This product includes software developed by Marcus Comstedt. This product includes software developed by Bill Paul. This product includes software developed by Nivas Madhur.
See individual files for license details, if you plan to redistribute GXemul or reuse code.
GXemul's homepage is http://gxemul.sourceforge.net/.