MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across various cloud computing and mobile platforms. Developers can write code on a traditional OS such as Linux or macOS. They can then compile their code into a fully-standalone, specialised unikernel that runs under the Xen or KVM hypervisors and lightweight hypervisors like FreeBSD's BHyve, OpenBSD's VMM. These unikernels can deploy on public clouds, like Amazon's Elastic Compute Cloud and Google Compute Engine, or private deployments.
The most up-to-date documentation can be found at the homepage. The site is a self-hosted unikernel. Simpler skeleton applications are also available online. MirageOS unikernels repositories are also available here or there.
This repository contains the
mirage command-line tool to create and deploy applications with MirageOS. This tool wraps the specialised configuration and build steps required to build MirageOS on all the supported targets.
You will need the following:
a working OCaml compiler (4.08.0 or higher).
the Opam source package manager (2.1.0 or higher).
an x86_64 or armel Linux host to compile Xen kernels, or FreeBSD, OpenBSD or MacOS X for the solo5 and userlevel versions.
$ opam install mirage $ mirage --version
This should display at least version
There are multiple stages to using
config.mlto describe the components of your applications;
mirage configureto generate the necessary code and metadata;
make dependsto install external dependencies and download Opam packages in the current dune workspace.
dune buildto build a unikernel.