É 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
ipv6funcionam dessa maneira, aumentam o contador para 1 eminsmode nunca diminuem. Assim, se você compilouipv6como módulo, você nunca será capaz dermmodit. 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.