By Anil Madhavapeddy - 2014-07-08
Summer is in full swing here in MirageOS HQ with torrential rainstorms, searing
sunshine, and our OSCON 2014 talk
rapidly approaching in just a few weeks. We've been steadily releasing point releases
since the first release back in December, and today's MirageOS
1.2.0 is the last of the 1.x
series.
The main improvements are usability-oriented:
The Mirage frontend tool now generates a Makefile
with a make depend
target, instead of directly invoking OPAM as part of mirage configure
.
This greatly improves usability on slow platforms such as ARM, since the
output of OPAM as it builds can be inspected more easily. Users will now
need to run make depend
to ensure they have the latest package set
before building their unikernel.
Improve formatting of the mirage
output, including pretty colours!
This makes it easier to distinguish complex unikernel configurations
that have lots of deployment options. The generated files are built
more verbosely by default to facilitate debugging, and with debug
symbols and backtraces enabled by default.
Added several device module types, including ENTROPY
for random
noise, FLOW
for stream-oriented connections, and exposed the IPV4
device in the STACKV4
TCP/IP stack type.
Significant bugfixes in supporting libraries such as the TCP/IP stack (primarily thanks to Mindy Preston fuzz testing and finding some good zingers). There are too many library releases to list individually here, but you can browse the changelog for more details.
#### Towards MirageOS 2.0
We've also been working hard on the MirageOS 2.x series, which introduces a number of new features and usability improvements that emerged from actually using the tools in practical projects. Since there have been so many new contributors recently, Amir Chaudhry is coordinating a series of blog posts in the runup to OSCON that explains the new work in depth. Once the release rush has subsided, we'll be working on integrating these posts into our documentation properly.
The new 2.0 features include the Irmin branch-consistent distributed storage library, the pure OCaml TLS stack, Xen/ARM support and the Conduit I/O subsystem for mapping names to connections. Also included in the blog series are some sample usecases on how these tie together for real applications (as a teaser, here's a video of Xen VMs booting using Irmin thanks to Dave Scott and Thomas Gazagnaire!)
Richard Mortier and myself will be gallivanting around the world to deliver a few talks this summer:
As always, if there are any particular topics you would like to see more on, then please comment on the tracking issue or get in touch directly. There will be a lot of releases coming out in the next few weeks (including a beta of the new version of OPAM, so bug reports are very much appreciated for those things that slip past Travis CI!