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

Re: [MirageOS-devel] Announcing Solo5/Mirage unikernels on ukvm

  • To: Daniel J Williams <djwillia@xxxxxxxxxx>
  • From: Anil Madhavapeddy <anil@xxxxxxxxxx>
  • Date: Sun, 17 Apr 2016 20:44:53 +0100
  • Cc: Ricardo Koller <kollerr@xxxxxxxxxx>, mirageos-devel <mirageos-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Sun, 17 Apr 2016 19:45:19 +0000
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=recoil.org; h=subject :mime-version:content-type:from:in-reply-to:date:cc:message-id :references:to; q=dns; s=selector1; b=aCg8BZik2R6Bf6mXmA7q3fhWYx KeZZuC5/QMZc93Zpc/y0L1kSKjtIdy1MMykE8a1dmP+SXjOl+xj+7azXP5mu92j+ PXd6XEVHWAY2CiF5movGKNNFaghLhXBidL5Mw188VldaEflFrsHARRyNuKY6cRUF n9dmOQbeLTOblZz4A=
  • List-id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>

On 13 Apr 2016, at 16:30, Daniel J Williams <djwillia@xxxxxxxxxx> wrote:

Hi All,
I'm excited to announce that Solo5/Mirage unikernels can now run on
Linux/KVM without needing QEMU!  Instead they run on a new "unikernel
monitor" called `ukvm`.
`ukvm` is a small, specialized monitor that fills the role of QEMU in
a normal Linux/KVM/QEMU system.  `ukvm` will run (as a user process)
on any (x86) Linux with the KVM module and start a Solo5/Mirage
unikernel in a hardware-isolated "VM".  The goal of `ukvm` is to be a
small, modular monitor, in which its functionality and interfaces are
minimal and customized to the unikernel that is being built.  It has
the potential to provide a thinner interface to the guest unikernel
(thinner than either a container or a VM), a simpler I/O interface
(e.g., packet send rather than virtio), and better performance due to
its simplicity (e.g., fast boot).
So far, we have a small monitor implementation that is not yet
modular, but demonstrates some dramatically simple interfaces and a
fast boot time.

This is awesomely exciting, Dan!

The ukvm source is refreshingly easy to read as well, and it avoids much of the headache of trying to manage a full hypervisor toolstack (and often working around it).

This got me wondering -- would you be interested in Mac support?  We've been doing some work on xhyve recently as part of Docker for Mac [1], and the Hypervisor.framework in OSX is similar to /dev/kvm in UKC.  xhyve is a very thin library layer over the Hypervisor.framework, but it does currently use virtio.

We could go even thinner than that with a unikernel-tailored shared memory interface rather than virtio, and run unikernels on Macs "in production" (that is, consider applications like secure key stores or backup VMs that you want outside the TCB of the desktop).

I've packaged it in a Docker container so it's easier to try out.

A few comments on the packaging:

- there are ocaml/opam base images available for a variety of distros on the Hub, which may be useful to you rather than using the Ubuntu PPAs. These come pre-installed with OPAM with an `opam` user.

- instead of individual pins, you can also create a git repository that has a `packages/` subdirectory and has all the pinned packages.  This cluster of pins can be added to your working set via `opam repo add <name> <url>`.  For example, see https://github.com/mirage/mirage-dev

I don't have a Linux box handy at the moment with KVM, but will take it out for a spin soon.  I'm keen to see this integrated as a supported backend in our main tree!

MirageOS-devel mailing list



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