FAUMachine favicon

FAUMachine

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 and AMD64 hardware. The port of FAUmachine to OpenBSD and Mac OS X (intel) is in progress.

Fault injection capability for experimentation in FAUmachine. VHDL interpreter for automating experiments and tests based upon our project fauhdlc. We also ship example scripts for our VHDL interpreter that allow the automatic installation of several Linux distributions and other operating systems using the distribution's cdrom. The CPU of FAUmachine is based on the virtual CPU from Fabrice Bellard's excellent QEMU simulator, which can execute anything a real x86/AMD64 CPU can execute, too.

FAUmachine simulates a large variety of different hardware components, including

  • several x86 and AMD64 CPUs,
  • IDE and SCSI controllers,
  • NE2000- and Intel eepro100 network interface adapters,
  • an SB16 sound card,
  • a generic VGA and a Cirrus GD5446 graphics adapter,
  • a 24 and a 48 pin direct-I/O PCI-card,

but also peripherals such as

  • networking hubs and routers,
  • serial terminals,
  • modems,
  • a USB-to-Serial adapter,
  • and even a three-story elevator. Additionally, FAUmachine can not only simulate a PC, but also its environment, like power switches, the monitor, the power supply and even the interaction of the user. The virtual user can recognize text and bitmaps on the screen and react to it by typing, moving and clicking the mouse, pressing the reset button, and the like. One of the main differences to other virtual machines like QEMU, VirtualBox, Bochs or VMware is, that FAUmachine can be configured on a very fine granular level. Such details include, to what memory bank a memory module is connected to, or which PCI-slot a PCI-card is inserted into. Of course FAUmachine supports networking. It can be connected to the local network which its host machine is attached to in a masquerading-like way using slirp, or even transparently via a TUN/TAP-bridging interface. If the appropriate servers are running on the FAUmachine, login from any real machine is possible, once the network is set up. FAUmachine has the ability to take screenshots of the simulated monitor. It also comes with facilities to record a movie of the virtual screen during simulation, which can be re-coded to OGG/Theora using our tool faum-encoder.