Wie geht apt-get remove xterm
das durch? Und nachdem es deinstalliert wurde, wird xterm
es nicht geschlossen und funktioniert normal weiter.
Wird der xterm
Prozess im RAM zwischengespeichert, während er ausgeführt wird?
Wie geht apt-get remove xterm
das durch? Und nachdem es deinstalliert wurde, wird xterm
es nicht geschlossen und funktioniert normal weiter.
Wird der xterm
Prozess im RAM zwischengespeichert, während er ausgeführt wird?
Antworten:
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.
rm -rf /
funktioniert ...
rm -rf /
funktioniert es nicht, wenn Sie versuchen, es unmittelbar danach ein zweites Mal
lsof
Ausgabe oft "/ some / file / name (deleted)" gesehen , und ich weiß, wie eine "Zombie" -Datei aussieht ... aber gibt es eine Möglichkeit, den Inhalt einer solchen Datei vor dem Verschwinden zu bewahren Wann stirbt das letzte Dateihandle?
root
möglicherweise mithilfe des linkat
Systemaufrufs ein Name für dieses Handle erstellt (und somit das Löschen verhindert) werden . Ausführbare Dateien und Bibliotheken sind jedoch speicherabgebildet, sodass kein Dateihandle erforderlich ist. Ich kenne keine Möglichkeit, eine Datei in den Griff zu bekommen, die nur existiert, weil sie speicherabgebildet ist. Auf ausführbare Dateien kann zwar /proc
während der Ausführung zugegriffen werden, es sind jedoch möglicherweise nur Bibliotheken und andere Speicherzuordnungsdateien, die nicht wiederhergestellt werden können. Wenn Sie weitere Details dazu wünschen, sollten Sie dies als separate Frage stellen.
Wird der
xterm
Prozess im 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 xterm
, dies ist jedoch kein Problem.
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. ;)
apt-get
es deinstalliertxterm
sich und hat keine Ahnung, dass es irgendwie von einemxterm
Prozess abhängt - es geht also um "Warum kann xterm während der Ausführung deinstalliert werden?". Gute Frage.