GXemul: Release notes

# Release notes for GXemul 0.6.0.1

Copyright (C) 2003-2014 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.

0.6.0.1 is essentially identical to 0.6.0, apart from a few minor bug fixes (listed in the HISTORY file), and some newer versions of guest operating systems have been verified to work.

The main change between release 0.4.7.2 and 0.6.0 is:

- Since late 2007, a complete rewrite of the emulator's base framework has been going on. GXemul 0.6.0 is a very early release of the new framework. So far, only the testm88k machine mode has been rewritten to use the new framework, all other machine modes run in legacy mode using the old framework (which is still included).

  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:

- Many unused, rarely used, and bogus emulation modes and features were removed, to reduce the maintenance burden.

- Some operating systems listed on the guest OS page have had new releases; the documentation has been updated to reflect this.

- New source code (but not the legacy part) is documented using Doxygen comments, and there is a unit testing framework in place.

- There is now finally an `install` Makefile target, and the `-j` make option can be used to parallelize builds.

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.x 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/.