首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>linux 内核>文章内容
Linux内核可装载模块对设备驱动的影响
来源:www.unix5.com 作者:riechelr_hl 发布时间:2007-05-26  

 

模块编译生成后,加载模块时可以输入:`modprobe my_module mode=1024x768 debug=1 tuner=22,33`。

 

在linux/moduleparam.h还定义有:

 

module_param_array_named(name, array, type, nump, perm) module_param_call(name, set, get, arg, perm) module_param_named(name, , type, perm)

 

读者可以参阅linux/moduleparam.h查看这些宏的详细描述,有一点需注意,在2.6内核里,module_param这一系列宏使用的都是小写名字。

 

2.7 模块的许可证声明

 

从2.4.10版本内核开始,模块必须通过MODULE_LICENSE宏声明此模块的许可证,否则在加载此模块时,会收到内核被污染 “kernel tainted” 的警告。从linux/module.h文件中可以看到,被内核接受的有意义的许可证有 “GPL”,“GPL v2”,“GPL and additional rights”,“Dual BSD/GPL”,“Dual MPL/GPL”,“Proprietary”。

 

在同时支持2.4与2.6内核的设备驱动中,模块可按如下方式声明自己的许可证。

 

清单8: 适用于2.4与2.6内核的模块许可证声明模板

 

MODULE_LICENSE(“GPL”);

小结

 

此外,2.6内核里还有一些模块机制的改变,不常为驱动开发人员用到。如加载内核模块的接口request_module在2.4 下为request_module(const char * module_name);在2.6内核下为request_module(const char *fmt, …)。在2.6 内核下,驱动开发人员可以通过调用

 

request_module(“msp3400”); request_module(“char-major-%d-%d”, MAJOR(dev), MINOR(dev));

 

这种更灵活的方式加载其它内核模块。

 

2.6内核在linux/module.h中还提供了MODULE_ALIAS(alias)宏,模块可以通过调用此宏为自己定义一或若干个别称。而在2.4内核下,用户只能在/etc/modules.conf中为模块定义别称。

 

通过以上比较可以看到,从2.4到2.6内核,可装载模块管理机制的改变使设备驱动的开发变得更加简洁、灵活、健壮。


共4页: 上一页 [1] [2] [3] 4 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·使用 Linux 系统调用的内核命令
·Linux 2.6.11内核文件IO系统调用
·Linux操作系统的源代码目录树结
·Linux用户态与内核态的交互讲解
·Linux内核对I/O端口的管理实现(
·深入分析 Linux操作系统的内核链
·概述Linux系统的驱动框架及驱动
·详解Linux 2.6内核新文件系统变
·Linux系统可卸载内核模块完全指
·FreeBSD手册讲解(一)--配置FreeB
·编译Linux操作系统的内核讲解
·Linux系统可卸载内核模块完全指
  相关文章
·详细解析Linux操作系统的内核空
·走向Linux系统高手之路 编译内核
·Linux操作系统内核启动参数详细
·深入分析 Linux操作系统的内核链
·Linux内核入侵检测安全增强实现
·Linux内核入侵检测安全增强实现
·剖析Linux 2.6内核在嵌入式上的
·Linux操作系统的源代码目录树结
·使用 Linux 系统调用的内核命令
·Linux内核对I/O端口的管理实现(
·Linux内核对I/O端口的管理实现(
·内核设计篇

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!