Featured Resource:

line

Newsletter

Email Address:


line

Ask the Expert

Have a question for our resident expert? Email your questions to Bob or post in the Forum.

« Don’t Buy Windows Vista | Main | New VMware PCI Ethernet Driver »

Vista Application Virtualization

Application Virtualization is quickly becoming a very hot topic. By running applications virtually, you eliminate many security problems, conflict issues, terminal services compatibility pains and save the baseline installation modified by the actual installation of the software. All of this comes down to less problems and complexities in the installation of software across the board. It promises quite a lot and while it is mostly seen in corporate environments today, there are a number of solutions for software vendors to provide this functionality in their own products. So when I heard early on that Windows Vista would include virtualization technology, I was very curious to see how it would be implemented.

While Vista does not actually run applications virtually, what it does do is help applications to run in a secure environment by virtualizing the file and registry entries necessary to let applications “think” they can write where they please. As in Windows XP, standard users (those without admin privileges) cannot write to “Program Files”, or “Windows”, or “System32” or a great number of other places an application may attempt to write. Same with the registry—users are prohibited from modifying areas of the system that may affect other users so they can modify only the HKEY_CURRENT_USER hive of the registry. While they should not, many applications still write to these restricted areas as a matter of how they operate. Installation requires such access, but ideally the user of the application should not.

To deal with this, most users just run as administrators and avoid any such problems (but at the same time make their systems far more vulnerable to malicious code). In a corporate environment, administrators and engineers must systematically “unlock” file and registry areas required for proper functionality of the software. This can be a time-consuming and tedious process.

Vista’s implementation of virtualization comes the rescue here by intelligently watching for failed attempts to write to restricted areas of the system and then dynamically virtualizing these file and registry areas so that they may be modified by the restricted user without affecting others. These virtualized elements of the file and registry are then stored in the users profile for future use. As far as the application is concerned, the users has access to these areas and functions as designed while Vista does the work of ensuring that such changes that would normally affect all users of a system actually affect just the current user.

Want more technical details of how this works? Please comment on this article and let me know!

Comments

Vista automatically virtualizes certain files which contain classes subclassed from classes in the VFP 8 runtime library because of the way that the base classes call the Windows API functions. No actual writes are performed on these files. They contain compiled VFP classes.

I am trying to find out if when I update these class library files during an update install of my application, will the files that have been virtualized be updated from the new files? Do you know anything about this?

Thanks.

Florence

Hi Florence,

This is a good question. The quick answer is Yes, so long as you respect the Vista guidelines re: User modifiable files.

Did you take a look at these documents:
- The Windows Vista Developer Story: Application Compatibility Cookbook (http://msdn2.microsoft.com/en-us/library/aa480152.aspx)
- Developer Best Practices and Guidelines for Applications in a Least Privileged Environment (http://msdn2.microsoft.com/en-us/library/aa480150.aspx#accprotvista_topic4)
They give you a lot information on this very topic.

Have you thought of upgrading to Fox Pro 9 SP1. It runs well on Vista now. Microsoft is working on SP2 that should be out in a few months.

Hope this helps!

Post a comment

(All comments are approved by site leader before appearing here. Thanks for commenting!)

Library Resources

line
line

Bob Kelly's Bio:

Bob Kelly is the founder of AppDeploy.com — a resource focused on desktop management products and practices. He is author of the Start to Finish Guide to Scripting with KiXtart and The Definitive Guide to Windows Desktop Administration. He is also president and co-founder of iTripoli, Inc. who provide AdminScriptEditor.com, home to an integrated suite of scripting tools and a shared library of scripts and language help. Not enough? For more on Bob click here.