Skip to content

Commit 6fc8c9f

Browse files
committed
added original content from zerovm.org website
1 parent a26c99c commit 6fc8c9f

File tree

84 files changed

+30980
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+30980
-0
lines changed

about.htm

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<!DOCTYPE html>
2+
<head>
3+
<meta charset="utf-8" />
4+
5+
<!-- Mobile Specific Metas
6+
================================================== -->
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
8+
9+
<title>ZeroVM sponsored by Rackspace</title>
10+
<link rel="stylesheet" href="includes/css/main.css">
11+
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
12+
13+
<script src="includes/js/jquery-1.10.2.min.js"></script>
14+
<script src="includes/js/plugins/waypoints.min.js"></script>
15+
<script src="includes/js/plugins/waypoints-sticky.min.js"></script>
16+
<script src="includes/js/main.js"></script>
17+
18+
<!-- IE Fix for HTML5 Tags -->
19+
<!--[if lt IE 9]>
20+
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
21+
<![endif]-->
22+
23+
</head>
24+
<body>
25+
26+
<header class="clearfix">
27+
<div class="nav-container">
28+
<h1 class="logo"><a href="index.htm">ZeroVM</a></h1>
29+
<p>ZeroVM is an <strong>open&#8211;source lightweight virtualization platform</strong> based on the Chromium Native Client project.</p>
30+
<a href="https://github.com/zerovm/zerovm" class="github"><img src="images/[email protected]" height="149" widht="149" alt="Fork me on GitHub" /></a>
31+
<nav id="nav-global" class="clearfix">
32+
<ul class="clearfix">
33+
<li><a href="why.htm">Why ZeroVM?</a></li><li><a href="usecase.htm">Use Cases</a></li><li><a href="architecture.htm">Architecture</a></li><li><a href="download.htm">Download</a></li>
34+
</ul>
35+
<a href="#" id="pull">Menu<i class="fa fa-bars"></i></a>
36+
</nav>
37+
</div>
38+
</header>
39+
40+
<article>
41+
42+
<section class="container">
43+
<div class="sixteen columns">
44+
<div class="row">
45+
<h2>About ZeroVM</h2>
46+
47+
<h3>Company history</h3>
48+
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
49+
50+
<h3>Our team</h3>
51+
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
52+
53+
<h3>Comapany roadmap</h3>
54+
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
55+
</div>
56+
</div>
57+
</section>
58+
59+
</article>
60+
61+
<footer>
62+
<section class="container">
63+
<div class="sixteen columns">
64+
<div class="row">
65+
<div class="five columns alpha">
66+
<i class="fa fa-envelope-o"></i>
67+
<h5>Contact Us</h5>
68+
<p><a href="">[email protected]</a></p>
69+
</div>
70+
<div class="five columns">
71+
<i class="fa fa-link"></i>
72+
<h5>Cool Links</h5>
73+
<ul>
74+
<li><a href="http://code.google.com/p/nativeclient/">GoogleNaCL</a></li>
75+
<li><a href="https://github.com/zerovm/zerovm">Github</a></li>
76+
</ul>
77+
</div>
78+
<div class="five columns omega">
79+
<i class="fa fa-cloud"></i>
80+
<h5>ZeroVM is</h5>
81+
<p>sponsored by <a href="http://www.rackspace.com">Rackspace</a></p>
82+
</div>
83+
</div>
84+
</div>
85+
</section>
86+
</footer>
87+
88+
</body>
89+
</html>

