SystemGuard provides the most extensive virtualization on the market. In addition to virtualizing Windows Services, it virtualizes per user, per application instance (I emphasis this bit! It is not a computer based distribution methodology!), every critical application component including the Registry, file system, DLLs, COM/IPC, .INI files, process environment and fonts:
- Registry: SystemGuard creates a virtual Registry for each application. Registry settings created by one application cannot be seen by other applications — including Regedit. Rather than copying the entire Registry, SystemGuard’s virtual registry utilizes an “overlay” method — items in the real registry may be read by the application as long as a virtual copy of that item is not available. All application writes to the Registry are contained within the virtual Registry.
- File System: SystemGuard also handles requests made by applications to files in specific directories by redirecting the requests. For example, if an application looks for a file located in a specific directory on the local C drive, SystemGuard can redirect any requests to the corresponding directory inside of its virtual file system. Dynamic Link Libraries (DLLs) specifically needed by the application are made available within SystemGuard, avoiding conflicts with different versions of the same DLL that may be installed locally. These components are shared and tracked inside of the Virtual File System.
- COM/IPC: SystemGuard enables programs to redirect communication requests through services such as COM/ DCOM or IPC methods such as Named Pipes. This alleviates versioning problems and other conflicts at these interfaces.
- .INI: SystemGuard allows each application or instance to have private settings within virtual copies of standard Windows .ini files.
- Process Environment: SystemGuard stores private environment variables — including paths, port values and addresses.
- Fonts: Installation of fonts can consume valuable resources as they are done on a machine-wide basis. SystemGuard can make fonts available individually on a per-application basis.