Hacker News new | ask | show | jobs
by galois198 2803 days ago
What are the best tools for experimenting with unikernels?
3 comments

I believe it comes down to your programing language preference. If you are into OCaml the Mirage Unikernel is rather complete. If C or C++ is your thing there is IncludeOS (potentially adding other language runtimes next year) and for Haskell there is HalVM.

There are others as well, but AFAIK these are the ones with active development happening. Please correct me if there are active ones I've forgotten.

All three support compiling your application as a Linux binary, meaning you can do most of the development and debugging using the tools you're used to, IDE with visual debuggers and the whole shebang.

Once you want to run in a separate VM you can still debug, but it becomes a tad bit harder. I know how to debug IncludeOS application when they are running under Qemu or KVM. Qemu can act as a gdb remote, you just need to get it working, which is a bit of pain.

And now you have the option of running it the way it is describes in the paper. I've never touched this so I don't have a feeling for how hard it is getting it to run.

Rumprun[0] is another big one in the C camp. Though I think you can use basically any software that conforms to posix.

[0] https://github.com/rumpkernel/rumprun/

No commits since April. I think Antti has left the project and started a brewery or something.
Shame https://github.com/cloudozer/ling seems to have stalled.
The Xen source tree contains an example of a minimal unikernel. Probably worth looking at the source to it even if you end up using something with more features.
You can already.

Just use Linux or something similar and use the lower APIs.

E.g. don't mount a filesystem, use the block device directly in your app.

Wouldn't that add a ton of overhead, if nothing is done in kernelspace and everything gets squeezed through syscalls