Fabrice Bellard (Autor von QEMU und FFmpeg) hat einen Linux-PC emulator in Javascript geschrieben, der direkt im Browser läuft: Javascript PC Emulator.
Kevin van der Vlist hat dem Ganzen jetzt lokalen Speicher über HTML5 spendiert: Javascript PC Emulator mit Local Storage über HTML5.
Fabrice Bellard (author of QEMU and FFmpeg) has written a Linux-PC emulator in Javascript: Javascript PC Emulator
Kevin van der Vlist added HTML5 based local storage to the emulator: Javascript PC Emulator with Local Storage.
Zitat: First of all, only these files in this archive are released under the terms of the GPL.
The following files, published on the demonstration website, _DO NOT_ fall under
these terms. I only have permission from Fabrice Bellard to host them.
cpux86-ta.js
term.js
These files are created and licensed by Fabrice Bellard (http://bellard.org/jslinux).
This project allows the virtual machine to access a persistent block device. This means
a user can format and partition this device inside it´s virtual machine. Because this disk
is then stored in the HTML5 local storage, a return to the emulator´s web page allows a
user to reopen the block device. All data stored on the disk can therefore be read again.
Schematically, the process works in the following way:
A block device driver is added to the Linux kernel. This allows a user to operate with
a ´device´ written in JavaScript. This device is bound to the virtual machine using the
same I/O ports as a floppy disk. The device driver itself uses a temporary testing major
device node, id 250. Theoretically, it allows dynamic device node allocation, but I have
not tested this.
On the JavaScript side, a lot of caching occurs because the local storage interface is
quite slow. I therefore decided to cache the total ´disk´ in memory, because it´s about
1M anyway. Writes are cached as well, and are ´flushed´ once the driver has transferred
a complete sector.
For more details, see the source code.
Related links:
[ PC Emus / Virtual Machines ][ MAC Emus ]
|