mirage/mirage ↗
Created Jan 9, 2021 · View the mirage/mirage repository page
MirageOS is a library operating system that constructs unikernels
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
Contributors
51
Lines of Code
6,066
From
Feb 2, 2013
To
Dec 4, 2020
About mirage/mirage
MirageOS is a library operating system written in OCaml that allows developers to build unikernels—specialized, single-purpose operating systems that run network applications. Instead of running on traditional operating systems, these unikernels execute directly on hypervisors like Xen, KVM, FreeBSD's BHyve, and OpenBSD's VMM, making them lightweight and resource-efficient. Developers can write and test code on conventional systems like Linux or macOS before compiling it into a standalone unikernel that deploys to public clouds such as Amazon EC2 and Google Compute Engine, or to private infrastructure.
This repository contains the `mirage` command-line tool that handles the configuration and build process for MirageOS applications. The tool simplifies the specialized compilation steps needed to target different platforms. Users define their application architecture in a `config.ml` file, then use the `mirage` tool to configure the build, manage dependencies via Opam, and compile the final unikernel using Dune. The project requires OCaml 4.13.0 or higher and Opam 2.1.0 or higher, with target-specific requirements depending on whether you're building for Xen (requiring x86_64 or armel Linux), or other platforms like FreeBSD, OpenBSD, and macOS.
MirageOS appeals to developers building secure, high-performance network services who want to reduce resource consumption and attack surface by eliminating unnecessary operating system components. The project includes skeleton applications and example repositories to help newcomers get started, and maintains comprehensive documentation on the MirageOS website.

