VMware Inc., a wholly-owned subsidiary of EMC Corporation, supplies much of the virtualization software available for x86-compatible computers, including VMware Workstation and the freeware VMware Server and VMware Player. The company has its headquarters in Palo Alto, California, United States. VMware software runs on Windows and Linux.
The corporate name plays on the traditional interpretation of "VM" in computing circles as "virtual machine".
VMware Workstation has grown in popularity due to the large number of servers proliferating in the corporate market. Transferring workstations and servers to virtual-machine environments allows for easier systems management, a reduction in physical footprint and reduced need for hardware.
Limitations (as of June 2006):
VMware released version 1.0 of VMware Server on 2006-07-12 VMware Server can create, edit, and play virtual machines. In addition to the ability to run virtual machines created by other VMware products, it can also run virtual machines created by Microsoft Virtual PC. VMware Server is being freely distributed in the hope that users will eventually upgrade to VMware ESX Server. *
Once all guest virtual machines use the same hardware drivers (regardless of the actual hardware on the host computer), virtual machine instances become highly portable between computers. For example, an operator running a virtual machine can pause it, copy it to another physical computer, and unpause it to resume execution exactly where it left off. With VMotion, a new feature in VMware's VirtualCenter, an administrator no longer even needs to pause virtual machines running on ESX servers while moving them — virtual machines can now continue running even while they migrate to different hosts.
VMware has two main products for the data center: VMware ESX and VMware GSX. Currently VMware is running a beta program for the successor of GSX called VMware Server. VMware ESX server is considered to be their flagship product for running enterprise applications in the datacenter. ESX allows for a 60 to 80% increase in x86 utilization since it is loaded on at the bare metal. VMware GSX and now their beta product VMware Server are both considered data center applications, but rely on a base operating system to be loaded on. As such there is additional overhead when running these two products. The advantage that GSX, and Server, have over ESX is the support for a wider array of devices such as USB connectivity and certain PCI devices. (See also VMware ACE.)
Dynamic recompilation offers an improvement on this approach: it dynamically compiles blocks of machine instructions the first time they are executed, and later uses the translated code directly when the code runs a second time. This approach is taken by Microsoft's Virtual PC for Mac OS X.
VMware Workstation takes an even more optimized approach and uses the CPU to run code directly whenever possible. This is the case for user mode and virtual 8086 mode code on x86. When direct execution is not possible, code is rewritten dynamically. This is the case for kernel-level and real mode code. In VMware's case, the translated code is put into a spare area of memory, typically at the end of the address space, which can then be protected and made invisible using the segmentation mechanisms. For these reasons, VMware is dramatically faster than emulators, running at more than 80% of the speed that the virtual guest OS would run on hardware. VMware boasts an overhead as small as 3%-6% for computationally intensive applications.
Although VMware virtual machines run in user mode, VMware Workstation itself requires installing various drivers in the host operating system, notably in order to dynamically switch the GDT and the IDT tables.
One final note: many people erroneously believe that virtualization products like VMware or Virtual PC replace offending instructions or simply run kernel code in user mode. Neither of these approaches can work on x86. Replacing instructions means that if the code reads itself it will be surprised not to find the expected content; it is not possible to protect code against reading and at the same time allow normal execution; replacing in place is complicated. Running the code unmodified in user mode is not possible either, as most instructions which just read the machine state do not cause an exception and will betray the real state of the program, and certain instructions silently change behavior in user mode. A rewrite is always necessary; a simulation of the current program counter in the original location is performed when necessary and notably hardware code breakpoints are remapped.
VMware Workstation also allows the testing of LiveCDs without first burning them onto physical discs or rebooting the computer. You can also take snapshots of an OS running under VMware Workstation. Each snapshot allows you to roll back the virtual machine to the saved status at any time. The Multiple snapshots feature makes VMware Workstation very popular as a tool for sales people to demonstrate complex software products, and for developers to create virtual development and test environments. VMware Workstation includes the ability to designate multiple virtual machines as a team, which can then be powered on and off, suspended and resumed as one object—making it particularly useful for testing client-server environments.
New enterprise-grade servers and tools from VMware, Inc. have started to popularise the migration of older production servers into virtual machines so that many legacy servers can be consolidated onto a single new host machine with little effort.
The VMware Tools package enhances graphics and mouse performance in virtual machines. It adds various drivers and utilities which support different capabilities in different guest operating systems: features like shared folders, clock-synchronisation and plug-and-play devices.
Additionally, when using VMware Workstation in an environment using Media Access Control (MAC) addresses as unique identifiers (UID), it is advisable (and often required) to manually configure the MAC address for each virtual machine to ensure each is actually unique. One example of such an environment is one in which MAC security is enabled on switches and another example is an environment in which Altiris products are used (if configured to use the MAC address as the UID). If one finds oneself in such a situation, simply disable all networks/adapters other than bridged and edit each virtual machine's .vmx file to change "ethernet0.address" to a unique MAC and "ethernet0.addresstype" to "static". Make sure to also remove the "ethernet0.generatedaddress" entry entirely.
VMware | VMware | VMware | VMWare | VMware | VMware | VMware | VMware | VMware | VMware | VMware