W przypadku przykładowej aktualizacji w MS Windows 7 prosi o zamknięcie aktywnej instancji tej samej aplikacji (jeśli jest aktywna) w celu aktualizacji.
W jaki sposób Ubuntu zastępuje aktywną działającą aplikację do nowszej wersji bez ingerowania w jej aktywną instancję. [Zauważono dla wielu pakietów]
Spróbuję wyjaśnić to tak prosto, jak to możliwe. Większość systemów plików Linux nieco różni się od systemów plików Windows (NTFS). W ich istocie oba zasadniczo zawierają tabelę indeksów nazw plików (wpisów) wskazujących na rzeczywiste dane przechowywane na dysku. W NTFS nazywa się to MFT (główna tablica plików) - być może widziałeś, jak ta nazwa przewija się po uruchomieniu chkdsk
.
Jednak „niewielka różnica”, o której wspomniałem, polega na tym, że tabele indeksów Linuksa, jeśli wolisz, składają się z dwóch poziomów: indeksu i i- węzłów . I-węzły zawierają rzeczywiste metadane pliku, w tym jego fizyczną lokalizację na dysku; „nazwa pliku” w indeksie jest po prostu (twardym) linkiem do i-węzła.
Podczas aktualizacji / aktualizacji działającej aplikacji zaktualizowane pliki są zapisywane na dysku, i-węzły wskazują nowe utworzone / zaktualizowane dane, a nazwy plików są również aktualizowane w celu połączenia z tymi nowymi i-węzłami. Ale w przypadku wszystkich plików, które są już używane przez uruchomioną aplikację (tzn. Istnieją uchwyty plików), ich nazwy plików będą nadal wskazywać stare i-węzły (które zawierają stare dane), dopóki uchwyty plików nie zostaną zamknięte. Zwykle dzieje się tak po wyjściu z aplikacji lub w przypadku niektórych plików systemowych po ponownym uruchomieniu. W tym momencie stare dane są faktycznie usuwane z dysku.