Entrepreneur, investor and Open Source pioneer Brian Berliner (whose blog is a must-subscribe, by the way) discovered that not all applications run on virtual machines. After winning a Posit Science Brain Fitness Program Classic, Brian found out that besides having an unnecessary long name, the program doesn’t run on VMware Fusion, which he installed on his Mac computer.
Anyone have a good answer to his question about why some developers forbid running apps on virtual machines? What’s the difference anyway?
Update: Brian received a comment from a Posit Science rep who lets us know the program runs under Boot Camp and Parallels, and that they’re expecting to release a Mac version by the end of the year.
Excellent example of how companies should treat customers who use blog and social networks to voice their opinions!
Also, check out the comment from Joe on this post, who gave a lengthy and most likely completely correct answer to the technical side of the matter.
Joe says
This has to do this the requirements that the Brain Fitness program places on the CPU as well as other system devices. Because Brain Fitness relies on extraordinarily tight response times virtualization is a difficult fit. The whole concept of virtualizing the CPU works on the premise that standard user applications and even most operating systems have the ability to wait. Keep in mind this is not a long wait we are talking about milliseconds or less (for the most part imperceptible to the average user or workload). In the case of Brain Fitness and other highly tuned applications, other examples are real-time operating systems, or media applications that are used to align hi-def audio (Video is typically not as finicky because the frame rate that we are used to seeing with out eyes is significantly slower then the wait times associated), as well as other time sensitive applications.
Given the advances in CPU speeds as well as well as hypervisors there is a chance that you could run the app without issue, but it is harder for Posit science to test and guarantee… not to mention the actual results could be inaccurate to to improper time keeping (one week you get a report that you are shedding decades off your brain age, the next week you have become a vegetable). If you really want to try you can do some Google searchs on how to install VMware inside a virtual machine… I have not tried doing this with Brain Fitness, but by removing a few registry entries you can get it to work with VMware… however, at this point in time the performance is subpar to run virtualization inside virtualization.
As virtualization solutions mature there may be a solution to this problem. The answer is to pass through a physical device to a specific virtual machine. The CPU is in most cases passed through already, however, there is still the ability for the Host OS (in the case of OS X) to yank the CPU control back from the VM whenever something more important needs to occur. In addition the audio devices in Fusion are a shared resource with the guest as well. To fix this issue there would need to be a mode that would allow the VM to be given primary control and ownership of the devices, thereby binding them to the virtual machine. This would effectively render the Host OS a slave to the guest, which gets tricky. THis works better in the “Native” virtualization model (like VMware ESX Server) because there is no general purpose Host OS, jst a thin hypervisor.
As an alternative there is the possibility that VMware and Posit science could work together to create an application that would be “para-virtualized” in other words virtualization aware… however, at this point it would likely take less effort for Posit science to port the application to OS X, or you could just try Boot Camp.