VMware

Open Source Overview

VMware has a long history of support for open source software in its products. In addition to collaborating with the open source community, VMware works closely with major Linux vendors to ensure high quality support for Linux guest operating systems running on VMware hypervisors. As an active participant in the open source community VMware has open sourced the VMware Tools as the Open Virtual Machine Tools project, contributed the VMI (Virtual Machine Interface) paravirtualization code under the GPL, collaborated with the Linux kernel community and others in the development of paravirt-ops, and sponsored OSDL's DCL F2F.

Open Virtual Machine Tools

The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools. They are a set of guest operating system virtualization components that enhance performance and user experience of virtual machines. As virtualization technology rapidly becomes mainstream, each virtualization solution provider implements their own set of tools and utilities to supplement the guest virtual machine. However, most of the implementations are proprietary and are tied to a specific virtualization platform.

With the Open Virtual Machine Tools project, we are hoping to solve this and other related problems. The tools are currently composed of kernel modules for Linux and user-space programs for all VMware-supported Unix-like guest operating systems. They provide several useful functions such as:

  • File transfer between a host and guest
  • Improved memory management and network performance under virtualization
  • General mechanisms and protocols for communication between host and guests and from guest to guest

We are excited about starting this open source project and we think it opens up a lot of opportunities.

  • With the source code readily available, users of VMware products today (and other virtualization platforms too, in the future) will get these tools bundled and delivered through their distribution-specific package manager. This should provide a seamless installation/upgrade experience and ease the burden on sysadmins.
  • If you are looking to implement virtualization-enabled applications, you can use the source as an excellent reference.
  • If you are looking to port the tools to other operating systems (or other hypervisors), we would love to hear your ideas and help you with the development.

We are working hard to move our development environment over to sourceforge.net and hope to do so in the near future.

In the meantime,

  • Grab our latest snapshot release.
  • Read through the documentation.
  • Interact with the developers using the mailing lists.
  • Report bugs.
  • Spread the word.

For more details, visit the project website at http://open-vm-tools.sourceforge.net/


The VMware Infrastructure Perl Toolkit

VMware Infrastructure (VI) is a suite of software that includes VMware ESX and VirtualCenter Server. It also includes the VMware Infrastructure (VI) API, a web service that enables the development of third party applications and scripts that integrate with VI.

Software developers who are comfortable programming in a programming language such as Java with a SOAP class library such as Apache Axis can use the VMware Infrastructure SDK to access the VI API directly. 

In order to address the needs of sys admins and users familiar with Perl, VMware created a Perl scripting API as a way to eliminate the need for developers to use SOAP or understand the low level details of the API. The alpha version of the VMware Infrastructure (VI) Perl Toolkit was made available on SourceForge in September 2006. The released product is now available as a free download from in several forms, including:

  • An installer for Windows an installer for Linux
  • Virtual appliances (pre-built virtual machines that include Debian Linux along with the VI Perl Toolkit)
  • Complete source code that can be built on any platform that supports Perl.

The VI Perl Toolkit includes a number of utility applications and Perl scripts that can be used to automate frequent virtual machine management operations. Users can use these scripts as provided, modify existing scripts and creation new scripts. VMware is creating a script repository where users will be encouraged to share scripts that they've created with the VI Perl Toolkit.

Review Board

Review Board is a web-based code review system developed initially for use at VMware in order to solve our code review scalability problem. For years, all code reviews were done over e-mail, and while this worked for a time it became much more difficult as the number of developers increased.

After a time, Christian Hammond and David Trowbridge began to develop Review Board in their spare time in order to lighten the burden on developers and to improve code review quality. We decided to release this as open source under the MIT license.

There is now an active developer community around the project and Review Board is being used at over 15 companies world-wide, as well as several open source projects.

Review Board contains a number of useful features, including:

  • Works out of the box with CVS, Subversion, Perforce, Mercurial and Git, with development of other source control systems in the works.
  • Includes a powerful diff viewer with syntax highlighting for several known file formats; trailing whitespace highlighting, allowing developers to see when they've accidentally added too much whitespace to a line; expanding/collapsing of non-relevant chunks of the diff in order to ease reviews; interline diffs, showing what exactly changed in a line; and inline commenting, giving reviewers the ability to quickly discuss any line in the change.
  • Works with multiple source code repositories, allowing for a single install in a company with several internal and external source code trees.
  • Contextual discussions showing the lines of code the reviewer is referring to and any replies below that.
  • A dashboard showing what review requests are pending and whether any new updates have been made.
  • A full API, allowing third party applications and scripts to be written that can integrate with Review Board.
  • Command line tools for posting a review request based on a set of changes.
  • Easter eggs. Because software should be fun.

There are many other features and new ones are being added all the
time. The code is written in Python and uses Django as a base, making it easy for people to contribute.

Libview

libview, or VMware's Incredibly Exciting Widgets, is a collection of open source GTK+ widgets developed for use in the Linux Workstation and Player products. Originally they were closed source and part of Workstation, but we realized they had usefulness outside our products and decided to give back to the open source community.

All development takes place in the open on SourceForge, as opposed to being developed in our tree and pushed out to a public repository. Releases are made any time we have something new to contribute.

The widget collection consists of over 20 useful widgets and utility classes. These include a drop-down drawer for toolbars in a fullscreen application, a flexible and natural feeling multi-field entry widget, and decorational widgets designed to improve the look of an application in different themes, amongst many others.

libview is written in a mix of C and C++ and is available under the MIT license.

XOrg Video and Mouse Drivers

Although it's possible to interact with a VM running X11 using the standard mouse and VESA video drivers, it doesn't result in the greatest user experience - screen updates are slow and the mouse is hard to use due to those slow updates and the fact that both the host and guest are applying mouse accelerations.

To solve these problems, we have written special drivers that are optimized for our virtual hardware, and can consequently offer better performance and additional features. For example - the video driver allows arbitrary screen resizing and multihead support while the mouse driver supports host cursors, absolute mode input, and automatic ungrab when the cursor moves to the edge of the guest screen.

The video driver was one of the first pieces of software ever released as open source by VMware - back in 2002, and as a result, it is automatically present in, and usually auto-selected by, any recent (or not so recent) Linux distro. Having the video driver already selected on a fresh install, or even in the installer itself, greatly enhances the initial user experience.

The mouse driver, on the other hand, is one of our more recent open source releases - made at the beginning of 2006. As a result, although it is available on all recent distros, it is not currently auto-selected at installation time; however, we're pleased to be able to say that Ubuntu 7.10 (Gutsy Gibbon)will be the first, and you can see this in action in the most recent Tribe-5 preview.

Although, we've specifically mentioned Linux so far, these drivers build, and are included with, other x86 and x86_64 operating systems, including Solaris/OpenSolaris and the various BSDs.

All development of these two drivers is done directly in XOrg's git repository: