Bei der Beispielaktualisierung in MS Windows 7 werden Sie aufgefordert, die aktive Instanz derselben Anwendung (falls aktiv) zum Aktualisieren zu schließen.
Wie ersetzt Ubuntu die aktive Arbeitsanwendung durch eine neuere Version, ohne die aktive Instanz zu beeinträchtigen? [Bei vielen Paketen bemerkt]
Ich werde versuchen, dies so einfach wie möglich zu erklären. Die meisten Linux-Dateisysteme unterscheiden sich geringfügig von den Windows-Dateisystemen (NTFS). Beide enthalten im Kern eine Indextabelle mit Dateinamen (Einträgen), die auf die tatsächlich auf der Festplatte gespeicherten Daten verweisen. In NTFS wird dies als MFT (Master File Table) bezeichnet. Möglicherweise haben Sie gesehen, dass dieser Name durchläuft, wenn Sie a ausführen chkdsk
.
Der "kleine Unterschied", den ich erwähnt habe, besteht jedoch darin, dass die Linux-Indextabellen, wenn Sie so wollen, aus zwei Ebenen bestehen: dem Index und den Inodes . Die Inodes enthalten die tatsächlichen Dateimetadaten, einschließlich des physischen Speicherorts auf der Festplatte. Der "Dateiname" im Index ist einfach eine (harte) Verknüpfung zum Inode.
Wenn Sie eine laufende Anwendung aktualisieren / aktualisieren, werden die aktualisierten Dateien auf die Festplatte geschrieben, Inodes verweisen auf die neu erstellten / aktualisierten Daten, und die Dateinamen werden ebenfalls aktualisiert, um eine Verknüpfung zu diesen neuen Inodes herzustellen. Aber , für alle Dateien , die bereits von einer laufenden Anwendung (zB Datei - Handles vorhanden sind ), werden ihre Dateinamen verweisen auf die alte Inodes weiter (die die alten Daten enthalten) , bis die Datei - Handles geschlossen sind. Dies geschieht normalerweise beim Beenden der Anwendung oder bei einigen Systemdateien beim Neustart. Zu diesem Zeitpunkt werden die alten Daten tatsächlich von Ihrer Festplatte entfernt.