
Вопрос похож наВот этотза исключением того, что это для водителей.
Почему мне нужно перезагрузить компьютер после установки новых драйверов? Например, если я сделал новую установку Windows 7, установил на нее аудиодрайверы, звук работает нормально без перезагрузки, но установщик все равно просит перезагрузить компьютер.
Я предполагаю, что это похоже на рассуждение «потому что пользователи глупы», но мне бы хотелось услышать техническое обоснование этого.
решение1
Самая простая техническая причина — «они используются».
Если вы создаете файл изображения в Paint, сохраните его, но не закрывайте Paint и не пытайтесь удалить файл. Explorer скажет, что не может, так как он используется.
Это основа для перезагрузки, только при загрузке Windows может гарантировать, что ни одна программа не использует файлы драйверов.
В более поздних версиях Windows они построили четко определенные слои-оболочки (или границы) вокруг определенных областей (например, дисплея). Слой взаимодействует с базовым драйвером, но он также является единственной программой, которая может когда-либо использовать этот драйвер, поэтому проще всего «отключить» драйвер и заменить его.
ядуматьВ Linux и OSX этот многоуровневый подход является более фундаментальным в конструкции, поэтому перезагрузки требуются редко, если вообще требуются.
решение2
В настоящее время это имеет в основном исторические причины. Как вы заметили, большинство драйверов Windows сегодня можно установить «на лету», то есть они работают без перезагрузки. Однако так было не всегда, предыдущие версии Windows и предыдущие поколения оборудования требовали более сложных процедур настройки, которые можно было выполнить только при загрузке. Сегодня производители либо ленивы и не адаптируют свои установщики, либо не знают о возможности отсутствия необходимости в перезагрузке, либо просто хотят перестраховаться. А с Windows, по-прежнему, всегда безопаснее просто перезагрузить, чтобы сгладитьвозможныйпричуды.
решение3
Во многих случаях вы все еще используете свои «старые» драйверы, пока ваша система не перезагрузится. Даже если свойства устройства могут отображать новую версию драйвера, в некоторых случаях оно не будет использовать новый драйвер, пока система не перезагрузится.
Драйвер — это интерфейс к устройству, который вызывается службами и другими приложениями в вашей системе, эти другие приложения и службы могут уже иметь открытый вызов к устройству, который не будет выпущен до перезагрузки вашей системы. В результате система может быть потенциально нестабильной — приложение делает вызов к драйверу и ожидает поведения A, но обновление приводит к поведению B, и вы получаете сбой приложения или ошибку STOP.