При обновлении примера в MS Windows 7 запрашивается закрытие активного экземпляра того же приложения (если оно активно) для обновления.
Как Ubuntu заменяет активное работающее приложение на более новую версию, не мешая его активному экземпляру. [Замечено для многих пакетов]
Я постараюсь объяснить это как можно проще. Большинство файловых систем Linux немного отличаются от файловых систем Windows (NTFS). По своей сути оба содержат индексную таблицу имен файлов (записей), указывающих на фактические данные, хранящиеся на диске. В NTFS это называется MFT (главная таблица файлов) - вы могли видеть прокрутку этого имени, если вы запускаете chkdsk
.
Однако «небольшая разница», о которой я упоминал, состоит в том, что индексные таблицы Linux, если хотите, состоят из двух уровней: индекса и inode . Иноды содержат фактические метаданные файла, включая его физическое местоположение на диске; «имя файла» в индексе - это просто (жесткая) ссылка на индекс.
Когда вы обновляете / обновляете работающее приложение, обновленные файлы записываются на диск, иноды, указывающие на новые / создаваемые данные, а также обновляются имена файлов, чтобы связываться с этими новыми инодами. Но для любых файлов, которые уже используются запущенным приложением (т. Е. Существуют файловые дескрипторы), их имена будут продолжать указывать на старые inode (которые содержат старые данные), пока файловые дескрипторы не будут закрыты. Обычно это происходит при выходе из приложения или для некоторых системных файлов при перезагрузке. На этом этапе старые данные фактически удаляются с вашего диска.