Найти в Дзене
DigiNews

Ветеран Microsoft объяснил принцип работы старого трюка в Windows, который позволял мгновенно перезагружать компьютер, несмотря на системные ошибки.

Ветеран-инженер Microsoft Рэймонд Чен раскрыл секрет старого трюка в Windows: как удержание клавиши Shift при перезагрузке обеспечивало быструю перезагрузку системы, минуя полный цикл инициализации оборудования. Узнайте о механизме функции ExitWindows и работе win.com в эпоху Windows 95. Если вы являетесь давним читателем Neowin, то, вероятно, входите в число пользователей Windows, которые замечали люботительное поведение: при удержании клавиши Shift во время перезагрузки не происходил полный холодный перезапуск; вместо этого система выполняла нечто иное. Для тех, кто не в курсе, когда пользователь удерживал клавишу Shift при перезапуске Windows 95, система вела себя иначе, чем при полном холодном перезапуске. Вместо полной перезагрузки оборудования Windows отображала сообщение «Windows is restarting» (Windows перезагружается) и пыталась выполнить, по сути, быструю перезагрузку. В некотором смысле это было похоже на функцию быстрого запуска (Fast Startup), которую Microsoft внедрила го

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

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

Для тех, кто не в курсе, когда пользователь удерживал клавишу Shift при перезапуске Windows 95, система вела себя иначе, чем при полном холодном перезапуске. Вместо полной перезагрузки оборудования Windows отображала сообщение «Windows is restarting» (Windows перезагружается) и пыталась выполнить, по сути, быструю перезагрузку. В некотором смысле это было похоже на функцию быстрого запуска (Fast Startup), которую Microsoft внедрила гораздо позже в Windows 8.

Ветеран-разработчик Microsoft Windows Рэймонд Чен объяснил, как это работало. Чен в своей новой статье в колонке The Old New Thing отмечает, что такое поведение было частью старой 16-разрядной функции `ExitWindows` при получении флага `EW_RESTARTWINDOWS`.

Если вам интересно, функция `ExitWindows` — это устаревшая функция, используемая для выхода из системы интерактивного пользователя Windows, а параметр `EW_RESTARTWINDOWS`, как следует из названия, используется для перезапуска системы.

Чен пояснил, что последовательность завершения работы начиналась с самого 16-разрядного ядра Windows, затем следовал 32-разрядный менеджер виртуальной памяти, после чего ЦП возвращался в реальный режим.

После этого управление возвращалось к загрузочной программе «win.com» со специальным сигналом: «Не могли бы вы снова запустить для меня Windows в защищенном режиме?», тем самым предписывая ей перезапустить Windows в защищенном режиме. В результате код в `win.com` отображал сообщение «Please wait while Windows restarts…» (Пожалуйста, подождите, пока Windows перезапускается…), пытаясь восстановить работу системы, как было запрошено.

Если пытаться вникнуть в суть, `Win.com` по сути являлся исполняемым файлом, используемым для загрузки различных версий Windows, основанных на DOS, таких как Windows 95. В то же время реальный режим Windows — это ранняя разработка, предназначенная для работы на ПК с минимальными ресурсами, такими как 192 КБ ОЗУ и дисководы, а Windows в защищенном режиме — это полноценная версия ОС с защитой памяти, графическим интерфейсом пользователя (GUI) и всем остальным.

Чен отмечает, что по своей природе файлы .com при запуске занимали всю обычную память, но в случае с `win.com` он освобождал неиспользуемое пространство, чтобы создать один большой непрерывный блок для Windows в защищенном режиме. Таким образом, если другая программа фрагментировала это пространство памяти, быстрая перезагрузка не могла быть успешной, и `win.com` переходил к полному перезапуску. В противном случае быстрая перезагрузка продолжалась, поскольку она воссоздавала менеджер виртуальных машин и запускала графический пользовательский интерфейс (GUI), создавая у пользователя впечатление бесшовной быстрой перезагрузки.

Однако этот процесс не был безупречным, как добавляет Рэймонд Чен, поскольку некоторые пользователи сообщали, что попытка выполнить две быстрые перезагрузки подряд приводила к сбоям, в то время как другие, по-видимому, справлялись с несколькими быстрыми перезагрузками без проблем. Вероятное объяснение заключалось в том, что некоторые драйверы устройств не сбрасывались должным образом, оставляя поврежденную память, которая проявлялась только при завершении работы.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Sayan Sen

Оригинал статьи