Experimental Patches Adapt Linux For A Unikernel Design
The Boston University team explains of their Unikernel Linux (UKL) work:
Unikernels are specialized operating systems where an application is linked directly with the kernel and runs in supervisor mode. This allows the developers to implement application specific optimizations to the kernel, which can be directly invoked by the application (without going through the syscall path). An application can control scheduling and resource management and directly access the hardware. Application and the kernel can be co-optimized, e.g., through LTO, PGO, etc. All of these optimizations, and others, provide applications with huge performance benefits over general purpose operating systems.
Linux is the de-facto operating system of today. Applications depend on its battle tested code base, large developer community, support for legacy code, a huge ecosystem of tools and utilities, and a wide range of compatible hardware and device drivers. Linux also allows some degree of application specific optimizations through build time config options, runtime configuration, and recently through eBPF. But still, there is a need for even more fine-grained application specific optimizations, and some developers resort to kernel bypass techniques.
Unikernel Linux (UKL) aims to get the best of both worlds by bringing application specific optimizations to the Linux ecosystem. This way, unmodified applications can keep getting the benefits of Linux while taking advantage of the unikernel-style optimizations. Optionally, applications can be modified to invoke deeper optimizations.
The ten patches sent out yesterday under a "request for comments" flag work on adapting the Linux kernel to a unikernel model and other initial changes.
Those wanting to learn more about this experimental Unikernel Linux research project can do so via the kernel mailing list.