-
Notifications
You must be signed in to change notification settings - Fork 10
/
README
30 lines (21 loc) · 1.44 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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.