Платим блогерам
Блоги
apprenticebase
Всё дело, конечно же, в ошибке кода.

Бывалый сотрудник Microsoft Рэймонд Чен раскрыл причину любопытной особенности Windows 7, которая могла озадачить пользователей много лет назад. Оказывается, выбор простого сплошного цвета в качестве фона рабочего стола иногда приводил к заметной задержке при входе в систему — экран приветствия мог оставаться видимым до 30 секунд уже после успешной аутентификации.

Может быть интересно

Вскоре после выхода Windows 7 пользователи на различных ресурсах стали сообщать об этой странности. Проблема не была массовой, но возникала стабильно при определённых условиях: использовании однотонного фонового цвета вместо полноценного изображения. Позднее Microsoft официально подтвердила существование такой неполадки в Windows 7 и Windows Server 2008 R2 и выпустила соответствующий бюллетень поддержки.

Рэймонд Чен, известный своим блогом The Old New Thing и многолетней работой в Microsoft, недавно прояснил техническую подоплёку этого явления. По его словам, процесс загрузки рабочего стола включает одновременный запуск нескольких компонентов: панели задач, системных служб, значков рабочего стола и, собственно, фонового оформления. Система спроектирована так, чтобы дождаться от каждого из этих элементов сигнала о готовности, прежде чем скрыть экран приветствия. Если какой-то компонент не «отчитался», система ждёт максимум 30 секунд, а затем продолжает загрузку.

Корень проблемы крылся в том, как именно обрабатывался сигнал готовности от фонового оформления. Фрагмент кода, ответственный за отправку сигнала «фон готов», был помещён внутрь функции, которая занималась загрузкой и отрисовкой фонового изображения (картинки). Если же пользователь выбирал не картинку, а сплошной цвет, эта функция просто не вызывалась, так как загружать было нечего. Следовательно, и сигнал о готовности фона никогда не отправлялся. Система продолжала его ждать, пока не истекал 30-секундный лимит ожидания, и только тогда убирала экран приветствия.

Инженер добавил, что похожая ситуация могла возникнуть, если пользователь через групповые политики отключал отображение значков на рабочем столе. Механизм был аналогичен: код, сигнализирующий о готовности значков, находился внутри блока, который эти значки рисовал. Нет значков — нет выполнения кода — нет сигнала — ждём 30 секунд.

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

Для устранения этой особенности Microsoft выпустила специальное исправление для затронутых операционных систем ещё в ноябре 2009 года.

Источник: neowin.net
+
Написать комментарий (0)
Теперь в новом формате

Наш Telegram-канал @overclockers_news
Подписывайся, чтобы быть в курсе всех новостей!

Популярные новости

Сейчас обсуждают