it-swarm.com.de

Warum muss ich den Computer nach der Installation neuer Software neu starten?

Warum muss ich manchmal meinen Computer nach der Installation neuer Software neu starten und manchmal nicht?

Gibt es einen Grund, warum es diesen Neustart benötigt oder warum es nicht immer so oder so ist?

38
lindows

Es hängt davon ab, ob.

Wenn die zu installierende Software einen wesentlichen Bestandteil des Betriebssystems betrifft, ist ein Neustart erforderlich. Zum Beispiel ein neuer Kernel für das Betriebssystem.

Auf Windows-Systemen wird es häufig verwendet, da Benutzer als zu dumm angesehen werden, um ihre Computer ordnungsgemäß zu verwenden. Beispielsweise veröffentlicht Microsoft Details zum Ändern des für das Netzwerk verwendeten "Knotentyps" auf seiner Website , einschließlich der Anweisung zum "Neustarten des Computers". Wenn nur ein Neustart eines Netzwerkdienstes erforderlich ist, wie hier beschrieben . Da wir Benutzer zu dumm sind, um einen Dienst neu zu starten, werden wir aufgefordert, alles neu zu starten.

Bei einigen Software-Komponenten bin ich zu dem Schluss gekommen, dass dies eine Gewohnheit ist und oftmals nicht erforderlich ist, selbst wenn man dazu aufgefordert wird. Wenn ich nicht der Meinung bin, dass eine Software dem Betriebssystem etwas Wesentliches hätte anhaben sollen, störe ich eher nicht und habe keine Probleme festgestellt (und wenn es Probleme gäbe, wären diese leicht zu lösen).

38
Neal

Manchmal nimmt eine Software eine Änderung vor, die während der Verwendung des Computers nicht wirksam wird. Einige Gründe könnten sein - eine Datei wird verwendet, die Änderung kann nur während des Hochfahrens des Computers erfolgen, es kann ein Sicherheitsproblem geben, das nur durchgeführt werden kann, bevor das Netzwerk des Computers aktiv ist, möglicherweise würde der Virenscanner die Funktion beeinträchtigen Installieren.

Manchmal ist es nur eine schlampige Programmierung durch die Entwickler.

Ich bin mir sicher, dass es noch viel mehr gibt.

15
bryan

Wenn Sie neue Software installieren, muss häufig eine DLL (Datei), die von vielen anderen Softwarepaketen verwendet wird, auf eine neue Version aktualisiert werden. (Dies ist viel wahrscheinlicher, wenn Sie eine bereits installierte Anwendung aktualisieren.)

Wenn die DLL von einer laufenden Anwendung verwendet wird, wird ein Teil davon in den Speicher geladen und der Rest wird bei Bedarf von der Festplatte gelesen. Daher wird die DLL auf der Festplatte gesperrt. (Denken Sie an die Probleme, wenn es nicht gesperrt war!)

Ein gesperrtes DLL kann nicht aktualisiert werden. Daher fordert das Installationsprogramm Windows auf, das DLL beim nächsten Neustart des Computers durch die neue Version zu ersetzen. Daher ist ein Neustart erforderlich.

Einige bessere Installationsprogramme teilen Ihnen mit, welche Anwendungen vor dem Ausführen des Installationsprogramms geschlossen werden sollten, damit die DLL -Datei ohne Neustart aktualisiert werden kann.Dies macht die Benutzeroberfläche des Installationsprogramms jedoch komplexer und führt zu weiteren Supportanfragen.

Ein Installationsprogramm für eine Anwendung kann auch veranlassen, dass die Anwendung ihren Status speichert, sich selbst herunterfährt und nach der Aktualisierung von DLL neu startet. Dies ist nur möglich, wenn die DLL von einer einzelnen Anwendung verwendet wird. Die meisten selbstaktualisierenden Anwendungen tun dies - dies sollte die Norm für Massenmarktanwendungen sein, wenn viele Benutzer vorhanden sind.

All dies kann zu einer komplexen Logik führen, die schwer zu testen ist. Das Testen von Installationsprogrammen nimmt viel Zeit in Anspruch, da Sie versuchen müssen, festzustellen, in welchem ​​Zustand sich der Computer eines Benutzers befindet. Daher ist es für ein Installationsprogramm häufig am besten, einfach zu sein und immer zu funktionieren, auch wenn dies zu einigen weiteren Neustarts des Benutzers führt .

