History

readme.md edited online with Bitbucket

Aaron R Robinson committed 9 years ago

Commit 36183b41 parent 9b87c3f1 file · +3 −3Browse files

Unified · Split

readme.md+3−3
@@ -1,7 +1,7 @@
1DisVM Project1DisVM Project
2========================2========================
3 3
4The DisVM project is a re-implementation of the [Dis virtual machine specification](http://www.vitanuova.com/inferno/papers/dis.html) that defined the user space of the [Inferno OS](https://en.wikipedia.org/wiki/Inferno_(operating_system)). The Inferno OS was designed to re-hash the ideas in the [Plan 9 From Bell Labs](https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs) operating system but implemented using a platform agnostic language - [Limbo](https://en.wikipedia.org/wiki/Limbo_(programming_language)). The Dis virtual machine was intrinsic to the Inferno OS and ran the byte-code compiled Limbo language. This meant that only the Inferno OS need be ported to a platform and all Limbo compiled applications would 'just-work'. If this sounds familiar, it should, this was in the early 90's and [project Oak](https://en.wikipedia.org/wiki/Oak_(programming_language)) - what would become Java - was being developed by Sun Microsystems. The major difference between the two approaches was that Oak's virtual machine would be ported to various platforms and work with the host OS whereas the Dis virtual machine was tied to Inferno OS which meant there was yet another layer between the host and virtual machine. This decision had advantages, but also had the large disadvantage of requiring and entire separate OS to run Limbo code. 4The DisVM project is a re-implementation of the [Dis virtual machine specification](http://www.vitanuova.com/inferno/papers/dis.html) that defined the user space of the [Inferno OS](https://en.wikipedia.org/wiki/Inferno_(operating_system)). The Inferno OS was designed to re-hash the ideas in the [Plan 9 from Bell Labs](https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs) operating system but implemented using a platform-agnostic language. The Dis virtual machine was intrinsic to the Inferno OS and ran the byte-code compiled [Limbo](https://en.wikipedia.org/wiki/Limbo_(programming_language)) language. This meant that only the Inferno OS need be ported to a platform and all Limbo compiled applications would 'just-work'. If this sounds familiar, it should. Inferno OS was developed in the early 90's and [project Oak](https://en.wikipedia.org/wiki/Oak_(programming_language)) - what would become Java - was being developed by Sun Microsystems. The major difference between the two approaches was that Oak's virtual machine would be ported to various platforms and work with the host OS, whereas the Dis virtual machine was tied to Inferno OS which meant there was yet another layer between the host and the Dis virtual machine. This decision had advantages, but also had the large disadvantage of requiring an entire separate OS to run Limbo code.
5 5
6This project's intent is to take the Java approach and provide an implementation of the Dis virtual machine that is separate from any OS, including the Inferno OS. The project is written in C++ - using only the standard library where possible - and is intended to support compilation on any platform that has a conforming [C++ 11](https://en.wikipedia.org/wiki/C%2B%2B11) compiler. At present various modules written in Limbo (even the official Limbo compiler) have been verified to run successfully using this implementation. Some precompiled byte-code modules (`.dis` extension) have been provided in the [Downloads](https://bitbucket.org/linuxuser27/disvm/downloads) section.6This project's intent is to take the Java approach and provide an implementation of the Dis virtual machine that is separate from any OS, including the Inferno OS. The project is written in C++ - using only the standard library where possible - and is intended to support compilation on any platform that has a conforming [C++ 11](https://en.wikipedia.org/wiki/C%2B%2B11) compiler. At present various modules written in Limbo (even the official Limbo compiler) have been verified to run successfully using this implementation. Some precompiled byte-code modules (`.dis` extension) have been provided in the [Downloads](https://bitbucket.org/linuxuser27/disvm/downloads) section.
7 7
@@ -17,7 +17,7 @@ Requirements · 9 unmodified lines
17 * gyp - http://gyp.gsrc.io17 * gyp - http://gyp.gsrc.io
18 * Python 2.7 - http://www.python.org/download/releases/2.7/18 * Python 2.7 - http://www.python.org/download/releases/2.7/
19 19
20Dis VM build scripts can be generated using gyp (Generate-Your-Project)20DisVM build scripts can be generated using gyp (Generate-Your-Project)
21 21
221. Install Python 2.7221. Install Python 2.7
232. Get current source for gyp232. Get current source for gyp
@@ -37,7 +37,7 @@ The source tree is as follows: · 13 unmodified lines
37 - `asm/` - Library for manipulating byte code37 - `asm/` - Library for manipulating byte code
38 - `include/` - Global include files38 - `include/` - Global include files
39 - `exec/` - Hosting binary for VM (includes debugger)39 - `exec/` - Hosting binary for VM (includes debugger)
40 - `vm/` - VM as a static library40 - `vm/` - DisVM as a static library
41 41
42 42
43| Comment prefix | Description |43| Comment prefix | Description |