Что происходит в Linux, когда динамическая библиотека обновляется на диске - PullRequest
2 голосов
/ 22 апреля 2011

Что происходит в Linux, когда динамическая библиотека загружается, обновляется на диске, а затем запускается новый процесс, который связывается с этой библиотекой? Новый процесс связан со старой копией в памяти или более новой версией на диске?

1 Ответ

2 голосов
/ 22 апреля 2011

Когда менеджеры пакетов обновляют файлы на диске, они фактически удаляют старый файл и записывают новый файл на его место.В результате старые приложения, которые уже открыли библиотеку, продолжают видеть старую - старый файл все еще существует на диске и в памяти, но не имеет имен файлов , указывающих на него больше.Файлы такого типа называются сиротами .

. Между тем, приложения, запущенные после замены библиотеки, начинают использовать обновленную версию библиотеки.

Именно поэтому послеПри отключении питания вы иногда видите следующие сообщения в журналах или во время загрузки:

EXT4-fs (sda3): 34 orphan inodes deleted

Старая система по-прежнему обращалась к этим файлам после сбоя, но они больше не видны приложениям, поэтому они должныбыть удаленным.

...