--- trunk/RELEASE 2007/10/08 16:18:27 10 +++ trunk/RELEASE 2007/10/08 16:19:56 24 @@ -1,83 +1,78 @@ -Release notes for GXemul 0.3.4 -============================== +Release notes for Gavare's eXperimental Emulator (GXemul), 0.4.0 +================================================================ -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, regardless -of host platform. Several emulation modes are available. For 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. - -I have verified that the following "guest" operating systems can run -inside the emulator: - - Guest operating system Emulated machine - ---------------------- ---------------- - NetBSD/pmax 2.0.2 (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.2 NEC MobilePro 770, 780, 800, 880 - NetBSD/cobalt 2.0.2 Cobalt - NetBSD/evbmips 2.0.2 Malta 5Kc/4Kc evaluation board - NetBSD/sgimips 2.0.2 SGI O2 ("IP32") - -Some of these guest operating systems are easier to install and run than -others. The best supported mode is the DECstation 5000/200 emulation mode, -with NetBSD/pmax as the guest operating system. - -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. (However, GXemul does not simulate -things smaller than an instruction. What this means is that pipe-line -stalls, penalties caused by branch-prediction misses or cache misses, and -other micro-architectural effects are not simulated.) - -Summary of changes between release 0.3.3.2 and 0.3.4: - - x) When emulating a network of multiple machines, the emulated - machines can now be placed on different hosts. - - x) NetBSD/evbmips can now be installed and run from a disk image. - (There is no INSTALL kernel for NetBSD/evbmips, so you need to - install using another OS, for example emulated NetBSD/pmax.) - - x) NetBSD/sgimips can now be installed. Not onto a SCSI disk, - but the files can be exported via nfs from another emulated - machine. The sgimips machine can then netboot. (Read the - documentation for details.) +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. + +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. + + +The most important change between release 0.3.8 and 0.4.0 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, at + least for R3000 emulation. + + I think that in the long term, moving towards full portability like + this is a good idea. + +(Since the MIPS emulation mode has been rewritten from scratch, and I have +not really had much time over for debugging, there are most likely new +bugs in 0.4.0 that were not present in 0.3.8. However, I feel that it is +better to make a quick release now than to wait even longer.) + +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. -There have also been various other minor updates and bugfixes. Files included in this release are: - BUGS A list of known bugs. + BUGS List of known bugs for this release. 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. + demos Tutorial-like demos of testmachine functionality. doc Documentation. experiments Experimental code. (Usually not needed.) src Source code. - tests Regression tests. -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 src/include/ directory: only some of these are written by me, the rest are from other sources (such as NetBSD). The license text says @@ -143,12 +138,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 (in no specific order, that is, this is in alphabetic order :-) -Joachim Buss, Juli Mallett, Juan RP, Alec Voropay, Alexander Yurchenko, -and everyone else 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.