We explore if unikernel techniques can be integrated into a general-purpose OS while preserving its battle-tested code, development community, and ecosystem of tools, applications, and hardware support. Our prototype demonstrates both a path to integrate unikernel techniques in Linux and that such techniques can result in significant performance advantages. With a re-compilation and link to our modified kernel, applications show modest performance gains. Expert developers can optimize the application to call internal kernel functionality and optimize across the application/kernel boundary for more significant gains. While only one process can be optimized, standard scripts can be used to launch it, and other processes can run alongside it, enabling the use of standard user-level tools (prof, bash,...) and support for both virtual and physical servers. The changes to the Linux kernel are modest (1250 LOC) and largely part of a configuration build target.
翻译:我们探讨在保留其经过战斗测试的代码、开发界和工具、应用和硬件支持生态系统的同时,将单内核技术纳入普通操作系统是否可行。 我们的原型展示了将单内核技术融入Linux的路径,而且这种技术能够带来显著的性能优势。 通过重新整合和连接到我们修改过的内核,应用的性能收益不大。 专家开发者可以优化应用程序,以调用内部内核功能,优化整个应用/内核边界以取得更重大收益。 虽然只有一个程序可以优化,但标准脚本可以用来启动它,其他程序可以同时运行,从而能够使用标准的用户级工具(程序、制式、.),支持虚拟服务器和物理服务器。对Linux内核的改变并不大(1250 LOC),而且大部分是配置构建目标的一部分。