JavaScript-Emulator lässt Linux in einem Browser-Tab laufen
Der Name Fabrice Bellard mag nicht jedem sofort ein Begriff sein, aber seine Arbeiten als Programmierer und Computer-Wissenschaftler sind es schon. Er ist der Mann hinter der LZEXE-Kompressions-Engine, FFmpeg, QEMU und er hält den Weltrekord für das Berechnen der Kreiszahl PI mit 2,7 Milliarden Stellen. Sein ltzter Streich zeigt wieder einmal, wie talentiert dieser Coder ist.
Moderne Browser nutzen ja bekanntlich sehr schnelle JavaScript-Engines. Das hat sich Bellard zu Nutze gemacht und einen PC-Emulator für den Browser geschrieben. Als Demonstration hat er einen Link gepostet (jslinux, Technische Details), wo ein Linux-Kernel in einem Browser-Tab läuft. Der ganze Emulator ist komplett in JavaScript geschrieben und läuft laut Bellard gut in Firefox 4 und Chrome 11. Natürlich ist die ganze Sache Plattform-unabhängig, da sich die ganze Sache im Browser abspielt.
Die Emulation selbst stellt eine 32-Bit x86 CPU, 8259 programmierbare Interrupt Controller, 8254 programmierbare Interupt Timer und 16450 UART. Eine FPU gibt es nciht, aber der Linux-Kernel bringt eine Software-seitige mit sich. Als Kernel lief Version 2.6.20.
Bellard sagte, dass er den Emulator nur zum Spaß geschrieben hat. Allerdings helfe es ihm, optimierten Code für javaScript-Engines zu schreiben. Eine Sache kann er allerdings nicht erklären: In Firefox 4 mit JaegerMonkey läuft der Emulator zirka zwei mal so schnell als mit Chromes V8-Engine.
Macht so ein Emulator Sinn? Auf jeden Fall! Vielleicht kann man so alte DOS-Spiele im Browser zocken!