当前位置: X-MOL 学术arXiv.cs.OS › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
LibrettOS: A Dynamically Adaptable Multiserver-Library OS
arXiv - CS - Operating Systems Pub Date : 2020-02-20 , DOI: arxiv-2002.08928
Ruslan Nikolaev, Mincheol Sung, Binoy Ravindran

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]

中文翻译:

LibrettOS:动态适应的多服务器库操作系统

我们展示了 LibrettOS,这是一种融合两种范式的操作系统设计,可同时解决隔离、性能、兼容性、故障可恢复性和运行时升级等问题。LibrettOS 充当以隔离方式运行服务器的微内核操作系统。LibrettOS 还可以充当库操作系统,因为为了获得更好的性能,选定的应用程序被授予对虚拟硬件资源(如存储和网络)的独占访问权限。此外,应用程序可以在两种操作系统模式之间切换,而不会在运行时中断。LibrettOS 的独特优势在于,两种范式在同一操作系统中无缝共存,使用户能够同时发挥各自的优势(即更大的隔离性、高性能)。系统代码,例如设备驱动程序、网络堆栈、和文件系统在两种模式下保持相同,实现动态模式切换并降低开发和维护成本。为了说明这些设计原则,我们使用 rump 内核实现了一个 LibrettOS 原型,允许我们重用现有的、强化的 NetBSD 设备驱动程序和一个大型的 POSIX/BSD 兼容应用程序生态系统。我们使用硬件 (VM) 虚拟化来将不同的 rump 内核实例相互隔离。因为最初的 rumprun unikernel 针对单处理器系统的模型要简单得多,所以我们重新设计了它以支持多核系统。与 DPDK 等内核绕过库不同,应用程序无需修改即可从直接硬件访问中受益。LibrettOS 还支持通过我们开发的网络服务器进行间接访问。即使网络组件出现故障或需要升级,应用程序也不会中断。最后,为了有效地使用硬件资源,应用程序可以在运行时根据它们的 I/O 负载在间接模式和直接模式之间动态切换。[全文在论文中]
更新日期:2020-02-21
down
wechat
bug