Title: Universality enhancement of Unikernel
Technical Area: System Software
In order to solve the problem of virtual machines resources’ waste and the safety problem of containers, the industry has been increasingly using Unikernel technology as the solution in the past two years. In addition, its small, simple, safe, and efficient features make it very suitable for the current popular micro service architecture.
The biggest problem at the moment is that the ecology is not yet perfect, and none of the Unikernel claims to have been put into the actual production environment. The biggest problem that hinders its ecological progress and industrial landing is that the compatibility and universality to current application, especially in the container cloud environment. Currently, most containers are still complex and have multiple processes using different language. If they can be released still as OCI image without compilation, especially for compilation type language, and still scheduled by docker/k8s, and the container instances can still share the same parts of the OCI images for both memory and disk resources, most of them will be easier and more willing to run or migrate to Unikernel platform. Unfortunate, there isn’t any Unikernel open source project satisfies all of these targets, even two above targets. At last, there isn’t any Unikernel project behavior are proved to be totally same as Linux kernel, because nobody has already successfully migrated current existing application to the production environment.
We hope one Unikernel implementation can be researched focus on the compatibility and universality without the feature of good safety, performance and fast booting. The new Unikernel implementation should include but not limited to below universality factors:
- Application can be released as OCI image, without linked with Unikernel itself. And multiple instances can share the same parts of OCI images about both memory and disk resource.
- Need support multi-processes and multi-process communication without Host kernel’s intervention.
- Need support multiple languages’ executable binary, at least including C/C++/JAVA/node.js/python without recompilation.
- Boot time need to be limit within 1ms.
- Network latency need to be limit within 50us.
- Interface and behavior of Unikernel’s kernel and library should be totally compatible with Linux kernel and language library.
- Support modular tailor capacity to let application to select fewer modules to load on the fly.
- Security level is not lower than KVM Virtual Machine.
Related Research Topics
- OCI image and runtime support and file sharing for memory and disk within multiple Unikenrel instances.
- Multi-processes and single-address space management technology.
- Multiple language binary loaders.
- Non-bootloader technology.
- Low latency network technology.
- Validity checking technology of Unikernel.
- Unikernel modular technology.
- Unikernel security evaluation.