zoukankan      html  css  js  c++  java
  • 硬件虚拟化

    硬件虚拟化也称作完全虚拟化

    在计算机科学中,硬件虚拟化(英语:Hardware virtualization)是一种对计算机或操作系统的虚拟。虚拟化对用户隐藏了真实的计算机硬件,表现出另一个抽象计算平台。

    简介

    在计算机集群中,许多小型服务器正在被一个大型服务器取代以增加硬件资源的利用率(如CPU等)。虽然硬件正在被整合,但是典型的操作系统仍然是独立的。取而代之地,每一个运行在独立的服务器上的操作系统被转移到在虚拟机中。大型的服务器可以“寄宿”许多这样的“客户”虚拟机。这就是物理到虚拟(Physical-to-Virtual, P2V)的转换。
    
    虚拟机比真实的机器可以被更容易从外部被控制和检查,并且可以配置更灵活。这在内核开发与操作系统课程教学中尤为有用。[3]
    
    创建一个新的虚拟机不需要预先购买硬件。同时,一个新的虚拟机可以容易地从一台计算机转移到另一台上。举例来说,一个销售员可以复制一个包含试用版软件的虚拟机到他的笔记本电脑去访问他的客户而不用更换电脑。类似的,虚拟机中的故障不会对宿主机产生损害,所以不会令笔记本上的操作系统死机。
    
    由于可以被容易地迁移,虚拟机可以被用于远距离灾难恢复方案。
    
    平台虚拟化的方案有很多。

    虚拟化的原因

    在计算机集群中,许多小型服务器正在被一个大型服务器取代以增加硬件资源的利用率(如CPU等)。虽然硬件正在被整合,但是典型的操作系统仍然是独立的。取而代之地,每一个运行在独立的服务器上的操作系统被转移到在虚拟机中。大型的服务器可以“寄宿”许多这样的“客户”虚拟机。这就是物理到虚拟(Physical-to-Virtual, P2V)的转换。
    
    虚拟机比真实的机器可以被更容易从外部被控制和检查,并且可以配置更灵活。这在内核开发与操作系统课程教学中尤为有用。[3]
    
    创建一个新的虚拟机不需要预先购买硬件。同时,一个新的虚拟机可以容易地从一台计算机转移到另一台上。举例来说,一个销售员可以复制一个包含试用版软件的虚拟机到他的笔记本电脑去访问他的客户而不用更换电脑。类似的,虚拟机中的故障不会对宿主机产生损害,所以不会令笔记本上的操作系统死机。
    
    由于可以被容易地迁移,虚拟机可以被用于远距离灾难恢复方案。

    完全虚拟化和半虚拟化

    完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统>可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。

    全虚拟化

    在全虚拟化(full virtualization)中,虚拟机模拟一个足够强大的硬件使客户机操作系统独立运行。这种方案最早在1966年被虚拟机家族的先锋IBM CP-40与CP-67使用。支持完全虚拟化的虚拟机软件包括Parallels Workstation、 Parallels Desktop for Mac、VirtualBox、Virtual Iron、Oracle VM、Microsoft Virtual PC、Virtual Server、Hyper-V、VMware Workstation、VMware Server(原GSX Server)、QEMU、Adeos、Mac-on-Linux、Win4BSD、Win4Lin Pro、以及Egenera vBlade technology等

     

    硬件辅助虚拟化

    在硬件辅助虚拟化(hardware-assisted virtualization)中,硬件提供结构支持帮助创建虚拟机监视并允许客户机操作系统独立运行。硬件辅助虚拟化在1972年开始运行,它在IBM System/370上运行,使用了第一个虚拟机操作系统VM/370。在2005年与2006年,Intel和AMD为虚拟化提供了额外的硬件支持。支持硬件辅助虚拟化的有 Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac,VirtualBox和Parallels Workstation。
    
    支持完整的虚拟化技术的硬件平台包括:
    
    x86 (and x86_64)—AMD-V (代号Pacifica), Intel VT-x(代号Vanderpool)
    
    IOMMU 由AMD和Intel共同开发。
    
    Power Architecture (IBM/Power.org)
    
    Virtage (Hitachi)
    
    UltraSPARC T1, T2 及 T2+ (Sun)

     

     

    部分虚拟化

    在部分虚拟化(partial virtualization)中(包括地址空间虚拟化),虚拟机模拟数个(但不是全部)底层硬件环境,特别是地址空间。这样的环境支持资源共享和线程独立,但是不允许独立的客户机操作系统。虽然这并不被视为一般意义上的虚拟机,但这在历史上是非常重要的一页。这项技术曾被用于CTSS(试验性的IBM M44/44X),以及争议性的系统比如MVS及Commodore 64(两个都是“task switch”程序)。

    平行虚拟化

    在平行虚拟化(paravirtualization)中,虚拟机不需要模拟硬件,而是提供一个特殊的API只能被特制的客户机操作系统使用。

    操作系统层虚拟化

    在操作系统层虚拟化(OS-level virtualization)中,独立主机被虚拟化在操作系统层中,这使得多个独立且安全虚拟化的服务器运行在一台计算机上。客户操作系统环境与宿主服务器分享同一个操作系统,例如,相同的系统内核被用来创建客户机环境。程序运行在被视为独立系统的客户机环境中。这种方式由FreeBSD jails首创;类似的例子包括Solaris Containers, OpenVZ, Linux-VServer, AIX Workload Partitions, Parallels Virtuozzo Containers, 以及 iCore Virtual Accounts。

    常见的虚拟机 

    名称作者主CPU目标CPU主系统目标系统许可
    Xen 英国剑桥大学IntelAMD x86,x86-64 x86,x86-64 NetBSD,Linux,Solaris Linux,Solaris,
    Windows XP & 2003 Server
    (需要3.0版和VanderpoolPacifica),
    九号项目FreeBSD
    GPL
    VMware Workstation 6.0 VMware x86,x86-64 x86,x86-64 Windows,Linux DOS,Windows,Linux,FreeBSD,
    Netware,Solaris,Darwin,虚拟设备
    私有
    VMware Server VMware x86,x86-64 x86,x86-64 Windows,Linux DOS,Windows,Linux,FreeBSD,
    Netware,Solaris,虚拟设备
    私有(免费)
    VMware Player2.0 VMware x86,x86-64 x86,x86-64 Windows,Linux DOS,Windows,Linux,FreeBSD,
    Netware,Solaris,Darwin,虚拟设备
    私有(免费)
    VMware Fusion VMware x86,Intel VT-x x86,x86-64 Mac OS X(Intel) Windows,Linux,Netware,Solaris 私有
    VMware ESXi Server VMware x86,x86-64 x86,x86-64 无:裸机安装(嵌入式) Windows,Red Hat,SuSE,Ubuntu,
    Netware,Solaris,FreeBSD
    私有
    VMware ESX Server VMware x86, x86-64 x86, x86-64 无:裸机安装 Windows,Red Hat,SuSE,Ubuntu,
    Netware,Solaris,FreeBSD
    私有
    Virtuozzo SWsoft x86,IA-64,x86-64 x86,IA-64,x86-64 Linux & Windows 各种Linux发行版;Windows 私有
    Virtual Server2005 R2 Microsoft Intel x86,x86-64 Intel x86 Windows 2003,XP Windows NT,2000,2003,
    Linux(Red Hat and SUSE)
    私有(免费)
    Virtual PC 2007 Microsoft x86,x86-64 x86 Windows Vista(商业版,企业版,旗舰版),
    XP Pro,XP Tablet PC版
    DOS,Windows,OS/2,
    Linux(Suse,Xubuntu),
    OpenSolaris(Belenix)
    私有(从2006年7月起免费)
    Virtual IronVirtual Iron 3.1 Virtual Iron软件公司(已被Oracle收购May 13, 2009) x86 VT-x,x86-64 AMD-V x86,x86-64 无:裸机执行 Windows,Red HatSuSE 完整的产品是私有的[3];几个组成部分是GPL v2[4]
    User Mode Linux Jeff Dike(其他开发者帮助) x86,x86-64,PowerPC x86,x86-64,PowerPC Linux Linux GPL v2
    Sun xVM Server 太阳计算机系统公司 x86-64,SPARC x86-64,SPARC 无:裸机执行 Windows XP & 2003 Server(仅x86-64),Linux,Solaris GPL v3
    SimNow AMD x86-64 x86-64 Linux(64位),Windows(64位) Linux,Windows(32位和64位) AMD公司专有
    QEMUqvm86模块) Paul Brook x86 x86 Linux,NetBSD,Windows 经常变化 GPL
    QEMUkqemu模块) Fabrice Bellard Intel x86,x86-64 Intel x86,x86-64 Linux,FreeBSD,OpenBSD,Solaris,Windows 经常变化[2] GPL/LGPL
    QEMU Fabrice Bellard(其他开发者帮助) x86,x86-64,IA-64,PowerPC,Alpha,SPARC 32 and 64,ARM,S/390,M68k x86,x86-64,ARM,SPARC 32 and 64,PowerPC,MIPS Windows,Linux,Mac OS X,Solaris,FreeBSD,OpenBSD,BeOS 经常变化[1] GPL/LGPL
    Proxmox VE Proxmox x86-64   无:裸机安装 Windows,Linux 免费、付费 都有
    PearPC Sebastian Biallas x86,x86-64,PowerPC PowerPC Windows,Linux,Mac OS X,NetBSD Mac OS X,Darwin,Linux GPL
    Parallels Workstation Parallels公司 x86,Intel VT-x x86 Windows,Linux Windows,Linux,FreeBSD,
    OS/2eComStation
    MS-DOS,Solaris
    私有
    Oracle VM 甲骨文公司 Intel x86,x86-64,Intel VT-x Intel x86,x86-64,Intel VT-x 无(裸机安装) Microsoft Windows
    Oracle Enterprise Linux
    Red Hat Enterprise Linux
    免费,商业
    Oracle VirtualBox 甲骨文公司 x86,x86-64,VT-x,AMD-V x86,(x86-64仅在VirtualBox 2及x86-64主机上) Windows,Linux,
    Mac OS X(Intel),
    Solaris, FreeBSD
    DOS,Windows,Linux,
    OS/2,FreeBSD,Solaris
    GPL v2;完整版本中的额外特性是专有的(免费供个人与教育机构使用和评价)
    OpenVZ 社区项目,SWsoft支持 Intel x86,x86-64,IA-64,PowerPC64,SPARC/64 Intel x86,x86-64,IA-64,PowerPC64,SPARC/64 Linux 各种Linux发行版 GPL
    Logical Domains 太阳计算机系统公司 UltraSPARC T1UltraSPARC T2 兼容 Solaris Solaris,Linux,FreeBSD ?
    KVM Red Hat Intel/AMD处理器与x86虚拟化 x86/x86-64 Linux Linux,Windows GPL v2
    Hyper-V 微软 x86-64+硬件辅助虚拟(AMD-VIntel VT x86-64x86 Windows Server 2008Windows Server 2012Windows 8 Windows 2000Windows 2003
    Windows 2008Windows XP
    Windows VistaLinux
    私有(免费)
    Hercules Roger Bowler 任何 z(IBM大型计算机) Linux,Mac OS X,Solaris,Windows OS/360,OS/390,z/OS,z/Linux QPL
    DOSEMU 社区项目 x86,x86-64 x86 Linux DOS GPL v2
    DOSBox Peter Veenstra和Sjoerd与社区帮助 任何 x86 Linux,Windows,Mac OS Classic,Mac OS X,
    BeOS,FreeBSD,OpenBSD,Solaris,QNX
    IRIX,MorphOS,AmigaOS
    DOS GPL
    CHARON Stromasys x86,x86-64 DEC PDP11,Alpha, VAX, SUN SPARC,HP3000 WindowsLinux, Solaris Solaris/SunOS,Tru64,
    OpenVMS,Ultrix
    私有
    Bochs Kevin Lawton 任何 x86x86-64 WindowsWindows MobileLinuxIRIX
    AIXFreeBSDOpenBSDBeOSMac OS XAndroid
    DOS,Windows,xBSD,Linux LGPL
    名称作者主CPU目标CPU主系统目标系统许可
  • 相关阅读:
    泛型约束new()的使用
    控制反转-依赖注入
    微服务的六个基本点
    java反编译工具
    Idea中一些常用设置
    JSP内置对象(9个常用的内置对象)
    输出输入流,的应用

    容器集合类
    容器与集合
  • 原文地址:https://www.cnblogs.com/zy09/p/10775278.html
Copyright © 2011-2022 走看看