Pourquoi ai-je besoin de redémarrer l'ordinateur après l'installation du nouveau logiciel?


38

Pourquoi est-ce que parfois je dois redémarrer mon ordinateur après avoir installé un nouveau logiciel et d'autres fois non?

Y a-t-il une raison pour laquelle il a besoin de ce redémarrage ou pourquoi ce n'est pas toujours dans un sens ou dans l'autre?


2
Il s'agit essentiellement de mettre à jour le registre
Dwayne Samuels

4
Dans certains cas, vous pouvez simplement redémarrer un service au lieu de redémarrer.
Recette du


8
@dwayne La plupart des problèmes concernent les fichiers verrouillés (dll) et non le registre. Le registre est utilisé pour indiquer à Windows les fichiers à remplacer lors du redémarrage, mais ce n’est pas la raison pour laquelle le redémarrage est nécessaire.
Ian Ringrose

Réponses:


38

Ça dépend.

Si le logiciel en cours d'installation affecte une partie intégrante du système d'exploitation, un redémarrage est nécessaire. Par exemple, un nouveau noyau pour le système d'exploitation.

Sur les systèmes Windows, il est souvent utilisé car les utilisateurs sont considérés trop stupides pour utiliser leurs ordinateurs correctement. À titre d'exemple, Microsoft publie des informations détaillées sur la modification du "type de nœud" utilisé pour la mise en réseau sur son site Web , y compris l'instruction de "redémarrage de l'ordinateur" lorsqu'il suffit d' un redémarrage d'un service réseau, comme indiqué ici . Parce que nous, les utilisateurs sont trop stupides pour redémarrer un service, on nous dit de tout redémarrer.

Pour certains logiciels, je suis parvenu à la conclusion que c’était une habitude et qu’il n’était souvent pas nécessaire, même quand on le lui demandait. Si je ne pense pas qu'un logiciel aurait dû faire quelque chose de majeur pour le système d'exploitation, je n'ai pas tendance à m'embêter et je n'ai rencontré aucun problème (et s'il y en avait, il serait facile à résoudre).


6
Je suis d'accord. De nos jours, à moins de mettre à jour un fichier système ou un pilote essentiel, il n’ya aucune raison de redémarrer le système. Ce sont souvent les développeurs qui veulent s'assurer de "couvrir toutes les bases".
surfasb

1
S'il s'agit d'un ancien programme d'installation, il se peut qu'il demande simplement de redémarrer. S'il s'agit d'un développeur naïf, il peut être configuré pour demander le redémarrage, que cela soit nécessaire ou non. Les nouveaux installateurs qui exploitent correctement les fonctionnalités de MSI sont en mesure de signaler les applications conservant les fichiers nécessaires (dll, etc.) ouvertes et d’inviter l’utilisateur à les arrêter - c’est uniquement s’ils choisissent de laisser les applications en cours d’exécuter pour un redémarrage. C'est à peu près un gâchis bâclé, rien ne force les développeurs à utiliser MSI, encore moins l'utiliser correctement.
Stephanie

15

Parfois, un logiciel apportera un changement qui ne pourra pas entrer en vigueur tant que l'ordinateur est utilisé. Certaines raisons peuvent être - un fichier est en cours d'utilisation, la modification ne peut intervenir que pendant le démarrage de l'ordinateur, il peut y avoir un problème de sécurité qui ne peut être résolu que lorsque l'ordinateur est en réseau, le scanner de virus pourrait interférer avec le installer.

Parfois, il ne s'agit que d'une programmation bâclée par les développeurs.

Je suis sûr qu'il y en a beaucoup plus.


1
En particulier, quelles modifications ne peuvent entrer en vigueur lorsque l'ordinateur est en cours d'utilisation?
Anderson Green

13

Souvent, lorsque vous installez un nouveau logiciel, une dll (fichier) utilisée par de nombreux autres progiciels doit être mise à niveau vers une nouvelle version. (Ceci est beaucoup plus susceptible d'être le cas lors de la mise à niveau d'une application que vous avez déjà installée.)

Si la dll est utilisée par une application en cours d'exécution, une partie de celle-ci sera chargée en mémoire et le reste sera lu à partir du disque, le cas échéant. Par conséquent, la DLL sera verrouillée sur le disque. (Pensez aux problèmes si ce n'était pas verrouillé!)

Une DLL verrouillée ne peut pas être mise à jour. Le programme d'installation demandera donc à Windows de remplacer la DLL par la nouvelle version au prochain redémarrage de la machine. D'où la nécessité d'un redémarrage.

Certains meilleurs installateurs vous indiqueront les applications à fermer avant d'exécuter le programme d'installation, laissant ainsi la DLL mise à jour sans redémarrage. Cependant, cela rend l'interface utilisateur de l'installateur plus complexe et conduit à davantage d'appels au support technique.

Un programme d'installation pour une application peut également obtenir que l'application enregistre son état, la ferme automatiquement, puis redémarre une fois la DLL mise à jour. Cela ne peut être fait que si la DLL est utilisée par une seule application. La plupart des applications à mise à jour automatique le font - ceci devrait être la norme pour les applications de marché de masse lorsqu'il y a beaucoup d'utilisateurs.

