webentwicklung-frage-antwort-db.com.de

Warum kann sich das Terminal selbst deinstallieren?

screenshot

Wie geht apt-get remove xterm durch? Nach der Deinstallation wird xterm nicht geschlossen und funktioniert weiterhin normal.

Wird der xterm -Prozess in RAM zwischengespeichert, während er ausgeführt wird?

25
Huey

Nicht ganz. Die Datei ist bereits vom Programm geöffnet. Das Löschen der Datei (und das anschließende Ersetzen durch eine andere Version) hat keine Auswirkungen auf das laufende Programm, da die ursprüngliche Datei geöffnet bleibt (allerdings ohne Namen auf der Festplatte, um sie erneut zu öffnen), bis das Programm damit fertig ist. Erst wenn alle Handles für die Datei geschlossen sind, werden die Datenblöcke auf der Festplatte freigegeben. Bis dahin kann die geöffnete Datei wie gewohnt gelesen und geschrieben werden. Die einzige Änderung besteht darin, dass sie von niemand anderem geöffnet werden kann, da ihr Name entfernt wurde.

Während Teile des Programms möglicherweise bereits beim Löschen in den RAM eingelesen wurden, können sie verworfen und später erneut eingelesen werden, oder neue Teile des Programms, die zuvor nicht ausgeführt wurden, können weiterhin aus der gelöschten Datei geladen werden.

54
psusi

Wird der xterm -Prozess in RAM zwischengespeichert, während er ausgeführt wird?

Genau. Es ähnelt dem Vorgang, mit dem Sie Updates für Dinge installieren können, während diese ausgeführt werden, ohne dass sie abstürzen. Und auch, warum Sie Dienste neu starten müssen, nachdem Sie sie aktualisiert haben. Sobald etwas ausgeführt wird, befindet sich seine Binärdatei im Speicher.

Wenn es von anderen Dateien abhängt (die sich nicht im Status "Offen" befinden), die entfernt oder ersetzt werden, kann dies zu Problemen führen, aber für etwas so Diskretes wie xterm ist dies kein Problem.

8
Oli

Es ist in der Tat ein Merkmal der Funktionsweise von Computern: Wenn ein Programm aufgerufen wird, wird es tatsächlich in den Speicher geladen und von dort aus funktioniert es.

Eine Datei funktioniert tatsächlich genauso. Um Probleme zu vermeiden, erstellen viele Dateien in UNIX-basierten Systemen Sperren.

Das eigentliche Rätsel ist, warum Sie solche und ähnliche Dinge in Windows nicht ausführen können.

Mit dieser Funktion können Sie das gesamte System, einschließlich der in Ihrem System aktiven Programme, aktualisieren. ;)

2
runlevel0