Как старый трюк с перезагрузкой Windows обманывал время.

Инженер Microsoft Рэймонд Чен рассказал, почему в Windows 95 существовал простой способ заметно ускорить перезапуск: если во время Restart зажать Shift, система часто загружалась быстрее, чем при полноценной перезагрузке. Для тех, кто застал эпоху Windows 95, это один из тех «секретных» приемов, о которых одни вспоминают с улыбкой, а другие жалеют, что не узнали о нем тридцать лет назад.
По словам Чена, при таком перезапуске в систему передавался флаг EW_RESTARTWINDOWS для старой 16-битной функции ExitWindows. Дальше происходила цепочка отключений: сначала завершало работу 16-битное ядро Windows, затем 32-битный менеджер виртуальной памяти, после чего процессор возвращался в real mode и управление получал win.com. Real mode, напомнил Чен, это стартовый, наследуемый режим x86-процессоров с прямым доступом к железу, который в современных ОС используется лишь как переходный этап перед protected mode, где и работает Windows в нормальном режиме.
Ключевой момент был в памяти. .com-программы при запуске по умолчанию получают всю оставшуюся «обычную» память, а затем могут вернуть ее системе. В случае win.com программа освобождала все, что не нужно её собственному образу, чтобы создать один большой непрерывный блок памяти для загрузки Windows в защищенном режиме. Но если кто-то успевал занять часть освобожденного пространства (например, неудачный драйвер или другой код), память становилась фрагментированной, ожидаемая «единая большая область» не складывалась, и попытка быстро вернуть систему в состояние «как сразу после запуска win.com» проваливалась. Тогда win.com фактически сдавалась и откатывалась к полной перезагрузке, с ожиданием и привычной паузой на старте.
Именно поэтому трюк с Shift иногда давал почти мгновенный возврат к рабочему интерфейсу, а иногда не помогал вовсе: все решало то, удалось ли сохранить нужную раскладку памяти до момента повторного входа в защищенный режим. Чен отметил, что такой подход был изящным инженерным решением для ускоренного рестарта, которое, правда, могло быть разрушено «шаловливым» кодом, и добавил, что тогда пользователям не приходилось сталкиваться с современными перезапусками из-за обновлений, которые нередко несут риск новых проблем.