Информационные технологииStfw.Ru 🔍

Windows 7 - Дисковое пространство. Что так расходует новая ОС.

В конце статьи мы поговорим о наших целях при разработке Windows 7. Майкл Бек
🕛 24.11.2008, 23:19
Дисковое пространство

Наша новая статья о дисковом пространстве и в частности пространстве, занимаемом Windows 7. Занимаемое дисковое пространство принадлежит к числу таких характеристик, величина которых, по мнению пользователей, должна стремится к нулю. Однако, часто бывает так, что некоторое увеличение величины занимаемого на диске пространства (конечно же, относительно количества появившихся нововведений) может идти на пользу программному обеспечению. Времена меняются: все более и более широко используются твердотельные диски (SSD-диски), которые по своим объемам значительно уступают традиционным HDD. Так уж сложилось, что в эру терабайтных жестких дисков разработчики программного обеспечения, включая нас Windows, не ставили своей целью ограничить потребляемое приложением дисковое пространство до 100Мб. Сегодня многие ноутбуки поставляются с 16Гб SSD-дисками, поэтому к вопросам потребления Windows дискового пространства мы относимся очень внимательно. Кстати говоря, вопросу использования SSD-дисков в Windows 7 посвящена отдельная сессия WinHEC. Передаю слово Майклу Беку (Michael Beck), программному менеджеру команды Core OS Deployment. -Стивен

Давайте поговорим о занимаемом дисковом пространстве. Здесь и далее под занимаемым пространством следует понимать общее количество дискового пространства, используемого Windows. Сюда входят не только исполняемые файлы Windows, но и все пространство, потребляемое или отведенное под системные операции. Чуть позже мы поговорим о том, сколько конкретно потребляют различные компоненты Windows.

Некоторые из наших читателей в комментариях к другим статьям подняли вопрос об аппетитах Windows 7 в отношении занимаемого дискового пространства. Как и в любом другом случае, вопрос занимаемого места подразумевает наличие массы уступок, на которые приходится идти. Следует отметить, что пока мы говорим не о системных требованиях Windows 7, а об инженерной стороне вопроса.

Для начала попытаемся ответить на два распространенных вопроса:
* Что находится в папке WinSxS, почему она такая большая и можно ли ее удалить? * Сколько дискового пространства отводится под различные компоненты Windows?



В конце статьи мы поговорим о наших целях при разработке Windows 7.


Папка WinSxS
Львиная часть поступающих к нам вопросов касается новой (для Vista) папки Windows SxS (%System Root%\winsxs), при этом многие из пользователей искренне верят, что это чуть ли не основной потребитель дискового пространства, поскольку в папке объемом 3.5Гб находится более 3000 файлов. С течением времени размер папки растет. Ниже привожу скриншот с домашнего компьютера Стивена.



"Модуляризация" операционной системы была одной из важнейших инженерных задач при разработке Windows Vista. Это должно было решить некоторые из проблем Windows, связанных с установкой, обслуживанием и надежностью ОС. Папка Windows SxS представляет собой "установочное и обслуживаемое состояние" всех системных компонентов. Но, на самом-то деле, папка не потребляет столько дискового пространства, как об этом сообщают встроенные инструменты (DIR и Explorer).

На практике практически каждый файл в папке WinSxS является "жесткой ссылкой" (от англ. hard link) на физически существующий файл, то есть все файлы находятся вне этой папки. Так, к примеру, в папке WinSxS находится файл advapi32.dll, размер которого составляет более >700Кб, но, на самом деле, это жесткая ссылка на одноименный файл из папки Windows\System32. При этом через Windows Explorer размер файла учитывается дважды.

В результате сервисная платформа, благодаря которой устанавливаются все обновления и пакеты обновлений, в Windows может обращаться к папке WinSxS и выявлять ключевые параметры, характеризующие состояние системы: что установлено, доступно к установке (опциональные компоненты, но об этом чуть позже), какие версии - все это позволяет точно определить, применимо ли конкретное обновление/патч к конкретной системе. Это обеспечило высочайшую надежность и производительность обслуживания, а также заложило фундамент для дальнейшего усовершенствования.

