GUSS the Universal System Simulator
Table of contents
GUSS the Universal System Simulator simulates hardware to test,
debug and profile software on. It is (or will) capable of running an operating
system without any modification to the OS itself.
This project has regretfully been decommissioned; contact maintainers
at gnu.org if you are interested in resurrecting it.
GUSS has several objectives:
- Be fast. Performance is important.
- Support complex memory hierarchives, with minimal performance loss.
- Simulate multiple processors, including interprocess interrupts,
message passing and such.
- Run system-level code to allow studies of the interaction of
operating system, user program, and architecture.
- Gather statistics, such as memory usage, frequency of important
events, and instruction profiling.
- Make it possible to extend and configure the simulator using
a scripting language (Scheme).
- Allow symboling debuggers as frontends.
- Be determenistic to allow repeats of both statistics gathering
and debugging.
- Be as host-independent as possible.
Wanna see some of the features of GUSS?
- Mon Sep 15 2003 - Performance is everything.
- I (Johan Rydberg) have spent the last couple of months rewriting
the simulator engine of GUSS. The new engine will increase the
performance of GUSS by several times.
GUSS is currently in a very ealy alpha state. Nothing really works (except
some small things.)
GUSS currently only has one (partial) functional target: i386. This target
simulates your standard x86 personal computer. The target has yet to boot
GNU/Linux, but it has successfully booted L4ka+sigma0+pingpong
(proof).
Work has begun on some other targets, or there are plans for:
- IA-64 (work has begun)
- MIPS32 (planned -- back-ported from old GUSS)
- PowerPC (work has begun)
- ARM (planned)
- Motorola 68K (planned)
Everything old is out. To get GUSS, use the CVS repository:
cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/guss login
{just hit enter when prompted for password}
cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/guss co guss
You can also browse the sources via viewcvs.
Not yet available. You're free to help.
There are some public mailing lists related to GUSS.
- guss-hackers (archives)
- For discussing GUSS issues
- guss-commit (archives)
- A read-only mailing list containing the notes from checkins to the GUSS CVS repository
Here are some useful resources:
- SimOS is a complete machine simulation
environment designed for the efficient and accurate study of both uniprocessor and
multiprocessor computer systems. SimOS simulates computer hardware in enough detail to boot
and run commercial operating systems.
- QEMU. QEMU is an x86 processor emulator.
Its purpose is to run x86 Linux processes on non-x86 Linux architectures such as PowerPC or ARM.
By using dynamic translation it achieves a reasonnable speed while being easy to port on new host
CPUs. An obviously interesting x86 only process is Wine (Windows emulation).
- bintrans -
The bintrans Dynamic Binary Translator.
- Bochs - A full system emulator for
the IA-32 architecture.
guss-hackers
Last modified: $Date: 2010/02/14 18:32:04 $