smod、insmod、rmmod是一组实用工具所提供的三个命令,这组实用工具一般是和内核版本对应的,其1.3.57版本名为modules(modules-1.3.57.tar.gz),高一点的版本名为modutils(例如modutils-2.4.2.tar.gz)。最好保证你的系统中的模块实用工具的版本号(可以使用modinfo-V命令来查看)不低于内核版本号(可以使用uname-r来查看)。1.3.57版本的modules内容包括modprobe、depmod、genksyms、makecrc32、insmod、rmmod、lsmod、ksyms、kerneld等命令。其中modprobe和insmod命令类似,不过它要依赖于相关的配置文件;depmod用于生成模块依赖文件/lib/modules/kernel-version/modules.dep;genksyms和ksyms与内核函数的版本号有关(由于内核的不断更新,各个版本的内核函数各有不同,为了不会引起系统的崩溃,内核源程序中要对内核函数的版本号进行严格地控制)。在以后版本的实用工具中,使用kmod来取代了kerneld。kmod的功能和kerneld类似,但是它不能自动卸载模块。之所以采用kmod的原因在于kerneld是使用IPC通道实现的,相当于多经过了一层处理,另外kerneld的代码也比较复杂,kmod的代码数量也比kerneld少得多。
--------------------------------------------
1、modprobe 命令是根据depmod-a的输出/lib/modules/version/modules.dep来加载全部的所需要模块。
2、删除模块的命令是:modprobe -rfilename
3、系统启动后,正常工作的模块都在/proc/modules文件中列出。使用lsmod命今也可显示相同内容。
4、在内核中有一个“Automatic kernel moduleloading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/modules.conf或/etc/modprobe.conf文件是一个自动处理内核模块的控制文件。