architecture.htm

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<!DOCTYPE html>
2+
<head>
3+
<meta charset="utf-8" />
4+
5+
<!-- Mobile Specific Metas
6+
================================================== -->
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
8+
9+
<title>ZeroVM sponsored by Rackspace</title>
10+
<link rel="stylesheet" href="includes/css/main.css">
11+
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
12+
13+
<script src="includes/js/jquery-1.10.2.min.js"></script>
14+
<script src="includes/js/plugins/waypoints.min.js"></script>
15+
<script src="includes/js/plugins/waypoints-sticky.min.js"></script>
16+
<script src="includes/js/main.js"></script>
17+
18+
<!-- IE Fix for HTML5 Tags -->
19+
<!--[if lt IE 9]>
20+
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
21+
<![endif]-->
22+
23+
</head>
24+
<body>
25+
26+
<header class="clearfix sub-page">
27+
<div class="nav-container">
28+
<h1 class="logo"><a href="index.htm">ZeroVM</a></h1>
29+
<a href="https://github.com/zerovm/zerovm" class="github"><img src="http://4e5173459aacd70f80b1-cb3c56eadfa06a9e674a9d19fe34dff0.r88.cf1.rackcdn.com/images/[email protected]" height="149" widht="149" alt="Fork me on GitHub" /></a>
30+
<nav id="nav-global" class="clearfix">
31+
<ul class="clearfix">
32+
<li><a href="why.htm">Why ZeroVM?</a></li><li><a href="usecase.htm">Use Cases</a></li><li><a href="architecture.htm" class="active">Architecture</a></li><li><a href="download.htm">Download</a></li>
33+
</ul>
34+
<a href="#" id="pull">Menu<i class="fa fa-bars"></i></a>
35+
</nav>
36+
</div>
37+
</header>
38+
39+
<article>
40+
<section class="container">
41+
<div class="sixteen columns">
42+
<div class="row">
43+
<h2>Architecture</h2>
44+
45+
<h3>Abstraction Level</h3>
46+
<p>ZeroVM abstraction is a C99 compliant environment with certain parts of POSIX syscall API implemented. ZeroVM doesn't expose any non C99 or non POSIX API. All ZeroVM magic is handled transparently to the application. In best POSIX/UNIX traditions all IO to and from ZeroVM is modeled as files. Input data is presented to application as STDIN, log as STDERR and output as STDOUT. Communication channels with peer ZeroVM instances are also presented as files. The rest of the visible file&#8211;system is all transient and memory&#8211;backed in current implementation. Standard C99 library and major part of POSIX is available, however, there are some behavioral deviations from what would be expected as "normal" implementation. For example, since ZeroVM is deterministic, time functions always return zero. We assume it is within C99 standard. It could be interpreted by the application as if it is running on an infinitely fast computer. Threading is cooperative (handled automatically) and deterministic, hence all thread synchronization primitives are just no&#8211;ops. Developing for ZeroVM requires using the provided cross&#8211;compilation GNU toolchain.</p>
47+
48+
<h3>Secure Isolation</h3>
49+
<p>ZeroVM uses Chromium NaCl project as secure sandboxing technology. NaCl is widely accepted as being a serious secure isolation technology. It is based on SFI techniques that isolate untrusted code from host system and there are a number of Google research papers published on the matter. We do our best to timely keep all security&#8211;related code in&#8211;sync with most&#8211;recent Chromium releases. ZeroVM isolation is as secure as the Chrome Browser Native Client feature. In addition to NaCl, there are a few more layers of security (a.k.a. "defense&#8211;in&#8211;depth"). One, is strict determinism which is by itself, assuming no bugs, an impenetrable line. Then, ZeroVM severs its privileges to the minimum before transferring control to the application. We could go as far as using SECCOMP for non&#8211;networking mode. For networking mode, we use cgroup/lxc as another layer of security.</p>
50+
51+
<h3>Determinism</h3>
52+
<p>Functional programming with C99 and even native assembly? Can you believe it? We achieve it by compiling C99 into "deterministic subset" of target ISA. Currently, it works only with x86&#8211;64 and ARM. Conceptually, it could be implemented for any ISA, including synthetic ones like LLVM and even JVM. Challenges arise with some parts of C99 which require "unsafe" functionality, such as time functions. When faced with such challenges we strive to find creative and elegant solutions without breaking C99 compliance. Aside from implementation details, let's ask why we need determinism in the first place? Developer productivity improvements are well documented. However, it is not the real reason for determinism in ZeroVM. Determinism enables ZeroVM to provide an easy and fully automatic error&#8211;recovery and failover, allows it to easily hop the VM from server to server and even enables ACID transactional semantics on the VM level. Without determinism, it is challenging to cleanly separate infrastructure housekeeping from application functionality itself.</p>
53+
54+
<h3>Threading Modeled</h3>
55+
<p>ZeroVM itself is a single&#8211;threaded application. However, ZeroVM implements full POSIX pthreads library (currently in alpha). The implementation is exclusively based on cooperative&#8211;multitasking concept. Yielding is handled automatically when ZeroVM is called by application through the provided syscalls. To support determinism, an application is never preemptively intercepted (except when it violates security constraints or resource usage caps). It can also be considered as a form of co&#8211;routines just on the VM POSIX level and not on the language level.</p>
56+
57+
<h3>Clustering</h3>
58+
<p>ZeroVM itself is single&#8211;threaded and there is only one way to to achieve parallelism &#8212; ZeroVM clustering. It is inspired by CSP and its better&#8211;known brother actor model, It also resembles good old UNIX/POSIX processes models. All IO, including networking, is represented as files. The easiest way to understand ZeroVM clustering is to think of it as UNIX Pipelines on steroids. The ZeroVM clustering model is richer and can include advanced communication patterns such as req&#8211;rep, pub&#8211;sub and etc&#8230; It can also be thought of in "Erlang&#8211;in&#8211;C" terms. ZeroVM clustering is currently backed underneath by ZeroMQ. ZeroVM networking traffic is fully isolated from host traffic by lightweight envelopes. This prevents untrusted applications from accessing the host and other nodes within the host network. This is a low&#8211;cost approach to overlayed networks. Underlying transport that backs up pipes is fully pluggable and transparent to the application. The clustering feature is designed to be efficient for the full range of parallelism granularity, starting from many&#8211;core parallelism and ending with multi&#8211;datacenter parallelism.</p>
59+
</div>
60+
</div>
61+
</section>
62+
</article>
63+
64+
<footer>
65+
<section class="container">
66+
<div class="sixteen columns">
67+
<div class="row">
68+
<div class="five columns alpha">
69+
<i class="fa fa-envelope-o"></i>
70+
<h5>Contact Us</h5>
71+
<p><a href="">[email protected]</a></p>
72+
</div>
73+
<div class="five columns">
74+
<i class="fa fa-link"></i>
75+
<h5>Cool Links</h5>
76+
<ul>
77+
<li><a href="http://code.google.com/p/nativeclient/">GoogleNaCL</a></li>
78+
<li><a href="https://github.com/zerovm/zerovm">Github</a></li>
79+
</ul>
80+
</div>
81+
<div class="five columns omega">
82+
<i class="fa fa-cloud"></i>
83+
<h5>ZeroVM is</h5>
84+
<p>sponsored by <a href="http://www.rackspace.com">Rackspace</a></p>
85+
</div>
86+
</div>
87+
</div>
88+
</section>
89+
</footer>
90+
91+
</body>
92+
</html>

