Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Holy crap, it's you! Sorry I tried to reset your password the other day. I thought I'd already signed up and forgotten.

On a more on-topic note however, aside from the benefits of running any kernel, such as windows, I wonder if there are any practical benefits of something like this vs something like CoreOS/docker. I'm sure since it's Xen you could run a windows kernel on Linux, but aside from that, I don't know.



> On a more on-topic note however, aside from the benefits of running any kernel, such as windows, I wonder if there are any practical benefits of something like this vs something like CoreOS/docker.

There are millions of lines less of code involved in the deployed Xen unikernel, since there's no Linux userspace/kernel divide involved any more.

You can also use the same application source code just fine with CoreOS/Docker if you prefer, since it can also compile to normal POSIX binaries that use kernel sockets (via `mirage configure --unix` instead of `mirage configure --xen`). This is the main benefit of using modular OCaml code that can swap out entire subsystems at compile time.


Another benefit is that these millions lines less also translate into file sizes.

A bare-bones MirageOS deployment (e.g. a hello world TCP service) is only a few MB if I remember correctly.


It also boots faster than your typical Linux kernel + userspace. That probably only makes a difference if you boot up a lot of short-lived VM instances or trying to recover from a failed instance though.


In terms of 'lines of code running' wouldn't a stripped down Linux kernel + Mirage application in direct mode beat Xen + Linux dom0 HW drivers + Linux dom0 Xen daemons/tools + Mirage unikernel?

I do agree with you that Xen is probably better at providing isolation than Linux, i.e. it is better at what an OS is supposed to provide :)

Also if you are in an environment where your only option is to deploy Xen domUs, i.e. like EC2, then you probably have a performance advantage as well because you just eliminated one layer.

In the end not much changes conceptually compared to a traditional application:

  * instead of being linked with libc it is linked with Mirage's runtime
  * its "OS" is now Xen instead of Linux
  * the drivers of the OS are unchanged (running Linux in dom0)
  * developing a Mirage unikernel is much like developing a traditional application, if you restrict yourself to the Mirage provided interfaces


> In terms of 'lines of code running' wouldn't a stripped down Linux kernel + Mirage application in direct mode beat Xen + Linux dom0 HW drivers + Linux dom0 Xen daemons/tools + Mirage unikernel?

Well, you can drop into a driver domain model and not have a full Linux dom0 (if you don't mind fixing on a particular hardware model).

But don't forget that Mirage is about modularity though -- we have a kernel module version under development too, and a baremetal rPi one. The idea is that as the number of libraries grow, it becomes easier to pick and choose the set you need for the particular deployment environment you want to build an application on (including but not exclusively a Xen unikernel).


That sounds interesting, I'll keep that in mind.


Holy crap, it's me! I did get the password reset in the middle of the night and wonder what that was about then I saw andrewstuart2 and realised what had happened. Seems we are the same person. Do you spend your life saying "It's spelled S-T-U-A-R-T", then people say "errrr, S-T-E-U-W-A-R-T?".


Haha the worst I've gotten is "Okay, S-T-U-W-A-R-T?". I suppose there has to be some downside to having some royal Scottish blood.


This thread had me really confused for quite a while. I thought it was one person replying to their own messages.


Indeed. One must be eternally vigilant with the name.


Are you Paul? My brother's name is Paul.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: