Когда система перезагружается, почему бы ей не перейти в какое-то минимальное состояние (например, init 1 в linux) и начать оттуда, вместо того, чтобы полностью выключать устройства и включать их (вызывая большую задержку)
2 ответа
Большая часть внутреннего оборудования в ПК требует инициализации при загрузке, чтобы корректно отображаться в CPU. Хотя внешние устройства plug and play предназначены для удаления и добавления в любое время, аппаратное обеспечение контроллера материнской платы за этими интерфейсами - нет. В любом случае, все такие устройства подключаются к чипсету, который сам должен быть инициализирован. Обычно эта инициализация является разовой, пока устройство не будет перезагружено. Некоторые, но не все устройства обеспечивают способ повторной инициализации устройства до его состояния загрузки без физического сброса. Физический сброс ко всем таким устройствам гарантирует известное состояние, из которого система может перейти к упорядоченному запуску.
Существует также проблема, заключающаяся в том, что некоторые, если не большинство, наборов микросхем ПК, которые образуют физический концентратор для всех систем ввода-вывода и даже таких вещей, как конфигурация ОЗУ, требуют запатентованных шагов инициализации, которые BIOS выполняет, прежде чем вы даже получите дисплей.
При этом Linux (не Windows) предоставляет возможность перезапустить ядро, эффективно "нагружая" загрузку системы без участия BIOS. Посмотри в kexec
. Насколько я знаю, для Windows нет ничего подобного.
Система не выключает устройства. Сами устройства обнаруживают сигнал на линии сброса и сбрасывают сами.