Heute hatte ich einen atemberaubenden Moment, als ich den Linux-Emulator in Javascript sah: http://bellard.org/jslinux/
Es kompiliert C-Programme, hat vi und emacs, unterstützt alle Shell-Befehle usw. usw.
Wie funktioniert es?
javascript
linux
emulation
Nikita Barsukov
quelle
quelle
Antworten:
Zuerst dachte ich auch, dass dies nur ein Terminalemulator ist, der Sie mit einer VM verbindet, aber das ist es nicht. Wenn Sie die Netzwerkverbindungen beobachten, können Sie feststellen, dass nach dem Start keine Daten mehr übertragen werden.
Also ist es echt.
Eine CPU ist nichts Magisches; Tatsächlich liest es nur Bytes aus dem Speicher und ändert den RAM entsprechend der Bedeutung der Befehle.
In diesem Fall basiert der CPU-Emulator auf dem QEMU-Code. Er erstellt eine Reihe von Funktionen, bei denen der Index das nächste Byte am PC ist (Programmzähler).
Jetzt brauchen Sie nur noch eine einfache Linux-Distribution, die keine exotischen CPU-Befehle wie Gleitkomma-Arithmetik oder MMX-Code und Voila benötigt.
Interessant ist die Geschwindigkeit des Tieres. Das Ganze ist etwas träge, aber dann ist es JavaScript in einem Browser.
Fazit: Beeindruckend. Ich kann es kaum erwarten, einen C64-Emulator zu sehen :-)
quelle
Siehe http://www.quora.com/CPU-Emulation/How-does-bellard-org-jslinux-work
quelle