Our great sponsors
-
unikraft
A next-generation cloud native kernel designed to unlock best-in-class performance, security primitives and efficiency savings.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
The HN conversations around unikernels suggest that they're not ready for production yet [0] but feel free to set that record straight.
In the meantime, a handful of organisations/individuals seem to be working on becoming "Docker for unikernels". That's probably an unfair description, but they're aiming to produce tools for building and managing unikernels: Unikraft [1], NanoVMs/Nanos [2], Unik [3]. Other orgs are producing unikernel-based OSs and VMs [4].
What is your toolset for building and managing unikernels? What have you learned?
Bonus question: is Unik dead? [5]
[0] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=unikernel&sort=byPopularity&type=story
[1] https://unikraft.org/
[2] https://github.com/nanovms/nanos
[3] https://github.com/solo-io/unik/
[4] http://unikernel.org/projects/
[5] https://github.com/solo-io/unik/issues/172
The HN conversations around unikernels suggest that they're not ready for production yet [0] but feel free to set that record straight.
In the meantime, a handful of organisations/individuals seem to be working on becoming "Docker for unikernels". That's probably an unfair description, but they're aiming to produce tools for building and managing unikernels: Unikraft [1], NanoVMs/Nanos [2], Unik [3]. Other orgs are producing unikernel-based OSs and VMs [4].
What is your toolset for building and managing unikernels? What have you learned?
Bonus question: is Unik dead? [5]
[0] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=unikernel&sort=byPopularity&type=story
[1] https://unikraft.org/
[2] https://github.com/nanovms/nanos
[3] https://github.com/solo-io/unik/
[4] http://unikernel.org/projects/
[5] https://github.com/solo-io/unik/issues/172
The HN conversations around unikernels suggest that they're not ready for production yet [0] but feel free to set that record straight.
In the meantime, a handful of organisations/individuals seem to be working on becoming "Docker for unikernels". That's probably an unfair description, but they're aiming to produce tools for building and managing unikernels: Unikraft [1], NanoVMs/Nanos [2], Unik [3]. Other orgs are producing unikernel-based OSs and VMs [4].
What is your toolset for building and managing unikernels? What have you learned?
Bonus question: is Unik dead? [5]
[0] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=unikernel&sort=byPopularity&type=story
[1] https://unikraft.org/
[2] https://github.com/nanovms/nanos
[3] https://github.com/solo-io/unik/
[4] http://unikernel.org/projects/
[5] https://github.com/solo-io/unik/issues/172
The HN conversations around unikernels suggest that they're not ready for production yet [0] but feel free to set that record straight.
In the meantime, a handful of organisations/individuals seem to be working on becoming "Docker for unikernels". That's probably an unfair description, but they're aiming to produce tools for building and managing unikernels: Unikraft [1], NanoVMs/Nanos [2], Unik [3]. Other orgs are producing unikernel-based OSs and VMs [4].
What is your toolset for building and managing unikernels? What have you learned?
Bonus question: is Unik dead? [5]
[0] https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=unikernel&sort=byPopularity&type=story
[1] https://unikraft.org/
[2] https://github.com/nanovms/nanos
[3] https://github.com/solo-io/unik/
[4] http://unikernel.org/projects/
[5] https://github.com/solo-io/unik/issues/172
The definition of what a unikernel is needs to be narrowed down, a lot of these projects in the space (not all the ones listed above) have material differences that are not clear:
- some run only one language
- some require recompilation
- some essentially swap out libraries, others do something closer to dropping your already mostly static binary in a minimal disk image
- some build pid1 processes, others VMs images
Anyway, here are some additional entries in the space:
- https://ssrg-vt.github.io/hermitux/
- https://github.com/linuxkit/linuxkit (more embedded/minimal VM than unikernel)
- https://nabla-containers.github.io/ (runs on Solo5)
I am going through using Linuxkit to build AMIs for cloud providers now. I wouldn’t necessarily class linuxkit as a universal project because it doesn’t have the hallmark blurring of user and kernel space or kernel-as-a-library but you can customize the kernel so it’s an adjacent idea, and I think it’s the one most likely to be in actual use at non-hyperscalers.
The definition of what a unikernel is needs to be narrowed down, a lot of these projects in the space (not all the ones listed above) have material differences that are not clear:
- some run only one language
- some require recompilation
- some essentially swap out libraries, others do something closer to dropping your already mostly static binary in a minimal disk image
- some build pid1 processes, others VMs images
Anyway, here are some additional entries in the space:
- https://ssrg-vt.github.io/hermitux/
- https://github.com/linuxkit/linuxkit (more embedded/minimal VM than unikernel)
- https://nabla-containers.github.io/ (runs on Solo5)
I am going through using Linuxkit to build AMIs for cloud providers now. I wouldn’t necessarily class linuxkit as a universal project because it doesn’t have the hallmark blurring of user and kernel space or kernel-as-a-library but you can customize the kernel so it’s an adjacent idea, and I think it’s the one most likely to be in actual use at non-hyperscalers.
Many unikernel projects were ahead of their time. For example ClickOS [0] is ~7 years old but all its ideas still sound innovative. Someone could build an entire business on top of network function virtualization, using unikernels as an efficient sandboxing mechanism.
I’m not sure why unikernels have not caught on widely. I suspect their time has yet to come for some applications, but at least for NFV and sandboxing, I would bet on solutions using eBPF or XDP with WASM for sandboxing.
[0] https://github.com/kohler/click
They differ very widely. It's instructive to look at unikraft which is probably the easiest to develop on (IMHO). eg: https://github.com/unikraft/app-helloworld-cpp
Our unikernel (UKL) lets you link your Linux program with the Linux kernel and produces a binary which run in a VM or on baremetal (essentially a custom vmlinuz). It's a bit laborious at the moment, one of many things to fix before release.