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