Що за папка WINSxS і чому вона така велика?

Люди часто, коли дивляться папку WinSxS на встановленій Windows Vista, Window 7 або Windows Server 2008, питають "Чому папка WinSxS така велика?". Щоб відповісти на це питання спочатку я повинен розповісти про компонетизацію Операційної Системи і те, чому ця папка присутня в Windows Vista і наступних за нею ОС.

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

Всі компоненти операційної системи знаходяться в папці WinSxS. Фактично ми можемо назвати цю папку сховищем компонентів. Кожен компонент має унікальне ім'я, яке включає в себе номер версії, мова локалізації та процесорну архітектуру, для якої він був зібраний. Папка WinSxS - єдине місце в системі, де знаходяться компоненти, а всі інші екземпляри, які ви можете знайти в системі - це відображення, всього лише жорсткі посилання на системне сховище. Дозвольте мені повторити останнє твердження - в операційній системі є тільки один екземпляр (або повна копія даних) кожної версії кожного файлу і цей примірник знаходиться в папці WinSxS. Отже, якщо дивитися на питання з такої перспективи, то папка WinSxS містить в собі абсолютно всю ОС. Це також пояснює, чому коли ви проводите операції типу перевірки системних файлів (System File Checker, SFC), установки додаткових ролей або функцій, система більше не запрошує диск, як в Windows XP.

Це пояснює, чому розмір папки не великий з самого початку, але не пояснює, чому він з часом збільшується. Відповідь - це обслуговування ОС. У попередніх версіях 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


05.02.2014 01:27
Нормальная операционка Window 7, но эта папка-дудом. У кого коробочная версия,тот имеет возможность ее грохнуть без последствий. У меня стоит ОЕМ - гарантия на бук давно закончилась.Эксперименты проводить ОЧЕНЬ опасно-можна остаться без 7-ки - неизвестно, что получится, если папку скопировать, потом ее очистить - будет ли возможность ее установить (будет ли 7-ка работать без этой гадости) Как дальше быть? Она растет не по дням, а по часам. ПО-МО-ГИ-ТЕ !!!!!!!!!!!...
Відповісти
Андрій
11.02.2014 03:12

Рекомендую, вам зробити бекап акронісом перед тим як робити експерименти, на своїй Windows 7
Відповісти
© 2010-2024   Андрій Перепелиця

На верх