Папка WinSxS также обеспечивает возможность оффлайн-обслуживания. До Windows Vista поддержка развертывания осуществлялась лишь через процедуру инсталляции. IT-специалисты должны были устанавливать ОС с последующей установкой любых инструментов для снятия образа установленной ОС, который впоследствии разворачивался на другие компьютеры. На тот момент Windows создавалась без каких-либо знаний об образах. Около 80% систем разворачивались и обслуживались с помощью технологий, которые не поддерживались самой Windows, поэтому требовали от IT-отделов использования сторонних решений для эффективного развертывания и управления Windows. Состояние, хранимое в папке WinSxS, доступно и в оффлайн-режиме, то есть для установки обновлений не требуется загрузки или запуска образа. Эти функции папки WinSxS обеспечивают непревзойденную гибкость и значительную экономию IT-отделам, разворачивающим Windows Vista, упрощая процедуру создания и обслуживания стандартных корпоративных образов в режиме оффлайн.

Это правда, что папка WinSxS занимает определенное пространство на диске, поскольку она все же существует и хранит огромное количество мета-данных, папок, манифестов, она занимает гораздо меньше места, чем сообщает Windows Explorer. Реальный объем этой папки зависит от конкретного компьютера, но в среднем она занимает около 400Мб. Немало, но принимая во внимание те преимущества, которые дает наличие этой папки, то это вполне разумное значение.

Так почему Windows Explorer некорректно отображает размер папки? Жесткие ссылки призваны оптимизировать размер, занимаемый ОС, за счет дублирования файлов по всей системе. Разработчики приложений тоже могут пользоваться этой возможностью, чтобы оптимизировать дисковое пространство, занимаемое их приложениями. Поэтому критично, чтобы любой путь, который теоретически может быть использован приложением, появлялся в виде физического файла в файловой системе, который поможет загрузить реально существующий файл. В этом случае оболочка является обычным приложением, которая сообщает размер реального файла, а не жесткой ссылки на него. Поэтому пользователи в целях экономии места осуществляют попытки удалить эту папку с диска.

Некоторые блоги и ряд утилит для тонкой настройки говорят вам о том, что ничего страшного в том, чтобы удалить папку WinSxS, нет. И это правда, что сразу после установки вы можете удалить ее, но после загрузки она появится вновь. Но как вы понимаете, ничего, кроме лишней головной боли, это не принесет, поскольку удалив эту папку, вы лишите систему возможности обслуживания, обновления и настройки опциональных компонентов системы. Высвобождаемое при удалении или перемещении папки пространство не стоит этого риска.


Куда исчезает дисковое пространство?
Как все вы прекрасно понимаете, добавление новых возможностей является одной из основных причин роста потребления дискового пространства, причем это касается как Windows, так и любого иного приложения. В действительности добавление нового кода незначительно увеличивает размер пространства, занимаемого Windows. Так, например, для установки Windows Vista Ultimate достаточно чуть больше 2Гб дискового пространства, остальное место отводится под различные данные. Давайте более подробно поговорим об использовании дискового пространства в Windows Vista и о том, что мы подразумеваем под "данными".

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

Восстановление системы и гибернация принадлежат к числу функций, призванных предотвратить потерю важной информации и восстановить рабочее состояние системы в таких случаях, как разрядка аккумуляторов, неудачная установка приложения или повреждение системных файлов. Вместе эти функции потребляют приличное количество места на диске.

Функция восстановления системы обеспечивает защиту системы путем снятия с определенным интервалом "снимков" системы до внесения в нее каких-либо изменений. В Windows Vista функция настроена так, что под ее нужды отводится от 300МБ до 15% размера логического диска. По мере создания новых точек восстановления старые удаляются, высвобождая место под новые. Чем больше объем вашего диска, тем больше хранится точек восстановления, до которых можно откатить систему. Пользователи Windows Vista донесли до нас, что, по их мнению, под восстановление системы отводится слишком много места да и настроить эту функцию бывает непросто. Некоторые из вас, наверняка, познакомились с PDC-сборкой Windows 7, в которой изменен интерфейс для управления отводимым под нужды восстановления пространством.

