Was ist Hardware Emulation?
Definition Hardware Emulation
Emulation bedeutet das Übersetzen von Befehlen einer Gastmaschine in die Befehle einer Hostmaschine, die auf dieser dann ausgeführt werden. Die Hostmaschine wird so wesentlich umfassender nutzbar, sei es zu Zwecken der Entwicklung oder zum Abarbeiten von Programmen in den verschiedensten Umgebungen.
Virtualisierungstechologien Übersicht:
- 1. Teil: Was ist Virtualisierung & Vergleich von Virtualisierungstechnologien
- 2. Teil: Was ist Hardware Emulation?
- 3. Teil: Was ist Hardware Virtualisierung?
- 4. Teil: Was ist Paravirtualisierung?
- 5. Teil: Was ist Betriebssystemvirtualisierung bzw. Containerisierung?
Was macht eine Hardware Emulation?
Bei dieser Art der Emulation werden alle Operationen, auch diejenigen der CPU, emuliert. Der Emulator nimmt Instruktionen in einem bestimmten Befehlssatz und stellt diese Instruktionen auf einer anderen Maschine dar. Das ist mit Rechenaufwand verbunden und mindert somit die verfügbare Rechenleistung für die eigentliche Anwendung.
Wann nutzt man eine Hardware Emulation?
Eine Anwendung ist die Entwicklung eines neuen Befehlssatzes. Dieser ist frei wählbar und wird dann mit einem Emulator getestet, bevor die neue Maschine in Hardware realisiert wird.
Dasselbe ist möglich, wenn Du ein Programm für eine Maschine ausführen möchtest, die Dir nicht zur Verfügung steht. Das kann auch ein altes Gerät sein, das gar nicht mehr erhältlich ist.
Vorteile
Der Vorteil besteht darin, dass Programme auch für ganz andere CPUs als die tatsächlich zur Verfügung stehende ausgeführt werden können.
Nachteile
Der Nachteil dabei ist, dass du bei dieser Methode mehr Rechenleistung verlierst als bei anderen Möglichkeiten zur Virtualisierung. Bei Hardware Virtualisierung statt Hardware Emulation wird die CPU selbst nicht emuliert. Die Instruktionen werden also nur weitergereicht und das bedeutet, dass nur Systeme mit der gleichen CPU-Architektur dargestellt werden können. Das funktioniert allerdings mit höherer Geschwindigkeit.
Beispiele für Hardware Emulation
Das System Bochs ist in C++ geschrieben und quelloffen verfügbar. Es kann verschiedene x86 CPUs emulieren, aber auch AMD Prozessoren. Beispielsweise ist es mit Bochs möglich, das System Win95 auf einer Unix Workstation laufen zu lassen.
PearPC ist ebenfalls in C++ programmiert und erlaubt, auf heutiger Hardware Systeme laufen zu lassen, die eine PowerPC- Architektur verwenden.
Fazit
Hardware Emulation ist das Werkzeug deiner Wahl, dessen hauptsächliche Charakteristik eine hohe Flexibilität darstellt. Zwischen ein Anwendungssystem und die vorhandene Hardware wird eine Abstraktionsschicht eingezogen, die die Einsatzmöglichkeiten der vorhandenen Maschine enorm erweitert. Der Verlust an Rechenleistung für die Emulation wird in naher Zukunft immer weniger spürbar werden, da die Rechenleistung neuer Hardware immer weiter zunehmen wird.
Rückmeldungen