Является ли отключенная опция ядра эквивалентной, не загружая соответствующий модуль?

Предположим, что я задал параметр конфигурации tristate kernel, который будет построен как модуль, но я не загружаю соответствующий модуль ядра во время выполнения (и он не загружается автоматически). Является ли функциональность полученного ядра эквивалентом того, что было бы, если бы я отключил опцию прямо? Или есть какая-то разница между выгруженным модулем и отключенным вариантом ядра?

Иногда при установке пакетов в моей системе Gentoo я получаю предупреждения о форме

CONFIG_FLUX_CAPACITOR устанавливается, когда это не должно быть

Как правило, оказывается, что опция фактически устанавливается как модуль, который затем не загружается. Похоже, что программное обеспечение отлично работает в каждом случае, с которым я столкнулся до сих пор, но мне интересно, может ли это что-то, что я могу ожидать в целом.

  • Linux не бросает FS Caches. Вместо этого память начинает свопинг
  • Отсоединить клавиатуру от ядра
  • Найти модуль ядра за виртуальным сетевым интерфейсом по информации из sysfs / procfs
  • IO Ошибка при rsync при ежедневном резервном копировании
  • Как я могу подтвердить, что `nice` работает?
  • Имеют ли tmpfs и devtmpfs одну и ту же область памяти?
  • для печати адресного пространства процесса в ubuntu 12.04
  • Есть ли способ заставить libusb вести себя в режиме реального времени?
  • One Solution collect form web for “Является ли отключенная опция ядра эквивалентной, не загружая соответствующий модуль?”

    Отключенная опция времени компиляции означает, что код не скомпилирован.

    Выгрузка модуля означает, что код был скомпилирован в модуль, но не загружен в память и, следовательно, не запущен. Имейте в виду, что иногда модули могут загружаться автоматически, поэтому, если вам нужно отключить определенные функции, безопасная опция – отключить ее во время компиляции или занести в черный список в /etc/modprobe.conf или /etc/modprobe.d/* , Или удалив файл модуля из файловой системы – возможно, вы захотите запустить depmod после этого и запомните, что могут быть некоторые другие модули, которые зависят от него (что может вызвать некоторые проблемы позже).

    Тем не менее, умение одинаково. Там может (или не быть) небольшая разница в коде, который адаптирован для работы с или без модуля, который вы отключите: предположим, вы можете скомпилировать ядро ​​с функцией A в качестве модуля. Если функция B способна использовать функцию A, но не требует ее, результирующий код может отличаться. С включенным A (независимо от того, что он является модулем или скомпилирован в), B может включать опциональную проверку наличия функции A. С отключенным во время компиляции такая проверка в B не имеет значения и может быть пропущена полностью. Это, однако, должно быть явно указано в самом коде (например, с помощью директивы C #ifdef ), сам компилятор не может это решить. Следовательно, это зависит от авторов частей, которые имеют функцию A в качестве дополнительной зависимости. Следует ли это назвать функционально другим, сомнительно – оно не изменяет возможности, но, скорее всего, изменяет время выполнения (хотя и немного, но даже может быть хрустящим в некоторых случаях).

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