next up previous contents
Next: Vorstellung konkreter Emulatoren Up: Emulatoren für Linux Previous: Inhalt

Grundlagen

Ein Emulationsprogramm bildet einen kompletten Rechner als Software nach: Wird ein Programm im Emulator gestartet, so werden alle Zugriffe auf die Hardware und das Betriebssystem (das in Homecomputern größtenteils in einem ROM untergebracht ist) abgefangen und umgesetzt.

Solche Programme können relativ einfach auf verschiedene Rechnerarchitekturen portiert werden und bieten eine hohe Betriebssicherheit: Stürzt ein Programm im Emulator ab, wirkt sich das nicht auf das eigentliche System aus; der Emulator kann sogar eine Möglichkeit anbieten, den Fehler im emulierten Programm zu finden (Debugging).

Die Nachteile liegen im hohen Rechenaufwand für eine solche Emulation: Um einen C64 voll nachbilden zu können, braucht man einen Prozessor mit der Leistungsfähigkeit eines i486DX/4-100.

Weisen die Rechnerarchitekturen des emulierten und des emulierenden Systems Gemeinsamkeiten auf, kann dies ausgenutzt werden, um die Geschwindigkeit zu erhöhen. Der Emulator bildet dann nur noch den Teil des Systems nach, der unterschiedlich ist und greift ansonsten auf die vorhandene Hardware zu.

Hierbei kann je nach Programmierung die Betriebssicherheit leiden: Stürzt ein fehlerhaftes Programm ab, kann die Hardware in einen undefinierten Zustand geraten, und das eigentliche System reagiert nicht mehr. Natürlich ist ein solches Programm fest an eine bestimmte Rechnerarchitektur gebunden und kann nicht ohne weiteres portiert werden.