commit | 9b031d4e4028676925b692472fc4c645670ca214 | [log] [download] |
---|---|---|
author | Fabian <copy@copy.sh> | Sun Sep 28 22:10:47 2014 -0700 |
committer | Fabian <copy@copy.sh> | Sun Sep 28 22:10:47 2014 -0700 |
tree | ee4b623b36313436b9e1eaa401fad68242a8a951 | |
parent | 4488a6e99f46c5c4ace4ec4c513834d4d6ab9c4a [diff] |
Initial version of save/restore state feature, #18 Everything that is valid json plus arraybuffers and arraybuffer-views can be restored automatically (without making changes to other code). Properties that should not be part of the state buffer needed to be annotated using a magic `_state_skip` property. Shared arraybuffer views are broken during restoration and also need to be annotated. Adapters are not (and should never be) saved. Current limitations: - Before restoring, the cpu needs to be initialised with the original settings. This is not a hard requirement and can be fixed later. - Pending asynchronous operations are lost. It's a good idea to pause the cpu before saving the state.
v86 emulates an x86-compatible CPU and hardware. Here's a list of emulated hardware:
cpu.js
file, you need make
and cpp
(the C preprocessor). Run: make src/cpu.js
.git submodule update --init --recursive closure-compiler
and run make v86_all.js
.index.html
locally, make sure to serve it from a local webserver.Similiar projects have been done before, but I decided to work on this as a fun project and learn something about the x86 architecture. It has grown pretty advanced and I got Linux and KolibriOS working, so there might be some actual uses.
If you build something interesting, let me know.
Here's an overview of the operating systems supported in v86:
lowram
and choose PS2 mouse in xsetup. Takes circa 10 minutes to boot.udev
and X
fail, but you get a terminal.atkbd
to MODULES
in /etc/mkinitcpio.conf
.You can get some infos on the disk images here: https://github.com/copy/v86/tree/master/images
14KBXSoewGzbQY8VoznJ5MZXGxoia8RxC9
. If you want to donate elsewhere, let me know.Simplified BSD License, see LICENSE, unless otherwise noted.
Shoot me an email to copy@copy.sh
. Please don't tell about bugs via mail, create a bug report on GitHub instead.
Fabian Hemmer (http://copy.sh/, copy@copy.sh
)