Перечислите неиспользованный модуль

Каждый процесс имеет свою собственную таблицу дескрипторов файлов. Дескриптор файла 4 в точках процесса 1234 года в обрабатывает таблицу 1234. Дескриптор файла 4 в процессе 5 678 точек в обрабатывает таблицу 5678. Случай, с которым необходимо быть знакомы, является дескрипторами файлов 0, 1 и 2, которые для каждого процесса являются стандартным входом, стандартным выводом и стандартной погрешностью, указывая везде, где они были перенаправлены к.

Процесс может открыть тот же файл несколько раз. Это может произойти по совпадению, например, когда стандартный вывод процесса и стандартная погрешность перенаправляются к тому же терминалу или в тот же файл. Базовые записи таблицы файлов (например, Linux struct file) несите больше, чем информация о файле; они также содержат вводные режимы (например, читайте или запишите), и другое состояние (такое как флаги, например, замыкаться-должностное-лицо). Например, процессу можно было бы открыть терминал для чтения только на дескрипторе файла 0 и том же самом терминале, открытом для записи только на дескрипторе файла 2. Записи таблиц файлов также содержат положение процесса в файле; процесс мог бы хотеть lseek к двум различным позициям в том же файле, и использование - также dup получить два дескриптора в тот файл.

7
19.05.2011, 23:26
2 ответа

lsmod списки все загруженные модули, и имеют a Used by столбец. Если это 0 для модуля A, затем никакой другой загруженный модуль не имеет зависимость от него.

Это не означает, что удаление модуля безопасно.

Нет никакого способа, которым я могу думать об этом, Вы могли определить, используется ли модуль. Модули драйвера устройства будут (обычно) увеличивать их Used by рассчитайте, когда они на самом деле обработают устройство. (Это допустимо также для виртуальных устройств.), Но я не думаю, что можно рассчитывать на это.

например, Прямо сейчас я имею coretemp и lm90 модули загружаются. Их Used by количество является нулем, но они используются (временный файл. контроль).

7
27.01.2020, 20:17
  • 1
    Никакая другая зависимость не означает, что в настоящее время не используется, правильно? Исправьте меня, если я неправ, модуль мог бы использоваться, это просто, что никакие другие модули не зависят от него. –  amree 19.05.2011, 15:38
  • 2
    @foo:верно. можно только удалить модули с количеством использования 0, но это не означает, что они "неактивны". –  Mat 19.05.2011, 15:48

Под чем Вы подразумеваете неиспользованный? То, что модулем показывают lsmod средства, что, вероятно, было серьезное основание загрузить его. Для нахождения модулей, которые компилируются, но не используются, Вы могли сравнить вывод lsmod с /lib/modules для Вашей версии ядра.

1
27.01.2020, 20:17
  • 1
    я постоянно имею parport, альбом и pcmcia, загруженный, не используя их. Да, интерфейс произошел и может использоваться, но это не. От факта, что модули загружаются, я могу завершить, как ядро работает, но это не, очевидно, для меня, заранее. –  user unknown 20.05.2011, 05:01

Теги

Похожие вопросы