insmod 和 rmmod

    xiaoxiao2021-03-25  86

    Linux内核是个很庞大的东西,要全部了解清楚是很难的,所以我们所做的内核上的开发也是为驱动做一些基本的准备。

    其中Linux的系统的构成、内核的构成还有内核的目录结构在这里就不去做过多的解释,有兴趣的可以自己查找相关的资料。

     

    一、内核模块的特点

        a)        不会被编译进内核之中,这样的话可以尽可能的控制Linux内核的大小。

        b)        在内核运行期间,可以动态的进行加载或卸载。

     

    二、相关函数的介绍

        a)        module_init宏表示在加载模块的时候,自动调用这个宏所指示的函数。

        b)        module_exit宏表示在卸载模块的时候,自动调用这个宏所指示的函数。

     

    例如:

             代码中:

                       module_init(funa);

                       module_exit(funb);

             当加载该模块时,自动调用funa函数,同理当卸载该模块时,自动调用funb函数。

     

    三、模块的相关命令

        a)        加载模块:insmod   modprobe

        b)        卸载模块:rmmod

        c)        查看模块:lsmod

     

    insmod和modprobe的区别:

             当a模块与b模块有依赖关系时,假设安装b模块需先安装a模块。

             如果用insmod命令那么需要先insmod  a.ko 然后再insmod  b.ko。

             如果用modprobe命令那么直接可以modprobeb.ko。

             其中/lib/modules/“内核版本号”/modules.dep中记录了模块之间的依赖关系。

     

             rmmod命令:只需要调用模块名即可,比如安装的时候是inmod  a.ko 安装完毕后该模块存在于内核中的名字为a,那么卸载该模块只需要rmmod  a即可。

    转载请注明原文地址: https://ju.6miu.com/read-21539.html

    最新回复(0)