[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mirage 4.11.0 released! With built-in support for µTCP, and DNS/log/everything configuration via DHCP


  • To: mirageos-devel <mirageos-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Hannes Mehnert <hannes@xxxxxxxxxxx>
  • Date: Fri, 8 May 2026 14:49:23 +0200
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=mail header.d=mehnert.org header.i="@mehnert.org" header.h="Date:To:From:Subject"
  • Delivery-date: Fri, 08 May 2026 12:49:36 +0000
  • List-id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>

Dear MirageOS hackers,

after the longer 4.10 line of mirage, we just released mirage 4.11.0.

To summarize the changes within the last year (4.10 released September 2025):

- µTCP can be used when `--utcp` is provided at configuration time (per network device, i.e. --utcp, --management-utcp, --private-utcp) https://github.com/mirage/mirage/pull/1636 - DHCP is now enabled by default, and is able to set the DNS server in the DNS stack (and of course other DHCP configuration options, not only IP address and routers) https://github.com/mirage/mirage/pull/1628 - each unikernel accepts a `--name` argument (available via Mirage_runtime.name ()) https://github.com/mirage/mirage/pull/1611; this is sent as requested Hostname in DHCP https://github.com/mirage/mirage/pull/1632
- unikraft target https://github.com/mirage/mirage/pull/1607
- there's a ~local_libs argument to Mirage.main to use local dune libs (https://github.com/mirage/mirage/pull/1609, see mirage-skeleton example https://github.com/mirage/mirage-skeleton/tree/main/tutorial/local-library) - Makefile now includes the output file extensions https://github.com/mirage/mirage/pull/1619 - breaking: --dhcp=true/false is now a flag --no-dhcp https://github.com/mirage/mirage/pull/1636 - ?tcp, ?dhcp_key, ?net_key have been removed from Mirage.*stack* https://github.com/mirage/mirage/pull/1636 - boot arguments use "-" instead of "_" (i.e. "--dns-servers") https://github.com/mirage/mirage/pull/1638 - various cleanups and fixes https://github.com/mirage/mirage/pull/1612, https://github.com/mirage/mirage/pull/1615, https://github.com/mirage/mirage/pull/1614, https://github.com/mirage/mirage/pull/1613, https://github.com/mirage/mirage/pull/1620, https://github.com/mirage/mirage/pull/1622, https://github.com/mirage/mirage/pull/1623, https://github.com/mirage/mirage/pull/1625, https://github.com/mirage/mirage/pull/1628, https://github.com/mirage/mirage/pull/1635

There may be some further things that broke. Please let us know if you're stuck upgrading your unikernel.

## µTCP

µTCP (https://github.com/robur-coop/utcp) is a TCP stack developed from scratch based on the HOL4 model (https://www.cl.cam.ac.uk/~pes20/Netsem/). The stack is purely in OCaml and value-passing style (sans-IO, as pioneered by OCaml-TLS [David Kaloper Meršinjak]). Already now we have another backend for µTCP that doesn't rely on lwt - something very hard to do with the existing "old" TCP stack from https://github.com/mirage/mirage-tcpip (src/tcp).

There is still ongoing work on µTCP, but we are also testing it since more than a year on some production systems on the Internet with good results. It is smaller, allocates less, and (hopefully) easier to maintain than the old TCP stack.

## DHCP

For deployments, we now fully support DHCP, such that configuration parameters (syslog sink, metrics, DNS server, ...) can be taken from DHCP. This required some restructuring of the DHCP stack, as well as some work on the mirage tool to provide DHCP configuration information to other subsystems (without them having to depend on the DHCP package).


If you're interested in further details, don't hesitate to reach out via mail (on this list, or privately). We're in full momentum re-deploying our unikernel hive, removing the plasters we needed before we had these opportunities.


Happy victory day (bomber harris do it again),

Hannes



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.