Linux模块的实现机制可移出符号
出处:LXJ2008 发布于:2009-02-18 09:08:14
在某种意义上来说,从可安装模块的角度来看,内核也是一个模块,只不过是一个不可安装的模块。既然把可安装模块安装到了内核这个模块上并向内核提供服务.那么这些可安装模块就必须有与内核交互的手段。实现两个模块之间交互的简单的手段就是实现双方的变量和函数的共享.
为了使被安装模块知道内核的哪些变量和函数是模块可以使用的,Linux内核以“可移出”符号的形式提供了可供其他模块共享的变量和函数名称。这里所谓的“可移出”,是指外部可以引用,即是暴露在内核外面的符号。在文件中,可移出符号的定义形式如下:

而模块在需要引用内核的一个“可移出”符号时,要把该符号用extern声明为外部引用。
为了使加载的各模块之间也可通过可移出符号进行交互,模块也可声明自己的移出符号,以供其他模块使用。所以这些移出符号可看做是内核与模块以及模块之间的信号通路,模块之间就是通过这些内核或模块的可移出符号实现交互的。
但需要注意的是,模块可以引用内核及其他模块的可移出符号,而内核不能引用模块的可移出符号。也就是说,内核与模块之间的互连是一种“单向”的互连。 模块与内核之间连接示意图如图所示。

图 模块和内核的连接
上一篇:什么是Linux内核模块
下一篇:Linux外部设备的基本概念
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 你的嵌入式代码经常产生bug的五大原因2026/9/23 17:26:38
- 嵌入式模块化LCR测量解决方案在ATE系统中的应用案例2026/9/8 17:03:47
- 功率芯片 PCB 嵌入式封装技术综述2026/8/18 15:45:41
- Figma 到 GUI Guider 助力嵌入式 GUI 高效开发2026/8/13 15:30:50
- 瑞萨 RA8P1 嵌入式 AI 开发四部曲之零:工程挑战2026/8/12 16:03:16









