Рэймонд Чен рассказал о трюке с Shift для перезагрузки Windows 95 Обложка: Skyread

Рэймонд Чен рассказал о трюке с Shift для перезагрузки Windows 95

Новости
Главное:

  • Инженер Microsoft Рэймонд Чен объяснил механизм быстрой перезагрузки Windows, активируемый удержанием клавиши Shift в Windows 95.
  • Этот процесс основан на передаче флага EW_RESTARTWINDOWS старой 16-битной функции ExitWindows и управлении через исполняемый файл win.com.
  • Быстрая перезагрузка не всегда проходит без сбоев, что связано с особенностями загрузки драйверов и управлением памятью в старой системе.

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

Процесс начинается с завершения работы 16-битного ядра Windows, затем останавливается 32-битный менеджер виртуальной памяти, и процессор переходит в реальный режим управления. Далее управление передаётся исполняемому файлу win.com – ключевому компоненту, ответственному за загрузку Windows в версиях серии 3.x и Windows 9x. Этот файл выводит сообщение о перезагрузке и пытается восстановить состояние системы, в котором она находилась при первом запуске.

Особое внимание уделяется управлению памятью: win.com освобождает всю доступную память вне собственных данных, создавая «один гигантский непрерывный блок» для Windows в защищённом режиме. Однако при повторной загрузке система может столкнуться с фрагментацией памяти, из-за чего быстрая перезагрузка не удаётся и система переходит к полной перезагрузке.

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

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

Рэймонд Чен также известен своими подробными рассказами о малоизвестных аспектах историй Windows. Например, ранее он объяснял, почему WinHelp в версии Windows 3.0 называли «онлайн-справкой», хотя она работала без подключения к сети. Для первичных версий программного обеспечения производителей ПК он также рассказывал о добавлении лицензионных строк в BIOS для интеграции пробных версий ПО, а также раскрывал название ошибки «hard error» с точки зрения систем ввода-вывода в эпоху 16-битных операционных систем.

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

Tagged