Создание приложения для сохранения произвольного состояния приложения - PullRequest
0 голосов
/ 12 января 2011

См. этот вопрос суперпользователя .Подводя итог, можно сказать, что программное обеспечение VM позволяет сохранять состояние произвольных приложений (путем сохранения всего образа виртуальной машины).

Можно ли написать какое-то программное обеспечение для Windows, которое позволяет сохранять и перезагружать произвольное состояние приложения?Если это так (и предположительно так), что это повлечет за собой?

Я бы хотел реализовать это, если это возможно, на языке высокого уровня, таком как C #.Я полагаю, что если бы я использовал что-то еще, мне нужно было бы записать дампы регистров памяти (или, может быть, дамп всего блока памяти приложения) в файл и загрузить его обратно куда-нибудь, чтобы обновить состояние.

Так как мне построить это?вещь

1 Ответ

1 голос
/ 12 января 2011

Что ж, это вряд ли произойдет, особенно в C #, - вряд ли возможно удовлетворить требования низкого уровня в управляемом коде. Сохранение состояния всей виртуальной машины на самом деле проще, чем просто сохранение отдельных процессов, все, что вам нужно сделать, это сбросить всю память машины и обеспечить согласованный образ диска, что, учитывая возможности программного обеспечения для виртуализации, довольно просто.

Восстановление одного процесса подразумевало бы загрузку всех общих объектов, на которые ссылается процесс, включая любые объекты, на которые ссылается процесс, в пространстве ядра, то есть файл / память / мьютекс / все, что обрабатывает, и без того, чтобы вся машина / операционная система была виртуальной это означало бы заглядывать глубоко внутрь Windows ...

Все, что я говорю: пока это возможно, усилия будут огромными и, вероятно, не будут стоить этого.

...