EXPORT_ SYMBOL
时间: 2023-07-21 21:53:21 浏览: 98
EXPORT_SYMBOL是Linux内核中的一个宏定义,用于将一个符号(函数、变量等)导出给其他模块使用。在Linux内核中,由于模块化的设计,不同的模块之间需要相互调用函数或变量,而EXPORT_SYMBOL就是用来实现这个功能的。通过使用EXPORT_SYMBOL,一个模块中定义的符号就可以被其他模块直接调用和使用。
相关问题
EXPORT_SYMBOL
EXPORT_SYMBOL宏的作用是将符号导出到内核符号表,使得其他模块或内核可以使用该符号。在Linux内核中,通过使用EXPORT_SYMBOL宏可以将非静态函数和变量导出给其他模块使用。而EXPORT_SYMBOL_GPL宏则仅将符号导出给GPL许可的模块。在Linux 2.6版本之后,由于安全考虑,默认不再自动导出所有符号,需要使用EXPORT_SYMBOL宏来标记需要导出的符号。这样其他模块才能够使用这些导出的符号。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Linux 模块导出符号 EXPORT_SYMBOL](https://blog.csdn.net/luckydarcy/article/details/112904819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Linux EXPORT_SYMBOL宏详解](https://blog.csdn.net/weixin_45030965/article/details/126658984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
EXPORT_SYMBOL_GPL和EXPORT_SYMBOL有什么区别
在Linux内核开发中,EXPORT_SYMBOL和EXPORT_SYMBOL_GPL是用于导出符号(函数或变量)的宏。
- EXPORT_SYMBOL是用于将符号导出为公共符号,可以被内核模块和其他驱动程序使用。这意味着,无论内核模块的许可证类型是什么,都可以使用这个导出的符号。
- EXPORT_SYMBOL_GPL则将符号导出为GPL许可证的符号。它只能被使用GPL许可证的内核模块和驱动程序使用。如果一个内核模块或驱动程序使用了EXPORT_SYMBOL_GPL导出的符号,那么它自身也必须使用GPL许可证。
因此,EXPORT_SYMBOL可以被任何类型的内核模块和驱动程序使用,而EXPORT_SYMBOL_GPL只能被使用GPL许可证的内核模块和驱动程序使用。选择使用哪种导出符号的宏取决于符号的许可证要求和对代码的开放程度要求。
阅读全文