Unikernels promise fast boots, tiny memory footprints, and high performance, but they must be developed from scratch for each application. NEC is working to remove this barrier to unikernel adoption with a configurable unikernel code base called Unikraft.
Developed under the auspices of the Linux Foundation’s Xen Project, Unikraft will address unikernel development issues by providing libraries of operating system components that users can pick and choose from, using a menu to build a working image. Among the goals is to support multiple target platforms including Xen, KVM, and bare metal without having to do additional work to accommodate them.
Unikraft will provide two basic components:
- Library pools for creating unikernels. These include libraries specific to computer architectures such as x86_64 and Arm32, libraries that target platforms such as Xen and KVM, and a library of operating system elements such as device drivers, file systems, network stacks, and runtimes.
- A build tool for compiling the application and selected libraries to build a binary for a specific platform and hardware architecture.
NEC describes a unikernel as a minimalistic virtual machine. A unikernel is typically used to provide the minimal operating system functionality needed for a single application to work. Offering performance and security benefits and memory footprints in the hundreds of kilobytes, they are suitable for embedded systems and resource-constrained devices. Docker purchased Unikernel Systems last year in pursuit of new application-packaging efforts via unikernels.
The Unikraft project has not released code yet, but links will be posted at the Unikraft project page when downloads become available.