Tuesday, March 09, 2010

The girls give it up for the VMWare Playa

After raging at Windows Virtual PC for not recognizing USB devices (and consequently halting my Android development), I threw away my Windows XP virtualized development environment and decided to start again completely anew.

I have Ubuntu 9.10 loaded into VMWare Player 3.0 and I've never been happier. Considering I migrated from MS Virtual PC, this might seem obvious, but this is actually nicer than Sun's Virtual Box as well.

Having only had a cursory glance at the VMWare architecture, I have no idea how the player runs so quickly for loading and operating VMs. The 'suspend VM' functionality is fast as well, which is particularly useful when you want to stop working so you can get in a round of Bad Company 2. In fact, after long periods of inactivity, the VM's real memory also seems to swap into virtual memory so efficiently that I've actually played rounds of Call of Duty (less disk intensive than BC2) and didn't even notice. In addition (and this was a REAL pet peeve of mine) VMWare player properly handles resizing of the window of the VM. VPC used to give me scrollbars within the desktop and that was infuriating.

Of course a lot has to do with the fact I've got a Ubuntu install in there instead of my old Windoze XP installation. Having only 2GB of memory on this aging machine, it is nice allocating the same amount of memory to the VM and getting significantly better performance.

One extremely cool feature exclusive to VMWare Player is Unity. You can run both the VM's application and the Host OS's applications side by side so it appears that they are in the same Window Manager Space. This removes some of the artificial "I'm working in windows now" transitions that happen and allow you to just use the applications more naturally. By activating the 'Shared Folders' option, you can save the files so that it can be shared between the host and the guest.

And I know what you're thinking. Why don't you just modify your existing OS to support the functions you need rather than having one OS and an OS stuck inside a hefty VM?
  1. I like to keep my development environments inside VMs. This way, hardware upgrades, hard-disk explosions, my tendency to rage-format among other things don't force me to reinstall EVERYTHING again.
  2. I hate Wine/emulators for running Windows apps in Linux and I dislike cygwin for getting a command shell inside Windows. Use the real deal man!
Some minor niggling points:
  • Oddly enough, I still get clock drift inside Ubuntu just like I did inside my XP installation. I've rectified this by installing NTP and configuring Ubuntu to connect to the CSIRO public NTP.
  • One unusual thing I cannot seem to fix is ubuntu seemingly either releasing the network connection or dropping CPU cycles down dramatically on a VM when you are out of focus from the VM. So for example, if I'm downloading a large file in firefox inside the VM, if I change focus away from the VM, it ends up slowing and terminating that download after a few seconds.
That said, these are minor quibbles and my Ubuntu box is often open. I'm guessing in future, it'll only get better again. Maybe my windows 7 and Ubuntu will run side by side in a hypervisor next. Who knows...

1 comment:

Foobear said...

All recent ubuntu installs have a vmware kernel, which is optimised for use with VMWare. I believe unless you got the VMWare version of XP (I don't even know if this exists, but I think there's a virtual box version) you would have a bad experience with XP on either virtual box or vmware.

I wonder how it's better than VirtualBox. I've used both VMWare Player and VirtualBox on a linux host and VB works a lot better.