FAUmachine

FAUmachine
Basisdaten

Entwickler Lehrstuhl Informatik 3, Universität Erlangen-Nürnberg
Aktuelle Version 20120707
(7. Juli 2012)
Betriebssystem Linux, OpenBSD, macOS
Kategorie Emulation, Virtualisierung
Lizenz GPL (Freie Software)
deutschsprachig nein
[1]

FAUmachine ist eine freie virtuelle Maschine, die in vielerlei Hinsicht VMware oder VirtualPC ähnelt. Die folgenden Eigenschaften unterscheiden FAUmachine von anderen virtuellen Maschinen:

  • FAUmachine läuft vollständig als einfacher Benutzerprozess auf einem herkömmlichen Linux-x86-Rechner, es werden keine Kernel-Module oder Administrator-Privilegien benötigt. Portierungen, damit FAUmachine auch auf OpenBSD und Windows als Gastgebersysteme laufen kann, werden derzeit erarbeitet.
  • Fehlerinjektion ist möglich.
  • Es existiert ein Experimentcontroller für automatisierte Experimente und Tests. Damit ist es zum Beispiel möglich, Gastsysteme vollautomatisch von der Distributions-CDROM zu installieren.
  • FAUmachine ist freie Software unter der GPL.

FAUmachine kann derzeit in einem von drei verschiedenen Modi laufen:

  • „traditioneller“ Modus; erfordert einen angepassten Bootloader und einen leicht modifizierten Kernel im Gastsystem.
  • FAUmachine JIT (Just-in-time-Compiler); erlaubt es, ein normales, unmodifiziertes Linux-System in der virtuellen Maschine zu betreiben, wenngleich mit gewissen Leistungseinbußen.
  • QEMU-CPU; benutzt im Wesentlichen die CPU des QEMU-Projekts, die nahezu jede Software ausführen kann, die auch auf realen x86-CPUs läuft.

Die Hardwareschicht der FAUmachine besteht im Wesentlichen aus dem Linux-Kernel des Gastgebersystems. Die Hardwarekonfiguration, die die FAUmachine dem Gastsystem zeigt (Größe des Arbeitsspeichers, CDROM, Anzahl und Größe der Festplatten etc.) kann vom Benutzer konfiguriert werden.

FAUmachine unterstützt die transparente Anbindung des Gastes an Netzwerke, mit denen der Gastgeber verbunden ist.

Die virtuelle Maschine von FAUmachine enthält einen Experimentcontroller, mit dem vollautomatisch in Skriptform vorbereitete Experimente ausgeführt werden und dabei Fehler in die virtuelle Hardware injiziert werden können.