linux内核模块简介

内核模块的特征:

1.模块本身不被编译入内核映像,从而控制了内核的大小;

2.模块一旦被加载,它就和内核中的其它部分完全一样。

内核加载命令,以hello.ko为例:

insmod./hello.ko

内核卸载命令:

rmmod hello

内核中用于输出的函数是内核空间的printk()而非用户空间的printf(),printk( )的用法和printf()基本相 似,但前者可以定义输出级别。

lsmod  命令可以获得系统中加载了的所有模块以及模块间的依赖关系。

lsmod实际上读取并分析“/proc/modules”文件。

内核中已加载模块的信息也存在于/sys/module目录下,如加载hello.ko后,内核将包含/sys/module/hello 目录,该目录下又包含一个refcnt文件和一个sections目录,在/sys/module/hello目录下运行“tree - a”得到目录树。

modprobe命令比insmoe命令要强大,它在加载某模块时,会同时加载该模块所依赖的其它模块。

使用modprobe命令加载的模块若以“modprobe –r filename”的方式卸载将同时卸载其它依赖模块。

使用modinfo 模块名命令可以获得模块的信息.

你可能感兴趣的:(linux内核模块简介)