科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux内核模块是如何被调入内核工作的?

Linux内核模块是如何被调入内核工作的?

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Lsmod通过读取/proc/modules文件的内容来查看内核已经加载了哪些内核模块。操作系统内核需要的扩展功能不存在时,内核模块管理守护进程kmod执行modprobe去加载内核模块。

作者:赛迪网 来源:赛迪网 2007年10月17日

关键字: 调入 模块 内核 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

Lsmod通过读取/proc/modules文件的内容来查看内核已经加载了哪些内核模块。操作系统内核需要的扩展功能不存在时,内核模块管理守护进程kmod执行modprobe去加载内核模块。当传递给modprobe是通用识别符时,modprobe首先在文件 /etc/modules.conf查找该字符串。然后,modprobe遍历文件/lib/modules/version/modules.dep 来判断是否有其它内核模块需要在该模块加载前被加载。该文件是由命令depmod -a 建立,保存着内核模块的依赖关系。最终,modprobe调用insmod先加载被依赖的模块,然后加载该被内核要求的模块。modprobe将insmod向 /lib/modules/version/[1]目录,该目录为默认标准存放内核模块的目录。所以,当你想要载入一个内核模块时,你可以执行:

insmod /lib/modules/2.5.1/kernel/fs/fat/fat.o

insmod /lib/modules/2.5.1/kernel/fs/msdos/msdos.o

或只是执行"modprobe -a msdos"。

Linux提供modprobe, insmod and depmod在一个名为modutils 或 mod-utils的工具包内。

为某个版本编译的模块将不能被另一个版本的内核加载如果内核中打开了CONFIG_MODVERSIONS选项。目前绝大多数的发行版是将该选项打开的。

如果你在修改内核,为避免覆盖你现在工作的模块,你应该试试使用内核Makefile中的变量EXTRAVERSION去建立一个独 立的模块目录。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章