Представьте себе:
Вы работаете на Windows 7.
У вас есть старая программа, которая хранит пользовательские данные в своей папке (например, The Bat!). Это программу вы скопировали со старого компьютера и после установки Windows7 опять поместили в папку Program Files, она благополучно работает.
Затем вы хотите сделать резервную копию. Вы копируете папку старой программы в сторонку и чувствуете себя спокойно.
Допустим, потом вы опять переставляете систему (в моем случае - потому что Windows7 свалилась с синим экраном смерти так, что файловая система чистила потом ошибки час, и в результате система осталась неработоспособной, все было в глюках, половина программ выдавала странные разнообразные ошибки).
Копируете из бэкапа последнюю копию старой программы вновь в Program Files.
Запускаете - а там нет данных! То есть, данные там только на момент, когда вы исходно поставили Windows 7. А последующих - уже нет!
Оказывается, Windows 7 считала, что программам не положено ничего писать в свою папку. Но чтобы они продолжали работать, система фактически пишет изменяемые этой программой файлы не в ее папку, а в сторонку, в папку VirtualStore где-то в глубинах Documents&Settings. Это происходит незаметно для программы: та думает, что она пишет к себе.
А вы только думаете, что делаете резервную копию, сохраняя папку программы. На самом деле, копировать надо не ее, а содержимое VirtualStore.
И если этого не знать, то после перестановки системы данные будут потеряны.
Как и произошло, увы, со мной.
| | mild personality changes and possibly death ( |
January 23 2010, 18:32:07 UTC 2 years ago
Так как программисты редко чешутся о том, чтобы писать корректные программы для среды Windows (во всяком случае для XP, Vista, 7), то MS пошла на такой шаг, включив файловую и реестровую виртуализацию.
По правилам хорошего тона, программа должна хранить установки в AppData в пользовательском профиле. Тогда, при резервном копировании пользовательского профиля (например, средством Windows Backup) сохраняются не только пользовательские данные - музыка, фотки и прочее, но и все установки программ, которыми он пользуется.
January 24 2010, 02:16:11 UTC 2 years ago
да-да, я понимаю
Это просто программы, которые писались еще на Windows95, где вроде не было такой логики.Что делается виртуализация - понятно. Неприятно просто, что Windows не предупреждает об этом.
January 24 2010, 02:22:23 UTC 2 years ago
Re: да-да, я понимаю
Windows же не может предугадать и никак не рассчитывает на то, что вы делаете "резервное копирование" путём ручного копирования папок из Program Files :)February 18 2010, 15:58:51 UTC 2 years ago
Re: да-да, я понимаю
На самом деле не вполне понятно, почему при ручном копировании нужные файлы не были сохранены. Бэкапилка тянула данные, притворяясь не тем юзером?February 18 2010, 16:04:10 UTC 2 years ago
Re: да-да, я понимаю
А от имени какого пользователя работала бэкапилка?February 18 2010, 16:07:23 UTC 2 years ago
какая еще бэкапилка?
Я вручную все копировалFebruary 18 2010, 16:05:35 UTC 2 years ago
С точки зрения человека, работающего на однопользовательской машине, корректная установка программы - это копирование ее каталога на винчестер. А корректное удаление - это стирание каталога. Если программа пишет что-то за пределы каталога (за исключением случая, когда пользователь ей явно это указал) - это криминал и загаживание диска.
(собственно, система VirtualStore - некий компромисс однопользовательского подхода и описанного вами многопользовательского... все лучше, чем когда программист руками распихивает файлы в 10 мест на диске + в реестр)
February 18 2010, 16:12:25 UTC 2 years ago
Windows Vista и 7 изначально уже не однопользовательские - там есть чёткое разделение на администратора и стандартных пользователей. В XP такое тоже было, но практически (а зря!) никем не использовалось.
Для приложений, которые могут называться "полностью совместимыми с Windows Vista и 7" есть ряд правил, установленных разрабочиками ОС. Все они очень четко описаны в соответствующих источниках и двоякого трактования не допускают:
http://www.microsoft.com/rus/windows/ap
February 18 2010, 17:49:39 UTC 2 years ago
А как юзер - я матерюсь на программы, которым зачем-то нужен инсталлятор и которые кидают свои файлы хрен знает куда, и предпочитаю portable-версии.
А M$ постоянно выдумывает какую-то новую "silver bullet". Чего стоят их метания вокруг dll hell.
February 18 2010, 17:58:09 UTC 2 years ago
Цитата из официального источника - руководства по обеспечению совместимости ПО с Vista и 7:
«Несмотря на усилия, прилагаемые компанией Microsoft, некоторые производители программного обеспечения продолжают использовать устаревшие функции операционной системы, некорректно выполняют операции по проверке версий ОС, не следуют рекомендациям по работе с файловой системой и зачастую не руководствуются советами по обеспечению корректной работы приложений в новых версиях системы. Все это приводит к тому, что в операционной системе Microsoft Windows Vista есть более 5600 «системных заплаток» (shims) для обеспечения корректной работы приложений различных производителей — от утилит китайских производителей до крупных продуктов известных фирм. В Windows 7 число «системных заплаток» увеличилось — в бета версии новой операционной системы их насчитывается более 5700!»
February 18 2010, 18:08:16 UTC 2 years ago
Не, конечно, M$ в плане "дисциплины разработки" на голову выше большинства прочих разработчиков (и меня в том числе, что уж). Но они тоже не святые, и некоторые их решения, мягко говоря, являются спорными.
January 23 2010, 19:45:18 UTC 2 years ago
January 24 2010, 02:17:06 UTC 2 years ago
они консерваторы
а консерваторы всегда правы (хотя я, конечно, тоже не понимаю пользования батом)January 24 2010, 06:36:46 UTC 2 years ago
Программа как программа, удобная.
Блин, если бы не русские кодировки, я бы до сих пор пользовалась программой Eudora и радовалась бы :))
February 18 2010, 16:06:56 UTC 2 years ago
February 18 2010, 16:08:05 UTC 2 years ago
потому что любые клиенты, в которых нет объединения пи
;)February 18 2010, 17:58:51 UTC 2 years ago
Re: потому что любые клиенты, в которых нет объединения
Вы б дописали текст... А то сабж порезался.Если имели в виду "клиенты, в которых нет объединения писем в треды" - то спасибо, этого г-на не надо. Imho любой, кто имел дело с более вкусными интерфейсными решениями, типа того, что было в древнем фидошном досовском GoldEd'е, от такого объединения в стиле аутглюк-экспресс плеваться будет.
February 18 2010, 18:23:49 UTC 2 years ago
Re: потому что любые клиенты, в которых нет объединения
... какой-то я агрессивный не в меру. Вредно комментировать с сильным насморком.January 24 2010, 06:37:02 UTC 2 years ago
Сочувствую.
February 18 2010, 15:56:29 UTC 2 years ago
November 12 2010, 06:49:20 UTC 1 year ago
Если честно, не понимаю людей которые до сих пор пытаются найти какую-то логику и здравый смысл в поступках Microsoft... Они выпускают свои продукты напичканные новыми "фишками", которые только усложняют жизнь конечных пользователей.
Задумайтесь всерьез о переходе на другую операционную систему, берегите свою нервную систему.
August 31 2011, 09:12:47 UTC 8 months ago
"EnableLUA" = 0
этот параметр в реестре отключит контроль учетных записей и папка virtualstore перестанет быть нужной, если кто этого еще не знает.
P.S. после изменения параметра "EnableLUA" на 0 нужна перезагрузка