Skip to content
Core platform libraries for Mirage (UNIX and Xen). This provides the `OS` library which handles timers, device setup and the main loop, as well as the runtime for the Xen unikernel.
OCaml C Shell Other
Latest commit 9ba2835 Mar 22, 2016 @djs55 djs55 Merge pull request #160 from djs55/release.2.4.1
Prepare to release 2.4.1
Failed to load latest commit information.
bindings build script flexibility: only rely on `opam var prefix` if dependenc… Mar 18, 2016
scripts Fix querying of location of mirage-xen. Jul 29, 2014
unix Regenerate OASIS Mar 22, 2016
xen-ocaml xen-ocaml: remove mirage-xen include path Mar 18, 2016
xen-posix build script flexibility: only rely on `opam var prefix` if dependenc… Mar 18, 2016
xen Regenerate OASIS Mar 22, 2016
.gitignore Install all the pkg-config packages from outside oasis Jan 11, 2015
.travis-ci.sh Modernize Travis CI Aug 17, 2015
.travis.yml Modernize Travis CI Aug 17, 2015
CHANGES Prepare to release 2.4.0 Mar 22, 2016
Dockerfile Dockerfile: install dependencies of mirage-unix too Mar 18, 2016
LICENSE Add the LGPL + linking exception text to the end of the LICENSE file Mar 18, 2016
Makefile make: add `test-xen-build` target Mar 18, 2016
README.md Update README with contents from @hannesm email on mirageos-devel@ Mar 17, 2015
appveyor.yml appveyor: attempt to make it see only a single opam file Mar 18, 2016
build.sh make: add `test-xen-build` target Mar 18, 2016
cmd Link to ocamlfind package 'xen-event' for the Eventchn module Jan 18, 2014
mirage-unix.opam opam: add license fields to mirage-{unix,xen}.opam Mar 18, 2016
mirage-xen-ocaml.opam no need for ocamlfind here Mar 17, 2015
mirage-xen-posix.opam no need for ocamlfind here Mar 17, 2015
mirage-xen.opam opam: add license fields to mirage-{unix,xen}.opam Mar 18, 2016
myocamlbuild.ml Make ocamlfind to install libunixrun.so as well. This is necessary fo… Mar 1, 2013

README.md

Mirage OS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or MacOS X, and then compiled into a fully-standalone, specialised unikernel that runs under the Xen hypervisor.

Since Xen powers most public cloud computing infrastructure such as Amazon EC2 or Rackspace, this lets your servers run more cheaply, securely and with finer control than with a full software stack.

Mirage uses the OCaml language, with libraries that provide networking, storage and concurrency support that work under Unix during development, but become operating system drivers when being compiled for production deployment. The framework is fully event-driven, with no support for preemptive threading.

This contains the OS bindings for the Mirage operating system, primarily through an OS OCaml module. The following backends are available:

  • Unix: maps POSIX resources and executes Mirage apps as normal binaries.

  • Xen: a microkernel backend that can run against Xen3+

For documentation, visit http://openmirage.org.

The older "unified" tree is also present for historical reasons into the old-master branch.

Repository Contents

  • xen-posix/ contains the header files to pretend a posix system (required to compile the OCaml runtime), plus minilibc and float formating -- this is the home for the mirage-xen-posix OPAM package. Installation goes into .opam/x/lib/mirage-xen-posix and .opam/x/include/mirage-xen-posix

  • xen-ocaml/ contains only the OCaml runtime (patches and build system), installation into .opam/x/lib/mirage-xen-ocaml and .opam/x/include/mirage-xen-ocaml

  • bindings/ and xen/ subdirectories form the mirage-xen OPAM package -- this consists of various bindings and the OCaml OS module (in xen/).

Something went wrong with that request. Please try again.