Почему файловые системы на базе inode НЕ нуждаются в перезагрузке после обновления версий библиотеки?

Я пытаюсь понять, что такое инод. Однако этот отрывок из Википедии меня озадачивает:

Установка новых библиотек проста с файловыми системами inode. Выполненный процесс может получить доступ к файлу библиотеки, в то время как другой процесс заменяет этот файл, создавая новый индексный дескриптор, и все новое сопоставление будет существовать для нового файла, чтобы последующие попытки получить доступ к библиотеке получили новую версию. Это средство устраняет необходимость перезагрузки для замены библиотек в настоящее время. По этой причине при обновлении программ лучше всего сначала удалить старый исполняемый файл и создать новый индексный дескриптор для обновленной версии, чтобы любые процессы, выполняющие старую версию, могли быть невозмутимыми.

One Solution collect form web for “Почему файловые системы на базе inode НЕ нуждаются в перезагрузке после обновления версий библиотеки?”

В файловых системах в стиле Unix все, что система знает о файле (кроме его имени), хранится либо в inode, либо в месте, указанном inode. Это включает его содержимое, права собственности, даты модификации и разрешения. Запись каталога Unix – это просто имя и указатель на индексный дескриптор и используется только тогда, когда процесс открывает файл. Когда файл открыт, запись в каталоге не имеет значения.

Это означает, что можно удалить файл, который в настоящее время открыт, не нарушая процессы, которые читают или записывают этот файл. Удаление файла просто удаляет запись в каталоге. Индекс остается до тех пор, пока все процессы не закрыли файл, после чего индекс и все другие данные файла будут удалены (или, по крайней мере, отмечены как более не используемые и доступные для рекультивации). Это обрабатывается полем, называемым «счетчиком ссылок», частью структуры индексного дескриптора.

Поэтому, если вы хотите обновить общую библиотеку, используемую запущенной программой, вы можете просто удалить файл библиотеки. Так как программа уже открыла файл, на это не повлияет. Затем вы устанавливаете новую версию библиотеки как новый файл (который получает новый индексный дескриптор).

  • Для чего полезны иноды?
  • Что такое индексный дескриптор, определенный POSIX?
  • Не осталось свободного места (недостаток inode)
  • Ограничить кеш-память, используемую командой
  • Как хранятся большие каталоги (один индекс или много?)
  • Exundelete не может восстановить файл
  • Действительно ли файл -rw-rw-rw-файл недоступен в каталоге drwxrwx?
  • Как настроить сценарии загрузки для сохранения inphin inodes после неправильного завершения работы?
  • Портативный способ поиска номера inode
  • Где хранится информация о жестких / непрямых ссылках?
  • как «несколько узлов файлов» могут быть связаны с одним индексом?
  • Interesting Posts

    Установка Chrome на 64-битный Gentoo без доступа суперпользователя

    Как добавить столбец из файла в последний столбец другого файла с помощью awk?

    Как я могу проверить разрешение на чтение файлов / proc / * / *?

    Stop / sbin / agetty и выйти из сеанса

    объединить несколько одинаковых эхо-сигналов в один эхо из цикла for в bash

    Как достигается надежность с помощью SCSI и SAN?

    Как установить общий сетевой предел для каждого клиента + приоритет для подтверждений TCP

    Ядро 3.3.2-6.fc16.x86_64 широкополосное беспроводное соединение не появляется

    grub ждет ввода пользователем при загрузке в качестве гостевого в виртуальном боксе

    Сеть через мост в виртуальной машине довольно неустойчива

    не удается найти ошибку -lm linker

    Как «autoremove» пакеты с менеджером пакетов aptitude?

    На каком диске находится файл, расположенный в массиве / файловой системе RAID-1 btrfs?

    Ctrl + Alt + F1 не работает на vnc

    правильно используя $ atom в подстановке параметров

    Linux и Unix - лучшая ОС в мире.