Mirage OS

MirageOS is a library operating system that constructs unikernels for secure, high-performance, low-energy footprint applications.

About us

MirageOS is a library operating system that constructs unikernels for secure, high-performance, low-energy footprint applications across various hypervisor and embedded platforms. It is available as an open-source project created and maintained by the MirageOS Core Team. A unikernel can be customised based on the target architecture by picking the relevant MirageOS libraries and compiling them into a standalone operating system, strictly containing the functionality necessary for the target. This minimises the unikernel’s footprint, increasing the security of the deployed operating system.
Media image

Our architecture

The MirageOS architecture can be divided into operating system libraries, typed signatures, and a metaprogramming compiler. The operating system libraries implement various functionalities, ranging from low-level network card drivers to full reimplementations of the TLS protocol, as well as the Git protocol to store versioned data. A set of typed signatures ensures that the OS libraries are consistent and work well in conjunction with each other. Most importantly, MirageOS is also a metaprogramming compiler that can input OCaml source code along with its dependencies, and a deployment target description to generate an executable unikernel, i.e., a specialised binary artefact containing only the code needed to run on the target platform. Overall, MirageOS focuses on providing a small, well-defined, typed interface with the system components of the target architecture.

  • Fast Start

    MirageOS applications take a few milliseconds to start-up instead of the few minutes that traditional OS takes.

  • Small Binaries

    MirageOS binaries are self-contained: they do not need an additional OS to execute. Despite this, the size of MirageOS binary is usually a few megabytes.

  • Small Footprint

    MirageOS applications use a few megabytes of memory, while traditional applications and their associated OS waste gigabytes for simple applications.

  • Safe Logic

    MirageOS applications are written in OCaml, an industrial strength programming language supporting functional, imperative, and object-oriented styles.

Development process

Mirage OS follows a standard Github workflow and has its own Developer Portal. All developer-related information such as documentation, development team members, and other information related to the development of Mirage OS can be found there as well.
Media image

License

The Mirage codebase is released under the ISC license, with some portions of code released under LGPLv2.

Sub-Projects hosted by the Xen Project team typically use GPLv2. In the case of Mirage, it is necessary to use a permissive open source license such as “ISC” because Mirage based microkernels need to be statically linked with applications to form a stand-alone appliance.

Media image