Status update, March 2018
mirage-platform is currently undergoing major refactoring. Please read this issue for detailed information.
The goal is to reuse the ocaml-freestanding work for the xen backend as well:
unixmoved to mirage-unix (release pending) and switched to topkg and ocamlbuild
bindingssubdirectories moved to mirage-xen (release pending), also switched to topkg and ocamlbuild
- the remaining
xen-posixsubdirectories will be deprecated once the move to ocaml-freestanding is complete
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.
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
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
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-posixOPAM package. Installation goes into
xen-ocaml/contains only the OCaml runtime (patches and build system), installation into
xen/subdirectories form the
mirage-xenOPAM package -- this consists of various bindings and the OCaml OS module (in xen/).