你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux内核模块学习

[日期:2014-01-04] 来源:Linux社区  作者:boyxulin1986 [字体: ]

模块是具有独立功能的程序,它能被单独编译,但不能独立运行。它可以在系统运行时动态的被链接到内核中作为内核的一部分在内核空间运行,所以内核模块提高了内核的可扩展性。

查看当前系统中已经加载了哪些模块的方法是:
1. 使用lsmod命令进行查看,
sh-3.2# lsmod

2. 直接查看/proc文件系统中的信息,
sh-3.2# cat /proc/modules

以上两种方法其实是一样的,都是查看当前系统中的模块加载状况。
二者区别在于lsmod命令的结果是经过格式化之后的信息。

删除一个已经安装的模块的方法是:
1. 直接使用rmmod命令并指定模块名,
sh-3.2# rmmod module

2. 使用modprobe命令指定-r选项来删除一个模块,
sh-3.2# modprobe -r module

安装一个模块的方法是:
1. 直接使用insmod命令并制定模块的路径,
sh-3.2# insmod /.../.../module

2. 使用modprobe命令可以选择安装指定的模块或所有的模块。

使用modprobe命令加载或卸载模块的好处在于:
modprobe会根据模块之间的依赖关系来决定如何载入或卸载模块。
而模块之间的依赖关系是如何创建呢?
执行depmod命令就会产生一个模块依赖关系的文件:
/lib/module/2.6.xx/modules.dep

模块,简单讲就是.ko文件,通常都是驱动程序开发时才会使用。
linux系统提供了模块功能大大的提高了驱动开发的效率。
那使用gcc如何才能编译一个模块文件?
据说使用如下的编译选项就可以:
-I /usr/src/linux/include
暂时没有此需求,待有空时可以再试试看。

Linux Kernel 的详细介绍请点这里
Linux Kernel 的下载地址请点这里

相关阅读

Linux内核将用nftables替代iptables http://www.linuxidc.com/Linux/2013-10/91727.htm

Linux 3.12代号Suicidal Squirrel http://www.linuxidc.com/Linux/2013-09/90023.htm

怎样在 Ubuntu 上安装 Linux 3.11 内核 http://www.linuxidc.com/Linux/2013-09/89674.htm

Ubuntu 13.10 (Saucy Salamander) 内核已升级至 Linux Kernel 3.10 RC5 http://www.linuxidc.com/Linux/2013-06/86110.htm

Linux Kernel 3.4.62 LTS 现已经提供下载 http://www.linuxidc.com/Linux/2013-09/90368.htm

如何在Ubuntu 13.10上安装Linux内核 3.12 http://www.linuxidc.com/Linux/2013-11/92930.htm

linux
相关资讯       Linux内核模块  Linux内核学习 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款