

|
VMware Inc. is currently a wholly owned subsidiary of EMC Corporation.
VMware Workstation is one of the commercial software products sold by VMware Inc. The Workstation software consists of a virtual machine suite for Intel x86-compatible computers which allows the creation and execution of multiple x86 virtual computers simultaneously. Each virtual machine instance can execute its own guest operating system, such as (but not limited to) Windows, Linux, BSD variants. In simple terms, VMware Workstation allows one physical machine to run numerous operating systems simultaneously. Other VMware products help manage or migrate VMware virtual machines across multiple host machines.
VMware Workstation has grown in popularity due to the large number of servers proliferating in the corporate setting. Transferring workstations and servers to the virtual machine environment allows for easier management, a reduction in footprint and greater redundancy.
Contents |
The computer and operating system instance that executes the VMware Workstation process is referred to as the host machine. Instances of operating systems running inside a virtual machine are referred to as guest virtual machines. Like an emulator, VMware Workstation provides a completely virtualized set of hardware to the guest operating system — for example, irrespective of make and model of the physical network adapter, the guest machine will see an AMD PCnet network adapter. VMware virtualizes all devices within the virtual environment, including the video adapter, network adapter, and hard disk adapters. It also provides pass-through drivers for USB, serial, and parallel devices.
Because all guest virtual machines use the same hardware drivers regardless of the actual hardware on the host computer, virtual machine instances are highly portable between computers. For example, a running virtual machine can be paused, copied to another physical computer, and unpaused to resume execution exactly where it left off. With Vmotion, a new feature in VMware's VirtualCenter, it is no longer even necessary to pause a virtual machine while moving it — virtual machines can now be kept running even while they migrate to different hosts.
VMWare promises to introduce server consolidation to the data center.
Conventional emulators like Bochs emulate the microprocessor, executing each guest CPU instruction by calling a software subroutine on the host machine that simulates the function of that CPU instruction. This abstraction allows the guest machine to run on host machines with a different type of microprocessor, but is also very slow.
An improvement on this approach is dynamically recompiling blocks of machine instructions the first time they are executed, and later using 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 when this is 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: it is often erroneously believed 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.
Besides bridging to network adapters, CD-ROM readers, hard disk drives, and USB devices, VMware Workstation also provides the ability to simulate some hardware. For example, an ISO file can be mounted as a CDROM, .vmdk files can be mounted as hard disks, and the network adapter driver can be configured to use network address translation through the host machine rather than bridging through it (which would require an IP address for each guest OS on the host network).
VMware Workstation also allows LiveCDs to be tested 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. are making it popular to migrate older production servers into virtual machines so that many legacy servers can be consolidated onto a single new host machine with little effort.
Older versions of VMware seem unable to run newer versions of Linux (kernel 2.4 series seem to panic when run on VMware 2.x, and 2.6 series kernels cause VMware 3.x to give a protection error). However, VMware Workstation is now up to version 5.0 which supports these newer operating systems and kernels. However, for the latest version(s) of the 2.6.x kernel, a patch is required — even when using VMware Workstation 5.0. This patch is freely available as vmware-any-any-update9x (at this time it is update96). You can find this patch at http://ftp.cvut.cz/vmware/
Additionally, when using VMware Workstation in an environment where MAC addresses are used 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.