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