Здравствуйте.
Вопрос вкратце звучит следующим образом:
существует ли софт, позволяющий для определенной программы эмулировать "маленькую" ("виртуальную") файловую систему? (честно говоря не знаю как обстоят дела с системным реестром, но его было б тоже здорово эмулировать :) )
Ниже я опишу какие проблеммы хотелось бы с помощью него решить, чтобы было ясно, чего я хочу, зачем мне это надо и т.д.
1) восстановление работоспособности программ после переустановки ОС.
Переустановка ОС - довольно радикальное действие, однако, хотелось бы иметь возможность восстановить работу большинства программ после этого без их переустановки.
2) контроль "чистоты" системы, я очень не люблю когда какой либо софт лезет туда, куда я его не прошу. Примеры: появление файлов в корне диска вида "{chars-chars-chars-chars}". Захламление AppData.
3) принудительное изменение различного рода временных папок. Например при установке множества софта (Delphi XE5, MS Visual Studio Express edit.) возникает проблема необходимости свободного места на C: (причем папка пользователя у меня расположена на D: ), а именно там занимается место 1-30 Гб после установки освобождающееся. (может это и не временные файлы установщика - просветите пожалуйста если что :) ). К тому же есть софт в котором различные дирректории привязанны жестко (что конечно заставляет задуматься о его качестве и о том что не все пункты настроек были пройдены по несколько раз).
4) возможность переносить софт. Т.е. фактически так все программы могут быть портабельными
Как мне видется результат работы такого рода программы:
получается такая иерархия директорий (например):
D
\Soft
\Photoshop
\installation dir (например, директория куда установился ФШ)
\...
\VFS (виртуальная файловая система)
\User (папка пользователя)
\AppData
...
В результате все попытки ФШ обратиться к файлам за пределами "D:\Soft\Photoshop\installation dir" должны направляться в "D:\Soft\Photoshop\VFS". Например: ФШ хочет записать свои настройки в %AppData%\PS\cfg.ini и все что он будет писать, будет писаться в D:\Soft\Photoshop\VFS\AppData\PS\cfg.ini (например) и читаться оттуда же.
Первое топорное решение которое пришло мне в голову (эту часть вопроса можно смело пропускать):
- вооружаемся VMWare (например).
- для каждой программы создаем виртуальную машину (со своим установленным windows и самой программой конечно)
- для запуска программы запускаем ВМ в ней программу
- ...
- Profit?..
Что решает эта безумная затея:
- изолированные ФС для каждой программы
- переносимость
- отсутствие конфликтов с другим ПО
- .. и т.д.
Минусы:
- съедание ресурсов системы:
--а) ОЗУ, на каждую открытую программу уйдет от 2 Гб ОЗУ
--б) Жесткий диск (основная проблемма), придется хранить + 20+ Гб на каждую программу, что непростительно много
- это крайне неудобное решение, которое здесь приведенно как пример того что это хоть как то сделать да возможно, остается найти оптимальное решение
Если хранить образы жестких дисков не целиком а как diff'ы (т.е. список изменений относительно свежеустановленной системы), все становится не так уж и плохо и я даже начинаю думать, что это можно использовать...
Если вам знакомо подобное ПО, прошу поделиться информацией о нем.
Если вы знаете как это сделать средствами ОС, просто замечательно! :)
Если вы считаете, что все это глупости и так делать не нужно, прошу выскажете свое мнение и поделитесь аргументами.
Если вы знаете как можно решить подобные проблемы другим путем - также буду рад услышать.
Также интересует есть ли возможность такого на Linux'е.
Спасибо за внимание :)