Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157451
  • 博文数量: 55
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 582
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-17 19:31
文章分类

全部博文(55)

文章存档

2010年(19)

2009年(36)

我的朋友

分类: C/C++

2009-11-20 14:00:50

内核模块中用于输出的函数是内核空间的printk(),而非用户空间的printf(),二者相似,但是printk()可定义输出级别,可作为一种最基本的内核调试手段
 
lsmod命令可获得系统中加载的所有模块以及模块间的依赖关系,lsmod实际上读取并分析/proc/modules文件
 
内核中已经加载模块的信息存在/sys/module目录下
 
tree -a 命令可以得到目录树
 
modprobe命令比insmod强大,它在加载某模块时会同时加载该模块所依赖的其他模块
使用modprobe命令加载的模块若以modprobe -r filename 的方式将同时卸载其所依赖的模块
 
modinfo 模块名  可以获得模块的信息
 
 
linux内核模块的组成部分:
必选:模块加载函数、模块卸载函数、模块许可证声明
可选:模块参数、模块导出符号、模块作者等信息声明
 
 
模块加载函数:
以_ _init标识声明,初始化成功,应该返回0,初始化失败时,返回错误编码(负值)
 
 
模块卸载函数不返回任何值,以_ _exit
 
其实_ _init  _ _exit都是宏
 
 
模块参数 module_param(参数名,参数类型,参数读/写权限)
 
 
阅读(334) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~