Старший инженер Microsoft Рэймонд Чен недавно раскрыл непопулярную особенность внутреннего механизма Windows 95: эта ранняя 32-разрядная потребительская операционная система имеет встроенный «секретный» метод быстрого перезапуска. Пользователям достаточно удерживать клавишу Shift при перезапуске системы через графический интерфейс, и они имеют возможность вернуться на рабочий стол быстрее, чем при обычной перезагрузке. В этом проекте была использована чрезвычайно сложная системная архитектура того года. Повышая эффективность запуска, это также иногда приводило к сбою системы.

Как операционная система, которая должна быть совместима с 16-битным программным обеспечением DOS, 16-битными программами Windows 3.x и 32-битными приложениями Win32, Windows 95 с самого начала была обременена трудной задачей обратной совместимости. Именно благодаря этой многоуровневой структуре команда разработчиков спрятала в системе некоторые «скрытые оптимизации», включая этот малоизвестный механизм быстрого перезапуска.
По словам Чена, эта функция опирается на флаг EW_RESARTWINDOWS, передаваемый 16-битной функции ExitWindows, которая сама унаследована от Windows 3.1 и документирована в официальной документации Microsoft того года. По его описанию, при срабатывании флага система последовательно завершает работу 16-битного ядра Windows, завершает работу 32-битного диспетчера виртуальной памяти и, наконец, переключает ЦП обратно в реальный режим, готовясь к последующей перезагрузке.
Так называемый реальный режим — это самый базовый режим работы всех x86-совместимых процессоров (включая современные многоядерные процессоры Intel и AMD). 32-битные операционные системы, такие как Windows 95, переключают ЦП из реального режима в защищенный режим во время процесса загрузки, чтобы включить механизмы управления памятью и безопасности, в то время как современные 64-битные операционные системы работают в «длинном режиме», чтобы использовать преимущества 64-битного набора команд и регистрировать ресурсы. Переключение между этими режимами и поддержание совместимости на протяжении многих лет было одной из основных задач при проектировании архитектуры x86.
Стоит отметить, что Intel пыталась отменить 16-битный реальный режим и некоторые другие функции обратной совместимости с помощью архитектуры с сокращенным набором команд под названием x86S, но соответствующие планы в конечном итоге были остановлены. По словам Чена, как только функция ExitWindows переводит процессор обратно в реальный режим, управление возвращается исполняемому файлу win.com, который снова запускает Windows 95, минуя утомительный процесс самотестирования оборудования при полной холодной загрузке, тем самым сокращая общее время загрузки.
В эпоху ПК, когда вход в графический интерфейс часто занимал несколько минут, этот «быстрый перезапуск», вероятно, окажет большую помощь в реальном использовании. Автор статьи напомнил, что уже забыл об этой особенности — ведь он перепрыгнул напрямую с MS-DOS на Windows ME и XP, а машина с Pentium 4, которую он использовал в то время, считалась «высокопроизводительной» платформой.
Когда автор попытался воспроизвести этот процесс в виртуальной машине PCem, он получил противоречивые результаты: в Windows 95 OSR 2.5 эта функция вообще не действовала, но в среде Windows 98 SE она вела себя нормально. Это также подтверждает различия реализации этого механизма в разных версиях, а также сложность и неопределенность внутреннего поведения всей серии Win9x.
Далее Чен пояснил, что программа win.com написана на языке ассемблера и помимо того, что отвечает за перезагрузку системы, она также выполняет дополнительные операции по управлению памятью. Цель состоит в том, чтобы освободить как можно больше всей обычной памяти, оставив большое непрерывное пространство памяти для загрузки Windows 95 в защищенном режиме; если этот шаг не удастся, обычная память останется фрагментированной, и win.com придется вернуться к процессу полного перезапуска. Именно этот сложный баланс дизайна между совместимостью, производительностью и стабильностью является причиной того, что серия Win9x считается «хаотичной, но очаровательной».
Похожие статьи:
30-летие Windows 95: операционная система, совершившая революцию на ПК
Ветеран Microsoft объясняет, почему Windows 95 не приняла директиву по энергосбережению HLT
Программист сообщил, что группа разработчиков Windows 95 не смогла разработать отдельный установщик для этой операционной системы из-за нехватки времени.
Разработчик рассказывает о сложном процессе настройки переноса интерфейса Windows 95 на Windows NT