Гибернация используется, как правило, на мобильных компьютерах для сохранения результатов работы с переводом компьютера в режим экстремально низкого потребления электроэнергии. Переход в такой режим происходит при разрядке аккумулятора до определенного уровня или выключении компьютера без завершения работы, чтобы максимально увеличить время работы от батарей. В настольных компьютерах режим гибернации вместе с режимом сна используются для сохранения работы. Эта функция зовется гибридный сон (в английской версии Hybrid Sleep) и используется для сохранения состояния на жестком диске в случаях с перебоями птиания в момент, когда компьютер находится в режиме сна. При гибернации все содержимое оперативной памяти сохраняется в файл под названием Hiberfil.sys. Поэтому размер файла Hiberfil.sys эквивалентен размеру установленной оперативной памяти. На момент появления Windows Vista количество оперативной памяти, устанавливаемой в компьютере, значительно увеличилось, поэтому и пространство, занимаемое Windows, стало значительно больше. Это пространство резервируется на случай перебоев с питанием, чтобы система могла с легкостью записать содержимое системной памяти на жесткий диск. Думаю, что практически каждый владелец ноутбука не раз сталкивался в своей жизни с режимом гибернации, и практически каждый такой пользователь готов мириться с увеличением размера занимаемого пространства в обмен на возможность сохранить свою работу. И несмотря на то, что мы говорим об оперативной памяти и занимаемом дисковом пространстве в одном абзаце, на этой неделе Марк Руссинович (Mark Russinovich) опубликовал статью о виртуальной памяти, в которой говорится о том, насколько большим может/должен быть файл подкачки. Думаю, что многим из наших читателей будет интересно почитать эту статью.

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

Кроме того, важно оценивать не только пространство, занимаемое непосредственно после установки, но и насколько оно увеличивается по прошествии времени - по мере установки обновлений, пакетов обновлений, создания точек восстановления и т.д. Для большинства пользователей сложней всего понять увеличение занимаемого пространства по прошествии времени, поэтому а) мы должны дать пользователю более разумный выбор, б) объяснить, сколько места используется тем или иным компонентом.

В нижеприведенной таблице указано потребление места на жестком диске различными компонентами Windows Vista Premium/Ultimate. Речь идет о чистой установке. Для удобства все компоненты разбиты на несколько категорий. Этой таблицей нам хотелось проиллюстрировать "вклад" каждой отдельно взятой функции в общее потребление пространства на жестком диске.



Вот несколько компонентов, на которых следует остановиться:
* ~1Гб драйверов. Windows Vista поддерживает десятки тысяч различных устройств. Многие пользователи вполне правомерно полагают, что практически любое подключаемое к компьютеру устройство будет опознано Windows. Мы регулярно слышим от пользователей просьбы удалить часть драйверов или полностью исключить их из дистрибутива. Возможность использования принтера или USB-устройства без необходимости подключения ко всемирной сети - вот одно из преимуществ, за которые ценят Windows. В будущем мы, возможно, и рассмотрим возможность загрузки драйверов для всех устройств через Windows Update, но пока мы не готовы сделать такой шаг, поскольку львиная часть наших пользователей не готова к этому. * ~1Гб компонентов, необходимых для реализации возможности отката и восстановления после установки обновлений безопасности и функциональных обновлений. По этому поводу мы получаем огромное количество положительных отзывов, поскольку эта возможность является необходимой мерой для обеспечения надежности системы. Мы также понимаем и принимаем отзывы, касающиеся требований к минимальному количеству места, необходимого для установки SP1 поверх RTM. Надеюсь, что вы слышали о утилите vsp1cln.exe в папке system32, которая позволит сэкономить вам кое-какое место. * ~1Гб на поддержку гибернации для предотвращения потери данных в случае нарушения подачи электропитания. От данной возможности можно отказаться, удалив через мастер Очистка диска (в англ. версии Disk Cleanup) файл гибернации или через ввод команды powercfg /h off в консоли, запущенной от имени администратора. * ~315Мб шрифтов. Пользователи Windows говорят на различных языках, порой даже используют различные языки в рамках одного компьютера, и хотят, чтобы Windows говорила с ними на их же языке. Windows Vista обладает встроенной поддержкой интернациональных шрифтов, поэтому в системе с любым установленным языком можно открывать документы и вебсайты на любом другом языке. Но, как мы знаем, шрифты относятся к тому классу ресурсов, от которых пользователи избавляются в первую очередь. * ~52Мб лог-файлов. Неважно, что это - файлы для регистрации событий или иные служебные файлы, - все они критичны при возникновении проблем. Подобного рода информация используется службами поддержки для диагностики и устранения проблем.



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

Это вовсе не означает, что мы не будем добавлять новые функции или сделаем систему менее надежной. Просто мы считаем, что потребление ресурсов должно оставаться на приемлимом уровне, независимо от количества инноваций. Мы хотим быть уверены в том, что наши решения являются разумным выбором для как для основной массы наших пользователей, так и для тех, кто желает обладать большим контролем над системой.

