--- trunk/RELEASE 2007/10/08 16:17:48 2 +++ trunk/RELEASE 2007/10/08 16:20:10 26 @@ -1,74 +1,76 @@ -Release notes for GXemul 0.3.1 -============================== +Release notes for Gavare's eXperimental Emulator (GXemul), 0.4.0.1 +================================================================== -Copyright (C) 2003-2005 Anders Gavare. +Copyright (C) 2003-2006 Anders Gavare. -GXemul is an experimental instruction-level machine emulator. It can be -used to run binary code for (among others) MIPS-based machines. Several -emulation modes are available. For some emulation modes, processors and -surrounding hardware components are emulated well enough to let unmodified -operating systems run as if they were running on a real machine. - -I have verified that the following "guest" operating systems can run -inside the emulator: - - Guest operating system Emulated machine - ---------------------- ---------------- - NetBSD/pmax 2.0 (and 1.6.2) DECstation 5000/200 - OpenBSD/pmax 2.8-BETA DECstation 5000/200 - Ultrix 4.2-4.5 DECstation 5000/200 - Sprite demo harddisk image DECstation 5000/200 - Debian GNU/Linux for DECstation DECstation 5000/200 - Redhat Linux 7.1 for mips DECstation 5000/200 - NetBSD/arc 1.6.2 Acer PICA-61 - OpenBSD/arc 2.3 Acer PICA-61 - NetBSD/hpcmips 2.0 NEC MobilePro 770, 780, 800, 880 - -A couple of other emulation modes exist. Some of these modes are almost -working well enough to run complete guest operating systems, but most are -just skeletons. The modes that work are listed in the documentation. - -The emulator can also be used in other experiments; it does not have to -run entire guest operating systems. It is important to remember, though, -that GXemul does not simulate things smaller than an instruction; this -means that pipe-line stalls, penalties caused by branch-prediction misses, -and other effects are not simulated. - -The two most visible changes from version 0.3 to 0.3.1 are: - - x) Name change (from mips64emul to GXemul). +GXemul is an experimental instruction-level machine emulator. Several +emulation modes are available. In some modes, processors and surrounding +hardware components are emulated well enough to let unmodified operating +systems (e.g. NetBSD) run as if they were running on a real machine. - x) NetBSD/hpcmips can now be installed and run from a harddisk - image on an emulated NEC MobilePro 770, 780, 800, or 880. +The documentation lists the machines and guest operating systems that can +be regarded as "working" in GXemul. The best supported guest operating +systems are probably NetBSD/pmax, NetBSD/cats, and OpenBSD/cats. -There have also been many other updates and bugfixes, as usual. -This release has a number of known bugs, listed in the BUGS file, but feel -free to drop me an email regarding other bugs. +The most important change between release 0.3.8 and 0.4.0.1 is: + + o) The emulation of MIPS processors has been completely rewritten; + it now uses the same portable dynamic translation system as the + ARM and PowerPC emulation modes. + + On Alpha and i386 hosts (and AMD64 hosts running in 32-bit mode), + GXemul previously used translation into native code. This release + will perform worse than 0.3.8 on those host architectures. + + On all other hosts (including AMD64 running in native 64-bit mode), + 0.4.0 is likely to be faster than 0.3.8, when emulating MIPS. + + I think that in the long term, moving towards full portability like + this is a good idea. + +(0.4.0 was a bit buggy and unstable; 0.4.0.1 is a quick-fix release.) + +There have also been many other changes, including, but not limited to: + + o) The "test machine" functionality is more well-defined than before, + and some tutorial-like demos have been added. These could be useful + e.g. in operating system construction courses. + + o) NetBSD/sgimips 3.0 works now. This is most likely due to the rewrite + of the MIPS emulation mode. Previous releases of GXemul only worked + with NetBSD/sgimips 2.1. + + o) I have begun implementing rudimentary support for GDB remote serial + protocol connections. This means that you can run e.g. the Data + Display Debugger, and connect it to a GXemul instance. + + No advanced GDB functionality is working yet, but starting and + stopping the emulated machine and single-stepping should work. + +Please read the HISTORY files for more details. + Files included in this release are: - BUGS A list of known bugs. HISTORY Detailed revision history / changelog. LICENSE Copyright message / license. README Quick start instructions, for the impatient. RELEASE This file. TODO TODO notes. - configure, Makefile.skel sh and make scripts for building GXemul + configure, Makefile.skel sh and make scripts for building GXemul. + demos Tutorial-like demos of testmachine functionality. doc Documentation. experiments Experimental code. (Usually not needed.) - src, devices, and include Source code. - tests Regression tests. + src Source code. -To build the emulator, run the ./configure script, and then run make. +To build the emulator, run the configure script, and then run make. This +should work on most Unix-like systems. -Building the emulator should work on most Unix-like systems. (One system which -is specifically known to NOT work is Ultrix/RISC inside the emulator; Ultrix -chokes on the configure script and the default cc in Ultrix doesn't work.) -Regarding files in the include/ directory: only some of these are written by -me, the rest are from other sources (such as NetBSD). The license text says +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 I mention features or use of the header files (the "software") in any advertising materials, I am @@ -131,10 +133,43 @@ 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. + +Also, src/include/alpha_rpb.h requires the following: + + Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University. + All rights reserved. + + Author: Keith Bostic, Chris G. Demetriou + + Permission to use, copy, modify and distribute this software and + its documentation is hereby granted, provided that both the copyright + notice and this permission notice appear in all copies of the + software, derivative works or modified versions, and any portions + thereof, and that both notices appear in supporting documentation. + See individual files for license details, if you plan to redistribute GXemul or reuse code. -Thanks to everyone who has provided me with feedback. + +Thanks to (in no specific order) Joachim Buss, Olivier Houchard, Juli Mallett, +Juan Romero Pardines, Alec Voropay, Göran Weinholt, Alexander Yurchenko, and +everyone else who has provided me with feedback. + +Special thanks to Alec Voropay for testing this release with Linux +kernels, and on Cygwin, and also thanks to Ondrej Palkovsky for testing +with HelenOS. If you have found GXemul useful in some way, or feel like sending me comments or feedback in general, then mail me at anders(at)gavare.se.