VirtuOS: an operating system with kernel virtualization

VirtuOS: an operating system with kernel virtualization
复制标题

DOI:
10.1145/2517349.2522719
复制
发表时间:
2013-11
期刊:
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
影响因子:
--
通讯作者:
R. Nikolaev;Godmar Back
R. Nikolaev;Godmar Back
中科院分区:
其他
文献类型:
--
作者:
R. Nikolaev;Godmar Back

文献摘要

被引文献

相似文献

大多数操作系统为用户进程提供保护和隔离,但对关键系统组件(如设备驱动程序或其他系统代码)却不提供。因此,这些组件的故障往往会导致系统故障。VirtuOS是一种操作系统,它利用一种新的分解方法来防止此类故障。VirtuOS利用虚拟化在单独的服务域中隔离和保护现有操作系统内核的垂直切片。每个服务域代表现有内核的一个分区,它实现了该内核功能的一个子集。与仅仅隔离设备驱动程序或无法防范恶意和易受攻击代码的竞争解决方案不同,VirtuOS对隔离的系统组件提供全面保护。VirtuOS的用户库使用无异常系统调用模型直接将系统调用分派到服务域,在许多情况下避免了系统调用陷阱的成本。我们已经基于Linux内核和Xen虚拟机监控程序实现了一个原型。我们通过创建和评估网络和存储服务域来证明我们方法的可行性。我们的原型能够在单个服务域出现故障的情况下继续运行,同时在性能上优于诸如隔离驱动程序域等替代方法,甚至在一些多线程工作负载下超过原生Linux的性能。因此,VirtuOS可能为内核分解提供一个合适的基础,同时保持与现有应用程序的兼容性和良好的性能。
Most operating systems provide protection and isolation to user processes, but not to critical system components such as device drivers or other system code. Consequently, failures in these components often lead to system failures. VirtuOS is an operating system that exploits a new method of decomposition to protect against such failures. VirtuOS exploits virtualization to isolate and protect vertical slices of existing OS kernels in separate service domains. Each service domain represents a partition of an existing kernel, which implements a subset of that kernel's functionality. Unlike competing solutions that merely isolate device drivers, or cannot protect from malicious and vulnerable code, VirtuOS provides full protection of isolated system components. VirtuOS's user library dispatches system calls directly to service domains using an exceptionless system call model, avoiding the cost of a system call trap in many cases. We have implemented a prototype based on the Linux kernel and Xen hypervisor. We demonstrate the viability of our approach by creating and evaluating a network and a storage service domain. Our prototype can survive the failure of individual service domains while outperforming alternative approaches such as isolated driver domains and even exceeding the performance of native Linux for some multithreaded workloads. Thus, VirtuOS may provide a suitable basis for kernel decomposition while retaining compatibility with existing applications and good performance.