Это, оказывается, было необходимое зло…
На ранних этапах разработки Windows 95, команда Microsoft рассматривала возможность реализации аналогов спящего режима с переходом процессора в энергосберегающий режим ожидания.
Это было бы особенно полезно для ноутбуков, которым приходилось экономить заряд при простое системы.
Казалось бы, все для этого уже было: процессоры Intel 80386 (i386) поддерживали инструкцию HLT (HALT), которая останавливала выполнение команд до тех пор, пока не поступит аппаратное прерывание — например, нажатие клавиши.
Эта команда позволяла CPU переходить в режим низкого потребления и снимать нагрузку в моменты бездействия.
Почему не добавили
Однако Microsoft отказалась от поддержки этой функции в Windows 95. Причина? Многие производители ПК реализовали поддержку инструкции HLT неправильно.
В результате, выполнение HLT часто приводило к полной «заморозке» машины, восстановить которую без перезагрузки было невозможно.
Low-code и No-code: 10 задач программиста, которые они точно решатtproger.ru
Разумеется, Microsoft не могла допустить такого риска. Один неправильный вызов инструкции и компьютер пользователя превращается в кирпич.
Попытки автоматически проверять, безопасно ли применять HLT на конкретной модели, тоже сочли рискованными: охватить все оборудование, особенно на старте продаж Windows 95, было бы нереально.
Кто виноват — Microsoft или производители?
Поскольку причина отказа от HLT не была озвучена публично, многие в то время обвинили Microsoft в «лени» и неэффективности: дескать, почему бы не включить столь очевидную функцию энергосбережения?
Но как объяснил ветеран Microsoft Рэймонд Чен (Raymond Chen), дело было именно в производителях «железа», чьи устройства попросту не справлялись с HLT. Ответственность лежала не на Windows, а на тех, кто делал несовместимые с ней ПК.
Чем заменили
Позднее схожую функцию реализовали с помощью инструкции MWAIT, более надежной и универсальной. Она стала стандартной для управления энергопотреблением в более современных ОС и процессорах.
Но в 1995 году HLT оставалась единственным вариантом. И Microsoft решила отказаться от нее, чтобы не рисковать стабильностью системы. Решение оказалось непопулярным, но, как показала практика — оправданным.