VMware

历史

1998年，黛安·格林、孟德尔·罗森布拉姆、斯科特·迪瓦恩、王艾伦和爱德华•比尼翁创立了VMware。格林和罗森布拉姆在加州大学伯克利分校首次见面。爱德华•比尼翁担任VMware的首席架构师和CTO，直至2005年前去为Nuova系统服务（现在思科的一部分）。
2019年8月22日VMware分别以21亿美元和27亿美元收购网络安全公司Carbon Black和Pivotal

VMware Workstation

VMware Workstation是VMware公司销售的商业软件产品之一。该工作站软件包含一个用于英特尔x86兼容计算机的虚拟机套装，其允许用户同时创建和运行多个x86虚拟机。每个虚拟机可以运行其安装的操作系统，如（但不限于）Windows、Linux、BSD变生版本。用简单术语来描述就是，VMware Workstation允许一台真实的计算机在一个操作系统中同时打开并运行数个操作系统，其它VMware产品帮助在多个宿主计算机之间管理或移植VMware虚拟机。免费版本为VMware Workstation Player。
VMware官方网站提供多个经过预先配置的操作系统和应用程序的免费虚拟盘映像，这之中有不少是社会募捐的。

VMware Fusion

VMware Fusion是VMware针对Mac计算机推出的一款虚拟机软件。

VMware Server

2006年2月6日，VMware发布了VMware Server产品的1.0版本，取代原先的VMware GSX Server。VMware服务器可以创建、编辑、运行虚拟机。除了具有可以运行由其它VMware产品创建的虚拟机的功能外，它还可运行由微软Virtual PC产品创建的虚拟机。VMware将VMware服务器产品作为可免费获得的产品，这是因为希望用户们最终能选择升级至VMware ESX服务器产品。
VMware不正式支持运行于Windows XP或专业版Windows 2000上的VMware服务器产品，这不同于VMware工作站产品。然而，已有用户报告在Windows XP专业版下成功安装并提供VMware服务器功能的例子（但有个别限制要求）。VMware提供一个受支持的宿主操作系统的清单。
2010年1月，VMware宣布2011年6月30日结束对VMware Server的支持。

VMware ESX服务器

ESX服务器使用了派生自史丹佛大学开发的SimOS核心，该核心在硬件初始化后替换原引导的Linux内核。ESX服务器2.x的服务控制平台（亦称为“COS”或“vmnix”）是基于Red Hat Linux 7.2的。ESX服务器3.0的服务控制平台源自一个Red Hat Linux 7.2的经过修改的版本——它是作为一个用来加载vmkernel的引导加载程序运行的，并提供了各种管理界面（如CLI、浏览器界面MUI、远程控制台）。该虚拟化系统管理的方式提供了更少的管理开销以及更好的控制和为虚拟机分配资源时能达到的粒度（指精细的程度）；这也增加了安全性，从而使VMware ESX成为一种企业级产品。

VMware ESXi服务器

Vmware ESXi是Vmware vSphere 4.1版本开始提供的服务器系统。相比Vmware ESX，ESXi剔除了基于Red Hat Linux的服务控制平台，使VMware代理可以直接在VMkernel上运行。由于脱离对基于Linux的控制台操作系统的依赖，整个软件平台的尺寸由ESX的约2GB缩减至不到150MB，并消除了底层Linux系统可能带来的安全性和稳定性隐患，而获得授权的第三方模块也可在VMkernel上运行。ESXi同时使用了新的管理控制台PowerCLI。
从Vmware vSphere 5.0版本开始，Vmware不再提供ESX服务器产品，ESXi成为Vmware产品线中唯一一款服务器平台产品。

VMware vSphere

VMware vSphere，原称为VMware Infrastructure，是一整套虚拟化应用产品，包含VMware ESX Server 4、VMware Virtual Center 4.0、最高支持8路的虚拟对称多处理器（Virtual SMP）和VMotion，以及例如VMware HA、VMware DRS和VMware统一备份服务等分布式服务。VMware国际公司在2009年4月发布了VMware vSphere 4。该套装提供六个档次的组合方案

描述

运行VMware工作站进程的计算机和操作系统被称为宿主机（host）。在一个虚拟机中运行的操作系统实例被称为虚拟机客户（guest）。类似仿真器，VMware工作站为客户操作系统提供完全虚拟化的硬件集–例如，客户机只会检测到一个AMD PCnet网络适配器，而和宿主机上真正安装的网络适配器的制造和型号无关。VMware在虚拟环境中将所有设备虚拟化，包括视频适配器、网络适配器、以及硬盘适配器。它还为USB、串行和并行设备提供传递驱动程序（pass-through drivers，指将对这些虚拟设备的访问传递到真实物理设备的驱动程序）。
由于与宿主机的真实硬件无关，所有虚拟机客户使用相同的硬件驱动程序，虚拟机实例是对各种计算机高度可移植的。例如，一个运行中的虚拟机可以被暂停下来，并被拷贝到另外一台作为宿主的真实计算机上，然后从其被暂停的确切位置恢复运行。借助VMware的VirtualCenter（虚拟机中心）产品中一种称为Vmotion的新功能，甚至可以在移动一个虚拟机时不必将其暂停–就是说现在即使在向不同的宿主机上移植虚拟机时，这些虚拟机仍然可以保持运行。

