The latest Docker Inc. acquisition, announced today, is 13-employee Unikernel Systems, a group that's been on the way to making container deployments even thinner by customizing the underlying operating system.
Founded in Cambridge, U.K., a year ago and funded by angel investors, Unikernel has coined the term "unikernel" to represent a customized, slimmed-down Linux kernel. It's an operating system with the unwanted libraries left out. If you don't need networking, for example, you could omit it, or even shave away parts of it; unikernels allow for fine-grained choices.
Containers, of course, have to run on an operating system. The smaller the OS, the smaller a space your container deployment can fit into.
That makes unikernels relevant to Docker Inc. when it comes to putting kernels in places with limited resources — the Internet of Things (IoT) could loom large here. To that end, Unikernal made sure its stuff works with ARM processors as well as x86, says Anil Madhavapeddy, the startup's CTO.
The concept could also be important as Microsoft advances the idea of Windows containers, says David Messina, Docker's vice president of marketing. He's anticipating deployments that overlap Linux and Windows environments, calling for containers that lean either direction. A pared-down kernel could be suitable for places in the middle of the Linux-Windows continuum, he claims.
Unikernels are by no means new. Similiar concepts date back to at least the 70s and the classic Alto computer developed at Xerox's Palo Alto Research Center (PARC), Madhavapeddy says.
But you had to be a programmer in order to create a unikernel, and it wasn't easy to do on the fly. Unikernel, the company, aims to remove both those handicaps and "democratize" unikernels, notes Madhavapeddy. Docker Inc. did the same thing to popularlize Linux containers.
Unikernel Services' founders latched onto this idea while working on the Xen open source hypervisor. The epiphany came as they saw microservices start to gain popularity. Even a tiny, temporary service had to be run on an operating system.
"Your deployments became bigger and less elastic than you wanted them to be," Madhavapeddy says.
A unikernel gets configured ahead of time, so that it boots up with only a fraction of the operating system — a customized kernel, essentially.
An open source community has built up around unikernels, and the Unikernel Systems team has demonstrated the idea at DockerCon and the Microsoft Build developer conference. The trick now, says Madhavapeddy, is to turn that concept into something practical.