FAUmachine is a virtual machine, similar in many respects to
VMWare[tm],
QEMU
or
Virtual PC[tm].
What distinguishes FAUmachine from these other virtual machines, are the
following features:
-
The FAUmachine virtual machine runs as a normal user process (no root
privileges or kernel modules needed) on top of (currently) Linux on i386
hardware. The port of FAUmachine to OpenBSD and Windows is in progress.
-
Fault injection capability for experimentation in FAUmachine.
-
Experiment Controller for automating experiments and tests. We also ship
example scripts for the Experiment Controller that allow the automatic
installation of some Linux distributions using the distribution's cdrom.
The FAUmachine virtual machine can currently run in one of three different
modes, each with it's advantages and disadvantages:
- the traditional mode
Using an adapted bootloader and running a slightly modified Linux kernel.
- using the FAUmachine JIT (Just-In-Time-Compiler)
This allows you to run normal, absolutely unmodified Linux systems, at the
cost of some performance. This mode can also execute DOS, but with some
limitations (no virtual x86 mode for example).
- using the QEMU CPU
This mode basically uses the virtual CPU from Fabrice Bellard's excellent
QEMU simulator, which can execute almost anything a real x86 CPU can
execute too.
The hardware layer of the FAUmachine virtual machine is (mostly) the Linux
kernel of the host system. The FAUmachine hardware
setup, like main memory size, cdrom and number and size of harddisks
can be configured.
Of course FAUmachine supports networking
and FAUmachines can be connected transparently to the local network which their
host machine is attached to. If the appropriate servers are running on the
FAUmachine, login from any real machine is possible, once the network is set up.
The FAUmachine virtual machine is used as an experiment platform in the European
DBench Project, which researches
benchmarking dependability properties of computer systems. For this purpose,
FAUmachine comes with the Experiment Controller Expect. Expect can run complete
experiments from a prepared script and can inject faults into the virtual hardware.
We have collected a small number of links to
projects with related topics.