Es kommt nicht oft vor, dass sich ein Benutzer aufgrund eines Neustarts des Installationsprogramms für den Kauf einer anderen Anwendung entscheidet. Daher verwendet der Anbieter die erforderliche Zeit (Geld), um den Benutzer zum Kauf seiner Anwendungen zu bewegen .

Wie oft hatten Sie Probleme nach der Installation einer Anwendung, die sich beim Neustart selbst aussortiert hat? Denken Sie an die Supportkosten vieler Benutzer, die mit Problemen telefonieren, die nur durch einen Neustart behoben werden. Als Entwickler kann es schnell sehr anstrengend werden, den Benutzer nach der Installation der Software immer zum Neustart zu bewegen, auch wenn Sie der Meinung sind, dass dies nicht erforderlich ist.

----------

Die meisten Betriebssysteme und Software wurden in den Tagen geschrieben, in denen Speicherplatz und Arbeitsspeicher eineMengeGeld gekostet haben. Es ist nun eine Bewegung für Anwendungen, um eine private Kopie aller verwendeten DLLs zu haben, wodurch ein Upgrade des Radiergummis durchgeführt wird, aber mehr Speicherplatz verwendet wird.

Auf Servern wird dies mit "Containern" durchgeführt, jedoch funktionieren "Container" für Desktop-Software nicht gut, da Sie mit einer anderen Anwendung auf die von einer Anwendung gespeicherten Daten zugreifen möchten. (Ansonsten einfach ein iPhone benutzen.)

13
Ian Ringrose

Der Grund dafür ist, dass Sie abstürzen, wenn Sie dies nicht tun. Von Raymond Chen :

Auch wenn Sie eine verwendete Datei ersetzen, enthält das System möglicherweise noch Code, der die alte Version verwenden möchte. Angenommen, Sie haben zwei Dateien, die zusammenarbeiten:

  • A.dll
  • B.dll

Sie geben einen Patch heraus, der beide Dateien aktualisiert, aber A.dll wird verwendet. Kein Problem. Sie ersetzen einfach beide. Infolgedessen verwenden Programme, die noch A.dll verwendeten, weiterhin die alte Version, aber neue Programme verwenden die neue. Und alle Programme bekommen die neue Version von B.dll.

Jetzt beschließt ein Programm, das den alten A.dll verwendet, eine Funktion aufzurufen. Es erwartet natürlich die alte Version von B.dll, erhält jedoch stattdessen die neue Version. Je nachdem, welche Art von Änderung Sie an B.dll vorgenommen haben, funktioniert dieser Aufruf möglicherweise - oder er kann abstürzen. Beide DLLs gehen davon aus, dass der Partner aus derselben übereinstimmenden Menge stammt.

7
Ian Boyd

Um ganz ehrlich zu sein, ist es für die Softwareentwickler weniger arbeitsaufwendig (und daher auch weniger kostspielig), davon auszugehen, dass Updates immer zu einem Neustart führen. Dies ist wahrscheinlich ebenso eine Entscheidung der Beancounter wie der Entwickler.

Letztendlich gibt es nur sehr wenige Aktualisierungen, die in einer idealen Welt nicht ohne Neustart durchgeführt werden könnten, aber es erfordert eine Menge Vorplanung, und es gibt einige Risiken angesichts der Vielzahl der möglichen Konfigurationen, die ein System haben könnte.

2
Daniel R Hicks

Dies hat damit zu tun, dass es sehr schwierig ist, den Code zu ändern, da er ausgeführt wird, ohne größere Probleme zu verursachen. Die Lösung: Beenden Sie alles, bevor Sie den Code ändern. Auf diese Weise können Sie sicher sein, dass nichts ausgeführt wird. Es ist ein Brute-Force-Hack, der in den meisten Fällen, in denen er angeblich benötigt wird, weitgehend unnötig ist, aber absolut notwendig sein kann, insbesondere, wenn Sie gerade besonders wichtigen Code aktualisieren. Es gibt tatsächlich eine ganze Firma, die sich darauf spezialisiert hat, Aktualisierungen vorzunehmen, für die für diesen besonders wichtigen Code KEIN Neustart erforderlich ist. Die Art und Weise, wie sie es tun, ist in diesem Artikel http://www.ksplice.com/paper .

0
Aviendha