[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 怎样确认 一个 内核模块 是否正在使用?



肖盛文(Faris Xiao) 提到:

Stanley Peng wrote:

肖盛文 (Faris Xiao) 提到:


sarge kernel 2.6.8-2-686

在我机器启动的时候,自动加载了很多模块。

根据 lsmod 命令的输出,如果看到 Used by 的数字不为 “0” ,则可以判断 该 模 块在使用。
但 Used by 的数字显示为 “0” 的情况下,无法判断该模块是否在使用。

请问大家还有什么其它方法可以判断某个模块是否在使用?

只要被加载进来了,如果显示的数字为0,只表示目前没有其他模块使用到该模 块,并不表示该模块没有被使用,
也可能表示该模块是独立工作。

某个模块一旦被加载,说明内核正在使用该模块提供的功能,如果你把它卸载 掉, 那么该模块提供的功能就不能被上层应用使用。


只要某个模块被加载,就说明内核正在使用该模块提供的功能?不一定吧?

:),大部分的内核模块你可以理解为驱动程序模块(狭义的说)。内核模块主要是 让内核具有某种功能的能力,具体怎么使用这个功能以及谁来使用这个功能,都是 由上层去做。 如果某个模块没有被加载,内核就不具备这个模块所能提供的功能,上层的应用自 然就无法使用。


比如说,我lsmod里面有个叫 ohci_hcd 的模块,说明该模块被加载,但是 Used by 的数字显示为 “0”, 无论我是否 rmmod ohci_hcd 或者 modprobe ohci_hcd,我的计算机均能够正常 使用,因为我的USB硬件不是那种类型的。

ohci_hcd或者uhci_hcd主要使用来实现usb 1.1标准协议的,你可以使用,也可以 不使用。 ehci_hcd是用来驱动usb 2.0接口的,你当然可以不用ohci_hcd而使用ehci_hcd, 只要你的接口是usb 2.0接口。


当 ohci_hcd 在 lsmod 里面出现的时候,能够说明“内核正在使用 ohci_hcd 提 供 的功能”吗?


:),可以这么理解,准确的说,“内核具备了ohci_hcd模块所提供的功能”更合适一些。


大家有没有什么好的办法,判断出 使用计数为零(Used by 的数字为 “0”) 的 模块,是否被内核使用?

如果一个一个的使用 rmmod 去试的话,那就太费力了。




所以,是否要加载一个模块,就要看你想让内核提供哪些功能,根据你的需求 自 己 可以定制想加载哪些模块,不想加载那些模块。







Reply to: