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