Изменения в анимации загрузки Windows 7

Автор: Topol Среда, Май 2nd, 2012 Нет комментариев

Рубрика: Операционные системы

По мере нашего диалога с пользователями стала понятна заинтересованность пользователей в совершенно разных областях разработки Windows 7 . Мы видим массу разговоров вокруг процедуры загрузки и, в частности, о том, насколько важна ее скорость. Мы также понимаем, насколько утомительно наблюдать за мерцающими огоньками индикатора активности диска при пробуждении компьютера из режима сна или гибернации. Чтобы улучшить первые впечатления от работы с ОС,мы взялись переработать загрузочную последовательность. Звучит довольно-таки просто, хотя, на самом деле, разработке новой последовательности сопутствует масса инженерных проблем. И нашей задачей было создание визуально привлекательного экрана загрузки без влияния на скорость загрузки системы. Объяснить, с какими проблемами мы столкнулись при разработке, взялась Карэн Вон (Karen Wong), программный менеджер команды Core User Experience. —Стивен

Дизайн
Мы используем понятие «индивидуальность» для идентификации некоторых характеристик программного обеспечения, которые имеют эмоциональную связь с пользователями. ‘Свет’ и ‘энергия’ — лишь несколько из понятий, используемых нами для описания индивидуальности Windows 7. По мере разработки Windows 7 стало очевидно, что для того, чтобы продемонстрировать эти черты индивидуальности Windows 7, мы должны пойти гораздо дальше, чем в случае с Vista.

Мы понимаем, что с точки зрения дизайна визуальное представление той или иной функции играет ключевую роль в восприятии качества и производительности. В связи с этим мы поставили перед собой цель сделать загрузку Windows поистине завораживающей, воспользовавшись понятиями света и энергии. Поэтому форма, в которой эти понятия выражают себя в природе, и стала для нас макетом. Такие понятия, как «биолюминесценция», «органический» и «атмосфера» часто мелькали при обсуждении функции. Мы знаем, что в отдельности эти слова звучат несколько избито, но все они очень хорошо отражают задачи Windows 7.
Было создано и обсуждено свыше десятка различных вариантов загрузочной последовательности. Варианты отличались насыщенностью и/или яркостью цветов, сложностью движений и эффектами освещения. Вот лишь несколько эскизов, рассмотренных нашей командой:


Рис. 1. Макеты анимации загрузки.

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

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

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

В загрузчике Vista использовалось изображение с разрешением 640×480, соответственно, и размер файла с зеленым анимированным прогресс-баром был очень невелик. Более того, глубина цвета в загрузчике Vista тоже была мала — всего 16 бит на пиксель. В Windows 7 этот параметр был увеличен до 32 бит на пиксель, что позволило сделать анимацию более красочной. Обновления индикатора прогресса загрузки Vista осуществлялись через процессор, который довольно-таки восприимчив к параллельным операциям ввода/вывода, а это, в свою очередь, иногда приводило к замираниям анимации. С низким разрешением, ограниченной глубиной цвета и замираниями — мы должны были начать работу с нуля, чтобы создать что-то поистине впечатляющее.

Мы начали работу над загрузчиком Windows 7, используя в своей работе иной механизм воспроизведения анимации. Этот механизм использует указатель на кадровый буфер из прошивки (BIOS или UEFI-прошивки) и использует высококачественное изображение (1024 x 768). Механизм анимирует изображение параллельно с тем, как в память загружается ядро и критические драйвера. В связи с тем, что графический драйвер на данном этапе в память еще не загружен и не инициализирован, анимация осуществляется исключительно силами центрального процессора путем обновления кадрового буфера. Мы также сделали дополнительную оптимизацию — добавили процессору возможность использовать комбинированное кэширование для увеличения производительности.

В статье Майкла Фортина (Michael Fortin), посвященной производительности при загрузке, говорится о том, насколько зависимы ранние этапы загрузки от активности ввода/вывода, поскольку на этих этапах происходит загрузка ядра, файлов драйверов устройств и иных системных компонентов. Мы ограничили размер анимации до маленького фрагмента экрана с целью избежать возникновения любых задержек на ранних этапах загрузки ОС. Большая по размерам анимация потребовала бы загрузки большего набора изображений, что незамедлительно привело бы к увеличению файлового ввода/вывода. Изображения сжимаются в виде bmp-ресурсов, которые впоследствии сжимаются с помощью WIM. Сжатие с помощью WIM уменьшает общий размер файла и, как следствие, количество необходимых операций ввода/вывода. Кроме того, снижается и необходимое для установки дисковое пространство. Анимация небольшого фрагмента экрана и использование низкой частоты кадров позволяет процессору CPU сохранять уровень загрузки кадрового буфера на довольно-таки низком уровне. Таким образом, влияния на время загрузки системы практически нет.

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

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


Рис. 2. Процедура загрузки Windows Vista.

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


Рис. 3. Процедура загрузки Windows 7.

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

Оптимизация загрузочного кода и удаление анимации, добавленной в Vista, позволили нам добавить более высококачественную анимацию загрузки без влияния на время загрузки ОС.

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

Также можно заметить, что размеры флага Windows на мониторах с разными размерами могут несколько отличаться. В связи с техническими ограничениями в Windows 7 загрузочная последовательность выводится в минимальном рекомендуемом разрешении — 1024×768 — и не зависит от истинного разрешения экрана. Сегодня большинство устройств настроены таким образом, чтобы подгонять загрузочную последовательность под размеры экрана, а не центрировать ее. Как следствие, загрузочная анимация растягивается на весь экран даже на тех экранах, чье соотношение сторон отличается от 1024×768. Однако мы протестировали последовательность на мониторах с наиболее распространенными соотношениями стороны, чтобы гарантировать визуальное качество.

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

Персонализация
Многие пользователи спрашивают нас, возможно ли использовать иные варианты анимации для индикации процесса загрузки. Это не то, к чему мы стремились в Windows 7. Мы уже неоднократно говорили и показали персонализацию различных элементов Windows 7, в частности, о наборах тем. Причина нашего решения очень проста: мы не можем гарантировать безопасность системы, разрешив на ранних этапах запуска системы загрузку в память произвольных элементов. На этапе загрузки система должна быть хорошо защищена, поскольку ни антивирусы, ни межсетевые экраны не могут обеспечить безопасность системы. И хотя мы верим, что все разработчики будут следовать требованиям по размеру изображений, их формату, в целях обеспечения производительности нам не хотелось бы добавлять в систему код, проверяющий соответствие требованиям. Одной из наших целей при разработке Windows 7 было обеспечение богатых возможностей для самовыражения пользователей, чтобы пользователь знал, что его компьютер является его, а не чьей-то другой собственностью. Надеюсь, что вы понимаете, что к этому элементу требуется более серьезный подход.

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

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты