相关工作 虚拟化技术被应用在商业化和研究型操作系统上已经有近年了IBM VM/[]最先使用了虚拟化技术以提供对先前存留的代码的支持VMware[]和Connectix[]采用了将常用的PC硬件进行虚拟化的方法允许多个操作系统在同一台主机上运行所有这些例子都对底层硬件(至少是底层硬件的一个子集)进行了完全虚拟化的实现而并非是准虚拟化的方法提供给guest OS一个修改后的接口正如我们的评估结果中给出的完全虚拟化虽然能够更容易地支持商业市售的操作系统但是却大大降低了性能 VMM方法还被Disco用于将常用的操作系统高效地运行在ccNUMA机器上[]其间要对被操控的操作系统做少量的改动以使其能够虚拟化地运行在MIPS体系结构上另外出于性能的考虑还要做一些其它修改 现在我们知道有两个其它的系统也采用了准虚拟化的方法IBM不久前提出的Linux的准虚拟化版本允许大量的Linux实例同时运行将用于他们的zSeries大型机上Denali[]在之前已经讨论过它是一个暂时隔离的内核试图提供能够操控大量虚拟操作系统实例的系统能力 除了Denali我们还知道有两种其它的方法使用了低层虚拟化技术建立分布式系统的底层架构vMatrix[]是基于VMware的它的目标是建立一个用于在不同机器间移动代码的平台由于vMatrix是在VMware之上开发的因此它更关注的是虚拟化技术在分布式环境中存在的高层问题另外在IBM提出的托管管理(Managed Hosting)服务中虚拟Linux的实例可以在IBM大型机上被租用(//大型机上跑多个Linux实例你可以租一个用搭建你自己的系统和其他租户共享大型机的资源) PlanetLab项目[]构建了一个分布式的底层架构它的设计目的是作为实验床用于研究和开发地理空间分布的网络服务平台的对象是研究者试图将单个的物理主机划分为条(sliver)提供同时的对用户的低层访问项目当前使用的是VServers[]和SILK[]来管理操作系统内部的共享 我们再和操作系统外延研究和主动网络通信研究中的一些思路作比较当代码在Xen上面运行的时候没有必要检查其安全性也没有必要去检查代码运行是否能够保证终止因为在这些情况中唯一的受害人是那些可疑的客户于是Xen提供了更通用的方案这个方案不需要由一个可信的编译器为被操控的代码做数字签名(比如SPIN[])不需要这些代码被一个安全证明伴随(比如PCC[])不需要由一种特殊的语言写成(比如SafetyNet[]或者其它基于Java的系统)也不需要依赖于特殊的中间件(比如移动代理(mobileagent)系统)当然这些其它的技术能够继续在运行在Xen上的guest OS中使用而且可能会对那些时限更短暂的任务负载有着特别的用途因为这类任务没有机会被成批处理以减少启动一个新的domain的代价(//这段的意思我的感觉是在操作系统外延研究和主动网络通信研究为了保证代码安全采用了多种多样的方法但是在Xen中这些方法都是不必要的因为Xen的安全性确认策略比较简单前文有提及但是这些方法在Xen中也还是有它们的作用比如对于时限短暂的任务它等不及成批地被确认那么它就需要用其它方法保证安全性) 关于语言级虚拟机(//比如Java虚拟机)方法中也存在着类似的问题一个管理资源(resourcemanaged)的JVM[]肯定能够操控不可信的应用前提是这些应用必须被编译为Java字节码并且遵循特别的系统安全模型(//不可信的代码即使出了问题但是由于其遵循系统安全模型所以也不会造成危害)这样的话Xen就能够容易地支持语言级虚拟机就像支持其它运行在guest OS上的应用一样(//这段的意思和前面类似仍旧是表明Xen并不提供过多的安全性检查如果要跑语言虚拟机之类的应用语言的安全性要由虚拟机应用本身保证而不关系到Xen) |