实现

传统的模拟器，如Bochs，透过调用宿主机上的软件子程序逐条运行每一道客户机的CPU指令，以此模拟客户机的微处理器。这种抽象化的方法，可使宿主机模拟出不同于自身微处理器的环境，让客户机运行。然而这类模拟器运行得非常慢。
一种更有效率的方式是在初次执行客户机指令时动态地重新编译那些机器指令块，以后用到这些指令时直接执行经过翻译的代码。这种方式是由微软的Virtual PC for Mac OS X产品、以及Fabrice Bellard的QEMU产品（不含KVM附加模块）所使用的方式。
和Virtual PC for Windows产品及带有kqemu附加模块的QEMU产品一样，VMware工作站使用了一种更加优化的方式，在尽可能的情况下直接运行程序代码，在x86中这是执行用户模式和虚拟8086模式的程序代码的情况而言。当不能直接运行程序代码时，这几种软件产品会动态地重写代码，这是在执行内核级别和实模式的程序代码的情况而言。在VMware中，经过翻译的代码是被放入内存的空闲区域中的，一般是在地址空间的尾部，这个区域可以随即被保护起来并通过分段机制标记为不可见的。由于这些原因，VMware比仿真器显著地快，能以超过在真实硬件上运行速度的80%的速度运行虚拟的客户操作系统。VMware对在运行高强度计算的应用程序时只有小到3%-5%的性能损耗而自豪。
缺点是客户操作系统的指令代码必须和宿主机的CPU兼容。因此不同于仿真器，VMware工作站不能用来在一个英特尔x86处理器上运行Mac/PPC软件。另一个缺点是通常不可能有效率地嵌套使用VMware虚拟机（指在虚拟机客户中运行另一个VMware虚拟机，即以一个虚拟机客户作为宿主机再运行VMware）。最后，尽管VMware虚拟机是运行于用户模式下的，VMware工作站宿主程序本身必须在宿主操作系统下安装多种驱动程序，尤其是为了能动态切换GDT和IDT表。
最后一点说明：经常有人错误地认为象VMware或Virtual PC这类虚拟机产品是替换不良指令或简单地在用户模式下运行内核代码。这两种方式都不能用于x86。替换指令的意思可以这么理解：假设要执行指令试图读取该指令本身的代码，它会吃惊地发现没有找到预期的内容。因为实际上不可能在允许指令正常执行的同时又保护其代码不被读取，要实现指令替换是复杂的。在用户模式下不加改变地运行代码同样也是不可能的，这是因为在用户模式下，大部分仅读取机器状态的指令不产生异常、也不能正确反映程序的真实状态，此外某些指令的行为会悄悄地有所变化。重写指令总是必需的；必要时会模拟初始位置的当前指令指针，硬编码的断点也特别地会被重新映射。

特点

除了为到网络适配器、CD-ROM读盘机、硬盘驱动器、以及USB设备的访问提供桥梁外，VMware工作站还提供模拟某些硬件的能力。例如，能将一个ISO文件作为一张CDROM安装在系统上、也能将.vmdk文件作为硬盘驱动器安装、以及可将网络适配器驱动程序配置为通过宿主计算机使用网络地址转换（NAT）来访问网络，而非使用与宿主机桥接的方式（该方式为：宿主网络上的每个客户操作系统必须分配一个IP地址）。
VMware工作站还允许无须将LiveCD烧录到真正的光盘上、也无须重启计算机，而对这些LiveCD进行测试。还可以捕获在VMware工作站下运行的某个操作系统的快照。每个快照可以用来在任何时候将虚拟机回滚到保存的状态。这种多快照功能使VMware工作站成为销售人员演示复杂的软件产品、开发人员创建虚拟开发和测试环境的非常流行的工具。VMware工作站包含有将多个虚拟机指定为编队的能力，编队可以作为一个物体来开机、关机、挂起和恢复—这使VMware工作站在用于测试客户端-服务器环境时特别有用。
VMware公司新的企业级服务器和工具产品，正在使“将旧的生产服务器移植到虚拟机”的做法开始流行，这种做法能几乎不费力地将多个旧式服务器集装到一个单个的新宿主计算机中。