A opção de tempo de compilação desativado significa que o código não está compilado.
Descarregar um módulo significa que o código foi compilado em um módulo, mas não está carregado na memória e, portanto, não é executado. Esteja ciente de que, às vezes, os módulos podem ser carregados automaticamente, portanto, se você precisar desativar certas funcionalidades, a opção segura é desativá-lo em tempo de compilação ou colocá-lo na lista negra em /etc/modprobe.conf
ou /etc/modprobe.d/*
. Ou removendo o arquivo de módulo do sistema de arquivos - você pode querer executar depmod
depois e fazer uma nota mental, que pode haver alguns outros módulos que dependem dele (o que pode causar alguns problemas mais tarde).
Dito isto, capacidade sábia é a mesma. Pode haver (ou não) uma pequena diferença no código que está adaptado para ser executado com ou sem o módulo que você está (ou não) desativando: suponha que você possa compilar o kernel com o recurso A como um módulo. Se o recurso B for capaz de usar o recurso A, mas não exigir, o código resultante poderá ser diferente. Com A habilitado (independente de ser como módulo ou compilado), B pode incluir uma verificação opcional para a presença do recurso A. Com A desativado em tempo de compilação , tal verificação em B é irrelevante e pode ser ignorado completamente. No entanto, isso é algo que deve ser explicitamente declarado no próprio código (por exemplo, por meio de uma diretiva C #ifdef
), mas o compilador sozinho não pode decidir isso. Portanto, depende dos autores das partes que têm o recurso A como dependência opcional. Se deve ser chamado de funcionalmente diferente é questionável - ele não altera as capacidades, mas muito provavelmente muda o tempo de execução (mesmo que seja um pouco - e mesmo isso pode ser crucial em alguns casos).