v9.0.0 (2025-02-05)

v8.0.3 (2024-04-29)

v8.0.2 (2023-03-03)

v8.0.1 (2022-10-19)

v8.0.0 (2022-07-24)

v7.2.0 (2022-03-30)

v7.1.0 (2022-03-27)

v7.0.0 (2021-01-31)

v6.0.1 (2021-11-18)

v6.0.0 (2020-10-20)

Version 6.0.0 is a re-write of the MirageOS Xen platform stack, with the overall goal of replacing Mini-OS and moving to a minimal, legacy-free codebase which builds MirageOS unikernels as Xen PVHv2 domUs only. At the same time, this change aligns the Xen backend with existing Solo5 backends as much as is practical and replaces the OCaml runtime with that provided by ocaml-freestanding.

This is a breaking change. MirageOS libraries and applications that make use of Xen-specific APIs will need to be updated. See below for a list of the interfaces that have changed.

Requirements changes:

Security posture improvements:

With the move to a Solo5 and ocaml-freestanding base MirageOS gains several notable improvements to security posture for unikernels on Xen:

Interface changes:

Dependency changes:

C stubs changes:

Apart from the above, the majority of C stubs which are used by mirage-xen have been renamed to follow the mirage_xen_XXX rather than stub_XXX convention.

The low-level C interfaces to Xen event channels (evtchn.c) and grant tables (gnttab.c) have been re-written from scratch. Some additional interfaces have been added to main.c to replace functionality that was previously part of start_info_stubs.c (obtaining initial PV console and Xenstore ports and I/O rings from Xen).

Due to issues with mixing PIC and non-PIC code when compiling the C stubs with Dune, the build system has been adapted to use a foreign Makefile for libmirage-xen_bindings.a. This is the recommended method to use when building libraries containing C code for use with MirageOS. See conversation in #23 for details.

Relationship with the Solo5 Xen bindings:

For Xen, Solo5 only provides the initial PVH boot, VCPU setup/traps and C-side PV console code. Some Mirage-internal private APIs are provided to allow mirage-xen to interact with the hypervisor -- this is fully explained in Solo5 commit Solo5/solo5@f4b47d1 and follow-ups.

v5.0.0 (2019-11-01)

v4.0.1 (2019-07-05)

v4.0.0 (2019-06-25)

v3.4.0 (2019-04-22)

v3.3.0 (2019-03-22)

v3.2.0 (2019-02-16)

3.1.0 (2018-11-11)

3.0.6 (2018-03-13)

3.0.5 (2017-11-19)

3.0.4 (2017-07-14)

3.0.3 (2017-06-16)

3.0.2 (2017-06-16)

3.0.1 (2017-05-29)

3.0.0 (2017-01-24)

2.6.0 (2016-05-05):

2.5.0 (2016-05-01):

2.4.1 (2016-03-22):

2.4.0 (2016-03-18):

2.3.4 (2015-08-17):

2.3.3 (2015-07-21):

2.3.2 (2015-05-21):

2.3.1 (2015-04-19):

2.3.0 (2015-03-17):

2.2.3 (2015-03-16):

2.2.2 (2015-03-04):

2.2.1 (2015-01-26):

2.2.0 (2015-01-23):

This releases adds support for OCaml 4.02+ compilation, and changes the Xen backend build for Mirage significantly by:

The OCaml code is now built using OASIS, since the C code is built entirely separately and could be moved out into a separate OPAM package entirely.

2.1.3 (2015-01-23):

2.1.2 (2014-12-20):

[xen] Updated headers and build for Mini-OS 0.5. This involves:

2.1.1 (2014-12-17):

2.1.0 (2014-12-07):

2.0.1 (2014-12-05):

2.0.0 (2014-11-04):

1.1.1 (2013-02-24):

1.1.0 (2013-02-01):

1.0.0 (2013-12-10):

## 0.9.9 (2013-12-07):

0.9.8 (2013-11-07):

0.9.7 (2013-10-05):

0.9.6 (2013-08-27):

0.9.5 (2013-08-09):

0.9.4 (2013-08-07):

0.9.3 (2013-07-18):

0.9.2 (2013-07-09):

0.9.1 (2013-06-11):

0.9.0 (2013-05-22):

0.8.1 (2013-03-27):

0.8.0 (2013-02-12):

0.7.2 (2013-02-08):

0.7.1 (2012-12-20):

0.7.0 (2012-12-20):

0.6.1 (2012-12-15):

0.6.0 (2012-12-11):

0.5.0 (2012-12-10):

0.4.1 (2012-11-04):

0.4.0 (2012-09-11):

0.3.0 (2012-09-04):