I'm interested in programming an application-level virtualization solution. More specifically, I need a way to completely isolate the running application from the host OS. I don't necessarily need or want a full virtual machine, but I need the isolation one provides.
From my understanding on the matter, if I can isolate the application's process space, and provide it with a minimal hypervisor which provides the hypercalls it needs, this should be sufficient isolation. Am I completely wrong on this? Is there a way to only isolate the process space without having to virtualize everything else? Also, are there any resources I could use to kick start my 开发者_开发问答development?
Also, would it be wise to look into how dynarec emulators work since they essentially do what I need, but would this provide enough isolation?
Thanks in advance.
Can't you just use Microsoft App-V? Or do you need to write something yourself?
We have an in-house solution that provides process-level virtualization by virtualizing the registry and environment variables.
A simple solution is to leverage AppInit_DLLs to load a dll into new processes and start processing there (say assess some state or configuration, and set environment variables, etc). Unfortunately our registry solution uses a custom app compat db file Microsoft provided years back that nobody has any history with now(!)... but I would recommend googling 'microsoft detours' and investigating that route.
You can also virtualize .Net GAC by similar means and setting a custom assembly provider for the .Net host.
精彩评论