Новости Чит-код из 95-го. Зачем мы на самом деле зажимали Shift во время перезагрузки

NewsMaker

I'm just a script
Премиум
23,736
46
8 Ноя 2022
Как старый трюк с перезагрузкой Windows обманывал время.


z6pkqgaew2nbdft4luuvj9dim4gswqkp.jpg

Инженер Microsoft Рэймонд Чен рассказал, почему в Windows 95 существовал простой способ заметно ускорить перезапуск: если во время Restart зажать Shift, система часто загружалась быстрее, чем при полноценной перезагрузке. Для тех, кто застал эпоху Windows 95, это один из тех «секретных» приемов, о которых одни вспоминают с улыбкой, а другие жалеют, что не узнали о нем тридцать лет назад.

По словам Чена, при таком перезапуске в систему передавался флаг <code>EW_RESTARTWINDOWS</code> для старой 16-битной функции <code>ExitWindows</code>. Дальше происходила цепочка отключений: сначала завершало работу 16-битное ядро Windows, затем 32-битный менеджер виртуальной памяти, после чего процессор возвращался в real mode и управление получал <code>win.com</code>. Real mode, напомнил Чен, это стартовый, наследуемый режим x86-процессоров с прямым доступом к железу, который в современных ОС используется лишь как переходный этап перед protected mode, где и работает Windows в нормальном режиме.

Ключевой момент был в памяти. <code>.com</code>-программы при запуске по умолчанию получают всю оставшуюся «обычную» память, а затем могут вернуть ее системе. В случае <code>win.com</code> программа освобождала все, что не нужно её собственному образу, чтобы создать один большой непрерывный блок памяти для загрузки Windows в защищенном режиме. Но если кто-то успевал занять часть освобожденного пространства (например, неудачный драйвер или другой код), память становилась фрагментированной, ожидаемая «единая большая область» не складывалась, и попытка быстро вернуть систему в состояние «как сразу после запуска <code>win.com</code>» проваливалась. Тогда <code>win.com</code> фактически сдавалась и откатывалась к полной перезагрузке, с ожиданием и привычной паузой на старте.

Именно поэтому трюк с Shift иногда давал почти мгновенный возврат к рабочему интерфейсу, а иногда не помогал вовсе: все решало то, удалось ли сохранить нужную раскладку памяти до момента повторного входа в защищенный режим. Чен отметил, что такой подход был изящным инженерным решением для ускоренного рестарта, которое, правда, могло быть разрушено «шаловливым» кодом, и добавил, что тогда пользователям не приходилось сталкиваться с современными перезапусками из-за обновлений, которые нередко несут риск новых проблем.
 
Источник новости
www.securitylab.ru

Похожие темы