Почему иногда мне нужно перезагрузить компьютер после установки нового программного обеспечения, а иногда нет?
есть ли причина, почему он должен это перезагрузка или почему это не всегда так или иначе?
Почему иногда мне нужно перезагрузить компьютер после установки нового программного обеспечения, а иногда нет?
есть ли причина, почему он должен это перезагрузка или почему это не всегда так или иначе?
Это зависит.
Если устанавливаемое программное обеспечение влияет на неотъемлемую часть операционной системы, требуется перезагрузка. Например новое ядро для операционной системы.
на системах Windows, он часто используется, потому что пользователи считаются слишком глупы, чтобы использовать свои компьютеры должным образом. Например, корпорация Майкрософт публикует сведения об изменении "типа узла", используемого для работы в сети на сайте, включая инструкцию к "перезагрузите компьютер", когда все, что требуется, это перезапуск сетевой службы, как описано здесь. Потому что мы, как пользователи слишком глупы, чтобы перезапустить службу, нам говорят перезапустить все.
для некоторых частей программного обеспечения, я пришел к выводу, что это привычка и часто не надо даже, когда сказали, чтобы сделать так. Если я не думаю, что программа должна была сделать все для операционной системы, я стараюсь не заморачиваться, и не испытал любые проблемы (и если были проблемы, то они были бы легки для того чтобы разрешить).
иногда часть програмного обеспечения сделает изменение которое не может прийти в Влияние пока компьютер польза. Некоторые причины могут быть-файл используется, изменение может произойти только во время загрузки компьютера, может быть проблема безопасности, которая может быть сделано только до того, как компьютер имеет свою сеть активна, может быть, вирус сканер будет мешать установке.
иногда, это просто небрежное Программирование разработчиками.
Я уверен, что есть много более.
часто при установке нового программного обеспечения dll (файл), который используется многими другими пакетами программного обеспечения должны быть обновлены до новой версии. (Это гораздо более вероятно при обновлении уже установленного приложения.)
Если библиотека dll используется запущенным приложением, ее часть будет загружена в память, а остальная часть будет прочитана с диска при необходимости. Поэтому библиотека dll будет заблокирована на диске. (Подумайте о проблемах, если бы не было заперто!)
не удается обновить заблокированную библиотеку DLL, поэтому при следующем перезапуске компьютера программа установки попросит windows заменить ее новой версией. Отсюда и необходимость перезагрузки.
некоторые лучшие установщики расскажут вам приложения, которые должны быть закрыты перед запуском установщика, так что позволяя DLL быть обновлены без перезагрузки. однако, что делает пользовательский интерфейс установщика более сложным и приводит к большему количеству вызовов поддержки.
установщик для приложения также может получить приложение, чтобы сохранить свое состояние, закрыть его самостоятельно вниз, а затем перезагрузить после DLL был обновлен. Это можно сделать только в том случае, если библиотека DLL используется одним приложением. Большинство самообновляющихся приложений делают это-это должно быть нормой для приложений массового рынка, когда много пользователей.
все вышеперечисленное может привести к сложной логикой, которую трудно проверить. Тестирование инсталляторов занимает много времени, так как нужно попробовать угадать каждое состояние компьютера пользователя. Поэтому часто лучше всего, чтобы установщик был простым и всегда работал, даже если это приведет к еще нескольким перезапускам для пользователя.
Не часто пользователь решает купить другое приложение из-за перезагрузки программы установки, поэтому продавец тратит время (деньги) на то, что необходимо, чтобы заставить пользователя купить свои приложения.
как часто у вас были проблемы после установки приложения все разрешилось, когда вы перезагрузились? Подумайте о стоимости поддержки многих пользователей, звонящих с проблемами, которые сортируются только с перезагрузкой. Он может быстро стать очень temping как разработчик, чтобы всегда получить пользователю сделать перезагрузку после установки программного обеспечения, даже если вы думаете, что это не нужно.
большинство операционных систем и программного обеспечения были написаны в те дни, когда дискового пространства и памяти стоимостью много деньги. Существует в настоящее время шаг для приложений, чтобы иметь частную копию всех библиотек DLL, которые они используют, следовательно, делает обновление ластик, но используя больше места для хранения.
на серверах это делается с помощью "контейнеров", однако" контейнеры " не работают хорошо для настольного программного обеспечения, так как вы хотите иметь доступ к данным, сохраненным одним приложением с помощью другого приложения. (В противном случае просто используйте iPhone.)
причина в том, что если вы этого не сделаете: вы рухнет. От Raymond Chen:
даже если вы замените файл, который используется, в системе все еще может быть код, который хочет использовать старую версию. Например, предположим, что у вас есть два файла, которые работают вместе:
- A.dll
- B.dll
вы выпускаете патч, который обновляет оба файла, но
A.dll
используется. Не проблема. Вы просто замените оба. В результате программы, которые все еще используютA.dll
продолжайте использовать старую версию, но новые программы будут использовать новую. И все программы получают новую версиюB.dll
.теперь программа, которая использовала старый
A.dll
решает вызвать функцию. Естественно, его ожидает старая версияB.dll
, но вместо этого получает новую версию. В зависимости от того, какие изменения вы внесли вB.dll
этот звонок может работать или может произойти сбой. Обе библиотеки DLL предполагают, что ее партнер приходит в один набор.
чтобы быть полностью честным, это меньше работы (и, следовательно, меньше $$) со стороны разработчиков программного обеспечения, чтобы предположить, что обновления всегда будут приводить к перезапуску. Это, вероятно, такое же решение счетчиков бобов, как и разработчиков.
в конечном счете, есть очень мало обновлений, которые не могли бы, в идеальном мире, быть сделано без перезагрузки, но это занимает много предварительного планирования, и есть некоторые риски, учитывая широкий спектр возможных конфигураций система может иметь.
вы должны перезапустить, когда важные системные файлы для Windows, изменяются, потому что Windows не позволяет эти файлы, которые будут изменены во время их использования. Таким образом, большинство обновлений из Центра Обновления Windows требуют перезагрузки, как и программы, которые интегрируются в Windows (например, антивирус). До перезагрузки, Windows не может выполнить последние шаги, необходимые для установки программы.
вы можете сравнить это с Linux, который редко требует перезагрузки. Даже когда вас попросят перезагрузиться, обычно вам нужно только выйти из системы и вернуться обратно. Это происходит потому, что типичный среде Linux состоит из множества отдельных программ, которые работают вместе, чтобы создать полную ОС. Если важный файл изменяется во время установки, обычно в лучшем случае необходимо перезапустить только одну конкретную программу, использующую файл.
Это связано с тем, что очень сложно изменить код, так как он работает, не вызывая серьезных проблем. Решение: остановите все перед изменением кода, таким образом вы можете быть уверены, что ничего не работает. Это грубая сила хак, который в значительной степени ненужным много раз, что это якобы требуется, но это может быть абсолютно необходимо, особенно если вам случится быть обновление особенно важный код. Фактически вся компания которая специализирует В делать обновления, которые не требуют перезагрузки для этого особенно важного кода. То, как они это делают, в этой статьеhttp://www.ksplice.com/paper.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]