不久前,辛迪·斯里达兰(Cindy Sridharan)在Twitter上询问有关虚拟化的过去、现在和未来的论文。A挑选了几个我最喜欢的,考虑到那个帖子的受欢迎程度,我决定在这里收集一些。这无论如何都不是文献调查,只是我觉得特别有趣或特别有用的一些论文的集合。像往常一样,我偏向于我喜欢阅读的论文,而不是那些我必须费力阅读的论文。
Popek和Goldberg在1974年发表的论文“可虚拟化第三代体系结构的形式要求”理所当然是一本经典著作。它们列出了一个正式的条件框架,计算机体系结构必须满足这些条件才能支持虚拟机。它已经有45年的历史了,所以有些信息已经过时了,但它的框架和核心思想经受住了时间的考验。
2003年出版的Xen and the Art of Virtualization描述了Xen虚拟机管理程序和一种用于在商用x86机器上运行安全虚拟化的新技术。确切的技术没有当时那么有趣了,主要是因为x86上的硬件虚拟化特性(如VT-x),但是对这些领域和权衡的讨论很有启发性。Xen对该行业的影响是巨大的,特别是因为它被用作Amazon EC2的基础,而亚马逊EC2在接下来的十年里引发了云计算的爆炸式增长。DISCO:从类似的角度来看,从1997年开始在可伸缩的多处理器上运行商品操作系统非常有用(感谢Pekka Enberg在这方面的技巧)。任何一篇采用我们的方法的论文都会让我立刻注意到一个在20世纪70年代很流行的观点。
2006年的x86虚拟化软件和硬件技术比较研究了该x86虚拟化硬件的一些早期版本,并将其与软件虚拟化技术进行了比较。如上所述,自从编写本文以来,硬件已经向前发展了,但是这些批评和比较对于理解仍然很有用。
不同隔离方法的安全性、兼容性和性能权衡是复杂的。关于兼容性,“现代Linux API使用和兼容性研究:重新支持什么”非常好地研究了应用程序实际接触了多少Linux内核表面区,以及需要什么才能真正与Linux兼容。兰德尔的“理想与现实:重温虚拟机和容器的历史”一书回顾了与世隔绝的历史,以及这在现代世界中的意义。Anjali的混合容器和虚拟机:鞭炮和gVisor的研究是另一个相关的流派,有一些很好的数据比较了三种隔离方法。
我的虚拟机比SOSP&17中的Container更轻(也更安全),这也改变了很多人对虚拟化的看法。我采访过的很多人都认为虚拟化是一种重量级工具,引导时间只有几秒钟,密度非常有限,主要是因为这是它在工业中的典型使用方式。曼科等人的工作并不是第一个打破这种泡沫的人,但他们做得非常有效。
我们自己的论文“Firecracker:Lightweight Virtualization for Serverless Applications”描述了专门用于无服务器工作负载的新型开源虚拟机监视器(VMM)--Firecracker。白皮书还介绍了我们如何在AWS Lambda中使用它,以及我们认为该领域未来面临的一些挑战。显然,作为那篇论文的作者,我在这里是有偏见的。