Написание решения для виртуализации на уровне приложений - PullRequest
1 голос
/ 29 апреля 2010

Я заинтересован в программировании решения для виртуализации на уровне приложений. Более конкретно, мне нужен способ полностью изолировать работающее приложение от хост-ОС. Мне не обязательно нужна или нужна полная виртуальная машина, но мне нужна изоляция, которую она обеспечивает.

Исходя из моего понимания по этому вопросу, если я могу изолировать пространство процесса приложения и предоставить ему минимальный гипервизор, который предоставляет гиперссылки, в которых он нуждается, это должно быть достаточной изоляцией. Я совершенно не прав? Есть ли способ изолировать только пространство процесса без виртуализации всего остального? Кроме того, есть ли какие-либо ресурсы, которые я мог бы использовать, чтобы начать свою разработку?

Кроме того, было бы разумно посмотреть, как работают эмуляторы dynarec, поскольку они по сути делают то, что мне нужно, но обеспечит ли это достаточную изоляцию?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2012

У нас есть собственное решение, которое обеспечивает виртуализацию на уровне процессов путем виртуализации реестра и переменных среды.

Простое решение состоит в том, чтобы использовать AppInit_DLLs для загрузки DLL в новые процессы и начать там обработку (скажем, оценить состояние или конфигурацию, установить переменные среды и т. Д.). К сожалению, наше решение для реестра использует специальный файл базы данных compat app, предоставленный Microsoft много лет назад, что никто не имеет никакой истории с (!) ... но я бы порекомендовал поискать «обходные пути Microsoft» и изучить этот маршрут.

Вы также можете виртуализировать .Net GAC с помощью аналогичных средств и настройки собственного поставщика сборок для хоста .Net.

0 голосов
/ 29 апреля 2010

Разве вы не можете просто использовать Microsoft App-V ? Или вам нужно что-то написать самостоятельно?

...