Мне всегда было интересно, смогу ли я сделать снимок текущего состояния программы из памяти, чтобы снова загрузить его на тот же компьютер или даже, возможно, на другой. В идеале это должно быть решение для произвольной программы.
Я использую Windows 7 и с Ubuntu мне становится все удобнее, если есть возможность использовать любую из этих ОС. По сути, мне интересно, смогу ли я сделать своего рода выборочную форму функции гибернации ОС, когда вся память выделяется на диск?
Было бы множество применений для этого, по крайней мере для меня, от отладки программ до общих удобств. Если это возможно, это безопасно для данных или более опасно, каким-то образом?
Ответы:
Отличается от жесткого диска. У барана есть какая-то "структура".
Даже если жесткий диск логически разбрызгивает данные, данные все равно фактически сортируются для пользователя.
На жестком диске вы можете легко скопировать папку appdata для программ, чтобы получить информацию, связанную с программами. Это не время выполнения, однако.
Чтобы сделать то же самое на оперативной памяти. Вы бы либо использовали программное обеспечение, которое отслеживает все данные, выделенные программой (и где они хранятся ofc). Или заставить программу сохранять свои данные в определенном диапазоне памяти. Этого, вероятно, можно добиться, запустив его в песочнице или виртуальной машине.
Если это взломать? Нет ничего более опасного, чем управление памятью программы, являющейся чем-то другим, кроме самой программы или, в некоторых случаях, операционной системы.
Вот почему я действительно рекомендую использовать виртуальную машину, чтобы хотя бы уменьшить количество повреждений, которые это может нанести вашей системе.
Данные, сохраненные на оперативной памяти, могут зависеть от данных на жестком диске, сетевых данных. Время, дата и др. Состояние.
Если вы делаете это, копирование данных на жестком диске также является обязательным.
Есть причины, по которым большинство программ имеют функции сохранения / загрузки. Какое программное обеспечение вы используете там, где этого недостаточно?
Также обратите внимание, что это в большинстве случаев не может быть использовано для обхода бесплатного программного обеспечения срок годности. Это будет верно только в том случае, если программное обеспечение там, где требуется, постоянно работает в течение определенного времени. Копирование данных жесткого диска приложения, которые я также рекомендую вам сделать, это другой вопрос.
Существует программное обеспечение Linux, созданное для кластеров под названием SmartSuspend: http://www.jaryba.com/evaluate-smartsuspend
Если вам нужно найти другое программное обеспечение, делающее это, есть большая вероятность, что под ним будет виртуальная машина. Я бы посмотрел вокруг, чтобы понять, что я могу сделать, чтобы виртуализация конкретных программ стала более гибкой и автоматизированной. Например, есть способы виртуального запуска программ и их отображения в обычном окне. И ярлыки для автоматического запуска виртуальной машины для программы.
Также нет способа сделать это "по прихоти". Как я уже говорил, данные распространяются повсюду, и если вы не отследите их с самого начала, вы не сможете найти данные, которые хранятся в конкретной программе.
источник