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

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

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

  • Когда я буду использовать FBDEV против DRM против DSS?
  • Я хочу участвовать в разработке ядра Linux, где я могу найти то, что нужно сделать?
  • Chromium 32.0.1700.19 не может отображать китайский титул
  • Почему Debian Linux поддерживает до 128TiB виртуальное адресное пространство для каждого процесса, но только физическую память 64TiB?
  • Где CONFIG_COMPAT_VDSO в make menuconfig?
  • В Gentoo, как мне перестроить все пакеты, зависит от другого пакета?
  • CONFIG_FLUX_CAPACITOR устанавливается, когда это не должно быть

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

  • Как ядро ​​Linux может обращаться к назначенному initramfs / initrd?
  • Пакет Virtualbox и GPU: устройство с адресом PCI хоста, уже подключенным к этой виртуальной машине
  • Отслеживать использование модуля ядра Linux во времени
  • Не удалось найти эти debs: linux-image-4.9.0-3-amd64
  • Входит ли CentOS в семейство System V? Как он считается сравнимым с семейством Unix System V?
  • для печати адресного пространства процесса в ubuntu 12.04
  • One Solution collect form web for “Является ли отключенная опция ядра эквивалентной, не загружая соответствующий модуль?”

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

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

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

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