Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

07.10.2008 08:44 | Zloy Kak Pё$

Люди часто, когда смотрят на установленную Windows Vista или Windows Server 2008, спрашивают "Почему папка WinSxS такая большая?". Чтобы ответить на этот вопрос сначала я должен рассказать о компонетизации и том, каким образом она присутствует в Windows Vista.

Одним из самых больших изменений в Windows Vista по сравнению с предыдущими версиями Windows стал переход от ОС, описываемой INF-файлами, к компонентизации. Компонент в Windows - это один или несколько бинарных файлов, файл-каталог, и XML-файл, в котором описано, каким образом все это должно быть установлено. От связанных ключей реестра и служб вплоть до того, какие настройки безопасности и прав должны быть у файлов. Компоненты группируются в логические единицы, а эти единицы используются для создания разных редакций Windows.

Все компоненты операционной системы находятся в папке WinSxS. Фактически мы можем назвать эту папку хранилищем компонентов. Каждый компонент имеет уникальное имя, которое включает в себя номер версии, язык локализации и процессорную архитектуру, для которой он был собран. Папка WinSxS - единственное место в системе, где находятся компоненты, а все остальные экземпляры, которые вы можете найти в системе - это отражения, всего лишь жесткие ссылки на системное хранилище. Позвольте мне повторить последнее утверждение - в операционной системе есть только один экземпляр (или полная копия данных)каждой версии каждого файла и этот экземпляр находится в папке WinSxS. Итак, если смотреть на вопрос с такой перспективы, то папка WinSxS содержит в себе абсолютно всю ОС. Это также объясняет, почему когда вы проводите операции типа проверки системных файлов (System File Checker, SFC), установки дополнительных ролей или функций, система не запрашивает диск.

Это объясняет, почему размер папки большой с самого начала, но не объясняет, почему он со временем увеличивается. Ответ - это обслуживание. В предыдущих версиях Windows минимальным компонентом обслуживания был файл, а в Windows Vista это компонент. Когда мы обновляем определенный бинарный файл, то мы выпускаем новую версию всего компонента, и она, наряду с предыдущей версией, хранится в папке WinSxS. Более новая версия компонента интегрируется в систему, но старая версия, которая находится в хранилище, изменениям не подвергается. Это является еще одной причиной того, почему хранилище компонентов имеет такой большой размер.

Не каждый компонент, который находится в хранилище, является применимым, в смысле, что не каждый компонент должен быть спроектирован на систему. Например, в системах, где доступен, но не установлен IIS, компоненты IIS доступны в хранилище компонентов, но они проецируются в какую-либо локацию в системе, где могли бы быть использованы. Если вы знакомы с тем, как многоотраслевое обслуживание работало в предыдущих версиях Windows, то вам будет понятно, что у нас есть разные версии компонентов для каждой области распространения и уровня пакета сервисных обновлений, и все они также хранятся в папке WinSxS, даже в том случае, если они сейчас не применимы. Таким образом, Post SP1 GDR-пакет, который содержит в себе обновление для одного компонента, в итоге в папку WinSxS установит четыре версии этого компонента, а для некоторых компонентов х64-редакций ОС это число можно удвоиться.

Итак, теперь, когда вы знаете, почему хранилище может вырасти до таких больших размеров, вы наверняка спросите, почему мы не удаляем старые версии компонентов. Если говорить коротко - то причина этому надежность. Хранилище компонентов наряду с другой информацией в системе позволяет нам определить в любое указанное время какую именно версию компонента лучше всего спроектировать в систему. Это значит, что если вы удалите обновление безопасности, то мы можем установить следующую более новую версию компонента - у нас больше нет проблемы "неисправного удаления". Это также значит, что если вы решите установить опциональную функцию, то мы не просто можем выбрать RTM-версию компонента, а проверить самую новую версию компонента, доступную в системе. Так как каждый компонент в системе подвержен изменениям, то это, в свою очередь, может вызвать изменения в других компонентах. Но так как отношения между всеми компонентами в системе описаны, то мы можем отвечать на эти изменения так, как мы не могли в предыдущих версиях ОС.

