7

Возможный дубликат:
Зачем мне нужно перезагрузить компьютер после установки нового программного обеспечения?

То есть, что может сделать установка приложения так, что оно может потребовать перезагрузки?

Следствие (просто из интереса): Существуют ли вещи, которые не обязательно требуют перезагрузки, но при этом было бы проще просто заставить пользователя перезагрузиться, чем реализовать какое-то решение без перезагрузки?

3 ответа3

13

В Windows вам необходимо перезагрузить компьютер, поскольку файл DLL (или EXE) не может быть заменен во время использования. Некоторые драйверы и службы не поддерживают "выгрузку", поэтому вы должны перезагрузить компьютер, если хотите заменить используемые им DLL или EXE-файлы. Однако большинство драйверов и служб могут быть перезапущены независимо от остальной части компьютера, поэтому вы можете технически остановить все процессы, используя файл, заменить файл и перезапустить их все снова. Но в большинстве случаев, когда этот список процессов велик, проще просто попросить пользователя перезагрузиться.

В Linux вы можете заменить файлы, пока они используются запущенными процессами. Это имеет тот недостаток, что любые существующие процессы будут продолжать использовать старую версию объекта (до тех пор, пока она не будет перезапущена), но любые новые процессы, которые вы запустите после обновления, будут использовать новую версию. Если существуют какие-либо общие структуры данных или что-то подобное, то одновременно работающие версии могут вызвать нестабильность системы. Вот почему в Linux вы, как правило, по-прежнему перезапускаете отдельные процессы, которые зависят от объектного файла, когда вы обновляете его (также нет особого смысла продолжать работу со старой версией, если вы только что сделали обновление - особенно если это было обновление безопасности). ).

1

Когда вы заменяете ядро операционной системы, гораздо проще перезагрузить операционную систему, чем пытаться заменить ядро во время работы.

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

Замена системной стандартной библиотеки C может оправдать перезагрузку: вам все равно придется перезапустить все процессы в системе, чтобы в любом случае воспользоваться новой библиотекой C. Но вы можете просто /sbin/telinit u чтобы заставить init использовать новую библиотеку, перезапустить все ваши службы, затем перезапустить X, если вы ее запускаете, и все будет сделано без перезагрузки.

Так что это требуется только ядру.

0

что может сделать установка приложения так, что может потребоваться перезагрузка?

Ничего такого. На этом настаивают адвокаты. Там нет технической причины для перезагрузки. Это все просто пух.

что может сделать установка приложения так, что может потребоваться перезагрузка?

Любая общесистемная настройка, которая изменилась. Что-нибудь в /etc , например. Некоторые приложения включают исправления ядра и драйверы. Множество технических изменений в конфигурации ОС может привести к перезагрузке.

проще просто заставить пользователя перезагрузиться, чем реализовать какое-то решение без перезагрузки

Какие? Что такое «решение без перезагрузки»?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .