Der Software Updater wird update-manager
geöffnet und zeigt beispielsweise Sicherheitsupdates für Firefox an. Natürlich klicke ich auf "Jetzt installieren", um fortzufahren.
Was passiert jedoch, wenn Firefox bei dieser Aktion noch ausgeführt wird? Wird Firefox weiterhin aktualisiert? Wird das Update übersprungen und beim nächsten Mal wieder angezeigt? Erzwingt das Update, dass Firefox geschlossen wird und möglicherweise abstürzt? Wird die Software nur teilweise aktualisiert und möglicherweise meine Firefox-Installation unterbrochen?
Antworten:
Sie müssen an Windows denken. Unix hat es richtig gemacht, und später kam Windows und entwickelte falsche Methoden.
Unter Windows kann das Ersetzen einer Datei, die von einem ausgeführten Prozess verwendet wird, diesen Prozess beeinträchtigen. Der Prozess verweist auf Speicherorte in dieser Datei und erhält falsche Informationen daraus, in der Regel mit katastrophalen Ergebnissen. Aus diesem Grund erfordert ein Windows-Update im Allgemeinen einen Neustart, um sicherzustellen, dass alle Prozesse die richtigen Versionen von Bibliotheken usw. verwenden.
Unter Unix ist nach dem Öffnen einer Datei durch einen Prozess immer dieselbe Datei für den Prozess verfügbar, auch wenn die ursprüngliche Datei aus dem Dateisystem entfernt wurde .
Nach einem Update enthält das Dateisystem eine andere Version der Datei, und alle Prozesse, die nach dem Update gestartet werden, verwenden diese neue Datei. Im Gegensatz zu Windows werden in allen alten Unix-Prozessen weiterhin die ursprünglichen Dateien verwendet, mit denen sie begonnen haben. Auch wenn der Zugriff über das Dateisystem nicht mehr möglich ist, bleiben diese Dateien so lange bestehen, wie sie von einem Prozess verwendet werden. Wenn die Dateien nicht von Prozessen verwendet werden, wird die alte Version der Dateien endgültig gelöscht.
Sie können natürlich auch Firefox (oder andere Prozesse) neu starten, wenn Sie die Vorteile des Updates sofort nutzen möchten. Es ist deine Entscheidung.
quelle
In der Regel ist das Aktualisieren eines bereits geöffneten Programms kein Problem. Wie die anderen Antwortenden bereits erklärt haben, kann ein ausgeführter Prozess auch dann weiter ausgeführt werden, wenn die ausführbare Datei gelöscht wird.
Aufgrund des Multi-Prozess-Modells von Firefox erhalten Sie jedoch möglicherweise die Aufforderung, es nach einem Update trotzdem neu zu starten. Dies liegt daran, dass Firefox neue Prozesse erzeugt, um verschiedene Websites zu isolieren. Wenn also ein neuer Prozess erzeugt wird, nachdem Sie ihn aktualisiert haben, aber bevor Sie Firefox neu starten, ist der neue Prozess eine neuere Version von Firefox als der Rest des Browsers. Dies kann verschiedene Probleme verursachen. Firefox fordert Sie daher möglicherweise auf, den Computer neu zu starten, bevor Sie fortfahren können.
Im Übrigen vermeidet Chrome dies, indem es einen "zygote" -Prozess verwendet, der herumsteht und nichts tut. Wenn der Browser einen neuen Prozess erzeugen muss, fordert er das Betriebssystem nicht auf, die ausführbare Datei des Browsers erneut auszuführen (wodurch die möglicherweise aktualisierte Binärdatei ausgeführt wird), sondern fordert den Zygote-Prozess auf, sich selbst zu duplizieren, und eine der Kopien wird dann zu einem normalen Renderer verarbeiten.
quelle