Единственный способ безопасно уменьшить размер папки WinSxS - уменьшить набор возможных действий, которые система может провести, а самый простой способ сделать это - удалить пакеты, из которых первоначально устанавливались компоненты. Это может быть сделано путем удаления замененных компонентов, которые установлены у вас в системе. Первый пакет сервисных обновлений содержит файл VSP1CLN.EXE - инструмент, который сделает пакет SP1 перманентным (неудаляемым из вашей системы) и удалит все RTM-версии замененных компонентов. Это единственно возможный вариант, так как сделав первый пакет сервисных обновлений перманентным мы сможем гарантировать, что нам никогда не понадобятся RTM-версии компонентов.

Итак, да, папка WinSXS очень большая и со временем она будет увеличиваться. Я надеюсь, что данная статья помогла вам понять, почему так происходит и что вы можете с этим сделать. Заметьте, что структура обслуживания Windows и способ хранения в будущем будут меняться.

Джозеф Конвей (Joseph Conway),
старший инженер поддержки Microsoft Enterprise Platforms Support


Источник: http://blogs.technet.com/askcore/
Перевод: Zloy Kak Pё$

Комментарии

Не в сети

Главной задачей WinSxS все таки является решение так называемой проблемы DLL Hell (http://en.wikipedia.org/wiki/DLL_hell), жаль что об этом ни слова не сказано.
А так хорошая статья

07.10.08 09:50
0
Не в сети

Прикольно. Я и представления не имел, как это работает. Вообще хорошо, что они обо всём этом рассказывают. Таким образом на них будет меньше наездов, а у пользователей будет меньше вопросов и проблем.
Кстати, в тексте ошибочка. В конце

Заметьте, что структура обслуживания Windows и способ хранения должны будут изменится. писал:

07.10.08 10:14
0
Не в сети

ProVal, спасибо, подправил
Надеюсь, что эта статья позволит избежать глупых вопросов в форуме типа "А как удалить папку WINSxS?"

07.10.08 10:24
0
Не в сети

Н-да. у меня эта папка на 7 Гб. Попробую удалить RTM-версии компонентов.

07.10.08 12:52
0
Не в сети

Ошибка в статье: "Единственный способ безопасно уменьшить размер папки WinSxS - уменьшить набор возможных действий, которые которые система может провести..."

07.10.08 14:59
0
Не в сети

Почему папка side-by-side такая большая? Ответ майкрософта: потому что там храним всякий мусор. Мы сами не знаем насколько надежен наш SP1, вдруг вам придется использовать компоненты из RTM? И вообще, нам наш мусор жалко, пусть полежит, лишние десяток гигов на вашем винте не наша проблема.

07.10.08 17:38
0
Не в сети

Вопроса у меня 2:
1. Где мой предыдущий коммент?
2. Как всё-таки очистить папку WinSxS от мусора? Серьёзно.

На 2-й вопрос МС так и не дало ответа. Да, барахла там полно, это мы поняла. И ненужного в том числе. Они не решили проблему "DLL hell", а простоспрятали подальше. Почему нет административных утилит для "зачистки"? Там хранится всё, начиная со времён царя Гороха и не удаляется, даже если приложение уже давно убрано с компа и забыто. А на 64-битной Висте, так там просто застрелиться можно от размера этой "папки".

Эхх, МС, МС...

07.10.08 18:49
0
Не в сети

BlackTigerAP, какой коммент. Ничего не было.
А удалить мусор можно с помощью VSP1CLN.EXE из состава SP1. Все остальные способы нелегальны.

07.10.08 19:52
0
Не в сети

Был, был пост... После "dominusego". Ну, да ладно.

"vsp1cln" чистит только пост-СП мусор, это около 700 мегов, а остальное?

08.10.08 02:09
0
Не в сети

Жду SP2 чтобы ещё раз почистить =)

19.10.08 02:27
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.035 секунд (Общее время SQL: 0.017 секунд - SQL запросов: 71 - Среднее время SQL: 0.00023 секунд))
Top.Mail.Ru