linux模块机制学习笔记

来源:互联网 发布:电话销售软件 编辑:程序博客网 时间:2024/04/17 06:39

模块是linux用来高效利用微内核理论优点而不会降低系统性能的一种方法。

一般在组件需要对内核中静态链接的某个数据结构或者函数进行修改时。

内核有两个主要任务来进行模块管理。第一个任务是确保内核其它部分可以访问该模块的全局符号。第二个任务是记录模块的使用情况。

 gpl许可证:不限制用户与企业使用其源代码,但是严格禁止在非gpl许可证下发行相关的源代码,而这些源代码起源于或者大部分起源于linux代码。

有可能用户会发布二进制模块代码。但linux内核开发者社团不太会接受这样的模块。

每个模块开发者应当在源码中表示出许可证类型。如果是非gpl兼容的,很多内核函数和数据结构不能使用。

 

对于每个模块,系统都 分配一个包含以下数据的内存区:

一个mofule对象

模块名

实现模块功能的代码

 

 

模块对象中有模块每cpu引用计数。有异常处理代码,有导出符号,有模块依赖链表。

 

还可使用request_module(), modprobe来自动加载模块。

原创粉丝点击