download.htm

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
<!DOCTYPE html>
2+
<head>
3+
<meta charset="utf-8" />
4+
5+
<!-- Mobile Specific Metas
6+
================================================== -->
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
8+
9+
<title>ZeroVM sponsored by Rackspace</title>
10+
<link rel="stylesheet" href="includes/css/main.css">
11+
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
12+
13+
<script src="includes/js/jquery-1.10.2.min.js"></script>
14+
<script src="includes/js/plugins/waypoints.min.js"></script>
15+
<script src="includes/js/plugins/waypoints-sticky.min.js"></script>
16+
<script src="includes/js/main.js"></script>
17+
18+
<!-- IE Fix for HTML5 Tags -->
19+
<!--[if lt IE 9]>
20+
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
21+
<![endif]-->
22+
23+
</head>
24+
<body>
25+
26+
<header class="clearfix sub-page">
27+
<div class="nav-container">
28+
<h1 class="logo"><a href="index.htm">ZeroVM</a></h1>
29+
<a href="https://github.com/zerovm/zerovm" class="github"><img src="images/[email protected]" height="149" widht="149" alt="Fork me on GitHub" /></a>
30+
<nav id="nav-global" class="clearfix">
31+
<ul class="clearfix">
32+
<li><a href="why.htm">Why ZeroVM?</a></li><li><a href="usecase.htm">Use Cases</a></li><li><a href="architecture.htm">Architecture</a></li><li><a href="download.htm" class="active">Download</a></li>
33+
</ul>
34+
<a href="#" id="pull">Menu<i class="fa fa-bars"></i></a>
35+
</nav>
36+
</div>
37+
</header>
38+
39+
<article>
40+
<section class="container">
41+
<div class="sixteen columns">
42+
43+
<div class="row">
44+
<h2>Download</h2>
45+
<h3>Installation</h3>
46+
<p>Binary packages are for Ubuntu 12.04 LTS only.</p>
47+
<hr />
48+
49+
<h4>Install apt-get repository:</h4>
50+
<p>Add a new source to <strong>sources.list</strong>:</p>
51+
<p><code>sudo su -c 'echo "deb http://packages.zerovm.org/apt/ubuntu/ precise main" > /etc/apt/sources.list.d/zerovm-precise.list'</code></p>
52+
<p>Install zerovm GPG key:</p>
53+
<p><code>wget -O- http://packages.zerovm.org/apt/ubuntu/zerovm.pkg.key | sudo apt-key add -</code></p>
54+
<p>Update packages:</p>
55+
<p><code>sudo apt-get update</code></p>
56+
<hr />
57+
58+
<h4>Install binary files and utils</h4>
59+
<p>Install ZeroVM packages:</p>
60+
<p><code>sudo apt-get install zerovm</code></p>
61+
<p>Install ZeroVM command-line shell:</p>
62+
<p><code>sudo apt-get install zerovm-cli</code></p>
63+
<hr />
64+
65+
<h4>Run some binaries</h4>
66+
<p>Python 2.7</p>
67+
<p><code>wget http://packages.zerovm.org/zerovm-samples/python.tar</code></p>
68+
<p><code>echo 'print "Hello"' > hello.py</code></p>
69+
<p><code>zvsh --zvm-image python.tar python @hello.py</code></p>
70+
<!--
71+
<p>Busybox</p>
72+
<p><code>wget http://packages.zerovm.org/apt/ubuntu/samples/busybox</code></p>
73+
<p><code>zvsh busybox ls -al /dev</code></p>
74+
<p>PCRE grep</p>
75+
<p><code>wget http://packages.zerovm.org/apt/ubuntu/samples/pcregrep</code></p>
76+
<p><code>echo "a test" | zvsh pcregrep --color=always -i test</code></p>
77+
-->
78+
<hr />
79+
80+
<h4>Install development tools</h4>
81+
<p>Install ZeroVM debug/development tools:</p>
82+
<!-- <p><code>sudo apt-get install zerovm-dbg</code></p> -->
83+
<p><code>sudo apt-get install zerovm-dev</code></p>
84+
<p>Install ZeroVM GCC toolchain:</p>
85+
<p><code>sudo apt-get install gcc-4.4.3-zerovm</code></p>
86+
<p>Install some build tools:</p>
87+
<p><code>sudo apt-get install make automake autoconf git</code></p>
88+
<!--
89+
<p>Install ZeroVM debugger (not for the faint of heart):</p>
90+
<p><code>sudo apt-get install gdb-zerovm</code></p>
91+
-->
92+
<p>Now you can build some sample programs:</p>
93+
<p><code>git clone https://github.com/zerovm/zerovm-samples</code></p>
94+
<p><code>cd zerovm-samples</code></p>
95+
<p><code>make</code></p>
96+
97+
<p>Or you can see how to port some existing software to ZeroVM:</p>
98+
<p><code>git clone https://github.com/zerovm/zerovm-ports</code></p>
99+
<p><code>cd zlib</code></p>
100+
<p><code>cat README.md</code></p>
101+
<hr />
102+
103+
<h3>GitHub Links</h3>
104+
<ul>
105+
<li><a href="https://github.com/zerovm/zerovm"><i class="fa fa-github-alt"></i>Source code</a></li>
106+
<li><a href="https://github.com/zerovm/zerovm-cli"><i class="fa fa-github-alt"></i>Command&#8211;line tools</a></li>
107+
<li><a href="https://github.com/zerovm/zrt"><i class="fa fa-github-alt"></i>Run&#8211;time library</a></li>
108+
<li><a href="https://github.com/zerovm/toolchain"><i class="fa fa-github-alt"></i>GCC toolchain</a> (Installation: <a href="https://github.com/zerovm/toolchain/blob/master/README.md">README.md</a>)</li>
109+
<li><a href="https://github.com/zerovm/zerovm-samples"><i class="fa fa-github-alt"></i>Sample code &amp; libraries</a></li>
110+
<li><a href="https://github.com/zerovm/zerovm-ports"><i class="fa fa-github-alt"></i>Sample software &amp; libraries ported to ZeroVM </a></li>
111+
</ul>
112+
</div>
113+
</div>
114+
</section>
115+
</article>
116+
117+
<footer>
118+
<section class="container">
119+
<div class="sixteen columns">
120+
<div class="row">
121+
<div class="five columns alpha">
122+
<i class="fa fa-envelope-o"></i>
123+
<h5>Contact Us</h5>
124+
<p><a href="">[email protected]</a></p>
125+
</div>
126+
<div class="five columns">
127+
<i class="fa fa-link"></i>
128+
<h5>Cool Links</h5>
129+
<ul>
130+
<li><a href="http://code.google.com/p/nativeclient/">GoogleNaCL</a></li>
131+
<li><a href="https://github.com/zerovm/zerovm">Github</a></li>
132+
</ul>
133+
</div>
134+
<div class="five columns omega">
135+
<i class="fa fa-cloud"></i>
136+
<h5>ZeroVM is</h5>
137+
<p>sponsored by <a href="http://www.rackspace.com">Rackspace</a></p>
138+
</div>
139+
</div>
140+
</div>
141+
</section>
142+
</footer>
143+
144+
</body>
145+
</html>

favicon.ico

1.12 KB
Binary file not shown.
45.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)