The new version of MirageOS 3.5 arrives, a library to create Unikernels


MirageOS is an operating system library that allows you to build the operating systems of a single application in which the application is delivered as a «unikernel»Which eIt's self-contained, capable of running without the use of operating systems, a separate operating system kernel, and more.

For application development language OCaml is used a language with libraries to provide functionalities of networks, storage, and the features supported by a system. The project code is distributed under the free license of ISC.

Mirage OS supports several dozen libraries in the OCaml language to perform network operations (DNS, SSH, OpenFlow, HTTP, XMPP, etc.), work with repositories, and provide parallel data processing.

About MirageOS

For those who do not know what they are the unikernels, it is about structures specially designed to use operating system libraries, the minimum necessary to run a certain application. This saves virtualization of the entire OS and improves overall performance.

All the low-level functionality inherent in the operating system it is implemented in the form of a library attached to the application.

The application can be developed on any operating system and then compiled into a specialized kernel (hence the Unikernel concept).

The fact that can run directly on top of Xen, KVM, BHyve and VMM hypervisors, in the form of a process in a POSIX compliant environment or on Amazon Elastic Compute Cloud and Google Compute Engine.

The generated environment interacts directly with the hypervisor without controllers or system layers, which allows to achieve a significant reduction in overall costs and increase security by reducing the amount of code deployed to run the application.

Working with MirageOS comes down to three stages:

  • Preparing the configuration with the definition of OPAM packages used in the environment
  • Creation of the environment
  • Start of the environment.

Despite the fact that the applications and libraries are formed in the high-level OCaml language, the end environments show fairly good performance and minimal size (for example, a DNS server is only 200 KB).

The maintenance of the environments is also simplified, since if a program needs to be updated or a configuration is changed, it is sufficient to create and launch a new environment.

Main new features of MirageOS 3.5

A new version of this library was recently released, which MirageOS 3.5 reaches its version with new improvements.

In MirageOS 3.5 se add the interface specification to work with the database in the format (mirage-kv), as well as a new storage with support for read and write operations and the storage option for "non-permanent storage of data in RAM".

The goal of this work is to replace the mirage-fs interface with storage. Additionally, irmin distributed storage is being developed, which provides the ability to create databases and access via the Git protocol, as well as the wodan file system, which can be used on flash drives.

The API libraries in this new version have been expanded to mirage-clock (system clock), mirage-protocol (network protocols) and mirage-net (network devices).

Furthermore, support has been added for reassembling IPv4 packet fragments (fragment reassembly) to the TCP / IP stack implementation. For TCP, it has been added keepalive support.

The mirage-net package, which provides tools for low-level interaction with network devices, implements later versions of xen, solo5, unix, macos, and vnetif.

The Solo5-based runtime received support to run on FreeBSD bhyve and OpenBSD VMM hypervisors, supporting ARM64 and KVM, adding the ability to work with the GenodeOS microkernel.

Finally, another key point is that the ability to attach package dependencies to unikernel was added, which requires the opam 2.0.2 package manager.

And support for OCaml 4.06.0 language in safe mode for working with strings.

If you would like to learn more about it you can consult the following link.

The content of the article adheres to our principles of editorial ethics. To report an error click here!.

Be the first to comment

Leave a Comment

Your email address will not be published.



  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.