【问题标题】:How to disable rmmod for my own written kernel module?如何为我自己编写的内核模块禁用 rmmod?
【发布时间】:2012-02-15 18:19:09
【问题描述】:

如果用户进程正在使用内核模块,我希望另一个进程不能为该模块触发 rmmod。 如何实现这种功能?

-Linux内核编程初学者。

【问题讨论】:

    标签: linux-kernel linux-device-driver


    【解决方案1】:

    rmmod只能在引用计数为零时卸载模块。

    如果在用户进程连接时引用计数增加(并在断开连接时减少),您会没事的。

    如果模块暴露了一个设备,或者被挂载为一个文件系统,这应该自然地处理 - 如果不是,我想这将取决于用户空间界面,但这是从哪里开始寻找。

    顺便说一下,lsmod 将显示您的模块引用计数。您可以检查它是否在用户空间进程连接时增加。

    【讨论】:

    • 列号是否与引用计数相同?
    • 是的,Used by 显示引用计数以及引用它的模块列表(即使计数非零,该列表也可能为空,尤其是对于每次挂载都有引用的文件系统模块)。
    • 谢谢。 GET_USE_COUNT(模块)
    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 2021-10-29
    • 2021-07-20
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多