新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Linux模块的实现机制可移出符号

Linux模块的实现机制可移出符号

作者:时间:2012-08-29来源:网络收藏

在某种意义上来说,从可安装的角度来看,内核也是一个,只不过是一个不可安装的。既然把可安装模块安装到了内核这个模块上并向内核提供服务.那么这些可安装模块就必须有与内核交互的手段。两个模块之间交互的最简单的手段就是双方的变量和函数的共享.

本文引用地址:http://www.eepw.com.cn/article/148496.htm

为了使被安装模块知道内核的哪些变量和函数是模块可以使用的,内核以“可移出”的形式提供了可供其他模块共享的变量和函数名称。这里所谓的“可移出”,是指外部可以引用,即是暴露在内核外面的。在文件中,可移出的定义形式如下:

而模块在需要引用内核的一个“可移出”符号时,要把该符号用extern声明为外部引用。

为了使加载的各模块之间也可通过可移出符号进行交互,模块也可声明自己的移出符号,以供其他模块使用。所以这些移出符号可看做是内核与模块以及模块之间的信号通路,模块之间就是通过这些内核或模块的可移出符号交互的。

但需要注意的是,模块可以引用内核及其他模块的可移出符号,而内核不能引用模块的可移出符号。也就是说,内核与模块之间的互连是一种“单向”的互连。 模块与内核之间连接示意图如图所示。

360截图20120829143150429.jpg

图 模块和内核的连接

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