首先,我们需要了解几个概念:
- 内核模块(Kernel module):是一种能够被动态加载到内核中,并在运行时添加到内核的代码。
- 内核符号(Kernel symbol):是内核函数、变量等全局符号的名称,可以被内核模块使用。
- modprobe:是Linux系统上的一个工具,用于动态加载和卸载内核模块。
下面详细讲解Linux内核模块管理的完整攻略:
查看内核模块
lsmod命令
我们可以使用lsmod命令来查看当前已经加载的内核模块。在终端输入以下命令:
$ lsmod
该命令将显示当前已加载的所有内核模块的列表,例如:
Module Size Used by
isofs 36864 0
usb_storage 73728 0
其中,“Module”列显示的是模块名称,“Size”列显示的是模块所占用的内存大小,“Used by”列显示的是使用该模块的其他模块或进程。
modinfo命令
我们可以使用modinfo命令来查看某个模块的详细信息。在终端输入以下命令:
$ modinfo <module_name>
例如,以下命令可以查看usb_storage模块的详细信息:
$ modinfo usb_storage
该命令将显示usb_storage模块的作者、版本、许可证等详细信息。
添加内核模块
我们可以使用insmod或modprobe命令来动态添加内核模块。
insmod命令
insmod命令用于将指定的内核模块动态加载到内核中。在终端输入以下命令:
$ sudo insmod <module_path>
例如,以下命令可以将名为hello_world.ko的内核模块加载到内核中:
$ sudo insmod /path/to/hello_world.ko
如果该模块成功加载,则不会有任何输出。
modprobe命令
modprobe命令用于自动解决内核模块的依赖关系,并将指定的模块及其依赖模块动态加载到内核中。在终端输入以下命令:
$ sudo modprobe <module_name>
例如,以下命令可以将usb_storage模块及其依赖模块加载到内核中:
$ sudo modprobe usb_storage
如果该模块成功加载,则不会有任何输出。
删除内核模块
我们可以使用rmmod或modprobe命令来动态卸载内核模块。
rmmod命令
rmmod命令用于将指定的内核模块动态卸载。在终端输入以下命令:
$ sudo rmmod <module_name>
例如,以下命令可以将名为hello_world.ko的内核模块卸载:
$ sudo rmmod hello_world
如果该模块成功卸载,则不会有任何输出。
modprobe命令
modprobe命令用于自动解决内核模块的依赖关系,并将指定的模块及其依赖模块动态卸载。在终端输入以下命令:
$ sudo modprobe -r <module_name>
例如,以下命令可以将usb_storage模块及其依赖模块卸载:
$ sudo modprobe -r usb_storage
如果该模块成功卸载,则不会有任何输出。
以上就是完整的Linux内核模块管理攻略,以上的命令和实例可在终端中使用,希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux内核模块管理(查看、添加和删除) - Python技术站