Fabrice Bellard: PC-Emulator in Javascript bootet Linux

Der von Fabrice Bellard umgesetzte PC-Emulator(öffnet im neuen Fenster) emuliert eine x86-CPU (32 Bit), einen programmierbaren Interrupt-Controller vom Typ 8259 und einen programmierbaren Interrupt-Timer vom Typ 8254 sowie einen 16450-UART-Chip. Bellard hat den Emulator komplett in Javascript geschrieben und nutzt Typed Arrays, die von Firefox 4 und Chrome 11 unterstützt werden.
Ein Teil des Codes sei von Qemu inspiriert, schreibt Bellard in den technischen Erläuterungen zu seiner Software(öffnet im neuen Fenster) . Dennoch gebe es große Unterschiede zu Qemu.
Die emulierte CPU entspreche nahezu einem 486er ohne FPU, was für Linux keine Rolle spiele, da es über einen FPU-Emulator verfüge. Eingesetzt wurde Linux 2.6.20.


Er habe lernen wollen, wie sich optimierter Javascript-Code für moderne Javascript-Engines schreiben lasse, erläutert Bellard seine Motivation. Der Emulator läuft in Firefox etwa doppelt so schnell wie in Chrome. Eine sinnvolle Nutzung sieht Bellard daher als Benchmark für Javascript-Engines. Eigentlich habe er das Projekt aber nur zum Spaß umgesetzt, sagte er. Eine Weiterentwicklung könnte es aber ermöglichen, alte PC-Software oder Spiele im Browser laufen zu lassen.