Tout ce qui précède peut conduire à une logique complexe, difficile à tester. Le test des installateurs prend beaucoup de temps, car vous devez essayer de deviner tous les états possibles de la machine d'un utilisateur. Il est donc souvent préférable qu'un installateur soit simple et fonctionne toujours, même si cela entraîne quelques redémarrages supplémentaires pour l'utilisateur. .

Ce n'est pas souvent qu'un utilisateur décide d'acheter une application différente en raison du redémarrage de l'installateur. Le vendeur passe donc son temps (argent) à travailler sur ce qui est nécessaire pour amener l'utilisateur à acheter ses applications.

Combien de fois avez-vous eu un problème après avoir installé une application qui s'est réglée quand vous avez redémarré? Pensez aux coûts de support de nombreux utilisateurs téléphonant avec des problèmes résolus juste après un redémarrage. En tant que développeur, le fait de toujours demander à l’utilisateur de redémarrer après l’installation de votre logiciel peut rapidement devenir une tâche très ardue, même lorsque vous pensez que cela n’est pas nécessaire.

----------

La plupart des systèmes d'exploitation et des logiciels ont été écrits dans les jours où l' espace disque et de mémoire coûtent beaucoup d'argent. Les applications doivent maintenant disposer d'une copie privée de toutes les dll qu'elles utilisent, ce qui rend la mise à niveau plus efficace, mais utilise davantage d'espace de stockage.

Sur les serveurs, cela se fait avec des "conteneurs", cependant, les "conteneurs" ne fonctionnent pas bien pour les logiciels bureautiques, car vous souhaitez pouvoir accéder aux données sauvegardées par une application avec une autre application. (Sinon, utilisez simplement un iPhone.)


7

La raison en est que si vous ne le faites pas: vous allez tomber en panne. De Raymond Chen :

Même si vous remplacez un fichier en cours d'utilisation, il se peut qu'il reste du code dans le système qui souhaite utiliser l'ancienne version. Par exemple, supposons que vous ayez deux fichiers qui fonctionnent ensemble:

  • A.dll
  • B.dll

Vous publiez un correctif qui met à jour les deux fichiers, mais A.dllest en cours d'utilisation. Aucun problème. Vous remplacez simplement les deux. En conséquence, les programmes qui utilisaient toujours A.dllcontinuent à utiliser l'ancienne version, mais les nouveaux programmes utiliseront la nouvelle. Et tous les programmes reçoivent la nouvelle version de B.dll.

Maintenant, un programme qui utilisait l'ancien A.dlldécide d'appeler une fonction. Il attend naturellement l'ancienne version de B.dll, mais il obtient plutôt la nouvelle version. Selon le type de modification que vous avez apporté B.dll, cet appel peut fonctionner ou échouer. Les deux DLL supposent que son partenaire provient du même ensemble mis en correspondance.


Ce que vous décrivez peut être envisagé de différentes manières, mais il faut y réfléchir.
Daniel R Hicks

2

Pour être tout à fait honnête, les développeurs de logiciels ont moins de travail (et par conséquent moins de dollars) à supposer que les mises à jour entraîneront toujours un redémarrage. C'est probablement autant une décision des compteurs de haricots que des développeurs.

En fin de compte, très peu de mises à jour ne pourraient pas être effectuées sans redémarrage dans un monde idéal, mais il faut beaucoup de planification préalable et des risques, compte tenu de la grande variété de configurations possibles d'un système.


0

Cela tient au fait qu'il est très difficile de changer de code car il est exécuté sans causer de problèmes majeurs. La solution: arrêtez tout avant de changer le code, vous pouvez ainsi être sûr que rien ne fonctionne. C'est un hack de force brute qui est en grande partie inutile la plupart du temps, même si cela est censé être nécessaire, mais cela peut être absolument nécessaire, surtout si vous mettez à jour un code particulièrement important. Il existe en fait une société entière spécialisée dans les mises à jour qui ne nécessitent pas de redémarrage pour ce code particulièrement important. La manière dont ils le font est décrite dans le présent document http://www.ksplice.com/paper .


-1

Vous devez redémarrer lorsque des fichiers système importants pour Windows sont en cours de modification, car Windows n'autorise pas la modification de ces fichiers en cours d'utilisation. Ainsi, la plupart des mises à jour de Windows Update nécessitent un redémarrage, tout comme les programmes qui s’intègrent dans Windows (comme les antivirus). Jusqu'à ce que vous redémarriez, Windows ne peut pas exécuter les dernières étapes nécessaires à l '"installation" du programme.

Vous pouvez comparer cela à Linux, qui nécessite rarement un redémarrage. Même lorsque vous êtes invité à redémarrer, vous n'avez généralement besoin que de vous déconnecter et de vous reconnecter. En effet, un environnement Linux typique comprend de nombreux programmes distincts qui fonctionnent ensemble pour créer un système d'exploitation complet. Si un fichier important est modifié au cours d'une installation, vous ne devez généralement redémarrer que le programme spécifique qui utilise le fichier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.