O que decide quais módulos do kernel são construídos no kernel estaticamente durante a compilação?

7

Eu apenas compilei um novo kernel e me perguntei: O que decide durante o processo de compilação quais módulos do kernel são construídos no kernel estaticamente?

Eu então deletei /lib/modules , reiniciei e descobri que meu sistema funciona bem, então parece que todos os módulos essenciais são estaticamente construídos no kernel.

Sem /lib/modules , o kernel carrega 22. Com o diretório presente, ele carrega 67 módulos.

    
por JohnnyFromBF 21.09.2015 / 18:31

2 respostas

15

Você faz isso como parte do processo de configuração, geralmente quando você executa make config , make menuconfig ou similar. Você pode definir o módulo como interno (marcado como * ) ou modularizado (marcado como M ).

Você pode ver exemplos disso em uma captura de tela de make menuconfig , de aqui :

    
por 21.09.2015 / 18:33
4

Considerando que você adicionou a tag /kernel além de /linux-kernel , presumo que você também esteja interessado no caso genérico.

No Solaris desde 1991, tudo é carregado dinamicamente, exceto o código básico do kernel, o agendador padrão e o pager / swapper.

Até mesmo o código do sistema de arquivos raiz e o carregador de módulos são carregados dinamicamente.

Isto evita a necessidade de configurar manualmente o kernel. Como o Solaris também não precisa configurar recursos dependentes de tamanho (novos objetos de kernel são criados automaticamente em tempo de execução, desde que haja memória suficiente), não há necessidade de nenhuma configuração manual no Solaris.

Eu estou querendo saber quando o Linux alcançará este estado de automação ... No entanto, acredito que isso nunca acontecerá, já que a configuração do kernel desnecessariamente teórica (consulte Solaris) é usada como um método engraçado para informar aos usuários hey, you are able to control the linux kernel .

    
por 21.09.2015 / 19:53