On 13 Apr 2016, at 16:30, Daniel J Williams <[email protected]> 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`.
>  
>     https://github.com/djwillia/solo5/tree/ukvm-mirage 
> <https://github.com/djwillia/solo5/tree/ukvm-mirage>
> `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).

[1] https://blog.docker.com/2016/03/docker-for-mac-windows-beta/ 
<https://blog.docker.com/2016/03/docker-for-mac-windows-beta/>

> 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 
<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!

Anil
_______________________________________________
MirageOS-devel mailing list
[email protected]
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

Reply via email to