К примеру, Windows Vista SP1 содержит почти 1Гб драйверов, обеспечивающих поддержку широчайшего диапазона устройств. Локальный кэш может терять свою актуальность с выходом новых версий драйверов и в результате пользователям предлагается посетить Windows Update, чтобы загрузить новейшую версию драйверов.

Почему же для поддержки PnP-устройств не использовать лишь кэш драйверов с Windows Update и не сэкономить этим некоторое пространство на диске? В таком подходе есть несколько преимуществ:
* Крайне редко мобильные компьютеры не имеют выхода в Интернет, поэтому их пользователи всегда могут загрузить новую версию драйвера. * Пользователям не придется делать двойную работу, устанавливая обновленную версию драйвера поверх установленной, поскольку они в любом случае выходят в Интернет.



Этот пример наглядно показывает, как от попыток уменьшить занимаемое пространство на диске могут выиграть пользователи, подключающие новые устройства к своим компьютерам. В то же самое время нам не хочется заходить так далеко, по крайней мере, не в Windows 7. В Windows 7, основываясь на данных, полученных с помощью телеметрии, мы намерены сократить список поддерживаемых устройств до наиболее популярных устройств, при этом мы планируем продолжить начатую работу по переносу драйверов для устройств на сервера Windows Update.

Компоненты Windows, устанавливаемые по умолчанию, имеют значение для поддержки различных сценариев. Мы должны внимательно изучить, следует ли делать некоторые функции/компоненты (такие, как Media Center) опциональным вместо того, чтобы по умолчанию устанавливать их в каждой системе. Поэтому мы придерживаемся мнения, что многие из функций Windows следует сделать опциональными. В Windows Vista, как вы заметили, при выборе установки какого-либо опционального компонента Windows не требует наличия диска (или доступности сетевого источника). Это потому, что все функции без исключения входят в состав полной установки Windows. Функции доступны к установки в любой момент времени и, даже если они не установлены, мы все равно при необходимости их обновляем - в будущем, если вы решите задействовать компонент, вы можете быть уверены, что таким шагом вы не добавить в систему код, ранее подверженный уязвимости. Это еще один из способов обеспечения актуальности и безопасности Windows.

Увеличение занимаемого пространства на диске с течением времени требует от нас более серьезного подхода к объяснению причин пользователям. Например, нужно объяснить, что Windows архивирует все ранние версии обновленных системных компонентов, чтобы в любой момент позволить откат до более раннего состояния. Что в новой системе будет установлена масса обновлений с Windows Update. Что по мере появления пакетов сервисных обновлений, включающих ранее выпущенные обновления, можно высвободить некоторое место, отводимое под откат ранее выпущенных обновлений.

Windows регистрирует различные системные события в различные области системы, при этом размер этих лог-файлов может со временем значительно увеличиваться. Например, при сбое приложения Windows выполняет дамп памяти, необходимый для анализа сбоя. Этому есть масса весомых причин, но отвечая общей тенденции по сокращению занимаемого пространства на диске, мы должны научиться управлять этим ростом и по возможности снизить его темпы. Как мы говорили выше, существенный вклад в занимаемое пространство вносят восстановление системы и гибернация. В системах, где существуют ограничения по размеру используемых дисков, 1Гб памяти, отводимой под файл гибернации, может оказаться слишком дорогим удовольствием. Функция восстановления системы должна стать более настраиваемой и по умолчанию система должна выполнять как можно меньше снимков системы.

На конференции WinHEC для демонстрации Windows 7 мы использовали несколько компьютеров с разделом в 16Гб и, если вам посчастливилось побывать на конференции, вы могли воочию увидить, что даже на таких дисках после установки Windows 7 было достаточно свободного места. Но имейте ввиду, что делать окончательные выводы по поводу занимаемого пространства и производительности на базе предрелизных версий ОС весьма недальновидно.

Подводя итог вышесказанному, в Windows 7 мы стремимся уменьшить пространство, занимаемое ОС на диске, стремимся сделать его меньше, чем в Windows Vista. Мы намерены уделить особое внимание настройкам по умолчанию, обеспечить всеобъемлющий контроль OEM-партнерам, пользователям и IT-специалистам без ущерба надежности Windows.

Майкл Бек (Michael Beck),
программный менеджер Core OS Deployment

Windows 7   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