论文标题
librettos:动态适应性的多力量图书馆OS
LibrettOS: A Dynamically Adaptable Multiserver-Library OS
论文作者
论文摘要
我们提出了Librettos,这是一种融合了两个范式的操作系统设计,以同时解决隔离,性能,兼容性,故障可恢复性和运行时升级问题。 librettos充当以隔离方式运行服务器的微核OS。当授予选定的应用程序的独家访问虚拟硬件资源(例如存储和网络)时,Librettos也可以充当库OS。此外,应用程序可以在两个操作系统模式之间切换,而在运行时没有中断。 Librettos具有独特的区别优势,因为这两个范式在同一操作系统中无缝并存,使用户能够同时利用其各自的优势(即更大的隔离,高性能)。系统代码(例如设备驱动程序,网络堆栈和文件系统)在两种模式下保持相同,从而使动态模式切换并降低开发和维护成本。 为了说明这些设计原则,我们使用臀部内核实施了librettos的原型,使我们能够重新使用存在,硬化的NetBSD设备驱动程序和一个大型POSIX/BSD兼容应用程序的生态系统。我们使用硬件(VM)虚拟化将不同的Rump内核实例彼此隔离。由于原始的Rumprun Unikernel针对单层系统系统的更简单的模型,因此我们对其进行了重新设计以支持多核心系统。与诸如DPDK之类的内核库库不同,不必修改应用程序即可从直接硬件访问中受益。 Librettos还支持通过我们开发的网络服务器的间接访问。即使网络组件失败或需要升级,应用程序仍然不间断。最后,为了有效地使用硬件资源,应用程序可以在运行时基于其I/O负载在间接模式和直接模式之间动态切换。 [完整的摘要是在论文中]
We present LibrettOS, an OS design that fuses two paradigms to simultaneously address issues of isolation, performance, compatibility, failure recoverability, and run-time upgrades. LibrettOS acts as a microkernel OS that runs servers in an isolated manner. LibrettOS can also act as a library OS when, for better performance, selected applications are granted exclusive access to virtual hardware resources such as storage and networking. Furthermore, applications can switch between the two OS modes with no interruption at run-time. LibrettOS has a uniquely distinguishing advantage in that, the two paradigms seamlessly coexist in the same OS, enabling users to simultaneously exploit their respective strengths (i.e., greater isolation, high performance). Systems code, such as device drivers, network stacks, and file systems remain identical in the two modes, enabling dynamic mode switching and reducing development and maintenance costs. To illustrate these design principles, we implemented a prototype of LibrettOS using rump kernels, allowing us to reuse existent, hardened NetBSD device drivers and a large ecosystem of POSIX/BSD-compatible applications. We use hardware (VM) virtualization to strongly isolate different rump kernel instances from each other. Because the original rumprun unikernel targeted a much simpler model for uniprocessor systems, we redesigned it to support multicore systems. Unlike kernel-bypass libraries such as DPDK, applications need not be modified to benefit from direct hardware access. LibrettOS also supports indirect access through a network server that we have developed. Applications remain uninterrupted even when network components fail or need to be upgraded. Finally, to efficiently use hardware resources, applications can dynamically switch between the indirect and direct modes based on their I/O load at run-time. [full abstract is in the paper]