History

readme.md edited online with Bitbucket

Aaron R Robinson committed 9 years ago

Commit 9b87c3f1 parent 68d4d691 file · +15 −5Browse files

Unified · Split

readme.md+15−5
@@ -1,6 +1,15 @@
1Dis VM 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.
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.
7
8Notes:
9
10 * Only parts of the built-in [`Sys`](http://www.vitanuova.com/inferno/man/2/sys-0intro.html) and [`Math`](http://www.vitanuova.com/inferno/man/2/math-0intro.html) modules have been written
11 * The `disvm-exec` project does not support the original [`Command`](http://www.vitanuova.com/inferno/man/2/command.html) entry module since the official [`Draw`](http://www.vitanuova.com/inferno/man/2/draw-0intro.html) module is not currently supported. Instead the entry point is defined by `limbo/Exec.m`.
12
4# Build instructions13# Build instructions
5 14
6Requirements15Requirements
@@ -22,7 +31,8 @@ Python and gyp are only needed for build file generation. · 15 unmodified lines
22 31
23The source tree is as follows:32The source tree is as follows:
24 33
25 - `limbo/` - Source code written in limbo for testing the VM34 - `limbo/` - Source code written in Limbo for testing the VM
35 - `compiler/` - Copied and slightly modified source code for the official Limbo compiler
26 - `src/`36 - `src/`
27 - `asm/` - Library for manipulating byte code37 - `asm/` - Library for manipulating byte code
28 - `include/` - Global include files38 - `include/` - Global include files
@@ -41,11 +51,11 @@ See `readme.md` or `license.txt` in source directories for further details or sp · 12 unmodified lines
41 51
42# References52# References
43 53
44Dis VM specification: http://www.vitanuova.com/inferno/papers/dis.html54Dis virtual machine specification: http://www.vitanuova.com/inferno/papers/dis.html
45 55
46Limbo language addendum: http://www.vitanuova.com/inferno/papers/addendum.pdf56Limbo language addendum: http://www.vitanuova.com/inferno/papers/addendum.pdf
47 57
48Inferno OS - Original Dis VM implementation: https://bitbucket.org/inferno-os/inferno-os/58Inferno OS - Original Dis virtual machine implementation: https://bitbucket.org/inferno-os/inferno-os/
49 59
50# Licenses60# Licenses
51 61
@@ -86,7 +96,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI · 34 unmodified lines
86 96
87### Unless otherwise stated in a `license.txt` or above - [MIT License](https://opensource.org/licenses/MIT) ###97### Unless otherwise stated in a `license.txt` or above - [MIT License](https://opensource.org/licenses/MIT) ###
88 98
89Copyright (c) 2017 ARR99Copyright (c) 2017 arr
90 100
91Permission is hereby granted, free of charge, to any person obtaining a copy101Permission is hereby granted, free of charge, to any person obtaining a copy
92of this software and associated documentation files (the "Software"), to deal102of this software and associated documentation files (the "Software"), to deal

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t