É um contador. Pode ser incrementado ou decrementado pela API do núcleo do kernel.
É de responsabilidade dos módulos, quando eles são incrementados. Por exemplo, se você tiver um módulo somefs
no kernel, o comportamento esperado é incrementar esse contador com qualquer montagem de uma partição somefs
e decrementá-lo na desmontagem. Dessa forma, somefs
pode garantir que não será removido enquanto houver uma partição somefs
montada.
Se o contador de uso do módulo for diferente de zero, rmmod
falhará nesse módulo. Mas rmmod -f
não, se a remoção forçada do módulo for compilada no kernel.
Assim, as coisas importantes:
- O incremento e decremento do contador são de responsabilidade dos módulos, não há rastreamento de referência genérico e sofisticado por trás dele .
- Em muitos casos, funciona corretamente, mas nem sempre. Por exemplo, alguns módulos sujos, como
ipv6
funcionam dessa maneira, aumentam o contador para 1 eminsmod
e nunca diminuem. Assim, se você compilouipv6
como módulo, você nunca será capaz dermmod
it. Alguns driver de placa de vídeo funciona de maneira semelhante, porque suas rotinas que seria deinitialize, estão faltando. Nenhum módulo desse tipo pode ser uma fonte de orgulho para seus desenvolvedores. - Se você não puder remover um módulo por causa disso, não há uma maneira geral de descobrir o que é exatamente usado por um módulo.